!(function (e) {
function t(t) {
for (var n, r, o = t[0], a = t[1], s = 0, l = []; s < o.length; s++) (r = o[s]), Object.prototype.hasOwnProperty.call(i, r) && i[r] && l.push(i[r][0]), (i[r] = 0);
for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n]);
for (c && c(t); l.length; ) l.shift()();
}
var n = {},
i = { 0: 0 };
function r(t) {
if (n[t]) return n[t].exports;
var i = (n[t] = { i: t, l: !1, exports: {} });
return e[t].call(i.exports, i, i.exports, r), (i.l = !0), i.exports;
}
(r.e = function (e) {
var t = [],
n = i[e];
if (0 !== n)
if (n) t.push(n[2]);
else {
var o = new Promise(function (t, r) {
n = i[e] = [t, r];
});
t.push((n[2] = o));
var a,
s = document.createElement("script");
(s.charset = "utf-8"),
(s.timeout = 120),
r.nc && s.setAttribute("nonce", r.nc),
(s.src = (function (e) {
return r.p + "" + e + ".bundle.js";
})(e));
var c = new Error();
a = function (t) {
(s.onerror = s.onload = null), clearTimeout(l);
var n = i[e];
if (0 !== n) {
if (n) {
var r = t && ("load" === t.type ? "missing" : t.type),
o = t && t.target && t.target.src;
(c.message = "Loading chunk " + e + " failed.\n(" + r + ": " + o + ")"), (c.name = "ChunkLoadError"), (c.type = r), (c.request = o), n[1](c);
}
i[e] = void 0;
}
};
var l = setTimeout(function () {
a({ type: "timeout", target: s });
}, 12e4);
(s.onerror = s.onload = a), document.head.appendChild(s);
}
return Promise.all(t);
}),
(r.m = e),
(r.c = n),
(r.d = function (e, t, n) {
r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n });
}),
(r.r = function (e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
}),
(r.t = function (e, t) {
if ((1 & t && (e = r(e)), 8 & t)) return e;
if (4 & t && "object" == typeof e && e && e.__esModule) return e;
var n = Object.create(null);
if ((r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e))
for (var i in e)
r.d(
n,
i,
function (t) {
return e[t];
}.bind(null, i)
);
return n;
}),
(r.n = function (e) {
var t =
e && e.__esModule
? function () {
return e.default;
}
: function () {
return e;
};
return r.d(t, "a", t), t;
}),
(r.o = function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}),
(r.p = ""),
(r.oe = function (e) {
throw e;
});
var o = (window.webpackJsonp = window.webpackJsonp || []),
a = o.push.bind(o);
(o.push = t), (o = o.slice());
for (var s = 0; s < o.length; s++) t(o[s]);
var c = a;
r((r.s = 351));
})([
function (e, t, n) {
"use strict";
function i() {}
n.d(t, "a", function () {
return ae;
}),
n.d(t, "b", function () {
return U;
}),
n.d(t, "c", function () {
return L;
}),
n.d(t, "d", function () {
return m;
}),
n.d(t, "e", function () {
return T;
}),
n.d(t, "f", function () {
return k;
}),
n.d(t, "g", function () {
return Q;
}),
n.d(t, "h", function () {
return ne;
}),
n.d(t, "i", function () {
return h;
}),
n.d(t, "j", function () {
return re;
}),
n.d(t, "k", function () {
return _;
}),
n.d(t, "l", function () {
return b;
}),
n.d(t, "m", function () {
return v;
}),
n.d(t, "n", function () {
return P;
}),
n.d(t, "o", function () {
return S;
}),
n.d(t, "p", function () {
return u;
}),
n.d(t, "q", function () {
return ee;
}),
n.d(t, "r", function () {
return q;
}),
n.d(t, "s", function () {
return oe;
}),
n.d(t, "t", function () {
return g;
}),
n.d(t, "u", function () {
return s;
}),
n.d(t, "v", function () {
return x;
}),
n.d(t, "w", function () {
return ie;
}),
n.d(t, "x", function () {
return i;
}),
n.d(t, "y", function () {
return f;
}),
n.d(t, "z", function () {
return F;
}),
n.d(t, "A", function () {
return w;
}),
n.d(t, "B", function () {
return a;
}),
n.d(t, "C", function () {
return c;
}),
n.d(t, "D", function () {
return M;
}),
n.d(t, "E", function () {
return A;
}),
n.d(t, "F", function () {
return O;
}),
n.d(t, "G", function () {
return E;
}),
n.d(t, "H", function () {
return C;
}),
n.d(t, "I", function () {
return l;
}),
n.d(t, "J", function () {
return y;
}),
n.d(t, "K", function () {
return J;
}),
n.d(t, "L", function () {
return $;
}),
n.d(t, "M", function () {
return p;
});
function r(e) {
return e();
}
function o() {
return Object.create(null);
}
function a(e) {
e.forEach(r);
}
function s(e) {
return "function" == typeof e;
}
function c(e, t) {
return e != e ? t == t : e !== t || (e && "object" == typeof e) || "function" == typeof e;
}
function l(e, ...t) {
if (null == e) return i;
const n = e.subscribe(...t);
return n.unsubscribe ? () => n.unsubscribe() : n;
}
function u(e) {
let t;
return l(e, (e) => (t = e))(), t;
}
function h(e, t, n, i) {
if (e) {
const r = d(e, t, n, i);
return e[0](r);
}
}
function d(e, t, n, i) {
return e[1] && i
? (function (e, t) {
for (const n in t) e[n] = t[n];
return e;
})(n.ctx.slice(), e[1](i(t)))
: n.ctx;
}
function p(e, t, n, i, r, o, a) {
const s = (function (e, t, n, i) {
if (e[2] && i) {
const r = e[2](i(n));
if (void 0 === t.dirty) return r;
if ("object" == typeof r) {
const e = [],
n = Math.max(t.dirty.length, r.length);
for (let i = 0; i < n; i += 1) e[i] = t.dirty[i] | r[i];
return e;
}
return t.dirty | r;
}
return t.dirty;
})(t, i, r, o);
if (s) {
const r = d(t, n, i, a);
e.p(r, s);
}
}
function f(e) {
return null == e ? "" : e;
}
new Set();
function m(e, t) {
e.appendChild(t);
}
function g(e, t, n) {
e.insertBefore(t, n || null);
}
function b(e) {
e.parentNode.removeChild(e);
}
function _(e, t) {
for (let n = 0; n < e.length; n += 1) e[n] && e[n].d(t);
}
function v(e) {
return document.createElement(e);
}
function y(e) {
return document.createTextNode(e);
}
function C() {
return y(" ");
}
function P() {
return y("");
}
function x(e, t, n, i) {
return e.addEventListener(t, n, i), () => e.removeEventListener(t, n, i);
}
function T(e, t, n) {
null == n ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n);
}
function S(e, t, n) {
const i = new Set();
for (let t = 0; t < e.length; t += 1) e[t].checked && i.add(e[t].__value);
return n || i.delete(t), Array.from(i);
}
function O(e, t) {
(t = "" + t), e.wholeText !== t && (e.data = t);
}
function E(e, t, n, i) {
e.style.setProperty(t, n, i ? "important" : "");
}
function M(e, t) {
for (let n = 0; n < e.options.length; n += 1) {
const i = e.options[n];
if (i.__value === t) return void (i.selected = !0);
}
}
function A(e) {
const t = e.querySelector(":checked") || e.options[0];
return t && t.__value;
}
new Set();
let I;
function D(e) {
I = e;
}
function R() {
if (!I) throw new Error("Function called outside component initialization");
return I;
}
function w(e) {
R().$$.on_mount.push(e);
}
function L(e) {
R().$$.after_update.push(e);
}
function F(e) {
R().$$.on_destroy.push(e);
}
const N = [],
k = [],
z = [],
j = [],
B = Promise.resolve();
let V = !1;
function G() {
V || ((V = !0), B.then(X));
}
function U(e) {
z.push(e);
}
let H = !1;
const W = new Set();
function X() {
if (!H) {
H = !0;
do {
for (let e = 0; e < N.length; e += 1) {
const t = N[e];
D(t), Y(t.$$);
}
for (N.length = 0; k.length; ) k.pop()();
for (let e = 0; e < z.length; e += 1) {
const t = z[e];
W.has(t) || (W.add(t), t());
}
z.length = 0;
} while (N.length);
for (; j.length; ) j.pop()();
(V = !1), (H = !1), W.clear();
}
}
function Y(e) {
if (null !== e.fragment) {
e.update(), a(e.before_update);
const t = e.dirty;
(e.dirty = [-1]), e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(U);
}
}
const K = new Set();
let Z;
function q() {
Z = { r: 0, c: [], p: Z };
}
function Q() {
Z.r || a(Z.c), (Z = Z.p);
}
function J(e, t) {
e && e.i && (K.delete(e), e.i(t));
}
function $(e, t, n, i) {
if (e && e.o) {
if (K.has(e)) return;
K.add(e),
Z.c.push(() => {
K.delete(e), i && (n && e.d(1), i());
}),
e.o(t);
}
}
const ee = "undefined" != typeof window ? window : "undefined" != typeof globalThis ? globalThis : global;
new Set([
"allowfullscreen",
"allowpaymentrequest",
"async",
"autofocus",
"autoplay",
"checked",
"controls",
"default",
"defer",
"disabled",
"formnovalidate",
"hidden",
"ismap",
"loop",
"multiple",
"muted",
"nomodule",
"novalidate",
"open",
"playsinline",
"readonly",
"required",
"reversed",
"selected",
]);
let te;
function ne(e) {
e && e.c();
}
function ie(e, t, n) {
const { fragment: i, on_mount: o, on_destroy: c, after_update: l } = e.$$;
i && i.m(t, n),
U(() => {
const t = o.map(r).filter(s);
c ? c.push(...t) : a(t), (e.$$.on_mount = []);
}),
l.forEach(U);
}
function re(e, t) {
const n = e.$$;
null !== n.fragment && (a(n.on_destroy), n.fragment && n.fragment.d(t), (n.on_destroy = n.fragment = null), (n.ctx = []));
}
function oe(e, t, n, r, s, c, l = [-1]) {
const u = I;
D(e);
const h = t.props || {},
d = (e.$$ = { fragment: null, ctx: null, props: c, update: i, not_equal: s, bound: o(), on_mount: [], on_destroy: [], before_update: [], after_update: [], context: new Map(u ? u.$$.context : []), callbacks: o(), dirty: l });
let p = !1;
if (
((d.ctx = n
? n(e, h, (t, n, ...i) => {
const r = i.length ? i[0] : n;
return (
d.ctx &&
s(d.ctx[t], (d.ctx[t] = r)) &&
(d.bound[t] && d.bound[t](r),
p &&
(function (e, t) {
-1 === e.$$.dirty[0] && (N.push(e), G(), e.$$.dirty.fill(0)), (e.$$.dirty[(t / 31) | 0] |= 1 << t % 31);
})(e, t)),
n
);
})
: []),
d.update(),
(p = !0),
a(d.before_update),
(d.fragment = !!r && r(d.ctx)),
t.target)
) {
if (t.hydrate) {
const e = (function (e) {
return Array.from(e.childNodes);
})(t.target);
d.fragment && d.fragment.l(e), e.forEach(b);
} else d.fragment && d.fragment.c();
t.intro && J(e.$$.fragment), ie(e, t.target, t.anchor), X();
}
D(u);
}
"function" == typeof HTMLElement &&
(te = class extends HTMLElement {
constructor() {
super(), this.attachShadow({ mode: "open" });
}
connectedCallback() {
for (const e in this.$$.slotted) this.appendChild(this.$$.slotted[e]);
}
attributeChangedCallback(e, t, n) {
this[e] = n;
}
$destroy() {
re(this, 1), (this.$destroy = i);
}
$on(e, t) {
const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);
return (
n.push(t),
() => {
const e = n.indexOf(t);
-1 !== e && n.splice(e, 1);
}
);
}
$set() {}
});
class ae {
$destroy() {
re(this, 1), (this.$destroy = i);
}
$on(e, t) {
const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);
return (
n.push(t),
() => {
const e = n.indexOf(t);
-1 !== e && n.splice(e, 1);
}
);
}
$set() {}
}
},
function (e, t, n) {
"use strict";
n.d(t, "d", function () {
return s;
}),
n.d(t, "e", function () {
return c;
}),
n.d(t, "f", function () {
return l;
}),
n.d(t, "b", function () {
return u;
}),
n.d(t, "a", function () {
return h;
}),
n.d(t, "c", function () {
return p;
});
var i = n(15),
r = n(34),
o = n(58),
a = n(13),
s = (function () {
function e(e, t) {
void 0 === e && (e = 0), void 0 === t && (t = 0), (this.x = e), (this.y = t);
}
return (
(e.prototype.toString = function () {
return "{X: " + this.x + " Y:" + this.y + "}";
}),
(e.prototype.getClassName = function () {
return "Vector2";
}),
(e.prototype.getHashCode = function () {
var e = 0 | this.x;
return (e = (397 * e) ^ (0 | this.y));
}),
(e.prototype.toArray = function (e, t) {
return void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), this;
}),
(e.prototype.asArray = function () {
var e = new Array();
return this.toArray(e, 0), e;
}),
(e.prototype.copyFrom = function (e) {
return (this.x = e.x), (this.y = e.y), this;
}),
(e.prototype.copyFromFloats = function (e, t) {
return (this.x = e), (this.y = t), this;
}),
(e.prototype.set = function (e, t) {
return this.copyFromFloats(e, t);
}),
(e.prototype.add = function (t) {
return new e(this.x + t.x, this.y + t.y);
}),
(e.prototype.addToRef = function (e, t) {
return (t.x = this.x + e.x), (t.y = this.y + e.y), this;
}),
(e.prototype.addInPlace = function (e) {
return (this.x += e.x), (this.y += e.y), this;
}),
(e.prototype.addVector3 = function (t) {
return new e(this.x + t.x, this.y + t.y);
}),
(e.prototype.subtract = function (t) {
return new e(this.x - t.x, this.y - t.y);
}),
(e.prototype.subtractToRef = function (e, t) {
return (t.x = this.x - e.x), (t.y = this.y - e.y), this;
}),
(e.prototype.subtractInPlace = function (e) {
return (this.x -= e.x), (this.y -= e.y), this;
}),
(e.prototype.multiplyInPlace = function (e) {
return (this.x *= e.x), (this.y *= e.y), this;
}),
(e.prototype.multiply = function (t) {
return new e(this.x * t.x, this.y * t.y);
}),
(e.prototype.multiplyToRef = function (e, t) {
return (t.x = this.x * e.x), (t.y = this.y * e.y), this;
}),
(e.prototype.multiplyByFloats = function (t, n) {
return new e(this.x * t, this.y * n);
}),
(e.prototype.divide = function (t) {
return new e(this.x / t.x, this.y / t.y);
}),
(e.prototype.divideToRef = function (e, t) {
return (t.x = this.x / e.x), (t.y = this.y / e.y), this;
}),
(e.prototype.divideInPlace = function (e) {
return this.divideToRef(e, this);
}),
(e.prototype.negate = function () {
return new e(-this.x, -this.y);
}),
(e.prototype.negateInPlace = function () {
return (this.x *= -1), (this.y *= -1), this;
}),
(e.prototype.negateToRef = function (e) {
return e.copyFromFloats(-1 * this.x, -1 * this.y);
}),
(e.prototype.scaleInPlace = function (e) {
return (this.x *= e), (this.y *= e), this;
}),
(e.prototype.scale = function (t) {
var n = new e(0, 0);
return this.scaleToRef(t, n), n;
}),
(e.prototype.scaleToRef = function (e, t) {
return (t.x = this.x * e), (t.y = this.y * e), this;
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
return (t.x += this.x * e), (t.y += this.y * e), this;
}),
(e.prototype.equals = function (e) {
return e && this.x === e.x && this.y === e.y;
}),
(e.prototype.equalsWithEpsilon = function (e, t) {
return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t);
}),
(e.prototype.floor = function () {
return new e(Math.floor(this.x), Math.floor(this.y));
}),
(e.prototype.fract = function () {
return new e(this.x - Math.floor(this.x), this.y - Math.floor(this.y));
}),
(e.prototype.length = function () {
return Math.sqrt(this.x * this.x + this.y * this.y);
}),
(e.prototype.lengthSquared = function () {
return this.x * this.x + this.y * this.y;
}),
(e.prototype.normalize = function () {
var e = this.length();
return 0 === e || ((this.x /= e), (this.y /= e)), this;
}),
(e.prototype.clone = function () {
return new e(this.x, this.y);
}),
(e.Zero = function () {
return new e(0, 0);
}),
(e.One = function () {
return new e(1, 1);
}),
(e.FromArray = function (t, n) {
return void 0 === n && (n = 0), new e(t[n], t[n + 1]);
}),
(e.FromArrayToRef = function (e, t, n) {
(n.x = e[t]), (n.y = e[t + 1]);
}),
(e.CatmullRom = function (t, n, i, r, o) {
var a = o * o,
s = o * a;
return new e(
0.5 * (2 * n.x + (-t.x + i.x) * o + (2 * t.x - 5 * n.x + 4 * i.x - r.x) * a + (-t.x + 3 * n.x - 3 * i.x + r.x) * s),
0.5 * (2 * n.y + (-t.y + i.y) * o + (2 * t.y - 5 * n.y + 4 * i.y - r.y) * a + (-t.y + 3 * n.y - 3 * i.y + r.y) * s)
);
}),
(e.Clamp = function (t, n, i) {
var r = t.x;
r = (r = r > i.x ? i.x : r) < n.x ? n.x : r;
var o = t.y;
return new e(r, (o = (o = o > i.y ? i.y : o) < n.y ? n.y : o));
}),
(e.Hermite = function (t, n, i, r, o) {
var a = o * o,
s = o * a,
c = 2 * s - 3 * a + 1,
l = -2 * s + 3 * a,
u = s - 2 * a + o,
h = s - a;
return new e(t.x * c + i.x * l + n.x * u + r.x * h, t.y * c + i.y * l + n.y * u + r.y * h);
}),
(e.Lerp = function (t, n, i) {
return new e(t.x + (n.x - t.x) * i, t.y + (n.y - t.y) * i);
}),
(e.Dot = function (e, t) {
return e.x * t.x + e.y * t.y;
}),
(e.Normalize = function (e) {
var t = e.clone();
return t.normalize(), t;
}),
(e.Minimize = function (t, n) {
return new e(t.x < n.x ? t.x : n.x, t.y < n.y ? t.y : n.y);
}),
(e.Maximize = function (t, n) {
return new e(t.x > n.x ? t.x : n.x, t.y > n.y ? t.y : n.y);
}),
(e.Transform = function (t, n) {
var i = e.Zero();
return e.TransformToRef(t, n, i), i;
}),
(e.TransformToRef = function (e, t, n) {
var i = t.m,
r = e.x * i[0] + e.y * i[4] + i[12],
o = e.x * i[1] + e.y * i[5] + i[13];
(n.x = r), (n.y = o);
}),
(e.PointInTriangle = function (e, t, n, i) {
var r = 0.5 * (-n.y * i.x + t.y * (-n.x + i.x) + t.x * (n.y - i.y) + n.x * i.y),
o = r < 0 ? -1 : 1,
a = (t.y * i.x - t.x * i.y + (i.y - t.y) * e.x + (t.x - i.x) * e.y) * o,
s = (t.x * n.y - t.y * n.x + (t.y - n.y) * e.x + (n.x - t.x) * e.y) * o;
return a > 0 && s > 0 && a + s < 2 * r * o;
}),
(e.Distance = function (t, n) {
return Math.sqrt(e.DistanceSquared(t, n));
}),
(e.DistanceSquared = function (e, t) {
var n = e.x - t.x,
i = e.y - t.y;
return n * n + i * i;
}),
(e.Center = function (e, t) {
var n = e.add(t);
return n.scaleInPlace(0.5), n;
}),
(e.DistanceOfPointFromSegment = function (t, n, i) {
var r = e.DistanceSquared(n, i);
if (0 === r) return e.Distance(t, n);
var o = i.subtract(n),
a = Math.max(0, Math.min(1, e.Dot(t.subtract(n), o) / r)),
s = n.add(o.multiplyByFloats(a, a));
return e.Distance(t, s);
}),
e
);
})(),
c = (function () {
function e(e, t, n) {
void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), (this.x = e), (this.y = t), (this.z = n);
}
return (
(e.prototype.toString = function () {
return "{X: " + this.x + " Y:" + this.y + " Z:" + this.z + "}";
}),
(e.prototype.getClassName = function () {
return "Vector3";
}),
(e.prototype.getHashCode = function () {
var e = 0 | this.x;
return (e = (397 * (e = (397 * e) ^ (0 | this.y))) ^ (0 | this.z));
}),
(e.prototype.asArray = function () {
var e = [];
return this.toArray(e, 0), e;
}),
(e.prototype.toArray = function (e, t) {
return void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), (e[t + 2] = this.z), this;
}),
(e.prototype.toQuaternion = function () {
return u.RotationYawPitchRoll(this.y, this.x, this.z);
}),
(e.prototype.addInPlace = function (e) {
return this.addInPlaceFromFloats(e.x, e.y, e.z);
}),
(e.prototype.addInPlaceFromFloats = function (e, t, n) {
return (this.x += e), (this.y += t), (this.z += n), this;
}),
(e.prototype.add = function (t) {
return new e(this.x + t.x, this.y + t.y, this.z + t.z);
}),
(e.prototype.addToRef = function (e, t) {
return t.copyFromFloats(this.x + e.x, this.y + e.y, this.z + e.z);
}),
(e.prototype.subtractInPlace = function (e) {
return (this.x -= e.x), (this.y -= e.y), (this.z -= e.z), this;
}),
(e.prototype.subtract = function (t) {
return new e(this.x - t.x, this.y - t.y, this.z - t.z);
}),
(e.prototype.subtractToRef = function (e, t) {
return this.subtractFromFloatsToRef(e.x, e.y, e.z, t);
}),
(e.prototype.subtractFromFloats = function (t, n, i) {
return new e(this.x - t, this.y - n, this.z - i);
}),
(e.prototype.subtractFromFloatsToRef = function (e, t, n, i) {
return i.copyFromFloats(this.x - e, this.y - t, this.z - n);
}),
(e.prototype.negate = function () {
return new e(-this.x, -this.y, -this.z);
}),
(e.prototype.negateInPlace = function () {
return (this.x *= -1), (this.y *= -1), (this.z *= -1), this;
}),
(e.prototype.negateToRef = function (e) {
return e.copyFromFloats(-1 * this.x, -1 * this.y, -1 * this.z);
}),
(e.prototype.scaleInPlace = function (e) {
return (this.x *= e), (this.y *= e), (this.z *= e), this;
}),
(e.prototype.scale = function (t) {
return new e(this.x * t, this.y * t, this.z * t);
}),
(e.prototype.scaleToRef = function (e, t) {
return t.copyFromFloats(this.x * e, this.y * e, this.z * e);
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
return t.addInPlaceFromFloats(this.x * e, this.y * e, this.z * e);
}),
(e.prototype.equals = function (e) {
return e && this.x === e.x && this.y === e.y && this.z === e.z;
}),
(e.prototype.equalsWithEpsilon = function (e, t) {
return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t) && i.a.WithinEpsilon(this.z, e.z, t);
}),
(e.prototype.equalsToFloats = function (e, t, n) {
return this.x === e && this.y === t && this.z === n;
}),
(e.prototype.multiplyInPlace = function (e) {
return (this.x *= e.x), (this.y *= e.y), (this.z *= e.z), this;
}),
(e.prototype.multiply = function (e) {
return this.multiplyByFloats(e.x, e.y, e.z);
}),
(e.prototype.multiplyToRef = function (e, t) {
return t.copyFromFloats(this.x * e.x, this.y * e.y, this.z * e.z);
}),
(e.prototype.multiplyByFloats = function (t, n, i) {
return new e(this.x * t, this.y * n, this.z * i);
}),
(e.prototype.divide = function (t) {
return new e(this.x / t.x, this.y / t.y, this.z / t.z);
}),
(e.prototype.divideToRef = function (e, t) {
return t.copyFromFloats(this.x / e.x, this.y / e.y, this.z / e.z);
}),
(e.prototype.divideInPlace = function (e) {
return this.divideToRef(e, this);
}),
(e.prototype.minimizeInPlace = function (e) {
return this.minimizeInPlaceFromFloats(e.x, e.y, e.z);
}),
(e.prototype.maximizeInPlace = function (e) {
return this.maximizeInPlaceFromFloats(e.x, e.y, e.z);
}),
(e.prototype.minimizeInPlaceFromFloats = function (e, t, n) {
return e < this.x && (this.x = e), t < this.y && (this.y = t), n < this.z && (this.z = n), this;
}),
(e.prototype.maximizeInPlaceFromFloats = function (e, t, n) {
return e > this.x && (this.x = e), t > this.y && (this.y = t), n > this.z && (this.z = n), this;
}),
(e.prototype.isNonUniformWithinEpsilon = function (e) {
var t = Math.abs(this.x),
n = Math.abs(this.y);
if (!i.a.WithinEpsilon(t, n, e)) return !0;
var r = Math.abs(this.z);
return !i.a.WithinEpsilon(t, r, e) || !i.a.WithinEpsilon(n, r, e);
}),
Object.defineProperty(e.prototype, "isNonUniform", {
get: function () {
var e = Math.abs(this.x),
t = Math.abs(this.y);
if (e !== t) return !0;
var n = Math.abs(this.z);
return e !== n || t !== n;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.floor = function () {
return new e(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z));
}),
(e.prototype.fract = function () {
return new e(this.x - Math.floor(this.x), this.y - Math.floor(this.y), this.z - Math.floor(this.z));
}),
(e.prototype.length = function () {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
}),
(e.prototype.lengthSquared = function () {
return this.x * this.x + this.y * this.y + this.z * this.z;
}),
(e.prototype.normalize = function () {
return this.normalizeFromLength(this.length());
}),
(e.prototype.reorderInPlace = function (e) {
var t = this;
return (
"xyz" === (e = e.toLowerCase()) ||
(d.Vector3[0].copyFrom(this),
["x", "y", "z"].forEach(function (n, i) {
t[n] = d.Vector3[0][e[i]];
})),
this
);
}),
(e.prototype.rotateByQuaternionToRef = function (t, n) {
return t.toRotationMatrix(d.Matrix[0]), e.TransformCoordinatesToRef(this, d.Matrix[0], n), n;
}),
(e.prototype.rotateByQuaternionAroundPointToRef = function (e, t, n) {
return this.subtractToRef(t, d.Vector3[0]), d.Vector3[0].rotateByQuaternionToRef(e, d.Vector3[0]), t.addToRef(d.Vector3[0], n), n;
}),
(e.prototype.cross = function (t) {
return e.Cross(this, t);
}),
(e.prototype.normalizeFromLength = function (e) {
return 0 === e || 1 === e ? this : this.scaleInPlace(1 / e);
}),
(e.prototype.normalizeToNew = function () {
var t = new e(0, 0, 0);
return this.normalizeToRef(t), t;
}),
(e.prototype.normalizeToRef = function (e) {
var t = this.length();
return 0 === t || 1 === t ? e.copyFromFloats(this.x, this.y, this.z) : this.scaleToRef(1 / t, e);
}),
(e.prototype.clone = function () {
return new e(this.x, this.y, this.z);
}),
(e.prototype.copyFrom = function (e) {
return this.copyFromFloats(e.x, e.y, e.z);
}),
(e.prototype.copyFromFloats = function (e, t, n) {
return (this.x = e), (this.y = t), (this.z = n), this;
}),
(e.prototype.set = function (e, t, n) {
return this.copyFromFloats(e, t, n);
}),
(e.prototype.setAll = function (e) {
return (this.x = this.y = this.z = e), this;
}),
(e.GetClipFactor = function (t, n, i, r) {
var o = e.Dot(t, i) - r;
return o / (o - (e.Dot(n, i) - r));
}),
(e.GetAngleBetweenVectors = function (t, n, i) {
var r = t.normalizeToRef(d.Vector3[1]),
o = n.normalizeToRef(d.Vector3[2]),
a = e.Dot(r, o),
s = d.Vector3[3];
return e.CrossToRef(r, o, s), e.Dot(s, i) > 0 ? Math.acos(a) : -Math.acos(a);
}),
(e.FromArray = function (t, n) {
return void 0 === n && (n = 0), new e(t[n], t[n + 1], t[n + 2]);
}),
(e.FromFloatArray = function (t, n) {
return e.FromArray(t, n);
}),
(e.FromArrayToRef = function (e, t, n) {
(n.x = e[t]), (n.y = e[t + 1]), (n.z = e[t + 2]);
}),
(e.FromFloatArrayToRef = function (t, n, i) {
return e.FromArrayToRef(t, n, i);
}),
(e.FromFloatsToRef = function (e, t, n, i) {
i.copyFromFloats(e, t, n);
}),
(e.Zero = function () {
return new e(0, 0, 0);
}),
(e.One = function () {
return new e(1, 1, 1);
}),
(e.Up = function () {
return new e(0, 1, 0);
}),
Object.defineProperty(e, "UpReadOnly", {
get: function () {
return e._UpReadOnly;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ZeroReadOnly", {
get: function () {
return e._ZeroReadOnly;
},
enumerable: !0,
configurable: !0,
}),
(e.Down = function () {
return new e(0, -1, 0);
}),
(e.Forward = function () {
return new e(0, 0, 1);
}),
(e.Backward = function () {
return new e(0, 0, -1);
}),
(e.Right = function () {
return new e(1, 0, 0);
}),
(e.Left = function () {
return new e(-1, 0, 0);
}),
(e.TransformCoordinates = function (t, n) {
var i = e.Zero();
return e.TransformCoordinatesToRef(t, n, i), i;
}),
(e.TransformCoordinatesToRef = function (t, n, i) {
e.TransformCoordinatesFromFloatsToRef(t.x, t.y, t.z, n, i);
}),
(e.TransformCoordinatesFromFloatsToRef = function (e, t, n, i, r) {
var o = i.m,
a = e * o[0] + t * o[4] + n * o[8] + o[12],
s = e * o[1] + t * o[5] + n * o[9] + o[13],
c = e * o[2] + t * o[6] + n * o[10] + o[14],
l = 1 / (e * o[3] + t * o[7] + n * o[11] + o[15]);
(r.x = a * l), (r.y = s * l), (r.z = c * l);
}),
(e.TransformNormal = function (t, n) {
var i = e.Zero();
return e.TransformNormalToRef(t, n, i), i;
}),
(e.TransformNormalToRef = function (e, t, n) {
this.TransformNormalFromFloatsToRef(e.x, e.y, e.z, t, n);
}),
(e.TransformNormalFromFloatsToRef = function (e, t, n, i, r) {
var o = i.m;
(r.x = e * o[0] + t * o[4] + n * o[8]), (r.y = e * o[1] + t * o[5] + n * o[9]), (r.z = e * o[2] + t * o[6] + n * o[10]);
}),
(e.CatmullRom = function (t, n, i, r, o) {
var a = o * o,
s = o * a;
return new e(
0.5 * (2 * n.x + (-t.x + i.x) * o + (2 * t.x - 5 * n.x + 4 * i.x - r.x) * a + (-t.x + 3 * n.x - 3 * i.x + r.x) * s),
0.5 * (2 * n.y + (-t.y + i.y) * o + (2 * t.y - 5 * n.y + 4 * i.y - r.y) * a + (-t.y + 3 * n.y - 3 * i.y + r.y) * s),
0.5 * (2 * n.z + (-t.z + i.z) * o + (2 * t.z - 5 * n.z + 4 * i.z - r.z) * a + (-t.z + 3 * n.z - 3 * i.z + r.z) * s)
);
}),
(e.Clamp = function (t, n, i) {
var r = new e();
return e.ClampToRef(t, n, i, r), r;
}),
(e.ClampToRef = function (e, t, n, i) {
var r = e.x;
r = (r = r > n.x ? n.x : r) < t.x ? t.x : r;
var o = e.y;
o = (o = o > n.y ? n.y : o) < t.y ? t.y : o;
var a = e.z;
(a = (a = a > n.z ? n.z : a) < t.z ? t.z : a), i.copyFromFloats(r, o, a);
}),
(e.CheckExtends = function (e, t, n) {
t.minimizeInPlace(e), n.maximizeInPlace(e);
}),
(e.Hermite = function (t, n, i, r, o) {
var a = o * o,
s = o * a,
c = 2 * s - 3 * a + 1,
l = -2 * s + 3 * a,
u = s - 2 * a + o,
h = s - a;
return new e(t.x * c + i.x * l + n.x * u + r.x * h, t.y * c + i.y * l + n.y * u + r.y * h, t.z * c + i.z * l + n.z * u + r.z * h);
}),
(e.Lerp = function (t, n, i) {
var r = new e(0, 0, 0);
return e.LerpToRef(t, n, i, r), r;
}),
(e.LerpToRef = function (e, t, n, i) {
(i.x = e.x + (t.x - e.x) * n), (i.y = e.y + (t.y - e.y) * n), (i.z = e.z + (t.z - e.z) * n);
}),
(e.Dot = function (e, t) {
return e.x * t.x + e.y * t.y + e.z * t.z;
}),
(e.Cross = function (t, n) {
var i = e.Zero();
return e.CrossToRef(t, n, i), i;
}),
(e.CrossToRef = function (e, t, n) {
var i = e.y * t.z - e.z * t.y,
r = e.z * t.x - e.x * t.z,
o = e.x * t.y - e.y * t.x;
n.copyFromFloats(i, r, o);
}),
(e.Normalize = function (t) {
var n = e.Zero();
return e.NormalizeToRef(t, n), n;
}),
(e.NormalizeToRef = function (e, t) {
e.normalizeToRef(t);
}),
(e.Project = function (t, n, i, r) {
var o = r.width,
a = r.height,
s = r.x,
c = r.y,
l = d.Matrix[1];
h.FromValuesToRef(o / 2, 0, 0, 0, 0, -a / 2, 0, 0, 0, 0, 0.5, 0, s + o / 2, a / 2 + c, 0.5, 1, l);
var u = d.Matrix[0];
return n.multiplyToRef(i, u), u.multiplyToRef(l, u), e.TransformCoordinates(t, u);
}),
(e._UnprojectFromInvertedMatrixToRef = function (t, n, r) {
e.TransformCoordinatesToRef(t, n, r);
var o = n.m,
a = t.x * o[3] + t.y * o[7] + t.z * o[11] + o[15];
i.a.WithinEpsilon(a, 1) && r.scaleInPlace(1 / a);
}),
(e.UnprojectFromTransform = function (t, n, i, r, o) {
var a = d.Matrix[0];
r.multiplyToRef(o, a), a.invert(), (t.x = (t.x / n) * 2 - 1), (t.y = -((t.y / i) * 2 - 1));
var s = new e();
return e._UnprojectFromInvertedMatrixToRef(t, a, s), s;
}),
(e.Unproject = function (t, n, i, r, o, a) {
var s = e.Zero();
return e.UnprojectToRef(t, n, i, r, o, a, s), s;
}),
(e.UnprojectToRef = function (t, n, i, r, o, a, s) {
e.UnprojectFloatsToRef(t.x, t.y, t.z, n, i, r, o, a, s);
}),
(e.UnprojectFloatsToRef = function (t, n, i, r, o, a, s, c, l) {
var u = d.Matrix[0];
a.multiplyToRef(s, u), u.multiplyToRef(c, u), u.invert();
var h = d.Vector3[0];
(h.x = (t / r) * 2 - 1), (h.y = -((n / o) * 2 - 1)), (h.z = 2 * i - 1), e._UnprojectFromInvertedMatrixToRef(h, u, l);
}),
(e.Minimize = function (e, t) {
var n = e.clone();
return n.minimizeInPlace(t), n;
}),
(e.Maximize = function (e, t) {
var n = e.clone();
return n.maximizeInPlace(t), n;
}),
(e.Distance = function (t, n) {
return Math.sqrt(e.DistanceSquared(t, n));
}),
(e.DistanceSquared = function (e, t) {
var n = e.x - t.x,
i = e.y - t.y,
r = e.z - t.z;
return n * n + i * i + r * r;
}),
(e.Center = function (e, t) {
var n = e.add(t);
return n.scaleInPlace(0.5), n;
}),
(e.RotationFromAxis = function (t, n, i) {
var r = e.Zero();
return e.RotationFromAxisToRef(t, n, i, r), r;
}),
(e.RotationFromAxisToRef = function (e, t, n, i) {
var r = d.Quaternion[0];
u.RotationQuaternionFromAxisToRef(e, t, n, r), r.toEulerAnglesToRef(i);
}),
(e._UpReadOnly = e.Up()),
(e._ZeroReadOnly = e.Zero()),
e
);
})(),
l = (function () {
function e(e, t, n, i) {
(this.x = e), (this.y = t), (this.z = n), (this.w = i);
}
return (
(e.prototype.toString = function () {
return "{X: " + this.x + " Y:" + this.y + " Z:" + this.z + " W:" + this.w + "}";
}),
(e.prototype.getClassName = function () {
return "Vector4";
}),
(e.prototype.getHashCode = function () {
var e = 0 | this.x;
return (e = (397 * (e = (397 * (e = (397 * e) ^ (0 | this.y))) ^ (0 | this.z))) ^ (0 | this.w));
}),
(e.prototype.asArray = function () {
var e = new Array();
return this.toArray(e, 0), e;
}),
(e.prototype.toArray = function (e, t) {
return void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), (e[t + 2] = this.z), (e[t + 3] = this.w), this;
}),
(e.prototype.addInPlace = function (e) {
return (this.x += e.x), (this.y += e.y), (this.z += e.z), (this.w += e.w), this;
}),
(e.prototype.add = function (t) {
return new e(this.x + t.x, this.y + t.y, this.z + t.z, this.w + t.w);
}),
(e.prototype.addToRef = function (e, t) {
return (t.x = this.x + e.x), (t.y = this.y + e.y), (t.z = this.z + e.z), (t.w = this.w + e.w), this;
}),
(e.prototype.subtractInPlace = function (e) {
return (this.x -= e.x), (this.y -= e.y), (this.z -= e.z), (this.w -= e.w), this;
}),
(e.prototype.subtract = function (t) {
return new e(this.x - t.x, this.y - t.y, this.z - t.z, this.w - t.w);
}),
(e.prototype.subtractToRef = function (e, t) {
return (t.x = this.x - e.x), (t.y = this.y - e.y), (t.z = this.z - e.z), (t.w = this.w - e.w), this;
}),
(e.prototype.subtractFromFloats = function (t, n, i, r) {
return new e(this.x - t, this.y - n, this.z - i, this.w - r);
}),
(e.prototype.subtractFromFloatsToRef = function (e, t, n, i, r) {
return (r.x = this.x - e), (r.y = this.y - t), (r.z = this.z - n), (r.w = this.w - i), this;
}),
(e.prototype.negate = function () {
return new e(-this.x, -this.y, -this.z, -this.w);
}),
(e.prototype.negateInPlace = function () {
return (this.x *= -1), (this.y *= -1), (this.z *= -1), (this.w *= -1), this;
}),
(e.prototype.negateToRef = function (e) {
return e.copyFromFloats(-1 * this.x, -1 * this.y, -1 * this.z, -1 * this.w);
}),
(e.prototype.scaleInPlace = function (e) {
return (this.x *= e), (this.y *= e), (this.z *= e), (this.w *= e), this;
}),
(e.prototype.scale = function (t) {
return new e(this.x * t, this.y * t, this.z * t, this.w * t);
}),
(e.prototype.scaleToRef = function (e, t) {
return (t.x = this.x * e), (t.y = this.y * e), (t.z = this.z * e), (t.w = this.w * e), this;
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
return (t.x += this.x * e), (t.y += this.y * e), (t.z += this.z * e), (t.w += this.w * e), this;
}),
(e.prototype.equals = function (e) {
return e && this.x === e.x && this.y === e.y && this.z === e.z && this.w === e.w;
}),
(e.prototype.equalsWithEpsilon = function (e, t) {
return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t) && i.a.WithinEpsilon(this.z, e.z, t) && i.a.WithinEpsilon(this.w, e.w, t);
}),
(e.prototype.equalsToFloats = function (e, t, n, i) {
return this.x === e && this.y === t && this.z === n && this.w === i;
}),
(e.prototype.multiplyInPlace = function (e) {
return (this.x *= e.x), (this.y *= e.y), (this.z *= e.z), (this.w *= e.w), this;
}),
(e.prototype.multiply = function (t) {
return new e(this.x * t.x, this.y * t.y, this.z * t.z, this.w * t.w);
}),
(e.prototype.multiplyToRef = function (e, t) {
return (t.x = this.x * e.x), (t.y = this.y * e.y), (t.z = this.z * e.z), (t.w = this.w * e.w), this;
}),
(e.prototype.multiplyByFloats = function (t, n, i, r) {
return new e(this.x * t, this.y * n, this.z * i, this.w * r);
}),
(e.prototype.divide = function (t) {
return new e(this.x / t.x, this.y / t.y, this.z / t.z, this.w / t.w);
}),
(e.prototype.divideToRef = function (e, t) {
return (t.x = this.x / e.x), (t.y = this.y / e.y), (t.z = this.z / e.z), (t.w = this.w / e.w), this;
}),
(e.prototype.divideInPlace = function (e) {
return this.divideToRef(e, this);
}),
(e.prototype.minimizeInPlace = function (e) {
return e.x < this.x && (this.x = e.x), e.y < this.y && (this.y = e.y), e.z < this.z && (this.z = e.z), e.w < this.w && (this.w = e.w), this;
}),
(e.prototype.maximizeInPlace = function (e) {
return e.x > this.x && (this.x = e.x), e.y > this.y && (this.y = e.y), e.z > this.z && (this.z = e.z), e.w > this.w && (this.w = e.w), this;
}),
(e.prototype.floor = function () {
return new e(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z), Math.floor(this.w));
}),
(e.prototype.fract = function () {
return new e(this.x - Math.floor(this.x), this.y - Math.floor(this.y), this.z - Math.floor(this.z), this.w - Math.floor(this.w));
}),
(e.prototype.length = function () {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);
}),
(e.prototype.lengthSquared = function () {
return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;
}),
(e.prototype.normalize = function () {
var e = this.length();
return 0 === e ? this : this.scaleInPlace(1 / e);
}),
(e.prototype.toVector3 = function () {
return new c(this.x, this.y, this.z);
}),
(e.prototype.clone = function () {
return new e(this.x, this.y, this.z, this.w);
}),
(e.prototype.copyFrom = function (e) {
return (this.x = e.x), (this.y = e.y), (this.z = e.z), (this.w = e.w), this;
}),
(e.prototype.copyFromFloats = function (e, t, n, i) {
return (this.x = e), (this.y = t), (this.z = n), (this.w = i), this;
}),
(e.prototype.set = function (e, t, n, i) {
return this.copyFromFloats(e, t, n, i);
}),
(e.prototype.setAll = function (e) {
return (this.x = this.y = this.z = this.w = e), this;
}),
(e.FromArray = function (t, n) {
return n || (n = 0), new e(t[n], t[n + 1], t[n + 2], t[n + 3]);
}),
(e.FromArrayToRef = function (e, t, n) {
(n.x = e[t]), (n.y = e[t + 1]), (n.z = e[t + 2]), (n.w = e[t + 3]);
}),
(e.FromFloatArrayToRef = function (t, n, i) {
e.FromArrayToRef(t, n, i);
}),
(e.FromFloatsToRef = function (e, t, n, i, r) {
(r.x = e), (r.y = t), (r.z = n), (r.w = i);
}),
(e.Zero = function () {
return new e(0, 0, 0, 0);
}),
(e.One = function () {
return new e(1, 1, 1, 1);
}),
(e.Normalize = function (t) {
var n = e.Zero();
return e.NormalizeToRef(t, n), n;
}),
(e.NormalizeToRef = function (e, t) {
t.copyFrom(e), t.normalize();
}),
(e.Minimize = function (e, t) {
var n = e.clone();
return n.minimizeInPlace(t), n;
}),
(e.Maximize = function (e, t) {
var n = e.clone();
return n.maximizeInPlace(t), n;
}),
(e.Distance = function (t, n) {
return Math.sqrt(e.DistanceSquared(t, n));
}),
(e.DistanceSquared = function (e, t) {
var n = e.x - t.x,
i = e.y - t.y,
r = e.z - t.z,
o = e.w - t.w;
return n * n + i * i + r * r + o * o;
}),
(e.Center = function (e, t) {
var n = e.add(t);
return n.scaleInPlace(0.5), n;
}),
(e.TransformNormal = function (t, n) {
var i = e.Zero();
return e.TransformNormalToRef(t, n, i), i;
}),
(e.TransformNormalToRef = function (e, t, n) {
var i = t.m,
r = e.x * i[0] + e.y * i[4] + e.z * i[8],
o = e.x * i[1] + e.y * i[5] + e.z * i[9],
a = e.x * i[2] + e.y * i[6] + e.z * i[10];
(n.x = r), (n.y = o), (n.z = a), (n.w = e.w);
}),
(e.TransformNormalFromFloatsToRef = function (e, t, n, i, r, o) {
var a = r.m;
(o.x = e * a[0] + t * a[4] + n * a[8]), (o.y = e * a[1] + t * a[5] + n * a[9]), (o.z = e * a[2] + t * a[6] + n * a[10]), (o.w = i);
}),
(e.FromVector3 = function (t, n) {
return void 0 === n && (n = 0), new e(t.x, t.y, t.z, n);
}),
e
);
})(),
u = (function () {
function e(e, t, n, i) {
void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 1), (this.x = e), (this.y = t), (this.z = n), (this.w = i);
}
return (
(e.prototype.toString = function () {
return "{X: " + this.x + " Y:" + this.y + " Z:" + this.z + " W:" + this.w + "}";
}),
(e.prototype.getClassName = function () {
return "Quaternion";
}),
(e.prototype.getHashCode = function () {
var e = 0 | this.x;
return (e = (397 * (e = (397 * (e = (397 * e) ^ (0 | this.y))) ^ (0 | this.z))) ^ (0 | this.w));
}),
(e.prototype.asArray = function () {
return [this.x, this.y, this.z, this.w];
}),
(e.prototype.equals = function (e) {
return e && this.x === e.x && this.y === e.y && this.z === e.z && this.w === e.w;
}),
(e.prototype.equalsWithEpsilon = function (e, t) {
return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t) && i.a.WithinEpsilon(this.z, e.z, t) && i.a.WithinEpsilon(this.w, e.w, t);
}),
(e.prototype.clone = function () {
return new e(this.x, this.y, this.z, this.w);
}),
(e.prototype.copyFrom = function (e) {
return (this.x = e.x), (this.y = e.y), (this.z = e.z), (this.w = e.w), this;
}),
(e.prototype.copyFromFloats = function (e, t, n, i) {
return (this.x = e), (this.y = t), (this.z = n), (this.w = i), this;
}),
(e.prototype.set = function (e, t, n, i) {
return this.copyFromFloats(e, t, n, i);
}),
(e.prototype.add = function (t) {
return new e(this.x + t.x, this.y + t.y, this.z + t.z, this.w + t.w);
}),
(e.prototype.addInPlace = function (e) {
return (this.x += e.x), (this.y += e.y), (this.z += e.z), (this.w += e.w), this;
}),
(e.prototype.subtract = function (t) {
return new e(this.x - t.x, this.y - t.y, this.z - t.z, this.w - t.w);
}),
(e.prototype.scale = function (t) {
return new e(this.x * t, this.y * t, this.z * t, this.w * t);
}),
(e.prototype.scaleToRef = function (e, t) {
return (t.x = this.x * e), (t.y = this.y * e), (t.z = this.z * e), (t.w = this.w * e), this;
}),
(e.prototype.scaleInPlace = function (e) {
return (this.x *= e), (this.y *= e), (this.z *= e), (this.w *= e), this;
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
return (t.x += this.x * e), (t.y += this.y * e), (t.z += this.z * e), (t.w += this.w * e), this;
}),
(e.prototype.multiply = function (t) {
var n = new e(0, 0, 0, 1);
return this.multiplyToRef(t, n), n;
}),
(e.prototype.multiplyToRef = function (e, t) {
var n = this.x * e.w + this.y * e.z - this.z * e.y + this.w * e.x,
i = -this.x * e.z + this.y * e.w + this.z * e.x + this.w * e.y,
r = this.x * e.y - this.y * e.x + this.z * e.w + this.w * e.z,
o = -this.x * e.x - this.y * e.y - this.z * e.z + this.w * e.w;
return t.copyFromFloats(n, i, r, o), this;
}),
(e.prototype.multiplyInPlace = function (e) {
return this.multiplyToRef(e, this), this;
}),
(e.prototype.conjugateToRef = function (e) {
return e.copyFromFloats(-this.x, -this.y, -this.z, this.w), this;
}),
(e.prototype.conjugateInPlace = function () {
return (this.x *= -1), (this.y *= -1), (this.z *= -1), this;
}),
(e.prototype.conjugate = function () {
return new e(-this.x, -this.y, -this.z, this.w);
}),
(e.prototype.length = function () {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);
}),
(e.prototype.normalize = function () {
var e = this.length();
if (0 === e) return this;
var t = 1 / e;
return (this.x *= t), (this.y *= t), (this.z *= t), (this.w *= t), this;
}),
(e.prototype.toEulerAngles = function (e) {
void 0 === e && (e = "YZX");
var t = c.Zero();
return this.toEulerAnglesToRef(t), t;
}),
(e.prototype.toEulerAnglesToRef = function (e) {
var t = this.z,
n = this.x,
i = this.y,
r = this.w,
o = r * r,
a = t * t,
s = n * n,
c = i * i,
l = i * t - n * r;
return (
l < -0.4999999
? ((e.y = 2 * Math.atan2(i, r)), (e.x = Math.PI / 2), (e.z = 0))
: l > 0.4999999
? ((e.y = 2 * Math.atan2(i, r)), (e.x = -Math.PI / 2), (e.z = 0))
: ((e.z = Math.atan2(2 * (n * i + t * r), -a - s + c + o)), (e.x = Math.asin(-2 * (t * i - n * r))), (e.y = Math.atan2(2 * (t * n + i * r), a - s - c + o))),
this
);
}),
(e.prototype.toRotationMatrix = function (e) {
return h.FromQuaternionToRef(this, e), this;
}),
(e.prototype.fromRotationMatrix = function (t) {
return e.FromRotationMatrixToRef(t, this), this;
}),
(e.FromRotationMatrix = function (t) {
var n = new e();
return e.FromRotationMatrixToRef(t, n), n;
}),
(e.FromRotationMatrixToRef = function (e, t) {
var n,
i = e.m,
r = i[0],
o = i[4],
a = i[8],
s = i[1],
c = i[5],
l = i[9],
u = i[2],
h = i[6],
d = i[10],
p = r + c + d;
p > 0
? ((n = 0.5 / Math.sqrt(p + 1)), (t.w = 0.25 / n), (t.x = (h - l) * n), (t.y = (a - u) * n), (t.z = (s - o) * n))
: r > c && r > d
? ((n = 2 * Math.sqrt(1 + r - c - d)), (t.w = (h - l) / n), (t.x = 0.25 * n), (t.y = (o + s) / n), (t.z = (a + u) / n))
: c > d
? ((n = 2 * Math.sqrt(1 + c - r - d)), (t.w = (a - u) / n), (t.x = (o + s) / n), (t.y = 0.25 * n), (t.z = (l + h) / n))
: ((n = 2 * Math.sqrt(1 + d - r - c)), (t.w = (s - o) / n), (t.x = (a + u) / n), (t.y = (l + h) / n), (t.z = 0.25 * n));
}),
(e.Dot = function (e, t) {
return e.x * t.x + e.y * t.y + e.z * t.z + e.w * t.w;
}),
(e.AreClose = function (t, n) {
return e.Dot(t, n) >= 0;
}),
(e.Zero = function () {
return new e(0, 0, 0, 0);
}),
(e.Inverse = function (t) {
return new e(-t.x, -t.y, -t.z, t.w);
}),
(e.InverseToRef = function (e, t) {
return t.set(-e.x, -e.y, -e.z, e.w), t;
}),
(e.Identity = function () {
return new e(0, 0, 0, 1);
}),
(e.IsIdentity = function (e) {
return e && 0 === e.x && 0 === e.y && 0 === e.z && 1 === e.w;
}),
(e.RotationAxis = function (t, n) {
return e.RotationAxisToRef(t, n, new e());
}),
(e.RotationAxisToRef = function (e, t, n) {
var i = Math.sin(t / 2);
return e.normalize(), (n.w = Math.cos(t / 2)), (n.x = e.x * i), (n.y = e.y * i), (n.z = e.z * i), n;
}),
(e.FromArray = function (t, n) {
return n || (n = 0), new e(t[n], t[n + 1], t[n + 2], t[n + 3]);
}),
(e.FromEulerAngles = function (t, n, i) {
var r = new e();
return e.RotationYawPitchRollToRef(n, t, i, r), r;
}),
(e.FromEulerAnglesToRef = function (t, n, i, r) {
return e.RotationYawPitchRollToRef(n, t, i, r), r;
}),
(e.FromEulerVector = function (t) {
var n = new e();
return e.RotationYawPitchRollToRef(t.y, t.x, t.z, n), n;
}),
(e.FromEulerVectorToRef = function (t, n) {
return e.RotationYawPitchRollToRef(t.y, t.x, t.z, n), n;
}),
(e.RotationYawPitchRoll = function (t, n, i) {
var r = new e();
return e.RotationYawPitchRollToRef(t, n, i, r), r;
}),
(e.RotationYawPitchRollToRef = function (e, t, n, i) {
var r = 0.5 * n,
o = 0.5 * t,
a = 0.5 * e,
s = Math.sin(r),
c = Math.cos(r),
l = Math.sin(o),
u = Math.cos(o),
h = Math.sin(a),
d = Math.cos(a);
(i.x = d * l * c + h * u * s), (i.y = h * u * c - d * l * s), (i.z = d * u * s - h * l * c), (i.w = d * u * c + h * l * s);
}),
(e.RotationAlphaBetaGamma = function (t, n, i) {
var r = new e();
return e.RotationAlphaBetaGammaToRef(t, n, i, r), r;
}),
(e.RotationAlphaBetaGammaToRef = function (e, t, n, i) {
var r = 0.5 * (n + e),
o = 0.5 * (n - e),
a = 0.5 * t;
(i.x = Math.cos(o) * Math.sin(a)), (i.y = Math.sin(o) * Math.sin(a)), (i.z = Math.sin(r) * Math.cos(a)), (i.w = Math.cos(r) * Math.cos(a));
}),
(e.RotationQuaternionFromAxis = function (t, n, i) {
var r = new e(0, 0, 0, 0);
return e.RotationQuaternionFromAxisToRef(t, n, i, r), r;
}),
(e.RotationQuaternionFromAxisToRef = function (t, n, i, r) {
var o = d.Matrix[0];
h.FromXYZAxesToRef(t.normalize(), n.normalize(), i.normalize(), o), e.FromRotationMatrixToRef(o, r);
}),
(e.Slerp = function (t, n, i) {
var r = e.Identity();
return e.SlerpToRef(t, n, i, r), r;
}),
(e.SlerpToRef = function (e, t, n, i) {
var r,
o,
a = e.x * t.x + e.y * t.y + e.z * t.z + e.w * t.w,
s = !1;
if ((a < 0 && ((s = !0), (a = -a)), a > 0.999999)) (o = 1 - n), (r = s ? -n : n);
else {
var c = Math.acos(a),
l = 1 / Math.sin(c);
(o = Math.sin((1 - n) * c) * l), (r = s ? -Math.sin(n * c) * l : Math.sin(n * c) * l);
}
(i.x = o * e.x + r * t.x), (i.y = o * e.y + r * t.y), (i.z = o * e.z + r * t.z), (i.w = o * e.w + r * t.w);
}),
(e.Hermite = function (t, n, i, r, o) {
var a = o * o,
s = o * a,
c = 2 * s - 3 * a + 1,
l = -2 * s + 3 * a,
u = s - 2 * a + o,
h = s - a;
return new e(t.x * c + i.x * l + n.x * u + r.x * h, t.y * c + i.y * l + n.y * u + r.y * h, t.z * c + i.z * l + n.z * u + r.z * h, t.w * c + i.w * l + n.w * u + r.w * h);
}),
e
);
})(),
h = (function () {
function e() {
(this._isIdentity = !1), (this._isIdentityDirty = !0), (this._isIdentity3x2 = !0), (this._isIdentity3x2Dirty = !0), (this.updateFlag = -1), (this._m = new Float32Array(16)), this._updateIdentityStatus(!1);
}
return (
Object.defineProperty(e.prototype, "m", {
get: function () {
return this._m;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._markAsUpdated = function () {
(this.updateFlag = e._updateFlagSeed++), (this._isIdentity = !1), (this._isIdentity3x2 = !1), (this._isIdentityDirty = !0), (this._isIdentity3x2Dirty = !0);
}),
(e.prototype._updateIdentityStatus = function (t, n, i, r) {
void 0 === n && (n = !1),
void 0 === i && (i = !1),
void 0 === r && (r = !0),
(this.updateFlag = e._updateFlagSeed++),
(this._isIdentity = t),
(this._isIdentity3x2 = t || i),
(this._isIdentityDirty = !this._isIdentity && n),
(this._isIdentity3x2Dirty = !this._isIdentity3x2 && r);
}),
(e.prototype.isIdentity = function () {
if (this._isIdentityDirty) {
this._isIdentityDirty = !1;
var e = this._m;
this._isIdentity =
1 === e[0] &&
0 === e[1] &&
0 === e[2] &&
0 === e[3] &&
0 === e[4] &&
1 === e[5] &&
0 === e[6] &&
0 === e[7] &&
0 === e[8] &&
0 === e[9] &&
1 === e[10] &&
0 === e[11] &&
0 === e[12] &&
0 === e[13] &&
0 === e[14] &&
1 === e[15];
}
return this._isIdentity;
}),
(e.prototype.isIdentityAs3x2 = function () {
return (
this._isIdentity3x2Dirty &&
((this._isIdentity3x2Dirty = !1),
1 !== this._m[0] ||
1 !== this._m[5] ||
1 !== this._m[15] ||
0 !== this._m[1] ||
0 !== this._m[2] ||
0 !== this._m[3] ||
0 !== this._m[4] ||
0 !== this._m[6] ||
0 !== this._m[7] ||
0 !== this._m[8] ||
0 !== this._m[9] ||
0 !== this._m[10] ||
0 !== this._m[11] ||
0 !== this._m[12] ||
0 !== this._m[13] ||
0 !== this._m[14]
? (this._isIdentity3x2 = !1)
: (this._isIdentity3x2 = !0)),
this._isIdentity3x2
);
}),
(e.prototype.determinant = function () {
if (!0 === this._isIdentity) return 1;
var e = this._m,
t = e[0],
n = e[1],
i = e[2],
r = e[3],
o = e[4],
a = e[5],
s = e[6],
c = e[7],
l = e[8],
u = e[9],
h = e[10],
d = e[11],
p = e[12],
f = e[13],
m = e[14],
g = e[15],
b = h * g - m * d,
_ = u * g - f * d,
v = u * m - f * h,
y = l * g - p * d,
C = l * m - h * p,
P = l * f - p * u;
return t * +(a * b - s * _ + c * v) + n * -(o * b - s * y + c * C) + i * +(o * _ - a * y + c * P) + r * -(o * v - a * C + s * P);
}),
(e.prototype.toArray = function () {
return this._m;
}),
(e.prototype.asArray = function () {
return this._m;
}),
(e.prototype.invert = function () {
return this.invertToRef(this), this;
}),
(e.prototype.reset = function () {
return e.FromValuesToRef(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, this), this._updateIdentityStatus(!1), this;
}),
(e.prototype.add = function (t) {
var n = new e();
return this.addToRef(t, n), n;
}),
(e.prototype.addToRef = function (e, t) {
for (var n = this._m, i = t._m, r = e.m, o = 0; o < 16; o++) i[o] = n[o] + r[o];
return t._markAsUpdated(), this;
}),
(e.prototype.addToSelf = function (e) {
for (var t = this._m, n = e.m, i = 0; i < 16; i++) t[i] += n[i];
return this._markAsUpdated(), this;
}),
(e.prototype.invertToRef = function (t) {
if (!0 === this._isIdentity) return e.IdentityToRef(t), this;
var n = this._m,
i = n[0],
r = n[1],
o = n[2],
a = n[3],
s = n[4],
c = n[5],
l = n[6],
u = n[7],
h = n[8],
d = n[9],
p = n[10],
f = n[11],
m = n[12],
g = n[13],
b = n[14],
_ = n[15],
v = p * _ - b * f,
y = d * _ - g * f,
C = d * b - g * p,
P = h * _ - m * f,
x = h * b - p * m,
T = h * g - m * d,
S = +(c * v - l * y + u * C),
O = -(s * v - l * P + u * x),
E = +(s * y - c * P + u * T),
M = -(s * C - c * x + l * T),
A = i * S + r * O + o * E + a * M;
if (0 === A) return t.copyFrom(this), this;
var I = 1 / A,
D = l * _ - b * u,
R = c * _ - g * u,
w = c * b - g * l,
L = s * _ - m * u,
F = s * b - m * l,
N = s * g - m * c,
k = l * f - p * u,
z = c * f - d * u,
j = c * p - d * l,
B = s * f - h * u,
V = s * p - h * l,
G = s * d - h * c,
U = -(r * v - o * y + a * C),
H = +(i * v - o * P + a * x),
W = -(i * y - r * P + a * T),
X = +(i * C - r * x + o * T),
Y = +(r * D - o * R + a * w),
K = -(i * D - o * L + a * F),
Z = +(i * R - r * L + a * N),
q = -(i * w - r * F + o * N),
Q = -(r * k - o * z + a * j),
J = +(i * k - o * B + a * V),
$ = -(i * z - r * B + a * G),
ee = +(i * j - r * V + o * G);
return e.FromValuesToRef(S * I, U * I, Y * I, Q * I, O * I, H * I, K * I, J * I, E * I, W * I, Z * I, $ * I, M * I, X * I, q * I, ee * I, t), this;
}),
(e.prototype.addAtIndex = function (e, t) {
return (this._m[e] += t), this._markAsUpdated(), this;
}),
(e.prototype.multiplyAtIndex = function (e, t) {
return (this._m[e] *= t), this._markAsUpdated(), this;
}),
(e.prototype.setTranslationFromFloats = function (e, t, n) {
return (this._m[12] = e), (this._m[13] = t), (this._m[14] = n), this._markAsUpdated(), this;
}),
(e.prototype.addTranslationFromFloats = function (e, t, n) {
return (this._m[12] += e), (this._m[13] += t), (this._m[14] += n), this._markAsUpdated(), this;
}),
(e.prototype.setTranslation = function (e) {
return this.setTranslationFromFloats(e.x, e.y, e.z);
}),
(e.prototype.getTranslation = function () {
return new c(this._m[12], this._m[13], this._m[14]);
}),
(e.prototype.getTranslationToRef = function (e) {
return (e.x = this._m[12]), (e.y = this._m[13]), (e.z = this._m[14]), this;
}),
(e.prototype.removeRotationAndScaling = function () {
var t = this.m;
return e.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t[12], t[13], t[14], t[15], this), this._updateIdentityStatus(0 === t[12] && 0 === t[13] && 0 === t[14] && 1 === t[15]), this;
}),
(e.prototype.multiply = function (t) {
var n = new e();
return this.multiplyToRef(t, n), n;
}),
(e.prototype.copyFrom = function (e) {
e.copyToArray(this._m);
var t = e;
return this._updateIdentityStatus(t._isIdentity, t._isIdentityDirty, t._isIdentity3x2, t._isIdentity3x2Dirty), this;
}),
(e.prototype.copyToArray = function (e, t) {
void 0 === t && (t = 0);
var n = this._m;
return (
(e[t] = n[0]),
(e[t + 1] = n[1]),
(e[t + 2] = n[2]),
(e[t + 3] = n[3]),
(e[t + 4] = n[4]),
(e[t + 5] = n[5]),
(e[t + 6] = n[6]),
(e[t + 7] = n[7]),
(e[t + 8] = n[8]),
(e[t + 9] = n[9]),
(e[t + 10] = n[10]),
(e[t + 11] = n[11]),
(e[t + 12] = n[12]),
(e[t + 13] = n[13]),
(e[t + 14] = n[14]),
(e[t + 15] = n[15]),
this
);
}),
(e.prototype.multiplyToRef = function (e, t) {
return this._isIdentity ? (t.copyFrom(e), this) : e._isIdentity ? (t.copyFrom(this), this) : (this.multiplyToArray(e, t._m, 0), t._markAsUpdated(), this);
}),
(e.prototype.multiplyToArray = function (e, t, n) {
var i = this._m,
r = e.m,
o = i[0],
a = i[1],
s = i[2],
c = i[3],
l = i[4],
u = i[5],
h = i[6],
d = i[7],
p = i[8],
f = i[9],
m = i[10],
g = i[11],
b = i[12],
_ = i[13],
v = i[14],
y = i[15],
C = r[0],
P = r[1],
x = r[2],
T = r[3],
S = r[4],
O = r[5],
E = r[6],
M = r[7],
A = r[8],
I = r[9],
D = r[10],
R = r[11],
w = r[12],
L = r[13],
F = r[14],
N = r[15];
return (
(t[n] = o * C + a * S + s * A + c * w),
(t[n + 1] = o * P + a * O + s * I + c * L),
(t[n + 2] = o * x + a * E + s * D + c * F),
(t[n + 3] = o * T + a * M + s * R + c * N),
(t[n + 4] = l * C + u * S + h * A + d * w),
(t[n + 5] = l * P + u * O + h * I + d * L),
(t[n + 6] = l * x + u * E + h * D + d * F),
(t[n + 7] = l * T + u * M + h * R + d * N),
(t[n + 8] = p * C + f * S + m * A + g * w),
(t[n + 9] = p * P + f * O + m * I + g * L),
(t[n + 10] = p * x + f * E + m * D + g * F),
(t[n + 11] = p * T + f * M + m * R + g * N),
(t[n + 12] = b * C + _ * S + v * A + y * w),
(t[n + 13] = b * P + _ * O + v * I + y * L),
(t[n + 14] = b * x + _ * E + v * D + y * F),
(t[n + 15] = b * T + _ * M + v * R + y * N),
this
);
}),
(e.prototype.equals = function (e) {
var t = e;
if (!t) return !1;
if ((this._isIdentity || t._isIdentity) && !this._isIdentityDirty && !t._isIdentityDirty) return this._isIdentity && t._isIdentity;
var n = this.m,
i = t.m;
return (
n[0] === i[0] &&
n[1] === i[1] &&
n[2] === i[2] &&
n[3] === i[3] &&
n[4] === i[4] &&
n[5] === i[5] &&
n[6] === i[6] &&
n[7] === i[7] &&
n[8] === i[8] &&
n[9] === i[9] &&
n[10] === i[10] &&
n[11] === i[11] &&
n[12] === i[12] &&
n[13] === i[13] &&
n[14] === i[14] &&
n[15] === i[15]
);
}),
(e.prototype.clone = function () {
var t = new e();
return t.copyFrom(this), t;
}),
(e.prototype.getClassName = function () {
return "Matrix";
}),
(e.prototype.getHashCode = function () {
for (var e = 0 | this._m[0], t = 1; t < 16; t++) e = (397 * e) ^ (0 | this._m[t]);
return e;
}),
(e.prototype.decompose = function (t, n, i) {
if (this._isIdentity) return i && i.setAll(0), t && t.setAll(1), n && n.copyFromFloats(0, 0, 0, 1), !0;
var r = this._m;
if (
(i && i.copyFromFloats(r[12], r[13], r[14]),
((t = t || d.Vector3[0]).x = Math.sqrt(r[0] * r[0] + r[1] * r[1] + r[2] * r[2])),
(t.y = Math.sqrt(r[4] * r[4] + r[5] * r[5] + r[6] * r[6])),
(t.z = Math.sqrt(r[8] * r[8] + r[9] * r[9] + r[10] * r[10])),
this.determinant() <= 0 && (t.y *= -1),
0 === t.x || 0 === t.y || 0 === t.z)
)
return n && n.copyFromFloats(0, 0, 0, 1), !1;
if (n) {
var o = 1 / t.x,
a = 1 / t.y,
s = 1 / t.z;
e.FromValuesToRef(r[0] * o, r[1] * o, r[2] * o, 0, r[4] * a, r[5] * a, r[6] * a, 0, r[8] * s, r[9] * s, r[10] * s, 0, 0, 0, 0, 1, d.Matrix[0]), u.FromRotationMatrixToRef(d.Matrix[0], n);
}
return !0;
}),
(e.prototype.getRow = function (e) {
if (e < 0 || e > 3) return null;
var t = 4 * e;
return new l(this._m[t + 0], this._m[t + 1], this._m[t + 2], this._m[t + 3]);
}),
(e.prototype.setRow = function (e, t) {
return this.setRowFromFloats(e, t.x, t.y, t.z, t.w);
}),
(e.prototype.transpose = function () {
return e.Transpose(this);
}),
(e.prototype.transposeToRef = function (t) {
return e.TransposeToRef(this, t), this;
}),
(e.prototype.setRowFromFloats = function (e, t, n, i, r) {
if (e < 0 || e > 3) return this;
var o = 4 * e;
return (this._m[o + 0] = t), (this._m[o + 1] = n), (this._m[o + 2] = i), (this._m[o + 3] = r), this._markAsUpdated(), this;
}),
(e.prototype.scale = function (t) {
var n = new e();
return this.scaleToRef(t, n), n;
}),
(e.prototype.scaleToRef = function (e, t) {
for (var n = 0; n < 16; n++) t._m[n] = this._m[n] * e;
return t._markAsUpdated(), this;
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
for (var n = 0; n < 16; n++) t._m[n] += this._m[n] * e;
return t._markAsUpdated(), this;
}),
(e.prototype.toNormalMatrix = function (t) {
var n = d.Matrix[0];
this.invertToRef(n), n.transposeToRef(t);
var i = t._m;
e.FromValuesToRef(i[0], i[1], i[2], 0, i[4], i[5], i[6], 0, i[8], i[9], i[10], 0, 0, 0, 0, 1, t);
}),
(e.prototype.getRotationMatrix = function () {
var t = new e();
return this.getRotationMatrixToRef(t), t;
}),
(e.prototype.getRotationMatrixToRef = function (t) {
var n = d.Vector3[0];
if (!this.decompose(n)) return e.IdentityToRef(t), this;
var i = this._m,
r = 1 / n.x,
o = 1 / n.y,
a = 1 / n.z;
return e.FromValuesToRef(i[0] * r, i[1] * r, i[2] * r, 0, i[4] * o, i[5] * o, i[6] * o, 0, i[8] * a, i[9] * a, i[10] * a, 0, 0, 0, 0, 1, t), this;
}),
(e.prototype.toggleModelMatrixHandInPlace = function () {
var e = this._m;
(e[2] *= -1), (e[6] *= -1), (e[8] *= -1), (e[9] *= -1), (e[14] *= -1), this._markAsUpdated();
}),
(e.prototype.toggleProjectionMatrixHandInPlace = function () {
var e = this._m;
(e[8] *= -1), (e[9] *= -1), (e[10] *= -1), (e[11] *= -1), this._markAsUpdated();
}),
(e.FromArray = function (t, n) {
void 0 === n && (n = 0);
var i = new e();
return e.FromArrayToRef(t, n, i), i;
}),
(e.FromArrayToRef = function (e, t, n) {
for (var i = 0; i < 16; i++) n._m[i] = e[i + t];
n._markAsUpdated();
}),
(e.FromFloat32ArrayToRefScaled = function (e, t, n, i) {
for (var r = 0; r < 16; r++) i._m[r] = e[r + t] * n;
i._markAsUpdated();
}),
Object.defineProperty(e, "IdentityReadOnly", {
get: function () {
return e._identityReadOnly;
},
enumerable: !0,
configurable: !0,
}),
(e.FromValuesToRef = function (e, t, n, i, r, o, a, s, c, l, u, h, d, p, f, m, g) {
var b = g._m;
(b[0] = e),
(b[1] = t),
(b[2] = n),
(b[3] = i),
(b[4] = r),
(b[5] = o),
(b[6] = a),
(b[7] = s),
(b[8] = c),
(b[9] = l),
(b[10] = u),
(b[11] = h),
(b[12] = d),
(b[13] = p),
(b[14] = f),
(b[15] = m),
g._markAsUpdated();
}),
(e.FromValues = function (t, n, i, r, o, a, s, c, l, u, h, d, p, f, m, g) {
var b = new e(),
_ = b._m;
return (
(_[0] = t),
(_[1] = n),
(_[2] = i),
(_[3] = r),
(_[4] = o),
(_[5] = a),
(_[6] = s),
(_[7] = c),
(_[8] = l),
(_[9] = u),
(_[10] = h),
(_[11] = d),
(_[12] = p),
(_[13] = f),
(_[14] = m),
(_[15] = g),
b._markAsUpdated(),
b
);
}),
(e.Compose = function (t, n, i) {
var r = new e();
return e.ComposeToRef(t, n, i, r), r;
}),
(e.ComposeToRef = function (e, t, n, i) {
var r = i._m,
o = t.x,
a = t.y,
s = t.z,
c = t.w,
l = o + o,
u = a + a,
h = s + s,
d = o * l,
p = o * u,
f = o * h,
m = a * u,
g = a * h,
b = s * h,
_ = c * l,
v = c * u,
y = c * h,
C = e.x,
P = e.y,
x = e.z;
(r[0] = (1 - (m + b)) * C),
(r[1] = (p + y) * C),
(r[2] = (f - v) * C),
(r[3] = 0),
(r[4] = (p - y) * P),
(r[5] = (1 - (d + b)) * P),
(r[6] = (g + _) * P),
(r[7] = 0),
(r[8] = (f + v) * x),
(r[9] = (g - _) * x),
(r[10] = (1 - (d + m)) * x),
(r[11] = 0),
(r[12] = n.x),
(r[13] = n.y),
(r[14] = n.z),
(r[15] = 1),
i._markAsUpdated();
}),
(e.Identity = function () {
var t = e.FromValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
return t._updateIdentityStatus(!0), t;
}),
(e.IdentityToRef = function (t) {
e.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, t), t._updateIdentityStatus(!0);
}),
(e.Zero = function () {
var t = e.FromValues(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
return t._updateIdentityStatus(!1), t;
}),
(e.RotationX = function (t) {
var n = new e();
return e.RotationXToRef(t, n), n;
}),
(e.Invert = function (t) {
var n = new e();
return t.invertToRef(n), n;
}),
(e.RotationXToRef = function (t, n) {
var i = Math.sin(t),
r = Math.cos(t);
e.FromValuesToRef(1, 0, 0, 0, 0, r, i, 0, 0, -i, r, 0, 0, 0, 0, 1, n), n._updateIdentityStatus(1 === r && 0 === i);
}),
(e.RotationY = function (t) {
var n = new e();
return e.RotationYToRef(t, n), n;
}),
(e.RotationYToRef = function (t, n) {
var i = Math.sin(t),
r = Math.cos(t);
e.FromValuesToRef(r, 0, -i, 0, 0, 1, 0, 0, i, 0, r, 0, 0, 0, 0, 1, n), n._updateIdentityStatus(1 === r && 0 === i);
}),
(e.RotationZ = function (t) {
var n = new e();
return e.RotationZToRef(t, n), n;
}),
(e.RotationZToRef = function (t, n) {
var i = Math.sin(t),
r = Math.cos(t);
e.FromValuesToRef(r, i, 0, 0, -i, r, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, n), n._updateIdentityStatus(1 === r && 0 === i);
}),
(e.RotationAxis = function (t, n) {
var i = new e();
return e.RotationAxisToRef(t, n, i), i;
}),
(e.RotationAxisToRef = function (e, t, n) {
var i = Math.sin(-t),
r = Math.cos(-t),
o = 1 - r;
e.normalize();
var a = n._m;
(a[0] = e.x * e.x * o + r),
(a[1] = e.x * e.y * o - e.z * i),
(a[2] = e.x * e.z * o + e.y * i),
(a[3] = 0),
(a[4] = e.y * e.x * o + e.z * i),
(a[5] = e.y * e.y * o + r),
(a[6] = e.y * e.z * o - e.x * i),
(a[7] = 0),
(a[8] = e.z * e.x * o - e.y * i),
(a[9] = e.z * e.y * o + e.x * i),
(a[10] = e.z * e.z * o + r),
(a[11] = 0),
(a[12] = 0),
(a[13] = 0),
(a[14] = 0),
(a[15] = 1),
n._markAsUpdated();
}),
(e.RotationAlignToRef = function (e, t, n) {
var i = c.Cross(t, e),
r = c.Dot(t, e),
o = 1 / (1 + r),
a = n._m;
(a[0] = i.x * i.x * o + r),
(a[1] = i.y * i.x * o - i.z),
(a[2] = i.z * i.x * o + i.y),
(a[3] = 0),
(a[4] = i.x * i.y * o + i.z),
(a[5] = i.y * i.y * o + r),
(a[6] = i.z * i.y * o - i.x),
(a[7] = 0),
(a[8] = i.x * i.z * o - i.y),
(a[9] = i.y * i.z * o + i.x),
(a[10] = i.z * i.z * o + r),
(a[11] = 0),
(a[12] = 0),
(a[13] = 0),
(a[14] = 0),
(a[15] = 1),
n._markAsUpdated();
}),
(e.RotationYawPitchRoll = function (t, n, i) {
var r = new e();
return e.RotationYawPitchRollToRef(t, n, i, r), r;
}),
(e.RotationYawPitchRollToRef = function (e, t, n, i) {
u.RotationYawPitchRollToRef(e, t, n, d.Quaternion[0]), d.Quaternion[0].toRotationMatrix(i);
}),
(e.Scaling = function (t, n, i) {
var r = new e();
return e.ScalingToRef(t, n, i, r), r;
}),
(e.ScalingToRef = function (t, n, i, r) {
e.FromValuesToRef(t, 0, 0, 0, 0, n, 0, 0, 0, 0, i, 0, 0, 0, 0, 1, r), r._updateIdentityStatus(1 === t && 1 === n && 1 === i);
}),
(e.Translation = function (t, n, i) {
var r = new e();
return e.TranslationToRef(t, n, i, r), r;
}),
(e.TranslationToRef = function (t, n, i, r) {
e.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, n, i, 1, r), r._updateIdentityStatus(0 === t && 0 === n && 0 === i);
}),
(e.Lerp = function (t, n, i) {
var r = new e();
return e.LerpToRef(t, n, i, r), r;
}),
(e.LerpToRef = function (e, t, n, i) {
for (var r = i._m, o = e.m, a = t.m, s = 0; s < 16; s++) r[s] = o[s] * (1 - n) + a[s] * n;
i._markAsUpdated();
}),
(e.DecomposeLerp = function (t, n, i) {
var r = new e();
return e.DecomposeLerpToRef(t, n, i, r), r;
}),
(e.DecomposeLerpToRef = function (t, n, i, r) {
var o = d.Vector3[0],
a = d.Quaternion[0],
s = d.Vector3[1];
t.decompose(o, a, s);
var l = d.Vector3[2],
h = d.Quaternion[1],
p = d.Vector3[3];
n.decompose(l, h, p);
var f = d.Vector3[4];
c.LerpToRef(o, l, i, f);
var m = d.Quaternion[2];
u.SlerpToRef(a, h, i, m);
var g = d.Vector3[5];
c.LerpToRef(s, p, i, g), e.ComposeToRef(f, m, g, r);
}),
(e.LookAtLH = function (t, n, i) {
var r = new e();
return e.LookAtLHToRef(t, n, i, r), r;
}),
(e.LookAtLHToRef = function (t, n, i, r) {
var o = d.Vector3[0],
a = d.Vector3[1],
s = d.Vector3[2];
n.subtractToRef(t, s), s.normalize(), c.CrossToRef(i, s, o);
var l = o.lengthSquared();
0 === l ? (o.x = 1) : o.normalizeFromLength(Math.sqrt(l)), c.CrossToRef(s, o, a), a.normalize();
var u = -c.Dot(o, t),
h = -c.Dot(a, t),
p = -c.Dot(s, t);
e.FromValuesToRef(o.x, a.x, s.x, 0, o.y, a.y, s.y, 0, o.z, a.z, s.z, 0, u, h, p, 1, r);
}),
(e.LookAtRH = function (t, n, i) {
var r = new e();
return e.LookAtRHToRef(t, n, i, r), r;
}),
(e.LookAtRHToRef = function (t, n, i, r) {
var o = d.Vector3[0],
a = d.Vector3[1],
s = d.Vector3[2];
t.subtractToRef(n, s), s.normalize(), c.CrossToRef(i, s, o);
var l = o.lengthSquared();
0 === l ? (o.x = 1) : o.normalizeFromLength(Math.sqrt(l)), c.CrossToRef(s, o, a), a.normalize();
var u = -c.Dot(o, t),
h = -c.Dot(a, t),
p = -c.Dot(s, t);
e.FromValuesToRef(o.x, a.x, s.x, 0, o.y, a.y, s.y, 0, o.z, a.z, s.z, 0, u, h, p, 1, r);
}),
(e.OrthoLH = function (t, n, i, r) {
var o = new e();
return e.OrthoLHToRef(t, n, i, r, o), o;
}),
(e.OrthoLHToRef = function (t, n, i, r, o) {
var a = 2 / t,
s = 2 / n,
c = 2 / (r - i),
l = -(r + i) / (r - i);
e.FromValuesToRef(a, 0, 0, 0, 0, s, 0, 0, 0, 0, c, 0, 0, 0, l, 1, o), o._updateIdentityStatus(1 === a && 1 === s && 1 === c && 0 === l);
}),
(e.OrthoOffCenterLH = function (t, n, i, r, o, a) {
var s = new e();
return e.OrthoOffCenterLHToRef(t, n, i, r, o, a, s), s;
}),
(e.OrthoOffCenterLHToRef = function (t, n, i, r, o, a, s) {
var c = 2 / (n - t),
l = 2 / (r - i),
u = 2 / (a - o),
h = -(a + o) / (a - o),
d = (t + n) / (t - n),
p = (r + i) / (i - r);
e.FromValuesToRef(c, 0, 0, 0, 0, l, 0, 0, 0, 0, u, 0, d, p, h, 1, s), s._markAsUpdated();
}),
(e.OrthoOffCenterRH = function (t, n, i, r, o, a) {
var s = new e();
return e.OrthoOffCenterRHToRef(t, n, i, r, o, a, s), s;
}),
(e.OrthoOffCenterRHToRef = function (t, n, i, r, o, a, s) {
e.OrthoOffCenterLHToRef(t, n, i, r, o, a, s), (s._m[10] *= -1);
}),
(e.PerspectiveLH = function (t, n, i, r) {
var o = new e(),
a = (2 * i) / t,
s = (2 * i) / n,
c = (r + i) / (r - i),
l = (-2 * r * i) / (r - i);
return e.FromValuesToRef(a, 0, 0, 0, 0, s, 0, 0, 0, 0, c, 1, 0, 0, l, 0, o), o._updateIdentityStatus(!1), o;
}),
(e.PerspectiveFovLH = function (t, n, i, r) {
var o = new e();
return e.PerspectiveFovLHToRef(t, n, i, r, o), o;
}),
(e.PerspectiveFovLHToRef = function (t, n, i, r, o, a) {
void 0 === a && (a = !0);
var s = i,
c = r,
l = 1 / Math.tan(0.5 * t),
u = a ? l / n : l,
h = a ? l : l * n,
d = (c + s) / (c - s),
p = (-2 * c * s) / (c - s);
e.FromValuesToRef(u, 0, 0, 0, 0, h, 0, 0, 0, 0, d, 1, 0, 0, p, 0, o), o._updateIdentityStatus(!1);
}),
(e.PerspectiveFovReverseLHToRef = function (t, n, i, r, o, a) {
void 0 === a && (a = !0);
var s = 1 / Math.tan(0.5 * t),
c = a ? s / n : s,
l = a ? s : s * n;
e.FromValuesToRef(c, 0, 0, 0, 0, l, 0, 0, 0, 0, -i, 1, 0, 0, 1, 0, o), o._updateIdentityStatus(!1);
}),
(e.PerspectiveFovRH = function (t, n, i, r) {
var o = new e();
return e.PerspectiveFovRHToRef(t, n, i, r, o), o;
}),
(e.PerspectiveFovRHToRef = function (t, n, i, r, o, a) {
void 0 === a && (a = !0);
var s = i,
c = r,
l = 1 / Math.tan(0.5 * t),
u = a ? l / n : l,
h = a ? l : l * n,
d = -(c + s) / (c - s),
p = (-2 * c * s) / (c - s);
e.FromValuesToRef(u, 0, 0, 0, 0, h, 0, 0, 0, 0, d, -1, 0, 0, p, 0, o), o._updateIdentityStatus(!1);
}),
(e.PerspectiveFovReverseRHToRef = function (t, n, i, r, o, a) {
void 0 === a && (a = !0);
var s = 1 / Math.tan(0.5 * t),
c = a ? s / n : s,
l = a ? s : s * n;
e.FromValuesToRef(c, 0, 0, 0, 0, l, 0, 0, 0, 0, -i, -1, 0, 0, -1, 0, o), o._updateIdentityStatus(!1);
}),
(e.PerspectiveFovWebVRToRef = function (e, t, n, i, r) {
void 0 === r && (r = !1);
var o = r ? -1 : 1,
a = Math.tan((e.upDegrees * Math.PI) / 180),
s = Math.tan((e.downDegrees * Math.PI) / 180),
c = Math.tan((e.leftDegrees * Math.PI) / 180),
l = Math.tan((e.rightDegrees * Math.PI) / 180),
u = 2 / (c + l),
h = 2 / (a + s),
d = i._m;
(d[0] = u),
(d[1] = d[2] = d[3] = d[4] = 0),
(d[5] = h),
(d[6] = d[7] = 0),
(d[8] = (c - l) * u * 0.5),
(d[9] = -(a - s) * h * 0.5),
(d[10] = -n / (t - n)),
(d[11] = 1 * o),
(d[12] = d[13] = d[15] = 0),
(d[14] = (-2 * n * t) / (n - t)),
i._markAsUpdated();
}),
(e.GetFinalMatrix = function (t, n, i, r, o, a) {
var s = t.width,
c = t.height,
l = t.x,
u = t.y,
h = e.FromValues(s / 2, 0, 0, 0, 0, -c / 2, 0, 0, 0, 0, a - o, 0, l + s / 2, c / 2 + u, o, 1),
p = d.Matrix[0];
return n.multiplyToRef(i, p), p.multiplyToRef(r, p), p.multiply(h);
}),
(e.GetAsMatrix2x2 = function (e) {
var t = e.m;
return new Float32Array([t[0], t[1], t[4], t[5]]);
}),
(e.GetAsMatrix3x3 = function (e) {
var t = e.m;
return new Float32Array([t[0], t[1], t[2], t[4], t[5], t[6], t[8], t[9], t[10]]);
}),
(e.Transpose = function (t) {
var n = new e();
return e.TransposeToRef(t, n), n;
}),
(e.TransposeToRef = function (e, t) {
var n = t._m,
i = e.m;
(n[0] = i[0]),
(n[1] = i[4]),
(n[2] = i[8]),
(n[3] = i[12]),
(n[4] = i[1]),
(n[5] = i[5]),
(n[6] = i[9]),
(n[7] = i[13]),
(n[8] = i[2]),
(n[9] = i[6]),
(n[10] = i[10]),
(n[11] = i[14]),
(n[12] = i[3]),
(n[13] = i[7]),
(n[14] = i[11]),
(n[15] = i[15]),
t._updateIdentityStatus(e._isIdentity, e._isIdentityDirty);
}),
(e.Reflection = function (t) {
var n = new e();
return e.ReflectionToRef(t, n), n;
}),
(e.ReflectionToRef = function (t, n) {
t.normalize();
var i = t.normal.x,
r = t.normal.y,
o = t.normal.z,
a = -2 * i,
s = -2 * r,
c = -2 * o;
e.FromValuesToRef(a * i + 1, s * i, c * i, 0, a * r, s * r + 1, c * r, 0, a * o, s * o, c * o + 1, 0, a * t.d, s * t.d, c * t.d, 1, n);
}),
(e.FromXYZAxesToRef = function (t, n, i, r) {
e.FromValuesToRef(t.x, t.y, t.z, 0, n.x, n.y, n.z, 0, i.x, i.y, i.z, 0, 0, 0, 0, 1, r);
}),
(e.FromQuaternionToRef = function (e, t) {
var n = e.x * e.x,
i = e.y * e.y,
r = e.z * e.z,
o = e.x * e.y,
a = e.z * e.w,
s = e.z * e.x,
c = e.y * e.w,
l = e.y * e.z,
u = e.x * e.w;
(t._m[0] = 1 - 2 * (i + r)),
(t._m[1] = 2 * (o + a)),
(t._m[2] = 2 * (s - c)),
(t._m[3] = 0),
(t._m[4] = 2 * (o - a)),
(t._m[5] = 1 - 2 * (r + n)),
(t._m[6] = 2 * (l + u)),
(t._m[7] = 0),
(t._m[8] = 2 * (s + c)),
(t._m[9] = 2 * (l - u)),
(t._m[10] = 1 - 2 * (i + n)),
(t._m[11] = 0),
(t._m[12] = 0),
(t._m[13] = 0),
(t._m[14] = 0),
(t._m[15] = 1),
t._markAsUpdated();
}),
(e._updateFlagSeed = 0),
(e._identityReadOnly = e.Identity()),
e
);
})(),
d = (function () {
function e() {}
return (e.Vector3 = o.a.BuildArray(6, c.Zero)), (e.Matrix = o.a.BuildArray(2, h.Identity)), (e.Quaternion = o.a.BuildArray(3, u.Zero)), e;
})(),
p = (function () {
function e() {}
return (e.Vector2 = o.a.BuildArray(3, s.Zero)), (e.Vector3 = o.a.BuildArray(13, c.Zero)), (e.Vector4 = o.a.BuildArray(3, l.Zero)), (e.Quaternion = o.a.BuildArray(2, u.Zero)), (e.Matrix = o.a.BuildArray(8, h.Identity)), e;
})();
(a.a.RegisteredTypes["BABYLON.Vector2"] = s), (a.a.RegisteredTypes["BABYLON.Vector3"] = c), (a.a.RegisteredTypes["BABYLON.Vector4"] = l), (a.a.RegisteredTypes["BABYLON.Matrix"] = h);
},
function (e, t, n) {
"use strict";
n.d(t, "d", function () {
return r;
}),
n.d(t, "a", function () {
return o;
}),
n.d(t, "c", function () {
return a;
}),
n.d(t, "b", function () {
return s;
}),
n.d(t, "e", function () {
return c;
}),
n.d(t, "f", function () {
return l;
});
var i = function (e, t) {
return (i =
Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array &&
function (e, t) {
e.__proto__ = t;
}) ||
function (e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
})(e, t);
};
function r(e, t) {
function n() {
this.constructor = e;
}
i(e, t), (e.prototype = null === t ? Object.create(t) : ((n.prototype = t.prototype), new n()));
}
var o = function () {
return (o =
Object.assign ||
function (e) {
for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
return e;
}).apply(this, arguments);
};
function a(e, t, n, i) {
var r,
o = arguments.length,
a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i);
else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a);
return o > 3 && a && Object.defineProperty(t, n, a), a;
}
function s(e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
}
function c(e, t) {
var n,
i,
r,
o,
a = {
label: 0,
sent: function () {
if (1 & r[0]) throw r[1];
return r[1];
},
trys: [],
ops: [],
};
return (
(o = { next: s(0), throw: s(1), return: s(2) }),
"function" == typeof Symbol &&
(o[Symbol.iterator] = function () {
return this;
}),
o
);
function s(o) {
return function (s) {
return (function (o) {
if (n) throw new TypeError("Generator is already executing.");
for (; a; )
try {
if (((n = 1), i && (r = 2 & o[0] ? i.return : o[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, o[1])).done)) return r;
switch (((i = 0), r && (o = [2 & o[0], r.value]), o[0])) {
case 0:
case 1:
r = o;
break;
case 4:
return a.label++, { value: o[1], done: !1 };
case 5:
a.label++, (i = o[1]), (o = [0]);
continue;
case 7:
(o = a.ops.pop()), a.trys.pop();
continue;
default:
if (!((r = a.trys), (r = r.length > 0 && r[r.length - 1]) || (6 !== o[0] && 2 !== o[0]))) {
a = 0;
continue;
}
if (3 === o[0] && (!r || (o[1] > r[0] && o[1] < r[3]))) {
a.label = o[1];
break;
}
if (6 === o[0] && a.label < r[1]) {
(a.label = r[1]), (r = o);
break;
}
if (r && a.label < r[2]) {
(a.label = r[2]), a.ops.push(o);
break;
}
r[2] && a.ops.pop(), a.trys.pop();
continue;
}
o = t.call(e, a);
} catch (e) {
(o = [6, e]), (i = 0);
} finally {
n = r = 0;
}
if (5 & o[0]) throw o[1];
return { value: o[0] ? o[1] : void 0, done: !0 };
})([o, s]);
};
}
}
function l() {
for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length;
var i = Array(e),
r = 0;
for (t = 0; t < n; t++) for (var o = arguments[t], a = 0, s = o.length; a < s; a++, r++) i[r] = o[a];
return i;
}
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return d;
}),
n.d(t, "c", function () {
return p;
}),
n.d(t, "m", function () {
return f;
}),
n.d(t, "e", function () {
return m;
}),
n.d(t, "h", function () {
return g;
}),
n.d(t, "n", function () {
return b;
}),
n.d(t, "o", function () {
return _;
}),
n.d(t, "k", function () {
return v;
}),
n.d(t, "g", function () {
return y;
}),
n.d(t, "f", function () {
return C;
}),
n.d(t, "i", function () {
return P;
}),
n.d(t, "l", function () {
return x;
}),
n.d(t, "j", function () {
return T;
}),
n.d(t, "d", function () {
return S;
}),
n.d(t, "a", function () {
return O;
});
var i = n(45),
r = n(1),
o = n(22),
a = n(5),
s = {},
c = {},
l = function (e, t, n) {
var r = e();
i.a && i.a.AddTagsTo(r, t.tags);
var o = u(r);
for (var a in o) {
var s = o[a],
c = t[a],
l = s.type;
if (null != c && "uniqueId" !== a)
switch (l) {
case 0:
case 6:
case 11:
r[a] = c;
break;
case 1:
r[a] = n || c.isRenderTarget ? c : c.clone();
break;
case 2:
case 3:
case 4:
case 5:
case 7:
case 10:
case 12:
r[a] = n ? c : c.clone();
}
}
return r;
};
function u(e) {
var t = e.getClassName();
if (c[t]) return c[t];
c[t] = {};
for (var n = c[t], i = e, r = t; r; ) {
var o = s[r];
for (var a in o) n[a] = o[a];
var l = void 0,
u = !1;
do {
if (!(l = Object.getPrototypeOf(i)).getClassName) {
u = !0;
break;
}
if (l.getClassName() !== r) break;
i = l;
} while (l);
if (u) break;
(r = l.getClassName()), (i = l);
}
return n;
}
function h(e, t) {
return function (n, i) {
var r = (function (e) {
var t = e.getClassName();
return s[t] || (s[t] = {}), s[t];
})(n);
r[i] || (r[i] = { type: e, sourceName: t });
};
}
function d(e, t) {
return (
void 0 === t && (t = null),
(function (e, t) {
return (
void 0 === t && (t = null),
function (n, i) {
var r = t || "_" + i;
Object.defineProperty(n, i, {
get: function () {
return this[r];
},
set: function (t) {
this[r] !== t && ((this[r] = t), n[e].apply(this));
},
enumerable: !0,
configurable: !0,
});
}
);
})(e, t)
);
}
function p(e) {
return h(0, e);
}
function f(e) {
return h(1, e);
}
function m(e) {
return h(2, e);
}
function g(e) {
return h(3, e);
}
function b(e) {
return h(4, e);
}
function _(e) {
return h(5, e);
}
function v(e) {
return h(6, e);
}
function y(e) {
return h(7, e);
}
function C(e) {
return h(8, e);
}
function P(e) {
return h(9, e);
}
function x(e) {
return h(10, e);
}
function T(e) {
return h(12, e);
}
function S(e) {
return h(11, e);
}
var O = (function () {
function e() {}
return (
(e.AppendSerializedAnimations = function (e, t) {
if (e.animations) {
t.animations = [];
for (var n = 0; n < e.animations.length; n++) {
var i = e.animations[n];
t.animations.push(i.serialize());
}
}
}),
(e.Serialize = function (e, t) {
t || (t = {}), i.a && (t.tags = i.a.GetTags(e));
var n = u(e);
for (var r in n) {
var o = n[r],
a = o.sourceName || r,
s = o.type,
c = e[r];
if (null != c)
switch (s) {
case 0:
t[a] = c;
break;
case 1:
t[a] = c.serialize();
break;
case 2:
t[a] = c.asArray();
break;
case 3:
t[a] = c.serialize();
break;
case 4:
case 5:
t[a] = c.asArray();
break;
case 6:
t[a] = c.id;
break;
case 7:
t[a] = c.serialize();
break;
case 8:
t[a] = c.asArray();
break;
case 9:
t[a] = c.serialize();
break;
case 10:
t[a] = c.asArray();
break;
case 11:
t[a] = c.id;
case 12:
t[a] = c.asArray();
}
}
return t;
}),
(e.Parse = function (t, n, o, s) {
void 0 === s && (s = null);
var c = t();
s || (s = ""), i.a && i.a.AddTagsTo(c, n.tags);
var l = u(c);
for (var h in l) {
var d = l[h],
p = n[d.sourceName || h],
f = d.type;
if (null != p) {
var m = c;
switch (f) {
case 0:
m[h] = p;
break;
case 1:
o && (m[h] = e._TextureParser(p, o, s));
break;
case 2:
m[h] = a.a.FromArray(p);
break;
case 3:
m[h] = e._FresnelParametersParser(p);
break;
case 4:
m[h] = r.d.FromArray(p);
break;
case 5:
m[h] = r.e.FromArray(p);
break;
case 6:
o && (m[h] = o.getLastMeshByID(p));
break;
case 7:
m[h] = e._ColorCurvesParser(p);
break;
case 8:
m[h] = a.b.FromArray(p);
break;
case 9:
m[h] = e._ImageProcessingConfigurationParser(p);
break;
case 10:
m[h] = r.b.FromArray(p);
break;
case 11:
o && (m[h] = o.getCameraByID(p));
case 12:
m[h] = r.a.FromArray(p);
}
}
}
return c;
}),
(e.Clone = function (e, t) {
return l(e, t, !1);
}),
(e.Instanciate = function (e, t) {
return l(e, t, !0);
}),
(e._ImageProcessingConfigurationParser = function (e) {
throw o.a.WarnImport("ImageProcessingConfiguration");
}),
(e._FresnelParametersParser = function (e) {
throw o.a.WarnImport("FresnelParameters");
}),
(e._ColorCurvesParser = function (e) {
throw o.a.WarnImport("ColorCurves");
}),
(e._TextureParser = function (e, t, n) {
throw o.a.WarnImport("Texture");
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
}),
n.d(t, "b", function () {
return r;
});
var i = (function () {
function e(e, t, n, i, r, o, a, s) {
void 0 === i && (i = 0),
void 0 === r && (r = !1),
void 0 === o && (o = !1),
void 0 === a && (a = !1),
e.getScene ? (this._engine = e.getScene().getEngine()) : (this._engine = e),
(this._updatable = n),
(this._instanced = o),
(this._divisor = s || 1),
(this._data = t),
(this.byteStride = a ? i : i * Float32Array.BYTES_PER_ELEMENT),
r || this.create();
}
return (
(e.prototype.createVertexBuffer = function (e, t, n, i, o, a, s) {
void 0 === a && (a = !1);
var c = a ? t : t * Float32Array.BYTES_PER_ELEMENT,
l = i ? (a ? i : i * Float32Array.BYTES_PER_ELEMENT) : this.byteStride;
return new r(this._engine, this, e, this._updatable, !0, l, void 0 === o ? this._instanced : o, c, n, void 0, void 0, !0, this._divisor || s);
}),
(e.prototype.isUpdatable = function () {
return this._updatable;
}),
(e.prototype.getData = function () {
return this._data;
}),
(e.prototype.getBuffer = function () {
return this._buffer;
}),
(e.prototype.getStrideSize = function () {
return this.byteStride / Float32Array.BYTES_PER_ELEMENT;
}),
(e.prototype.create = function (e) {
void 0 === e && (e = null),
(!e && this._buffer) ||
((e = e || this._data) &&
(this._buffer
? this._updatable && (this._engine.updateDynamicVertexBuffer(this._buffer, e), (this._data = e))
: this._updatable
? ((this._buffer = this._engine.createDynamicVertexBuffer(e)), (this._data = e))
: (this._buffer = this._engine.createVertexBuffer(e))));
}),
(e.prototype._rebuild = function () {
(this._buffer = null), this.create(this._data);
}),
(e.prototype.update = function (e) {
this.create(e);
}),
(e.prototype.updateDirectly = function (e, t, n, i) {
void 0 === i && (i = !1),
this._buffer && this._updatable && (this._engine.updateDynamicVertexBuffer(this._buffer, e, i ? t : t * Float32Array.BYTES_PER_ELEMENT, n ? n * this.byteStride : void 0), (this._data = null));
}),
(e.prototype.dispose = function () {
this._buffer && this._engine._releaseBuffer(this._buffer) && (this._buffer = null);
}),
e
);
})(),
r = (function () {
function e(t, n, r, o, a, s, c, l, u, h, d, p, f) {
if (
(void 0 === d && (d = !1),
void 0 === p && (p = !1),
void 0 === f && (f = 1),
n instanceof i ? ((this._buffer = n), (this._ownsBuffer = !1)) : ((this._buffer = new i(t, n, o, s, a, c, p)), (this._ownsBuffer = !0)),
(this._kind = r),
null == h)
) {
var m = this.getData();
(this.type = e.FLOAT),
m instanceof Int8Array
? (this.type = e.BYTE)
: m instanceof Uint8Array
? (this.type = e.UNSIGNED_BYTE)
: m instanceof Int16Array
? (this.type = e.SHORT)
: m instanceof Uint16Array
? (this.type = e.UNSIGNED_SHORT)
: m instanceof Int32Array
? (this.type = e.INT)
: m instanceof Uint32Array && (this.type = e.UNSIGNED_INT);
} else this.type = h;
var g = e.GetTypeByteLength(this.type);
p
? ((this._size = u || (s ? s / g : e.DeduceStride(r))), (this.byteStride = s || this._buffer.byteStride || this._size * g), (this.byteOffset = l || 0))
: ((this._size = u || s || e.DeduceStride(r)), (this.byteStride = s ? s * g : this._buffer.byteStride || this._size * g), (this.byteOffset = (l || 0) * g)),
(this.normalized = d),
(this._instanced = void 0 !== c && c),
(this._instanceDivisor = c ? f : 0);
}
return (
Object.defineProperty(e.prototype, "instanceDivisor", {
get: function () {
return this._instanceDivisor;
},
set: function (e) {
(this._instanceDivisor = e), (this._instanced = 0 != e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._rebuild = function () {
this._buffer && this._buffer._rebuild();
}),
(e.prototype.getKind = function () {
return this._kind;
}),
(e.prototype.isUpdatable = function () {
return this._buffer.isUpdatable();
}),
(e.prototype.getData = function () {
return this._buffer.getData();
}),
(e.prototype.getBuffer = function () {
return this._buffer.getBuffer();
}),
(e.prototype.getStrideSize = function () {
return this.byteStride / e.GetTypeByteLength(this.type);
}),
(e.prototype.getOffset = function () {
return this.byteOffset / e.GetTypeByteLength(this.type);
}),
(e.prototype.getSize = function () {
return this._size;
}),
(e.prototype.getIsInstanced = function () {
return this._instanced;
}),
(e.prototype.getInstanceDivisor = function () {
return this._instanceDivisor;
}),
(e.prototype.create = function (e) {
this._buffer.create(e);
}),
(e.prototype.update = function (e) {
this._buffer.update(e);
}),
(e.prototype.updateDirectly = function (e, t, n) {
void 0 === n && (n = !1), this._buffer.updateDirectly(e, t, void 0, n);
}),
(e.prototype.dispose = function () {
this._ownsBuffer && this._buffer.dispose();
}),
(e.prototype.forEach = function (t, n) {
e.ForEach(this._buffer.getData(), this.byteOffset, this.byteStride, this._size, this.type, t, this.normalized, n);
}),
(e.DeduceStride = function (t) {
switch (t) {
case e.UVKind:
case e.UV2Kind:
case e.UV3Kind:
case e.UV4Kind:
case e.UV5Kind:
case e.UV6Kind:
return 2;
case e.NormalKind:
case e.PositionKind:
return 3;
case e.ColorKind:
case e.MatricesIndicesKind:
case e.MatricesIndicesExtraKind:
case e.MatricesWeightsKind:
case e.MatricesWeightsExtraKind:
case e.TangentKind:
return 4;
default:
throw new Error("Invalid kind '" + t + "'");
}
}),
(e.GetTypeByteLength = function (t) {
switch (t) {
case e.BYTE:
case e.UNSIGNED_BYTE:
return 1;
case e.SHORT:
case e.UNSIGNED_SHORT:
return 2;
case e.INT:
case e.UNSIGNED_INT:
case e.FLOAT:
return 4;
default:
throw new Error("Invalid type '" + t + "'");
}
}),
(e.ForEach = function (t, n, i, r, o, a, s, c) {
if (t instanceof Array)
for (var l = n / 4, u = i / 4, h = 0; h < a; h += r) {
for (var d = 0; d < r; d++) c(t[l + d], h + d);
l += u;
}
else {
var p = t instanceof ArrayBuffer ? new DataView(t) : new DataView(t.buffer, t.byteOffset, t.byteLength),
f = e.GetTypeByteLength(o);
for (h = 0; h < a; h += r) {
var m = n;
for (d = 0; d < r; d++) {
c(e._GetFloatValue(p, o, m, s), h + d), (m += f);
}
n += i;
}
}
}),
(e._GetFloatValue = function (t, n, i, r) {
switch (n) {
case e.BYTE:
var o = t.getInt8(i);
return r && (o = Math.max(o / 127, -1)), o;
case e.UNSIGNED_BYTE:
o = t.getUint8(i);
return r && (o /= 255), o;
case e.SHORT:
o = t.getInt16(i, !0);
return r && (o = Math.max(o / 32767, -1)), o;
case e.UNSIGNED_SHORT:
o = t.getUint16(i, !0);
return r && (o /= 65535), o;
case e.INT:
return t.getInt32(i, !0);
case e.UNSIGNED_INT:
return t.getUint32(i, !0);
case e.FLOAT:
return t.getFloat32(i, !0);
default:
throw new Error("Invalid component type " + n);
}
}),
(e.BYTE = 5120),
(e.UNSIGNED_BYTE = 5121),
(e.SHORT = 5122),
(e.UNSIGNED_SHORT = 5123),
(e.INT = 5124),
(e.UNSIGNED_INT = 5125),
(e.FLOAT = 5126),
(e.PositionKind = "position"),
(e.NormalKind = "normal"),
(e.TangentKind = "tangent"),
(e.UVKind = "uv"),
(e.UV2Kind = "uv2"),
(e.UV3Kind = "uv3"),
(e.UV4Kind = "uv4"),
(e.UV5Kind = "uv5"),
(e.UV6Kind = "uv6"),
(e.ColorKind = "color"),
(e.MatricesIndicesKind = "matricesIndices"),
(e.MatricesWeightsKind = "matricesWeights"),
(e.MatricesIndicesExtraKind = "matricesIndicesExtra"),
(e.MatricesWeightsExtraKind = "matricesWeightsExtra"),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
}),
n.d(t, "b", function () {
return c;
}),
n.d(t, "c", function () {
return l;
});
var i = n(15),
r = n(34),
o = n(58),
a = n(13),
s = (function () {
function e(e, t, n) {
void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), (this.r = e), (this.g = t), (this.b = n);
}
return (
(e.prototype.toString = function () {
return "{R: " + this.r + " G:" + this.g + " B:" + this.b + "}";
}),
(e.prototype.getClassName = function () {
return "Color3";
}),
(e.prototype.getHashCode = function () {
var e = (255 * this.r) | 0;
return (e = (397 * (e = (397 * e) ^ ((255 * this.g) | 0))) ^ ((255 * this.b) | 0));
}),
(e.prototype.toArray = function (e, t) {
return void 0 === t && (t = 0), (e[t] = this.r), (e[t + 1] = this.g), (e[t + 2] = this.b), this;
}),
(e.prototype.toColor4 = function (e) {
return void 0 === e && (e = 1), new c(this.r, this.g, this.b, e);
}),
(e.prototype.asArray = function () {
var e = new Array();
return this.toArray(e, 0), e;
}),
(e.prototype.toLuminance = function () {
return 0.3 * this.r + 0.59 * this.g + 0.11 * this.b;
}),
(e.prototype.multiply = function (t) {
return new e(this.r * t.r, this.g * t.g, this.b * t.b);
}),
(e.prototype.multiplyToRef = function (e, t) {
return (t.r = this.r * e.r), (t.g = this.g * e.g), (t.b = this.b * e.b), this;
}),
(e.prototype.equals = function (e) {
return e && this.r === e.r && this.g === e.g && this.b === e.b;
}),
(e.prototype.equalsFloats = function (e, t, n) {
return this.r === e && this.g === t && this.b === n;
}),
(e.prototype.scale = function (t) {
return new e(this.r * t, this.g * t, this.b * t);
}),
(e.prototype.scaleToRef = function (e, t) {
return (t.r = this.r * e), (t.g = this.g * e), (t.b = this.b * e), this;
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
return (t.r += this.r * e), (t.g += this.g * e), (t.b += this.b * e), this;
}),
(e.prototype.clampToRef = function (e, t, n) {
return void 0 === e && (e = 0), void 0 === t && (t = 1), (n.r = i.a.Clamp(this.r, e, t)), (n.g = i.a.Clamp(this.g, e, t)), (n.b = i.a.Clamp(this.b, e, t)), this;
}),
(e.prototype.add = function (t) {
return new e(this.r + t.r, this.g + t.g, this.b + t.b);
}),
(e.prototype.addToRef = function (e, t) {
return (t.r = this.r + e.r), (t.g = this.g + e.g), (t.b = this.b + e.b), this;
}),
(e.prototype.subtract = function (t) {
return new e(this.r - t.r, this.g - t.g, this.b - t.b);
}),
(e.prototype.subtractToRef = function (e, t) {
return (t.r = this.r - e.r), (t.g = this.g - e.g), (t.b = this.b - e.b), this;
}),
(e.prototype.clone = function () {
return new e(this.r, this.g, this.b);
}),
(e.prototype.copyFrom = function (e) {
return (this.r = e.r), (this.g = e.g), (this.b = e.b), this;
}),
(e.prototype.copyFromFloats = function (e, t, n) {
return (this.r = e), (this.g = t), (this.b = n), this;
}),
(e.prototype.set = function (e, t, n) {
return this.copyFromFloats(e, t, n);
}),
(e.prototype.toHexString = function () {
var e = (255 * this.r) | 0,
t = (255 * this.g) | 0,
n = (255 * this.b) | 0;
return "#" + i.a.ToHex(e) + i.a.ToHex(t) + i.a.ToHex(n);
}),
(e.prototype.toLinearSpace = function () {
var t = new e();
return this.toLinearSpaceToRef(t), t;
}),
(e.prototype.toHSV = function () {
var t = new e();
return this.toHSVToRef(t), t;
}),
(e.prototype.toHSVToRef = function (e) {
var t = this.r,
n = this.g,
i = this.b,
r = Math.max(t, n, i),
o = Math.min(t, n, i),
a = 0,
s = 0,
c = r,
l = r - o;
0 !== r && (s = l / r), r != o && (r == t ? ((a = (n - i) / l), n < i && (a += 6)) : r == n ? (a = (i - t) / l + 2) : r == i && (a = (t - n) / l + 4), (a *= 60)), (e.r = a), (e.g = s), (e.b = c);
}),
(e.prototype.toLinearSpaceToRef = function (e) {
return (e.r = Math.pow(this.r, r.c)), (e.g = Math.pow(this.g, r.c)), (e.b = Math.pow(this.b, r.c)), this;
}),
(e.prototype.toGammaSpace = function () {
var t = new e();
return this.toGammaSpaceToRef(t), t;
}),
(e.prototype.toGammaSpaceToRef = function (e) {
return (e.r = Math.pow(this.r, r.b)), (e.g = Math.pow(this.g, r.b)), (e.b = Math.pow(this.b, r.b)), this;
}),
(e.HSVtoRGBToRef = function (e, t, n, i) {
var r = n * t,
o = e / 60,
a = r * (1 - Math.abs((o % 2) - 1)),
s = 0,
c = 0,
l = 0;
o >= 0 && o <= 1
? ((s = r), (c = a))
: o >= 1 && o <= 2
? ((s = a), (c = r))
: o >= 2 && o <= 3
? ((c = r), (l = a))
: o >= 3 && o <= 4
? ((c = a), (l = r))
: o >= 4 && o <= 5
? ((s = a), (l = r))
: o >= 5 && o <= 6 && ((s = r), (l = a));
var u = n - r;
i.set(s + u, c + u, l + u);
}),
(e.FromHexString = function (t) {
if ("#" !== t.substring(0, 1) || 7 !== t.length) return new e(0, 0, 0);
var n = parseInt(t.substring(1, 3), 16),
i = parseInt(t.substring(3, 5), 16),
r = parseInt(t.substring(5, 7), 16);
return e.FromInts(n, i, r);
}),
(e.FromArray = function (t, n) {
return void 0 === n && (n = 0), new e(t[n], t[n + 1], t[n + 2]);
}),
(e.FromInts = function (t, n, i) {
return new e(t / 255, n / 255, i / 255);
}),
(e.Lerp = function (t, n, i) {
var r = new e(0, 0, 0);
return e.LerpToRef(t, n, i, r), r;
}),
(e.LerpToRef = function (e, t, n, i) {
(i.r = e.r + (t.r - e.r) * n), (i.g = e.g + (t.g - e.g) * n), (i.b = e.b + (t.b - e.b) * n);
}),
(e.Red = function () {
return new e(1, 0, 0);
}),
(e.Green = function () {
return new e(0, 1, 0);
}),
(e.Blue = function () {
return new e(0, 0, 1);
}),
(e.Black = function () {
return new e(0, 0, 0);
}),
Object.defineProperty(e, "BlackReadOnly", {
get: function () {
return e._BlackReadOnly;
},
enumerable: !0,
configurable: !0,
}),
(e.White = function () {
return new e(1, 1, 1);
}),
(e.Purple = function () {
return new e(0.5, 0, 0.5);
}),
(e.Magenta = function () {
return new e(1, 0, 1);
}),
(e.Yellow = function () {
return new e(1, 1, 0);
}),
(e.Gray = function () {
return new e(0.5, 0.5, 0.5);
}),
(e.Teal = function () {
return new e(0, 1, 1);
}),
(e.Random = function () {
return new e(Math.random(), Math.random(), Math.random());
}),
(e._BlackReadOnly = e.Black()),
e
);
})(),
c = (function () {
function e(e, t, n, i) {
void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 1), (this.r = e), (this.g = t), (this.b = n), (this.a = i);
}
return (
(e.prototype.addInPlace = function (e) {
return (this.r += e.r), (this.g += e.g), (this.b += e.b), (this.a += e.a), this;
}),
(e.prototype.asArray = function () {
var e = new Array();
return this.toArray(e, 0), e;
}),
(e.prototype.toArray = function (e, t) {
return void 0 === t && (t = 0), (e[t] = this.r), (e[t + 1] = this.g), (e[t + 2] = this.b), (e[t + 3] = this.a), this;
}),
(e.prototype.equals = function (e) {
return e && this.r === e.r && this.g === e.g && this.b === e.b && this.a === e.a;
}),
(e.prototype.add = function (t) {
return new e(this.r + t.r, this.g + t.g, this.b + t.b, this.a + t.a);
}),
(e.prototype.subtract = function (t) {
return new e(this.r - t.r, this.g - t.g, this.b - t.b, this.a - t.a);
}),
(e.prototype.subtractToRef = function (e, t) {
return (t.r = this.r - e.r), (t.g = this.g - e.g), (t.b = this.b - e.b), (t.a = this.a - e.a), this;
}),
(e.prototype.scale = function (t) {
return new e(this.r * t, this.g * t, this.b * t, this.a * t);
}),
(e.prototype.scaleToRef = function (e, t) {
return (t.r = this.r * e), (t.g = this.g * e), (t.b = this.b * e), (t.a = this.a * e), this;
}),
(e.prototype.scaleAndAddToRef = function (e, t) {
return (t.r += this.r * e), (t.g += this.g * e), (t.b += this.b * e), (t.a += this.a * e), this;
}),
(e.prototype.clampToRef = function (e, t, n) {
return void 0 === e && (e = 0), void 0 === t && (t = 1), (n.r = i.a.Clamp(this.r, e, t)), (n.g = i.a.Clamp(this.g, e, t)), (n.b = i.a.Clamp(this.b, e, t)), (n.a = i.a.Clamp(this.a, e, t)), this;
}),
(e.prototype.multiply = function (t) {
return new e(this.r * t.r, this.g * t.g, this.b * t.b, this.a * t.a);
}),
(e.prototype.multiplyToRef = function (e, t) {
return (t.r = this.r * e.r), (t.g = this.g * e.g), (t.b = this.b * e.b), (t.a = this.a * e.a), t;
}),
(e.prototype.toString = function () {
return "{R: " + this.r + " G:" + this.g + " B:" + this.b + " A:" + this.a + "}";
}),
(e.prototype.getClassName = function () {
return "Color4";
}),
(e.prototype.getHashCode = function () {
var e = (255 * this.r) | 0;
return (e = (397 * (e = (397 * (e = (397 * e) ^ ((255 * this.g) | 0))) ^ ((255 * this.b) | 0))) ^ ((255 * this.a) | 0));
}),
(e.prototype.clone = function () {
return new e(this.r, this.g, this.b, this.a);
}),
(e.prototype.copyFrom = function (e) {
return (this.r = e.r), (this.g = e.g), (this.b = e.b), (this.a = e.a), this;
}),
(e.prototype.copyFromFloats = function (e, t, n, i) {
return (this.r = e), (this.g = t), (this.b = n), (this.a = i), this;
}),
(e.prototype.set = function (e, t, n, i) {
return this.copyFromFloats(e, t, n, i);
}),
(e.prototype.toHexString = function () {
var e = (255 * this.r) | 0,
t = (255 * this.g) | 0,
n = (255 * this.b) | 0,
r = (255 * this.a) | 0;
return "#" + i.a.ToHex(e) + i.a.ToHex(t) + i.a.ToHex(n) + i.a.ToHex(r);
}),
(e.prototype.toLinearSpace = function () {
var t = new e();
return this.toLinearSpaceToRef(t), t;
}),
(e.prototype.toLinearSpaceToRef = function (e) {
return (e.r = Math.pow(this.r, r.c)), (e.g = Math.pow(this.g, r.c)), (e.b = Math.pow(this.b, r.c)), (e.a = this.a), this;
}),
(e.prototype.toGammaSpace = function () {
var t = new e();
return this.toGammaSpaceToRef(t), t;
}),
(e.prototype.toGammaSpaceToRef = function (e) {
return (e.r = Math.pow(this.r, r.b)), (e.g = Math.pow(this.g, r.b)), (e.b = Math.pow(this.b, r.b)), (e.a = this.a), this;
}),
(e.FromHexString = function (t) {
if ("#" !== t.substring(0, 1) || 9 !== t.length) return new e(0, 0, 0, 0);
var n = parseInt(t.substring(1, 3), 16),
i = parseInt(t.substring(3, 5), 16),
r = parseInt(t.substring(5, 7), 16),
o = parseInt(t.substring(7, 9), 16);
return e.FromInts(n, i, r, o);
}),
(e.Lerp = function (t, n, i) {
var r = new e(0, 0, 0, 0);
return e.LerpToRef(t, n, i, r), r;
}),
(e.LerpToRef = function (e, t, n, i) {
(i.r = e.r + (t.r - e.r) * n), (i.g = e.g + (t.g - e.g) * n), (i.b = e.b + (t.b - e.b) * n), (i.a = e.a + (t.a - e.a) * n);
}),
(e.FromColor3 = function (t, n) {
return void 0 === n && (n = 1), new e(t.r, t.g, t.b, n);
}),
(e.FromArray = function (t, n) {
return void 0 === n && (n = 0), new e(t[n], t[n + 1], t[n + 2], t[n + 3]);
}),
(e.FromInts = function (t, n, i, r) {
return new e(t / 255, n / 255, i / 255, r / 255);
}),
(e.CheckColors4 = function (e, t) {
if (e.length === 3 * t) {
for (var n = [], i = 0; i < e.length; i += 3) {
var r = (i / 3) * 4;
(n[r] = e[i]), (n[r + 1] = e[i + 1]), (n[r + 2] = e[i + 2]), (n[r + 3] = 1);
}
return n;
}
return e;
}),
e
);
})(),
l = (function () {
function e() {}
return (
(e.Color3 = o.a.BuildArray(3, s.Black)),
(e.Color4 = o.a.BuildArray(3, function () {
return new c(0, 0, 0, 0);
})),
e
);
})();
(a.a.RegisteredTypes["BABYLON.Color3"] = s), (a.a.RegisteredTypes["BABYLON.Color4"] = c);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
}),
n.d(t, "d", function () {
return r;
}),
n.d(t, "b", function () {
return o;
}),
n.d(t, "c", function () {
return a;
});
var i = (function () {
function e(e, t, n, i) {
void 0 === t && (t = !1), this.initalize(e, t, n, i);
}
return (
(e.prototype.initalize = function (e, t, n, i) {
return void 0 === t && (t = !1), (this.mask = e), (this.skipNextObservers = t), (this.target = n), (this.currentTarget = i), this;
}),
e
);
})(),
r = function (e, t, n) {
void 0 === n && (n = null), (this.callback = e), (this.mask = t), (this.scope = n), (this._willBeUnregistered = !1), (this.unregisterOnNextCall = !1);
},
o = (function () {
function e() {}
return (
(e.prototype.dispose = function () {
if (this._observers && this._observables) for (var e = 0; e < this._observers.length; e++) this._observables[e].remove(this._observers[e]);
(this._observers = null), (this._observables = null);
}),
(e.Watch = function (t, n, i, r) {
void 0 === i && (i = -1), void 0 === r && (r = null);
var o = new e();
(o._observers = new Array()), (o._observables = t);
for (var a = 0, s = t; a < s.length; a++) {
var c = s[a].add(n, i, !1, r);
c && o._observers.push(c);
}
return o;
}),
e
);
})(),
a = (function () {
function e(e) {
(this._observers = new Array()), (this._eventState = new i(0)), e && (this._onObserverAdded = e);
}
return (
Object.defineProperty(e.prototype, "observers", {
get: function () {
return this._observers;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.add = function (e, t, n, i, o) {
if ((void 0 === t && (t = -1), void 0 === n && (n = !1), void 0 === i && (i = null), void 0 === o && (o = !1), !e)) return null;
var a = new r(e, t, i);
return (a.unregisterOnNextCall = o), n ? this._observers.unshift(a) : this._observers.push(a), this._onObserverAdded && this._onObserverAdded(a), a;
}),
(e.prototype.addOnce = function (e) {
return this.add(e, void 0, void 0, void 0, !0);
}),
(e.prototype.remove = function (e) {
return !!e && -1 !== this._observers.indexOf(e) && (this._deferUnregister(e), !0);
}),
(e.prototype.removeCallback = function (e, t) {
for (var n = 0; n < this._observers.length; n++) {
var i = this._observers[n];
if (!i._willBeUnregistered && i.callback === e && (!t || t === i.scope)) return this._deferUnregister(i), !0;
}
return !1;
}),
(e.prototype._deferUnregister = function (e) {
var t = this;
(e.unregisterOnNextCall = !1),
(e._willBeUnregistered = !0),
setTimeout(function () {
t._remove(e);
}, 0);
}),
(e.prototype._remove = function (e) {
if (!e) return !1;
var t = this._observers.indexOf(e);
return -1 !== t && (this._observers.splice(t, 1), !0);
}),
(e.prototype.makeObserverTopPriority = function (e) {
this._remove(e), this._observers.unshift(e);
}),
(e.prototype.makeObserverBottomPriority = function (e) {
this._remove(e), this._observers.push(e);
}),
(e.prototype.notifyObservers = function (e, t, n, i) {
if ((void 0 === t && (t = -1), !this._observers.length)) return !0;
var r = this._eventState;
(r.mask = t), (r.target = n), (r.currentTarget = i), (r.skipNextObservers = !1), (r.lastReturnValue = e);
for (var o = 0, a = this._observers; o < a.length; o++) {
var s = a[o];
if (
!s._willBeUnregistered &&
(s.mask & t && (s.scope ? (r.lastReturnValue = s.callback.apply(s.scope, [e, r])) : (r.lastReturnValue = s.callback(e, r)), s.unregisterOnNextCall && this._deferUnregister(s)), r.skipNextObservers)
)
return !1;
}
return !0;
}),
(e.prototype.notifyObserversWithPromise = function (e, t, n, i) {
var r = this;
void 0 === t && (t = -1);
var o = Promise.resolve(e);
if (!this._observers.length) return o;
var a = this._eventState;
return (
(a.mask = t),
(a.target = n),
(a.currentTarget = i),
(a.skipNextObservers = !1),
this._observers.forEach(function (n) {
a.skipNextObservers ||
n._willBeUnregistered ||
(n.mask & t &&
((o = n.scope
? o.then(function (t) {
return (a.lastReturnValue = t), n.callback.apply(n.scope, [e, a]);
})
: o.then(function (t) {
return (a.lastReturnValue = t), n.callback(e, a);
})),
n.unregisterOnNextCall && r._deferUnregister(n)));
}),
o.then(function () {
return e;
})
);
}),
(e.prototype.notifyObserver = function (e, t, n) {
void 0 === n && (n = -1);
var i = this._eventState;
(i.mask = n), (i.skipNextObservers = !1), e.callback(t, i);
}),
(e.prototype.hasObservers = function () {
return this._observers.length > 0;
}),
(e.prototype.clear = function () {
(this._observers = new Array()), (this._onObserverAdded = null);
}),
(e.prototype.clone = function () {
var t = new e();
return (t._observers = this._observers.slice(0)), t;
}),
(e.prototype.hasSpecificMask = function (e) {
void 0 === e && (e = -1);
for (var t = 0, n = this._observers; t < n.length; t++) {
var i = n[t];
if (i.mask & e || i.mask === e) return !0;
}
return !1;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(6),
r = n(56),
o = n(10),
a = n(170),
s = (function () {
function e(t, n, o, s, c, l, u, h, d, p) {
var f,
m,
g = this;
if (
(void 0 === s && (s = null),
void 0 === l && (l = null),
void 0 === u && (u = null),
void 0 === h && (h = null),
void 0 === d && (d = null),
(this.name = null),
(this.defines = ""),
(this.onCompiled = null),
(this.onError = null),
(this.onBind = null),
(this.uniqueId = 0),
(this.onCompileObservable = new i.c()),
(this.onErrorObservable = new i.c()),
(this._onBindObservable = null),
(this._wasPreviouslyReady = !1),
(this._bonesComputationForcedToCPU = !1),
(this._uniformBuffersNames = {}),
(this._samplers = {}),
(this._isReady = !1),
(this._compilationError = ""),
(this._allFallbacksProcessed = !1),
(this._uniforms = {}),
(this._key = ""),
(this._fallbacks = null),
(this._vertexSourceCode = ""),
(this._fragmentSourceCode = ""),
(this._vertexSourceCodeOverride = ""),
(this._fragmentSourceCodeOverride = ""),
(this._transformFeedbackVaryings = null),
(this._pipelineContext = null),
(this._valueCache = {}),
(this.name = t),
n.attributes)
) {
var b = n;
if (
((this._engine = o),
(this._attributesNames = b.attributes),
(this._uniformsNames = b.uniformsNames.concat(b.samplers)),
(this._samplerList = b.samplers.slice()),
(this.defines = b.defines),
(this.onError = b.onError),
(this.onCompiled = b.onCompiled),
(this._fallbacks = b.fallbacks),
(this._indexParameters = b.indexParameters),
(this._transformFeedbackVaryings = b.transformFeedbackVaryings || null),
b.uniformBuffersNames)
)
for (var _ = 0; _ < b.uniformBuffersNames.length; _++) this._uniformBuffersNames[b.uniformBuffersNames[_]] = _;
} else
(this._engine = c),
(this.defines = null == l ? "" : l),
(this._uniformsNames = o.concat(s)),
(this._samplerList = s ? s.slice() : []),
(this._attributesNames = n),
(this.onError = d),
(this.onCompiled = h),
(this._indexParameters = p),
(this._fallbacks = u);
(this._attributeLocationByName = {}), (this.uniqueId = e._uniqueIdSeed++);
var v = r.a.IsWindowObjectExist() ? this._engine.getHostDocument() : null;
t.vertexSource ? (f = "source:" + t.vertexSource) : t.vertexElement ? (f = v ? v.getElementById(t.vertexElement) : null) || (f = t.vertexElement) : (f = t.vertex || t),
t.fragmentSource ? (m = "source:" + t.fragmentSource) : t.fragmentElement ? (m = v ? v.getElementById(t.fragmentElement) : null) || (m = t.fragmentElement) : (m = t.fragment || t);
var y = {
defines: this.defines.split("\n"),
indexParameters: this._indexParameters,
isFragment: !1,
shouldUseHighPrecisionShader: this._engine._shouldUseHighPrecisionShader,
processor: this._engine._shaderProcessor,
supportsUniformBuffers: this._engine.supportsUniformBuffers,
shadersRepository: e.ShadersRepository,
includesShadersStore: e.IncludesShadersStore,
version: (100 * this._engine.webGLVersion).toString(),
platformName: this._engine.webGLVersion >= 2 ? "WEBGL2" : "WEBGL1",
};
this._loadShader(f, "Vertex", "", function (e) {
g._loadShader(m, "Fragment", "Pixel", function (n) {
a.a.Process(e, y, function (e) {
(y.isFragment = !0),
a.a.Process(n, y, function (n) {
g._useFinalCode(e, n, t);
});
});
});
});
}
return (
Object.defineProperty(e.prototype, "onBindObservable", {
get: function () {
return this._onBindObservable || (this._onBindObservable = new i.c()), this._onBindObservable;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._useFinalCode = function (e, t, n) {
if (n) {
var i = n.vertexElement || n.vertex || n.spectorName || n,
r = n.fragmentElement || n.fragment || n.spectorName || n;
(this._vertexSourceCode = "#define SHADER_NAME vertex:" + i + "\n" + e), (this._fragmentSourceCode = "#define SHADER_NAME fragment:" + r + "\n" + t);
} else (this._vertexSourceCode = e), (this._fragmentSourceCode = t);
this._prepareEffect();
}),
Object.defineProperty(e.prototype, "key", {
get: function () {
return this._key;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.isReady = function () {
try {
return this._isReadyInternal();
} catch (e) {
return !1;
}
}),
(e.prototype._isReadyInternal = function () {
return !!this._isReady || (!!this._pipelineContext && this._pipelineContext.isReady);
}),
(e.prototype.getEngine = function () {
return this._engine;
}),
(e.prototype.getPipelineContext = function () {
return this._pipelineContext;
}),
(e.prototype.getAttributesNames = function () {
return this._attributesNames;
}),
(e.prototype.getAttributeLocation = function (e) {
return this._attributes[e];
}),
(e.prototype.getAttributeLocationByName = function (e) {
return this._attributeLocationByName[e];
}),
(e.prototype.getAttributesCount = function () {
return this._attributes.length;
}),
(e.prototype.getUniformIndex = function (e) {
return this._uniformsNames.indexOf(e);
}),
(e.prototype.getUniform = function (e) {
return this._uniforms[e];
}),
(e.prototype.getSamplers = function () {
return this._samplerList;
}),
(e.prototype.getCompilationError = function () {
return this._compilationError;
}),
(e.prototype.allFallbacksProcessed = function () {
return this._allFallbacksProcessed;
}),
(e.prototype.executeWhenCompiled = function (e) {
var t = this;
this.isReady()
? e(this)
: (this.onCompileObservable.add(function (t) {
e(t);
}),
(this._pipelineContext && !this._pipelineContext.isAsync) ||
setTimeout(function () {
t._checkIsReady(null);
}, 16));
}),
(e.prototype._checkIsReady = function (e) {
var t = this;
try {
if (this._isReadyInternal()) return;
} catch (t) {
return void this._processCompilationErrors(t, e);
}
setTimeout(function () {
t._checkIsReady(e);
}, 16);
}),
(e.prototype._loadShader = function (t, n, i, o) {
var a;
if ("undefined" != typeof HTMLElement && t instanceof HTMLElement) return void o(r.a.GetDOMTextContent(t));
"source:" !== t.substr(0, 7)
? "base64:" !== t.substr(0, 7)
? e.ShadersStore[t + n + "Shader"]
? o(e.ShadersStore[t + n + "Shader"])
: i && e.ShadersStore[t + i + "Shader"]
? o(e.ShadersStore[t + i + "Shader"])
: ((a = "." === t[0] || "/" === t[0] || t.indexOf("http") > -1 ? t : e.ShadersRepository + t), this._engine._loadFile(a + "." + n.toLowerCase() + ".fx", o))
: o(window.atob(t.substr(7)))
: o(t.substr(7));
}),
(e.prototype._rebuildProgram = function (e, t, n, i) {
var r = this;
(this._isReady = !1),
(this._vertexSourceCodeOverride = e),
(this._fragmentSourceCodeOverride = t),
(this.onError = function (e, t) {
i && i(t);
}),
(this.onCompiled = function () {
var e = r.getEngine().scenes;
if (e) for (var t = 0; t < e.length; t++) e[t].markAllMaterialsAsDirty(31);
r._pipelineContext._handlesSpectorRebuildCallback(n);
}),
(this._fallbacks = null),
this._prepareEffect();
}),
(e.prototype._prepareEffect = function () {
var e = this,
t = this._attributesNames,
n = this.defines;
this._valueCache = {};
var i = this._pipelineContext;
try {
var r = this._engine;
this._pipelineContext = r.createPipelineContext();
var o = this._rebuildProgram.bind(this);
this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride
? r._preparePipelineContext(this._pipelineContext, this._vertexSourceCodeOverride, this._fragmentSourceCodeOverride, !0, o, null, this._transformFeedbackVaryings)
: r._preparePipelineContext(this._pipelineContext, this._vertexSourceCode, this._fragmentSourceCode, !1, o, n, this._transformFeedbackVaryings),
r._executeWhenRenderingStateIsCompiled(this._pipelineContext, function () {
if (r.supportsUniformBuffers) for (var n in e._uniformBuffersNames) e.bindUniformBlock(n, e._uniformBuffersNames[n]);
var o;
if (
(r.getUniforms(e._pipelineContext, e._uniformsNames).forEach(function (t, n) {
e._uniforms[e._uniformsNames[n]] = t;
}),
(e._attributes = r.getAttributes(e._pipelineContext, t)),
t)
)
for (var a = 0; a < t.length; a++) {
var s = t[a];
e._attributeLocationByName[s] = e._attributes[a];
}
for (o = 0; o < e._samplerList.length; o++) {
null == e.getUniform(e._samplerList[o]) && (e._samplerList.splice(o, 1), o--);
}
e._samplerList.forEach(function (t, n) {
e._samplers[t] = n;
}),
r.bindSamplers(e),
(e._compilationError = ""),
(e._isReady = !0),
e.onCompiled && e.onCompiled(e),
e.onCompileObservable.notifyObservers(e),
e.onCompileObservable.clear(),
e._fallbacks && e._fallbacks.unBindMesh(),
i && e.getEngine()._deletePipelineContext(i);
}),
this._pipelineContext.isAsync && this._checkIsReady(i);
} catch (e) {
this._processCompilationErrors(e, i);
}
}),
(e.prototype._processCompilationErrors = function (e, t) {
void 0 === t && (t = null), (this._compilationError = e.message);
var n = this._attributesNames,
i = this._fallbacks;
o.a.Error("Unable to compile effect:"),
o.a.Error(
"Uniforms: " +
this._uniformsNames.map(function (e) {
return " " + e;
})
),
o.a.Error(
"Attributes: " +
n.map(function (e) {
return " " + e;
})
),
o.a.Error("Defines:\r\n" + this.defines),
o.a.Error("Error: " + this._compilationError),
t && ((this._pipelineContext = t), (this._isReady = !0), this.onError && this.onError(this, this._compilationError), this.onErrorObservable.notifyObservers(this)),
i
? ((this._pipelineContext = null),
i.hasMoreFallbacks
? ((this._allFallbacksProcessed = !1), o.a.Error("Trying next fallback."), (this.defines = i.reduce(this.defines, this)), this._prepareEffect())
: ((this._allFallbacksProcessed = !0),
this.onError && this.onError(this, this._compilationError),
this.onErrorObservable.notifyObservers(this),
this.onErrorObservable.clear(),
this._fallbacks && this._fallbacks.unBindMesh()))
: (this._allFallbacksProcessed = !0);
}),
Object.defineProperty(e.prototype, "isSupported", {
get: function () {
return "" === this._compilationError;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._bindTexture = function (e, t) {
this._engine._bindTexture(this._samplers[e], t);
}),
(e.prototype.setTexture = function (e, t) {
this._engine.setTexture(this._samplers[e], this._uniforms[e], t);
}),
(e.prototype.setDepthStencilTexture = function (e, t) {
this._engine.setDepthStencilTexture(this._samplers[e], this._uniforms[e], t);
}),
(e.prototype.setTextureArray = function (e, t) {
var n = e + "Ex";
if (-1 === this._samplerList.indexOf(n + "0")) {
for (var i = this._samplerList.indexOf(e), r = 1; r < t.length; r++) {
var o = n + (r - 1).toString();
this._samplerList.splice(i + r, 0, o);
}
for (var a = 0, s = 0, c = this._samplerList; s < c.length; s++) {
var l = c[s];
(this._samplers[l] = a), (a += 1);
}
}
this._engine.setTextureArray(this._samplers[e], this._uniforms[e], t);
}),
(e.prototype.setTextureFromPostProcess = function (e, t) {
this._engine.setTextureFromPostProcess(this._samplers[e], t);
}),
(e.prototype.setTextureFromPostProcessOutput = function (e, t) {
this._engine.setTextureFromPostProcessOutput(this._samplers[e], t);
}),
(e.prototype._cacheMatrix = function (e, t) {
var n = this._valueCache[e],
i = t.updateFlag;
return (void 0 === n || n !== i) && ((this._valueCache[e] = i), !0);
}),
(e.prototype._cacheFloat2 = function (e, t, n) {
var i = this._valueCache[e];
if (!i || 2 !== i.length) return (i = [t, n]), (this._valueCache[e] = i), !0;
var r = !1;
return i[0] !== t && ((i[0] = t), (r = !0)), i[1] !== n && ((i[1] = n), (r = !0)), r;
}),
(e.prototype._cacheFloat3 = function (e, t, n, i) {
var r = this._valueCache[e];
if (!r || 3 !== r.length) return (r = [t, n, i]), (this._valueCache[e] = r), !0;
var o = !1;
return r[0] !== t && ((r[0] = t), (o = !0)), r[1] !== n && ((r[1] = n), (o = !0)), r[2] !== i && ((r[2] = i), (o = !0)), o;
}),
(e.prototype._cacheFloat4 = function (e, t, n, i, r) {
var o = this._valueCache[e];
if (!o || 4 !== o.length) return (o = [t, n, i, r]), (this._valueCache[e] = o), !0;
var a = !1;
return o[0] !== t && ((o[0] = t), (a = !0)), o[1] !== n && ((o[1] = n), (a = !0)), o[2] !== i && ((o[2] = i), (a = !0)), o[3] !== r && ((o[3] = r), (a = !0)), a;
}),
(e.prototype.bindUniformBuffer = function (t, n) {
var i = this._uniformBuffersNames[n];
void 0 !== i && e._baseCache[i] !== t && ((e._baseCache[i] = t), this._engine.bindUniformBufferBase(t, i));
}),
(e.prototype.bindUniformBlock = function (e, t) {
this._engine.bindUniformBlock(this._pipelineContext, e, t);
}),
(e.prototype.setInt = function (e, t) {
var n = this._valueCache[e];
return (void 0 !== n && n === t) || ((this._valueCache[e] = t), this._engine.setInt(this._uniforms[e], t)), this;
}),
(e.prototype.setIntArray = function (e, t) {
return (this._valueCache[e] = null), this._engine.setIntArray(this._uniforms[e], t), this;
}),
(e.prototype.setIntArray2 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setIntArray2(this._uniforms[e], t), this;
}),
(e.prototype.setIntArray3 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setIntArray3(this._uniforms[e], t), this;
}),
(e.prototype.setIntArray4 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setIntArray4(this._uniforms[e], t), this;
}),
(e.prototype.setFloatArray = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray(this._uniforms[e], t), this;
}),
(e.prototype.setFloatArray2 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray2(this._uniforms[e], t), this;
}),
(e.prototype.setFloatArray3 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray3(this._uniforms[e], t), this;
}),
(e.prototype.setFloatArray4 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray4(this._uniforms[e], t), this;
}),
(e.prototype.setArray = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray(this._uniforms[e], t), this;
}),
(e.prototype.setArray2 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray2(this._uniforms[e], t), this;
}),
(e.prototype.setArray3 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray3(this._uniforms[e], t), this;
}),
(e.prototype.setArray4 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setArray4(this._uniforms[e], t), this;
}),
(e.prototype.setMatrices = function (e, t) {
return t ? ((this._valueCache[e] = null), this._engine.setMatrices(this._uniforms[e], t), this) : this;
}),
(e.prototype.setMatrix = function (e, t) {
return this._cacheMatrix(e, t) && this._engine.setMatrices(this._uniforms[e], t.toArray()), this;
}),
(e.prototype.setMatrix3x3 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setMatrix3x3(this._uniforms[e], t), this;
}),
(e.prototype.setMatrix2x2 = function (e, t) {
return (this._valueCache[e] = null), this._engine.setMatrix2x2(this._uniforms[e], t), this;
}),
(e.prototype.setFloat = function (e, t) {
var n = this._valueCache[e];
return (void 0 !== n && n === t) || ((this._valueCache[e] = t), this._engine.setFloat(this._uniforms[e], t)), this;
}),
(e.prototype.setBool = function (e, t) {
var n = this._valueCache[e];
return (void 0 !== n && n === t) || ((this._valueCache[e] = t), this._engine.setInt(this._uniforms[e], t ? 1 : 0)), this;
}),
(e.prototype.setVector2 = function (e, t) {
return this._cacheFloat2(e, t.x, t.y) && this._engine.setFloat2(this._uniforms[e], t.x, t.y), this;
}),
(e.prototype.setFloat2 = function (e, t, n) {
return this._cacheFloat2(e, t, n) && this._engine.setFloat2(this._uniforms[e], t, n), this;
}),
(e.prototype.setVector3 = function (e, t) {
return this._cacheFloat3(e, t.x, t.y, t.z) && this._engine.setFloat3(this._uniforms[e], t.x, t.y, t.z), this;
}),
(e.prototype.setFloat3 = function (e, t, n, i) {
return this._cacheFloat3(e, t, n, i) && this._engine.setFloat3(this._uniforms[e], t, n, i), this;
}),
(e.prototype.setVector4 = function (e, t) {
return this._cacheFloat4(e, t.x, t.y, t.z, t.w) && this._engine.setFloat4(this._uniforms[e], t.x, t.y, t.z, t.w), this;
}),
(e.prototype.setFloat4 = function (e, t, n, i, r) {
return this._cacheFloat4(e, t, n, i, r) && this._engine.setFloat4(this._uniforms[e], t, n, i, r), this;
}),
(e.prototype.setColor3 = function (e, t) {
return this._cacheFloat3(e, t.r, t.g, t.b) && this._engine.setFloat3(this._uniforms[e], t.r, t.g, t.b), this;
}),
(e.prototype.setColor4 = function (e, t, n) {
return this._cacheFloat4(e, t.r, t.g, t.b, n) && this._engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, n), this;
}),
(e.prototype.setDirectColor4 = function (e, t) {
return this._cacheFloat4(e, t.r, t.g, t.b, t.a) && this._engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, t.a), this;
}),
(e.prototype.dispose = function () {
this._engine._releaseEffect(this);
}),
(e.RegisterShader = function (t, n, i) {
n && (e.ShadersStore[t + "PixelShader"] = n), i && (e.ShadersStore[t + "VertexShader"] = i);
}),
(e.ResetCache = function () {
e._baseCache = {};
}),
(e.ShadersRepository = "src/Shaders/"),
(e._uniqueIdSeed = 0),
(e._baseCache = {}),
(e.ShadersStore = {}),
(e.IncludesShadersStore = {}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return f;
});
var i = n(2),
r = n(3),
o = n(6),
a = n(1),
s = n(68),
c = n(13),
l = n(22),
u = n(169),
h = n(164),
d = n(85),
p = n(53),
f = (function (e) {
function t(n, i, r, a, s, c, l, h, d, p, f) {
void 0 === r && (r = !1), void 0 === a && (a = !0), void 0 === s && (s = t.TRILINEAR_SAMPLINGMODE), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === h && (h = null), void 0 === d && (d = !1);
var m = e.call(this, i && "Scene" === i.getClassName() ? i : null) || this;
(m.url = null),
(m.uOffset = 0),
(m.vOffset = 0),
(m.uScale = 1),
(m.vScale = 1),
(m.uAng = 0),
(m.vAng = 0),
(m.wAng = 0),
(m.uRotationCenter = 0.5),
(m.vRotationCenter = 0.5),
(m.wRotationCenter = 0.5),
(m.inspectableCustomProperties = null),
(m._noMipmap = !1),
(m._invertY = !1),
(m._rowGenerationMatrix = null),
(m._cachedTextureMatrix = null),
(m._projectionModeMatrix = null),
(m._t0 = null),
(m._t1 = null),
(m._t2 = null),
(m._cachedUOffset = -1),
(m._cachedVOffset = -1),
(m._cachedUScale = 0),
(m._cachedVScale = 0),
(m._cachedUAng = -1),
(m._cachedVAng = -1),
(m._cachedWAng = -1),
(m._cachedProjectionMatrixId = -1),
(m._cachedCoordinatesMode = -1),
(m._initialSamplingMode = t.BILINEAR_SAMPLINGMODE),
(m._buffer = null),
(m._deleteBuffer = !1),
(m._format = null),
(m._delayedOnLoad = null),
(m._delayedOnError = null),
(m.onLoadObservable = new o.c()),
(m._isBlocking = !0),
(m.name = n || ""),
(m.url = n),
(m._noMipmap = r),
(m._invertY = a),
(m._initialSamplingMode = s),
(m._buffer = h),
(m._deleteBuffer = d),
(m._mimeType = f),
p && (m._format = p);
var g = m.getScene(),
b = i && i.getCaps ? i : g ? g.getEngine() : null;
if (!b) return m;
b.onBeforeTextureInitObservable.notifyObservers(m);
var _ = function () {
m._texture &&
(m._texture._invertVScale && ((m.vScale *= -1), (m.vOffset += 1)),
null !== m._texture._cachedWrapU && ((m.wrapU = m._texture._cachedWrapU), (m._texture._cachedWrapU = null)),
null !== m._texture._cachedWrapV && ((m.wrapV = m._texture._cachedWrapV), (m._texture._cachedWrapV = null)),
null !== m._texture._cachedWrapR && ((m.wrapR = m._texture._cachedWrapR), (m._texture._cachedWrapR = null))),
m.onLoadObservable.hasObservers() && m.onLoadObservable.notifyObservers(m),
c && c(),
!m.isBlocking && g && g.resetCachedMaterial();
};
return m.url
? ((m._texture = m._getFromCache(m.url, r, s, a)),
m._texture
? m._texture.isReady
? u.a.SetImmediate(function () {
return _();
})
: m._texture.onLoadedObservable.add(_)
: g && g.useDelayedTextureLoading
? ((m.delayLoadState = 4), (m._delayedOnLoad = _), (m._delayedOnError = l))
: ((m._texture = b.createTexture(m.url, r, a, g, s, _, l, m._buffer, void 0, m._format, null, f)), d && delete m._buffer),
m)
: ((m._delayedOnLoad = _), (m._delayedOnError = l), m);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "noMipmap", {
get: function () {
return this._noMipmap;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isBlocking", {
get: function () {
return this._isBlocking;
},
set: function (e) {
this._isBlocking = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "samplingMode", {
get: function () {
return this._texture ? this._texture.samplingMode : this._initialSamplingMode;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "invertY", {
get: function () {
return this._invertY;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.updateURL = function (e, t, n) {
void 0 === t && (t = null),
this.url && (this.releaseInternalTexture(), this.getScene().markAllMaterialsAsDirty(1)),
(this.name && !p.a.StartsWith(this.name, "data:")) || (this.name = e),
(this.url = e),
(this._buffer = t),
(this.delayLoadState = 4),
n && (this._delayedOnLoad = n),
this.delayLoad();
}),
(t.prototype.delayLoad = function () {
if (4 === this.delayLoadState) {
var e = this.getScene();
e &&
((this.delayLoadState = 1),
(this._texture = this._getFromCache(this.url, this._noMipmap, this.samplingMode, this._invertY)),
this._texture
? this._delayedOnLoad && (this._texture.isReady ? u.a.SetImmediate(this._delayedOnLoad) : this._texture.onLoadedObservable.add(this._delayedOnLoad))
: ((this._texture = e
.getEngine()
.createTexture(this.url, this._noMipmap, this._invertY, e, this.samplingMode, this._delayedOnLoad, this._delayedOnError, this._buffer, null, this._format, null, this._mimeType)),
this._deleteBuffer && delete this._buffer),
(this._delayedOnLoad = null),
(this._delayedOnError = null));
}
}),
(t.prototype._prepareRowForTextureGeneration = function (e, t, n, i) {
(e *= this._cachedUScale),
(t *= this._cachedVScale),
(e -= this.uRotationCenter * this._cachedUScale),
(t -= this.vRotationCenter * this._cachedVScale),
(n -= this.wRotationCenter),
a.e.TransformCoordinatesFromFloatsToRef(e, t, n, this._rowGenerationMatrix, i),
(i.x += this.uRotationCenter * this._cachedUScale + this._cachedUOffset),
(i.y += this.vRotationCenter * this._cachedVScale + this._cachedVOffset),
(i.z += this.wRotationCenter);
}),
(t.prototype.getTextureMatrix = function (e) {
var t = this;
if (
(void 0 === e && (e = 1),
this.uOffset === this._cachedUOffset &&
this.vOffset === this._cachedVOffset &&
this.uScale * e === this._cachedUScale &&
this.vScale === this._cachedVScale &&
this.uAng === this._cachedUAng &&
this.vAng === this._cachedVAng &&
this.wAng === this._cachedWAng)
)
return this._cachedTextureMatrix;
(this._cachedUOffset = this.uOffset),
(this._cachedVOffset = this.vOffset),
(this._cachedUScale = this.uScale * e),
(this._cachedVScale = this.vScale),
(this._cachedUAng = this.uAng),
(this._cachedVAng = this.vAng),
(this._cachedWAng = this.wAng),
this._cachedTextureMatrix || ((this._cachedTextureMatrix = a.a.Zero()), (this._rowGenerationMatrix = new a.a()), (this._t0 = a.e.Zero()), (this._t1 = a.e.Zero()), (this._t2 = a.e.Zero())),
a.a.RotationYawPitchRollToRef(this.vAng, this.uAng, this.wAng, this._rowGenerationMatrix),
this._prepareRowForTextureGeneration(0, 0, 0, this._t0),
this._prepareRowForTextureGeneration(1, 0, 0, this._t1),
this._prepareRowForTextureGeneration(0, 1, 0, this._t2),
this._t1.subtractInPlace(this._t0),
this._t2.subtractInPlace(this._t0),
a.a.FromValuesToRef(this._t1.x, this._t1.y, this._t1.z, 0, this._t2.x, this._t2.y, this._t2.z, 0, this._t0.x, this._t0.y, this._t0.z, 0, 0, 0, 0, 1, this._cachedTextureMatrix);
var n = this.getScene();
return n
? (n.markAllMaterialsAsDirty(1, function (e) {
return e.hasTexture(t);
}),
this._cachedTextureMatrix)
: this._cachedTextureMatrix;
}),
(t.prototype.getReflectionTextureMatrix = function () {
var e = this,
n = this.getScene();
if (!n) return this._cachedTextureMatrix;
if (this.uOffset === this._cachedUOffset && this.vOffset === this._cachedVOffset && this.uScale === this._cachedUScale && this.vScale === this._cachedVScale && this.coordinatesMode === this._cachedCoordinatesMode) {
if (this.coordinatesMode !== t.PROJECTION_MODE) return this._cachedTextureMatrix;
if (this._cachedProjectionMatrixId === n.getProjectionMatrix().updateFlag) return this._cachedTextureMatrix;
}
switch (
(this._cachedTextureMatrix || (this._cachedTextureMatrix = a.a.Zero()),
this._projectionModeMatrix || (this._projectionModeMatrix = a.a.Zero()),
(this._cachedUOffset = this.uOffset),
(this._cachedVOffset = this.vOffset),
(this._cachedUScale = this.uScale),
(this._cachedVScale = this.vScale),
(this._cachedCoordinatesMode = this.coordinatesMode),
this.coordinatesMode)
) {
case t.PLANAR_MODE:
a.a.IdentityToRef(this._cachedTextureMatrix),
(this._cachedTextureMatrix[0] = this.uScale),
(this._cachedTextureMatrix[5] = this.vScale),
(this._cachedTextureMatrix[12] = this.uOffset),
(this._cachedTextureMatrix[13] = this.vOffset);
break;
case t.PROJECTION_MODE:
a.a.FromValuesToRef(0.5, 0, 0, 0, 0, -0.5, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 1, 1, this._projectionModeMatrix);
var i = n.getProjectionMatrix();
(this._cachedProjectionMatrixId = i.updateFlag), i.multiplyToRef(this._projectionModeMatrix, this._cachedTextureMatrix);
break;
default:
a.a.IdentityToRef(this._cachedTextureMatrix);
}
return (
n.markAllMaterialsAsDirty(1, function (t) {
return -1 !== t.getActiveTextures().indexOf(e);
}),
this._cachedTextureMatrix
);
}),
(t.prototype.clone = function () {
var e = this;
return r.a.Clone(function () {
return new t(e._texture ? e._texture.url : null, e.getScene(), e._noMipmap, e._invertY, e.samplingMode, void 0, void 0, e._texture ? e._texture._buffer : void 0);
}, this);
}),
(t.prototype.serialize = function () {
var n = this.name;
t.SerializeBuffers || (p.a.StartsWith(this.name, "data:") && (this.name = ""));
var i = e.prototype.serialize.call(this);
return i
? (t.SerializeBuffers &&
("string" == typeof this._buffer && "data:" === this._buffer.substr(0, 5)
? ((i.base64String = this._buffer), (i.name = i.name.replace("data:", "")))
: this.url && p.a.StartsWith(this.url, "data:") && this._buffer instanceof Uint8Array && (i.base64String = "data:image/png;base64," + p.a.EncodeArrayBufferToBase64(this._buffer))),
(i.invertY = this._invertY),
(i.samplingMode = this.samplingMode),
(this.name = n),
i)
: null;
}),
(t.prototype.getClassName = function () {
return "Texture";
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onLoadObservable.clear(), (this._delayedOnLoad = null), (this._delayedOnError = null);
}),
(t.Parse = function (e, n, i) {
if (e.customType) {
var o = h.a.Instantiate(e.customType).Parse(e, n, i);
return e.samplingMode && o.updateSamplingMode && o._samplingMode && o._samplingMode !== e.samplingMode && o.updateSamplingMode(e.samplingMode), o;
}
if (e.isCube && !e.isRenderTarget) return t._CubeTextureParser(e, n, i);
if (!e.name && !e.isRenderTarget) return null;
var a = r.a.Parse(
function () {
var r,
o = !0;
if ((e.noMipmap && (o = !1), e.mirrorPlane)) {
var a = t._CreateMirror(e.name, e.renderTargetSize, n, o);
return (a._waitingRenderList = e.renderList), (a.mirrorPlane = d.a.FromArray(e.mirrorPlane)), a;
}
if (e.isRenderTarget) {
var s = null;
if (e.isCube) {
if (n.reflectionProbes)
for (var c = 0; c < n.reflectionProbes.length; c++) {
var l = n.reflectionProbes[c];
if (l.name === e.name) return l.cubeTexture;
}
} else (s = t._CreateRenderTargetTexture(e.name, e.renderTargetSize, n, o))._waitingRenderList = e.renderList;
return s;
}
if (e.base64String) r = t.CreateFromBase64String(e.base64String, e.name, n, !o, e.invertY);
else {
var u = i + e.name;
t.UseSerializedUrlIfAny && e.url && (u = e.url), (r = new t(u, n, !o, e.invertY));
}
return r;
},
e,
n
);
if ((a && a._texture && ((a._texture._cachedWrapU = null), (a._texture._cachedWrapV = null), (a._texture._cachedWrapR = null)), e.samplingMode)) {
var s = e.samplingMode;
a && a.samplingMode !== s && a.updateSamplingMode(s);
}
if (a && e.animations)
for (var l = 0; l < e.animations.length; l++) {
var u = e.animations[l],
p = c.a.GetClass("BABYLON.Animation");
p && a.animations.push(p.Parse(u));
}
return a;
}),
(t.CreateFromBase64String = function (e, n, i, r, o, a, s, c, l) {
return void 0 === a && (a = t.TRILINEAR_SAMPLINGMODE), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === l && (l = 5), new t("data:" + n, i, r, o, a, s, c, e, !1, l);
}),
(t.LoadFromDataString = function (e, n, i, r, o, a, s, c, l, u) {
return (
void 0 === r && (r = !1),
void 0 === o && (o = !1),
void 0 === a && (a = !0),
void 0 === s && (s = t.TRILINEAR_SAMPLINGMODE),
void 0 === c && (c = null),
void 0 === l && (l = null),
void 0 === u && (u = 5),
"data:" !== e.substr(0, 5) && (e = "data:" + e),
new t(e, i, o, a, s, c, l, n, r, u)
);
}),
(t.SerializeBuffers = !0),
(t._CubeTextureParser = function (e, t, n) {
throw l.a.WarnImport("CubeTexture");
}),
(t._CreateMirror = function (e, t, n, i) {
throw l.a.WarnImport("MirrorTexture");
}),
(t._CreateRenderTargetTexture = function (e, t, n, i) {
throw l.a.WarnImport("RenderTargetTexture");
}),
(t.NEAREST_SAMPLINGMODE = 1),
(t.NEAREST_NEAREST_MIPLINEAR = 8),
(t.BILINEAR_SAMPLINGMODE = 2),
(t.LINEAR_LINEAR_MIPNEAREST = 11),
(t.TRILINEAR_SAMPLINGMODE = 3),
(t.LINEAR_LINEAR_MIPLINEAR = 3),
(t.NEAREST_NEAREST_MIPNEAREST = 4),
(t.NEAREST_LINEAR_MIPNEAREST = 5),
(t.NEAREST_LINEAR_MIPLINEAR = 6),
(t.NEAREST_LINEAR = 7),
(t.NEAREST_NEAREST = 1),
(t.LINEAR_NEAREST_MIPNEAREST = 9),
(t.LINEAR_NEAREST_MIPLINEAR = 10),
(t.LINEAR_LINEAR = 2),
(t.LINEAR_NEAREST = 12),
(t.EXPLICIT_MODE = 0),
(t.SPHERICAL_MODE = 1),
(t.PLANAR_MODE = 2),
(t.CUBIC_MODE = 3),
(t.PROJECTION_MODE = 4),
(t.SKYBOX_MODE = 5),
(t.INVCUBIC_MODE = 6),
(t.EQUIRECTANGULAR_MODE = 7),
(t.FIXED_EQUIRECTANGULAR_MODE = 8),
(t.FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9),
(t.CLAMP_ADDRESSMODE = 0),
(t.WRAP_ADDRESSMODE = 1),
(t.MIRROR_ADDRESSMODE = 2),
(t.UseSerializedUrlIfAny = !1),
Object(i.c)([Object(r.c)()], t.prototype, "url", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "uOffset", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "vOffset", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "uScale", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "vScale", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "uAng", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "vAng", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "wAng", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "uRotationCenter", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "vRotationCenter", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "wRotationCenter", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "isBlocking", null),
t
);
})(s.a);
r.a._TextureParser = f.Parse;
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return E;
}),
n.d(t, "c", function () {
return A;
}),
n.d(t, "a", function () {
return D;
});
var i = n(2),
r = n(6),
o = n(12),
a = n(51),
s = n(45),
c = n(1),
l = n(5),
u = n(35),
h = n(4),
d = n(16),
p = n(79),
f = n(31),
m = n(78),
g = n(63),
b = n(28),
_ = n(94),
v = n(103),
y = n(3),
C = n(10),
P = n(13),
x = n(22),
T = n(21),
S = n(191),
O = n(112),
E = function () {},
M = function () {
(this.visibleInstances = {}), (this.batchCache = new A()), (this.instancesBufferSize = 2048);
},
A = function () {
(this.mustReturn = !1), (this.visibleInstances = new Array()), (this.renderSelf = new Array()), (this.hardwareInstancedRendering = new Array());
},
I = function () {
(this._areNormalsFrozen = !1), (this._source = null), (this.meshMap = null), (this._preActivateId = -1), (this._LODLevels = new Array()), (this._morphTargetManager = null);
},
D = (function (e) {
function t(n, i, r, o, c, l) {
void 0 === i && (i = null), void 0 === r && (r = null), void 0 === o && (o = null), void 0 === l && (l = !0);
var u = e.call(this, n, i) || this;
if (
((u._internalMeshDataInfo = new I()),
(u.delayLoadState = 0),
(u.instances = new Array()),
(u._creationDataStorage = null),
(u._geometry = null),
(u._instanceDataStorage = new M()),
(u._effectiveMaterial = null),
(u._shouldGenerateFlatShading = !1),
(u._originalBuilderSideOrientation = t.DEFAULTSIDE),
(u.overrideMaterialSideOrientation = null),
(i = u.getScene()),
o)
) {
if (
(o._geometry && o._geometry.applyToMesh(u),
a.a.DeepCopy(
o,
u,
[
"name",
"material",
"skeleton",
"instances",
"parent",
"uniqueId",
"source",
"metadata",
"hasLODLevels",
"geometry",
"isBlocked",
"areNormalsFrozen",
"onBeforeDrawObservable",
"onBeforeRenderObservable",
"onAfterRenderObservable",
"onBeforeDraw",
"onAfterWorldMatrixUpdateObservable",
"onCollideObservable",
"onCollisionPositionChangeObservable",
"onRebuildObservable",
"onDisposeObservable",
"lightSources",
"morphTargetManager",
],
["_poseMatrix"]
),
(u._internalMeshDataInfo._source = o),
i.useClonedMeshMap && (o._internalMeshDataInfo.meshMap || (o._internalMeshDataInfo.meshMap = {}), (o._internalMeshDataInfo.meshMap[u.uniqueId] = u)),
(u._originalBuilderSideOrientation = o._originalBuilderSideOrientation),
(u._creationDataStorage = o._creationDataStorage),
o._ranges)
) {
var h = o._ranges;
for (var n in h) h.hasOwnProperty(n) && h[n] && u.createAnimationRange(n, h[n].from, h[n].to);
}
var d;
if (
(o.metadata && o.metadata.clone ? (u.metadata = o.metadata.clone()) : (u.metadata = o.metadata),
s.a && s.a.HasTags(o) && s.a.AddTagsTo(u, s.a.GetTags(o, !0)),
(u.parent = o.parent),
u.setPivotMatrix(o.getPivotMatrix()),
(u.id = n + "." + o.id),
(u.material = o.material),
!c)
)
for (var p = o.getDescendants(!0), f = 0; f < p.length; f++) {
var m = p[f];
m.clone && m.clone(n + "." + m.name, u);
}
if ((o.morphTargetManager && (u.morphTargetManager = o.morphTargetManager), i.getPhysicsEngine)) {
var g = i.getPhysicsEngine();
if (l && g) {
var b = g.getImpostorForPhysicsObject(o);
b && (u.physicsImpostor = b.clone(u));
}
}
for (d = 0; d < i.particleSystems.length; d++) {
var _ = i.particleSystems[d];
_.emitter === o && _.clone(_.name, u);
}
u.refreshBoundingInfo(), u.computeWorldMatrix(!0);
}
return null !== r && (u.parent = r), (u._instanceDataStorage.hardwareInstancedRendering = u.getEngine().getCaps().instancedArrays), u;
}
return (
Object(i.d)(t, e),
(t._GetDefaultSideOrientation = function (e) {
return e || t.FRONTSIDE;
}),
Object.defineProperty(t.prototype, "onBeforeRenderObservable", {
get: function () {
return this._internalMeshDataInfo._onBeforeRenderObservable || (this._internalMeshDataInfo._onBeforeRenderObservable = new r.c()), this._internalMeshDataInfo._onBeforeRenderObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onBeforeBindObservable", {
get: function () {
return this._internalMeshDataInfo._onBeforeBindObservable || (this._internalMeshDataInfo._onBeforeBindObservable = new r.c()), this._internalMeshDataInfo._onBeforeBindObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onAfterRenderObservable", {
get: function () {
return this._internalMeshDataInfo._onAfterRenderObservable || (this._internalMeshDataInfo._onAfterRenderObservable = new r.c()), this._internalMeshDataInfo._onAfterRenderObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onBeforeDrawObservable", {
get: function () {
return this._internalMeshDataInfo._onBeforeDrawObservable || (this._internalMeshDataInfo._onBeforeDrawObservable = new r.c()), this._internalMeshDataInfo._onBeforeDrawObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onBeforeDraw", {
set: function (e) {
this._onBeforeDrawObserver && this.onBeforeDrawObservable.remove(this._onBeforeDrawObserver), (this._onBeforeDrawObserver = this.onBeforeDrawObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hasInstances", {
get: function () {
return this.instances.length > 0;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "morphTargetManager", {
get: function () {
return this._internalMeshDataInfo._morphTargetManager;
},
set: function (e) {
this._internalMeshDataInfo._morphTargetManager !== e && ((this._internalMeshDataInfo._morphTargetManager = e), this._syncGeometryWithMorphTargetManager());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "source", {
get: function () {
return this._internalMeshDataInfo._source;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isUnIndexed", {
get: function () {
return this._unIndexed;
},
set: function (e) {
this._unIndexed !== e && ((this._unIndexed = e), this._markSubMeshesAsAttributesDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "worldMatrixInstancedBuffer", {
get: function () {
return this._instanceDataStorage.instancesData;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "manualUpdateOfWorldMatrixInstancedBuffer", {
get: function () {
return this._instanceDataStorage.manualUpdate;
},
set: function (e) {
this._instanceDataStorage.manualUpdate = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.instantiateHierarchy = function (e, t, n) {
void 0 === e && (e = null);
var i = !(this.getTotalVertices() > 0) || (t && t.doNotInstantiate) ? this.clone("Clone of " + (this.name || this.id), e || this.parent, !0) : this.createInstance("instance of " + (this.name || this.id));
i &&
((i.parent = e || this.parent),
(i.position = this.position.clone()),
(i.scaling = this.scaling.clone()),
this.rotationQuaternion ? (i.rotationQuaternion = this.rotationQuaternion.clone()) : (i.rotation = this.rotation.clone()),
n && n(this, i));
for (var r = 0, o = this.getChildTransformNodes(!0); r < o.length; r++) {
o[r].instantiateHierarchy(i, t, n);
}
return i;
}),
(t.prototype.getClassName = function () {
return "Mesh";
}),
Object.defineProperty(t.prototype, "_isMesh", {
get: function () {
return !0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.toString = function (t) {
var n = e.prototype.toString.call(this, t);
if (((n += ", n vertices: " + this.getTotalVertices()), (n += ", parent: " + (this._waitingParentId ? this._waitingParentId : this.parent ? this.parent.name : "NONE")), this.animations))
for (var i = 0; i < this.animations.length; i++) n += ", animation[0]: " + this.animations[i].toString(t);
if (t)
if (this._geometry) {
var r = this.getIndices(),
o = this.getVerticesData(h.b.PositionKind);
o && r && (n += ", flat shading: " + (o.length / 3 === r.length ? "YES" : "NO"));
} else n += ", flat shading: UNKNOWN";
return n;
}),
(t.prototype._unBindEffect = function () {
e.prototype._unBindEffect.call(this);
for (var t = 0, n = this.instances; t < n.length; t++) {
n[t]._unBindEffect();
}
}),
Object.defineProperty(t.prototype, "hasLODLevels", {
get: function () {
return this._internalMeshDataInfo._LODLevels.length > 0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getLODLevels = function () {
return this._internalMeshDataInfo._LODLevels;
}),
(t.prototype._sortLODLevels = function () {
this._internalMeshDataInfo._LODLevels.sort(function (e, t) {
return e.distance < t.distance ? 1 : e.distance > t.distance ? -1 : 0;
});
}),
(t.prototype.addLODLevel = function (e, t) {
if (t && t._masterMesh) return C.a.Warn("You cannot use a mesh as LOD level twice"), this;
var n = new S.a(e, t);
return this._internalMeshDataInfo._LODLevels.push(n), t && (t._masterMesh = this), this._sortLODLevels(), this;
}),
(t.prototype.getLODLevelAtDistance = function (e) {
for (var t = this._internalMeshDataInfo, n = 0; n < t._LODLevels.length; n++) {
var i = t._LODLevels[n];
if (i.distance === e) return i.mesh;
}
return null;
}),
(t.prototype.removeLODLevel = function (e) {
for (var t = this._internalMeshDataInfo, n = 0; n < t._LODLevels.length; n++) t._LODLevels[n].mesh === e && (t._LODLevels.splice(n, 1), e && (e._masterMesh = null));
return this._sortLODLevels(), this;
}),
(t.prototype.getLOD = function (e, t) {
var n,
i = this._internalMeshDataInfo;
if (!i._LODLevels || 0 === i._LODLevels.length) return this;
t ? (n = t) : (n = this.getBoundingInfo().boundingSphere);
var r = n.centerWorld.subtract(e.globalPosition).length();
if (i._LODLevels[i._LODLevels.length - 1].distance > r) return this.onLODLevelSelection && this.onLODLevelSelection(r, this, this), this;
for (var o = 0; o < i._LODLevels.length; o++) {
var a = i._LODLevels[o];
if (a.distance < r) return a.mesh && (a.mesh._preActivate(), a.mesh._updateSubMeshesBoundingInfo(this.worldMatrixFromCache)), this.onLODLevelSelection && this.onLODLevelSelection(r, this, a.mesh), a.mesh;
}
return this.onLODLevelSelection && this.onLODLevelSelection(r, this, this), this;
}),
Object.defineProperty(t.prototype, "geometry", {
get: function () {
return this._geometry;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getTotalVertices = function () {
return null === this._geometry || void 0 === this._geometry ? 0 : this._geometry.getTotalVertices();
}),
(t.prototype.getVerticesData = function (e, t, n) {
return this._geometry ? this._geometry.getVerticesData(e, t, n) : null;
}),
(t.prototype.getVertexBuffer = function (e) {
return this._geometry ? this._geometry.getVertexBuffer(e) : null;
}),
(t.prototype.isVerticesDataPresent = function (e) {
return this._geometry ? this._geometry.isVerticesDataPresent(e) : !!this._delayInfo && -1 !== this._delayInfo.indexOf(e);
}),
(t.prototype.isVertexBufferUpdatable = function (e) {
return this._geometry ? this._geometry.isVertexBufferUpdatable(e) : !!this._delayInfo && -1 !== this._delayInfo.indexOf(e);
}),
(t.prototype.getVerticesDataKinds = function () {
if (!this._geometry) {
var e = new Array();
return (
this._delayInfo &&
this._delayInfo.forEach(function (t) {
e.push(t);
}),
e
);
}
return this._geometry.getVerticesDataKinds();
}),
(t.prototype.getTotalIndices = function () {
return this._geometry ? this._geometry.getTotalIndices() : 0;
}),
(t.prototype.getIndices = function (e, t) {
return this._geometry ? this._geometry.getIndices(e, t) : [];
}),
Object.defineProperty(t.prototype, "isBlocked", {
get: function () {
return null !== this._masterMesh && void 0 !== this._masterMesh;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.isReady = function (t, n) {
if ((void 0 === t && (t = !1), void 0 === n && (n = !1), 2 === this.delayLoadState)) return !1;
if (!e.prototype.isReady.call(this, t)) return !1;
if (!this.subMeshes || 0 === this.subMeshes.length) return !0;
if (!t) return !0;
var i = this.getEngine(),
r = this.getScene(),
o = n || (i.getCaps().instancedArrays && this.instances.length > 0);
this.computeWorldMatrix();
var a = this.material || r.defaultMaterial;
if (a)
if (a._storeEffectOnSubMeshes)
for (var s = 0, c = this.subMeshes; s < c.length; s++) {
var l = (m = c[s]).getMaterial();
if (l)
if (l._storeEffectOnSubMeshes) {
if (!l.isReadyForSubMesh(this, m, o)) return !1;
} else if (!l.isReady(this, o)) return !1;
}
else if (!a.isReady(this, o)) return !1;
for (var u = 0, h = this.lightSources; u < h.length; u++) {
var d = h[u].getShadowGenerator();
if (d)
for (var p = 0, f = this.subMeshes; p < f.length; p++) {
var m = f[p];
if (!d.isReady(m, o)) return !1;
}
}
for (var g = 0, b = this._internalMeshDataInfo._LODLevels; g < b.length; g++) {
var _ = b[g];
if (_.mesh && !_.mesh.isReady(o)) return !1;
}
return !0;
}),
Object.defineProperty(t.prototype, "areNormalsFrozen", {
get: function () {
return this._internalMeshDataInfo._areNormalsFrozen;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.freezeNormals = function () {
return (this._internalMeshDataInfo._areNormalsFrozen = !0), this;
}),
(t.prototype.unfreezeNormals = function () {
return (this._internalMeshDataInfo._areNormalsFrozen = !1), this;
}),
Object.defineProperty(t.prototype, "overridenInstanceCount", {
set: function (e) {
this._instanceDataStorage.overridenInstanceCount = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._preActivate = function () {
var e = this._internalMeshDataInfo,
t = this.getScene().getRenderId();
return e._preActivateId === t || ((e._preActivateId = t), (this._instanceDataStorage.visibleInstances = null)), this;
}),
(t.prototype._preActivateForIntermediateRendering = function (e) {
return this._instanceDataStorage.visibleInstances && (this._instanceDataStorage.visibleInstances.intermediateDefaultRenderId = e), this;
}),
(t.prototype._registerInstanceForRenderId = function (e, t) {
return (
this._instanceDataStorage.visibleInstances || (this._instanceDataStorage.visibleInstances = { defaultRenderId: t, selfDefaultRenderId: this._renderId }),
this._instanceDataStorage.visibleInstances[t] || (this._instanceDataStorage.visibleInstances[t] = new Array()),
this._instanceDataStorage.visibleInstances[t].push(e),
this
);
}),
(t.prototype.refreshBoundingInfo = function (e) {
if ((void 0 === e && (e = !1), this._boundingInfo && this._boundingInfo.isLocked)) return this;
var t = this.geometry ? this.geometry.boundingBias : null;
return this._refreshBoundingInfo(this._getPositionData(e), t), this;
}),
(t.prototype._createGlobalSubMesh = function (e) {
var t = this.getTotalVertices();
if (!t || !this.getIndices()) return null;
if (this.subMeshes && this.subMeshes.length > 0) {
var n = this.getIndices();
if (!n) return null;
var i = n.length,
r = !1;
if (e) r = !0;
else
for (var o = 0, a = this.subMeshes; o < a.length; o++) {
var s = a[o];
if (s.indexStart + s.indexCount >= i) {
r = !0;
break;
}
if (s.verticesStart + s.verticesCount >= t) {
r = !0;
break;
}
}
if (!r) return this.subMeshes[0];
}
return this.releaseSubMeshes(), new m.b(0, 0, t, 0, this.getTotalIndices(), this);
}),
(t.prototype.subdivide = function (e) {
if (!(e < 1)) {
for (var t = this.getTotalIndices(), n = (t / e) | 0, i = 0; n % 3 != 0; ) n++;
this.releaseSubMeshes();
for (var r = 0; r < e && !(i >= t); r++) m.b.CreateFromIndices(0, i, Math.min(n, t - i), this), (i += n);
this.synchronizeInstances();
}
}),
(t.prototype.setVerticesData = function (e, t, n, i) {
if ((void 0 === n && (n = !1), this._geometry)) this._geometry.setVerticesData(e, t, n, i);
else {
var r = new d.a();
r.set(t, e);
var o = this.getScene();
new p.a(p.a.RandomId(), o, r, n, this);
}
return this;
}),
(t.prototype.removeVerticesData = function (e) {
this._geometry && this._geometry.removeVerticesData(e);
}),
(t.prototype.markVerticesDataAsUpdatable = function (e, t) {
void 0 === t && (t = !0);
var n = this.getVertexBuffer(e);
n && n.isUpdatable() !== t && this.setVerticesData(e, this.getVerticesData(e), t);
}),
(t.prototype.setVerticesBuffer = function (e) {
return this._geometry || (this._geometry = p.a.CreateGeometryForMesh(this)), this._geometry.setVerticesBuffer(e), this;
}),
(t.prototype.updateVerticesData = function (e, t, n, i) {
return this._geometry ? (i ? (this.makeGeometryUnique(), this.updateVerticesData(e, t, n, !1)) : this._geometry.updateVerticesData(e, t, n), this) : this;
}),
(t.prototype.updateMeshPositions = function (e, t) {
void 0 === t && (t = !0);
var n = this.getVerticesData(h.b.PositionKind);
if (!n) return this;
if ((e(n), this.updateVerticesData(h.b.PositionKind, n, !1, !1), t)) {
var i = this.getIndices(),
r = this.getVerticesData(h.b.NormalKind);
if (!r) return this;
d.a.ComputeNormals(n, i, r), this.updateVerticesData(h.b.NormalKind, r, !1, !1);
}
return this;
}),
(t.prototype.makeGeometryUnique = function () {
if (!this._geometry) return this;
var e = this._geometry,
t = this._geometry.copy(p.a.RandomId());
return e.releaseForMesh(this, !0), t.applyToMesh(this), this;
}),
(t.prototype.setIndices = function (e, t, n) {
if ((void 0 === t && (t = null), void 0 === n && (n = !1), this._geometry)) this._geometry.setIndices(e, t, n);
else {
var i = new d.a();
i.indices = e;
var r = this.getScene();
new p.a(p.a.RandomId(), r, i, n, this);
}
return this;
}),
(t.prototype.updateIndices = function (e, t, n) {
return void 0 === n && (n = !1), this._geometry ? (this._geometry.updateIndices(e, t, n), this) : this;
}),
(t.prototype.toLeftHanded = function () {
return this._geometry ? (this._geometry.toLeftHanded(), this) : this;
}),
(t.prototype._bind = function (e, t, n) {
if (!this._geometry) return this;
var i,
r = this.getScene().getEngine();
if (this._unIndexed) i = null;
else
switch (n) {
case b.a.PointFillMode:
i = null;
break;
case b.a.WireFrameFillMode:
i = e._getLinesIndexBuffer(this.getIndices(), r);
break;
default:
case b.a.TriangleFillMode:
i = this._geometry.getIndexBuffer();
}
return this._geometry._bind(t, i), this;
}),
(t.prototype._draw = function (e, t, n) {
if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) return this;
this._internalMeshDataInfo._onBeforeDrawObservable && this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this);
var i = this.getScene().getEngine();
return (
this._unIndexed || t == b.a.PointFillMode
? i.drawArraysType(t, e.verticesStart, e.verticesCount, n)
: t == b.a.WireFrameFillMode
? i.drawElementsType(t, 0, e._linesIndexCount, n)
: i.drawElementsType(t, e.indexStart, e.indexCount, n),
this
);
}),
(t.prototype.registerBeforeRender = function (e) {
return this.onBeforeRenderObservable.add(e), this;
}),
(t.prototype.unregisterBeforeRender = function (e) {
return this.onBeforeRenderObservable.removeCallback(e), this;
}),
(t.prototype.registerAfterRender = function (e) {
return this.onAfterRenderObservable.add(e), this;
}),
(t.prototype.unregisterAfterRender = function (e) {
return this.onAfterRenderObservable.removeCallback(e), this;
}),
(t.prototype._getInstancesRenderList = function (e, t) {
if ((void 0 === t && (t = !1), this._instanceDataStorage.isFrozen && this._instanceDataStorage.previousBatch)) return this._instanceDataStorage.previousBatch;
var n = this.getScene(),
i = n._isInIntermediateRendering(),
r = i ? this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate : this._internalAbstractMeshDataInfo._onlyForInstances,
o = this._instanceDataStorage.batchCache;
if (((o.mustReturn = !1), (o.renderSelf[e] = t || (!r && this.isEnabled() && this.isVisible)), (o.visibleInstances[e] = null), this._instanceDataStorage.visibleInstances && !t)) {
var a = this._instanceDataStorage.visibleInstances,
s = n.getRenderId(),
c = i ? a.intermediateDefaultRenderId : a.defaultRenderId;
(o.visibleInstances[e] = a[s]), !o.visibleInstances[e] && c && (o.visibleInstances[e] = a[c]);
}
return (
(o.hardwareInstancedRendering[e] = !t && this._instanceDataStorage.hardwareInstancedRendering && null !== o.visibleInstances[e] && void 0 !== o.visibleInstances[e]),
(this._instanceDataStorage.previousBatch = o),
o
);
}),
(t.prototype._renderWithInstances = function (e, t, n, i, r) {
var o = n.visibleInstances[e._id];
if (!o) return this;
for (var a = this._instanceDataStorage, s = a.instancesBufferSize, c = a.instancesBuffer, l = 16 * (o.length + 1) * 4; a.instancesBufferSize < l; ) a.instancesBufferSize *= 2;
(a.instancesData && s == a.instancesBufferSize) || (a.instancesData = new Float32Array(a.instancesBufferSize / 4));
var u = 0,
d = 0,
p = n.renderSelf[e._id];
if (this._instanceDataStorage.manualUpdate) d = (p ? 1 : 0) + o.length;
else {
var f = this._effectiveMesh.getWorldMatrix();
if ((p && (f.copyToArray(a.instancesData, u), (u += 16), d++), o))
for (var m = 0; m < o.length; m++) {
o[m].getWorldMatrix().copyToArray(a.instancesData, u), (u += 16), d++;
}
}
return (
c && s == a.instancesBufferSize
? c.updateDirectly(a.instancesData, 0, d)
: (c && c.dispose(),
(c = new h.a(r, a.instancesData, !0, 16, !1, !0)),
(a.instancesBuffer = c),
this.setVerticesBuffer(c.createVertexBuffer("world0", 0, 4)),
this.setVerticesBuffer(c.createVertexBuffer("world1", 4, 4)),
this.setVerticesBuffer(c.createVertexBuffer("world2", 8, 4)),
this.setVerticesBuffer(c.createVertexBuffer("world3", 12, 4))),
this._processInstancedBuffers(o, p),
this.getScene()._activeIndices.addCount(e.indexCount * d, !1),
this._bind(e, i, t),
this._draw(e, t, d),
r.unbindInstanceAttributes(),
this
);
}),
(t.prototype._processInstancedBuffers = function (e, t) {}),
(t.prototype._processRendering = function (e, t, n, i, r, o, a) {
var s = this.getScene(),
c = s.getEngine();
if (r) this._renderWithInstances(e, n, i, t, c);
else {
var l = 0;
i.renderSelf[e._id] && (o && o(!1, this._effectiveMesh.getWorldMatrix(), a), l++, this._draw(e, n, this._instanceDataStorage.overridenInstanceCount));
var u = i.visibleInstances[e._id];
if (u) {
var h = u.length;
l += h;
for (var d = 0; d < h; d++) {
var p = u[d].getWorldMatrix();
o && o(!0, p, a), this._draw(e, n);
}
}
s._activeIndices.addCount(e.indexCount * l, !1);
}
return this;
}),
(t.prototype._rebuild = function () {
this._instanceDataStorage.instancesBuffer && (this._instanceDataStorage.instancesBuffer.dispose(), (this._instanceDataStorage.instancesBuffer = null)), e.prototype._rebuild.call(this);
}),
(t.prototype._freeze = function () {
if (this.subMeshes) {
for (var e = 0; e < this.subMeshes.length; e++) this._getInstancesRenderList(e);
(this._effectiveMaterial = null), (this._instanceDataStorage.isFrozen = !0);
}
}),
(t.prototype._unFreeze = function () {
(this._instanceDataStorage.isFrozen = !1), (this._instanceDataStorage.previousBatch = null);
}),
(t.prototype.render = function (e, t, n) {
var i = this.getScene();
if ((this._internalAbstractMeshDataInfo._isActiveIntermediate ? (this._internalAbstractMeshDataInfo._isActiveIntermediate = !1) : (this._internalAbstractMeshDataInfo._isActive = !1), this._checkOcclusionQuery()))
return this;
var r = this._getInstancesRenderList(e._id, !!n);
if (r.mustReturn) return this;
if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) return this;
this._internalMeshDataInfo._onBeforeRenderObservable && this._internalMeshDataInfo._onBeforeRenderObservable.notifyObservers(this);
var o,
a = i.getEngine(),
s = r.hardwareInstancedRendering[e._id],
c = this._instanceDataStorage,
l = e.getMaterial();
if (!l) return this;
if (!c.isFrozen || !this._effectiveMaterial || this._effectiveMaterial !== l) {
if (l._storeEffectOnSubMeshes) {
if (!l.isReadyForSubMesh(this, e, s)) return this;
} else if (!l.isReady(this, s)) return this;
this._effectiveMaterial = l;
}
t && a.setAlphaMode(this._effectiveMaterial.alphaMode);
for (var u = 0, h = i._beforeRenderingMeshStage; u < h.length; u++) {
h[u].action(this, e, r);
}
if (!(o = this._effectiveMaterial._storeEffectOnSubMeshes ? e.effect : this._effectiveMaterial.getEffect())) return this;
var d,
p = n || this._effectiveMesh;
if (!c.isFrozen && this._effectiveMaterial.backFaceCulling) {
var f = p._getWorldMatrixDeterminant();
null == (d = this.overrideMaterialSideOrientation) && (d = this._effectiveMaterial.sideOrientation),
f < 0 && (d = d === b.a.ClockWiseSideOrientation ? b.a.CounterClockWiseSideOrientation : b.a.ClockWiseSideOrientation),
(c.sideOrientation = d);
} else d = c.sideOrientation;
var m = this._effectiveMaterial._preBind(o, d);
this._effectiveMaterial.forceDepthWrite && a.setDepthWrite(!0);
var g = i.forcePointsCloud ? b.a.PointFillMode : i.forceWireframe ? b.a.WireFrameFillMode : this._effectiveMaterial.fillMode;
this._internalMeshDataInfo._onBeforeBindObservable && this._internalMeshDataInfo._onBeforeBindObservable.notifyObservers(this), s || this._bind(e, o, g);
var _ = p.getWorldMatrix();
this._effectiveMaterial._storeEffectOnSubMeshes ? this._effectiveMaterial.bindForSubMesh(_, this, e) : this._effectiveMaterial.bind(_, this),
!this._effectiveMaterial.backFaceCulling &&
this._effectiveMaterial.separateCullingPass &&
(a.setState(!0, this._effectiveMaterial.zOffset, !1, !m), this._processRendering(e, o, g, r, s, this._onBeforeDraw, this._effectiveMaterial), a.setState(!0, this._effectiveMaterial.zOffset, !1, m)),
this._processRendering(e, o, g, r, s, this._onBeforeDraw, this._effectiveMaterial),
this._effectiveMaterial.unbind();
for (var v = 0, y = i._afterRenderingMeshStage; v < y.length; v++) {
y[v].action(this, e, r);
}
return this._internalMeshDataInfo._onAfterRenderObservable && this._internalMeshDataInfo._onAfterRenderObservable.notifyObservers(this), this;
}),
(t.prototype._onBeforeDraw = function (e, t, n) {
e && n && n.bindOnlyWorldMatrix(t);
}),
(t.prototype.cleanMatrixWeights = function () {
this.isVerticesDataPresent(h.b.MatricesWeightsKind) && (this.isVerticesDataPresent(h.b.MatricesWeightsExtraKind) ? this.normalizeSkinWeightsAndExtra() : this.normalizeSkinFourWeights());
}),
(t.prototype.normalizeSkinFourWeights = function () {
for (var e = this.getVerticesData(h.b.MatricesWeightsKind), t = e.length, n = 0; n < t; n += 4) {
var i = e[n] + e[n + 1] + e[n + 2] + e[n + 3];
if (0 === i) e[n] = 1;
else {
var r = 1 / i;
(e[n] *= r), (e[n + 1] *= r), (e[n + 2] *= r), (e[n + 3] *= r);
}
}
this.setVerticesData(h.b.MatricesWeightsKind, e);
}),
(t.prototype.normalizeSkinWeightsAndExtra = function () {
for (var e = this.getVerticesData(h.b.MatricesWeightsExtraKind), t = this.getVerticesData(h.b.MatricesWeightsKind), n = t.length, i = 0; i < n; i += 4) {
var r = t[i] + t[i + 1] + t[i + 2] + t[i + 3];
if (0 === (r += e[i] + e[i + 1] + e[i + 2] + e[i + 3])) t[i] = 1;
else {
var o = 1 / r;
(t[i] *= o), (t[i + 1] *= o), (t[i + 2] *= o), (t[i + 3] *= o), (e[i] *= o), (e[i + 1] *= o), (e[i + 2] *= o), (e[i + 3] *= o);
}
}
this.setVerticesData(h.b.MatricesWeightsKind, t), this.setVerticesData(h.b.MatricesWeightsKind, e);
}),
(t.prototype.validateSkinning = function () {
var e = this.getVerticesData(h.b.MatricesWeightsExtraKind),
t = this.getVerticesData(h.b.MatricesWeightsKind);
if (null === t || null == this.skeleton) return { skinned: !1, valid: !0, report: "not skinned" };
for (var n = t.length, i = 0, r = 0, o = 0, a = 0, s = null === e ? 4 : 8, c = new Array(), l = 0; l <= s; l++) c[l] = 0;
for (l = 0; l < n; l += 4) {
for (var u = t[l], d = u, p = 0 === d ? 0 : 1, f = 1; f < s; f++) {
var m = f < 4 ? t[l + f] : e[l + f - 4];
m > u && i++, 0 !== m && p++, (d += m), (u = m);
}
if ((c[p]++, p > o && (o = p), 0 === d)) r++;
else {
var g = 1 / d,
b = 0;
for (f = 0; f < s; f++) b += f < 4 ? Math.abs(t[l + f] - t[l + f] * g) : Math.abs(e[l + f - 4] - e[l + f - 4] * g);
b > 0.001 && a++;
}
}
var _ = this.skeleton.bones.length,
v = this.getVerticesData(h.b.MatricesIndicesKind),
y = this.getVerticesData(h.b.MatricesIndicesExtraKind),
C = 0;
for (l = 0; l < n; l++)
for (f = 0; f < s; f++) {
var P = f < 4 ? v[f] : y[f - 4];
(P >= _ || P < 0) && C++;
}
return {
skinned: !0,
valid: 0 === r && 0 === a && 0 === C,
report:
"Number of Weights = " +
n / 4 +
"\nMaximum influences = " +
o +
"\nMissing Weights = " +
r +
"\nNot Sorted = " +
i +
"\nNot Normalized = " +
a +
"\nWeightCounts = [" +
c +
"]\nNumber of bones = " +
_ +
"\nBad Bone Indices = " +
C,
};
}),
(t.prototype._checkDelayState = function () {
var e = this.getScene();
return this._geometry ? this._geometry.load(e) : 4 === this.delayLoadState && ((this.delayLoadState = 2), this._queueLoad(e)), this;
}),
(t.prototype._queueLoad = function (e) {
var t = this;
e._addPendingData(this);
var n = -1 !== this.delayLoadingFile.indexOf(".babylonbinarymeshdata");
return (
o.b.LoadFile(
this.delayLoadingFile,
function (n) {
n instanceof ArrayBuffer ? t._delayLoadingFunction(n, t) : t._delayLoadingFunction(JSON.parse(n), t),
t.instances.forEach(function (e) {
e.refreshBoundingInfo(), e._syncSubMeshes();
}),
(t.delayLoadState = 1),
e._removePendingData(t);
},
function () {},
e.offlineProvider,
n
),
this
);
}),
(t.prototype.isInFrustum = function (t) {
return 2 !== this.delayLoadState && !!e.prototype.isInFrustum.call(this, t) && (this._checkDelayState(), !0);
}),
(t.prototype.setMaterialByID = function (e) {
var t,
n = this.getScene().materials;
for (t = n.length - 1; t > -1; t--) if (n[t].id === e) return (this.material = n[t]), this;
var i = this.getScene().multiMaterials;
for (t = i.length - 1; t > -1; t--) if (i[t].id === e) return (this.material = i[t]), this;
return this;
}),
(t.prototype.getAnimatables = function () {
var e = new Array();
return this.material && e.push(this.material), this.skeleton && e.push(this.skeleton), e;
}),
(t.prototype.bakeTransformIntoVertices = function (e) {
if (!this.isVerticesDataPresent(h.b.PositionKind)) return this;
var t = this.subMeshes.splice(0);
this._resetPointsArrayCache();
var n,
i = this.getVerticesData(h.b.PositionKind),
r = new Array();
for (n = 0; n < i.length; n += 3) c.e.TransformCoordinates(c.e.FromArray(i, n), e).toArray(r, n);
if ((this.setVerticesData(h.b.PositionKind, r, this.getVertexBuffer(h.b.PositionKind).isUpdatable()), this.isVerticesDataPresent(h.b.NormalKind))) {
for (i = this.getVerticesData(h.b.NormalKind), r = [], n = 0; n < i.length; n += 3) c.e.TransformNormal(c.e.FromArray(i, n), e).normalize().toArray(r, n);
this.setVerticesData(h.b.NormalKind, r, this.getVertexBuffer(h.b.NormalKind).isUpdatable());
}
return e.m[0] * e.m[5] * e.m[10] < 0 && this.flipFaces(), this.releaseSubMeshes(), (this.subMeshes = t), this;
}),
(t.prototype.bakeCurrentTransformIntoVertices = function (e) {
return void 0 === e && (e = !0), this.bakeTransformIntoVertices(this.computeWorldMatrix(!0)), this.resetLocalMatrix(e), this;
}),
Object.defineProperty(t.prototype, "_positions", {
get: function () {
return this._geometry ? this._geometry._positions : null;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._resetPointsArrayCache = function () {
return this._geometry && this._geometry._resetPointsArrayCache(), this;
}),
(t.prototype._generatePointsArray = function () {
return !!this._geometry && this._geometry._generatePointsArray();
}),
(t.prototype.clone = function (e, n, i, r) {
return void 0 === e && (e = ""), void 0 === n && (n = null), void 0 === r && (r = !0), new t(e, this.getScene(), n, this, i, r);
}),
(t.prototype.dispose = function (t, n) {
void 0 === n && (n = !1), (this.morphTargetManager = null), this._geometry && this._geometry.releaseForMesh(this, !0);
var i = this._internalMeshDataInfo;
if (
(i._onBeforeDrawObservable && i._onBeforeDrawObservable.clear(),
i._onBeforeBindObservable && i._onBeforeBindObservable.clear(),
i._onBeforeRenderObservable && i._onBeforeRenderObservable.clear(),
i._onAfterRenderObservable && i._onAfterRenderObservable.clear(),
this._scene.useClonedMeshMap)
) {
if (i.meshMap)
for (var r in i.meshMap) {
(s = i.meshMap[r]) && ((s._internalMeshDataInfo._source = null), (i.meshMap[r] = void 0));
}
i._source && i._source._internalMeshDataInfo.meshMap && (i._source._internalMeshDataInfo.meshMap[this.uniqueId] = void 0);
} else
for (var o = 0, a = this.getScene().meshes; o < a.length; o++) {
var s;
(s = a[o])._internalMeshDataInfo && s._internalMeshDataInfo._source && s._internalMeshDataInfo._source === this && (s._internalMeshDataInfo._source = null);
}
(i._source = null), this._disposeInstanceSpecificData(), e.prototype.dispose.call(this, t, n);
}),
(t.prototype._disposeInstanceSpecificData = function () {}),
(t.prototype.applyDisplacementMap = function (e, t, n, i, r, a, s) {
var c = this;
void 0 === s && (s = !1);
var l = this.getScene();
return (
o.b.LoadImage(
e,
function (e) {
var o = e.width,
l = e.height,
u = O.a.CreateCanvas(o, l).getContext("2d");
u.drawImage(e, 0, 0);
var h = u.getImageData(0, 0, o, l).data;
c.applyDisplacementMapFromBuffer(h, o, l, t, n, r, a, s), i && i(c);
},
function () {},
l.offlineProvider
),
this
);
}),
(t.prototype.applyDisplacementMapFromBuffer = function (e, t, n, i, r, o, a, s) {
if ((void 0 === s && (s = !1), !this.isVerticesDataPresent(h.b.PositionKind) || !this.isVerticesDataPresent(h.b.NormalKind) || !this.isVerticesDataPresent(h.b.UVKind)))
return C.a.Warn("Cannot call applyDisplacementMap: Given mesh is not complete. Position, Normal or UV are missing"), this;
var l = this.getVerticesData(h.b.PositionKind, !0, !0),
u = this.getVerticesData(h.b.NormalKind),
p = this.getVerticesData(h.b.UVKind),
f = c.e.Zero(),
m = c.e.Zero(),
g = c.d.Zero();
(o = o || c.d.Zero()), (a = a || new c.d(1, 1));
for (var b = 0; b < l.length; b += 3) {
c.e.FromArrayToRef(l, b, f), c.e.FromArrayToRef(u, b, m), c.d.FromArrayToRef(p, (b / 3) * 2, g);
var _ = 4 * (((Math.abs(g.x * a.x + o.x) * t) % t | 0) + ((Math.abs(g.y * a.y + o.y) * n) % n | 0) * t),
v = 0.3 * (e[_] / 255) + 0.59 * (e[_ + 1] / 255) + 0.11 * (e[_ + 2] / 255);
m.normalize(), m.scaleInPlace(i + (r - i) * v), (f = f.add(m)).toArray(l, b);
}
return (
d.a.ComputeNormals(l, this.getIndices(), u),
s ? (this.setVerticesData(h.b.PositionKind, l), this.setVerticesData(h.b.NormalKind, u)) : (this.updateVerticesData(h.b.PositionKind, l), this.updateVerticesData(h.b.NormalKind, u)),
this
);
}),
(t.prototype.convertToFlatShadedMesh = function () {
var e,
t,
n = this.getVerticesDataKinds(),
i = {},
r = {},
o = {},
a = !1;
for (e = 0; e < n.length; e++) {
t = n[e];
var s = this.getVertexBuffer(t);
t !== h.b.NormalKind ? ((i[t] = s), (r[t] = i[t].getData()), (o[t] = [])) : ((a = s.isUpdatable()), n.splice(e, 1), e--);
}
var l,
u = this.subMeshes.slice(0),
d = this.getIndices(),
p = this.getTotalIndices();
for (l = 0; l < p; l++) {
var f = d[l];
for (e = 0; e < n.length; e++) for (var g = i[(t = n[e])].getStrideSize(), b = 0; b < g; b++) o[t].push(r[t][f * g + b]);
}
var _ = [],
v = o[h.b.PositionKind];
for (l = 0; l < p; l += 3) {
(d[l] = l), (d[l + 1] = l + 1), (d[l + 2] = l + 2);
for (var y = c.e.FromArray(v, 3 * l), C = c.e.FromArray(v, 3 * (l + 1)), P = c.e.FromArray(v, 3 * (l + 2)), x = y.subtract(C), T = P.subtract(C), S = c.e.Normalize(c.e.Cross(x, T)), O = 0; O < 3; O++)
_.push(S.x), _.push(S.y), _.push(S.z);
}
for (this.setIndices(d), this.setVerticesData(h.b.NormalKind, _, a), e = 0; e < n.length; e++) (t = n[e]), this.setVerticesData(t, o[t], i[t].isUpdatable());
this.releaseSubMeshes();
for (var E = 0; E < u.length; E++) {
var M = u[E];
m.b.AddToMesh(M.materialIndex, M.indexStart, M.indexCount, M.indexStart, M.indexCount, this);
}
return this.synchronizeInstances(), this;
}),
(t.prototype.convertToUnIndexedMesh = function () {
var e,
t,
n = this.getVerticesDataKinds(),
i = {},
r = {},
o = {};
for (e = 0; e < n.length; e++) {
t = n[e];
var a = this.getVertexBuffer(t);
(i[t] = a), (r[t] = i[t].getData()), (o[t] = []);
}
var s,
c = this.subMeshes.slice(0),
l = this.getIndices(),
u = this.getTotalIndices();
for (s = 0; s < u; s++) {
var h = l[s];
for (e = 0; e < n.length; e++) for (var d = i[(t = n[e])].getStrideSize(), p = 0; p < d; p++) o[t].push(r[t][h * d + p]);
}
for (s = 0; s < u; s += 3) (l[s] = s), (l[s + 1] = s + 1), (l[s + 2] = s + 2);
for (this.setIndices(l), e = 0; e < n.length; e++) (t = n[e]), this.setVerticesData(t, o[t], i[t].isUpdatable());
this.releaseSubMeshes();
for (var f = 0; f < c.length; f++) {
var g = c[f];
m.b.AddToMesh(g.materialIndex, g.indexStart, g.indexCount, g.indexStart, g.indexCount, this);
}
return (this._unIndexed = !0), this.synchronizeInstances(), this;
}),
(t.prototype.flipFaces = function (e) {
void 0 === e && (e = !1);
var t,
n,
i = d.a.ExtractFromMesh(this);
if (e && this.isVerticesDataPresent(h.b.NormalKind) && i.normals) for (t = 0; t < i.normals.length; t++) i.normals[t] *= -1;
if (i.indices) for (t = 0; t < i.indices.length; t += 3) (n = i.indices[t + 1]), (i.indices[t + 1] = i.indices[t + 2]), (i.indices[t + 2] = n);
return i.applyToMesh(this, this.isVertexBufferUpdatable(h.b.PositionKind)), this;
}),
(t.prototype.increaseVertices = function (e) {
var t = d.a.ExtractFromMesh(this),
n = t.uvs,
i = t.indices,
r = t.positions,
o = t.normals;
if (null === i || null === r || null === o || null === n) C.a.Warn("VertexData contains null entries");
else {
for (var a, s, l = e + 1, u = new Array(), p = 0; p < l + 1; p++) u[p] = new Array();
var f,
m = new c.e(0, 0, 0),
g = new c.e(0, 0, 0),
b = new c.d(0, 0),
_ = new Array(),
v = new Array(),
y = new Array(),
P = r.length,
x = n.length;
for (p = 0; p < i.length; p += 3) {
(v[0] = i[p]), (v[1] = i[p + 1]), (v[2] = i[p + 2]);
for (var T = 0; T < 3; T++)
if (
((a = v[T]),
(s = v[(T + 1) % 3]),
void 0 === y[a] && void 0 === y[s] ? ((y[a] = new Array()), (y[s] = new Array())) : (void 0 === y[a] && (y[a] = new Array()), void 0 === y[s] && (y[s] = new Array())),
void 0 === y[a][s] && void 0 === y[s][a])
) {
(y[a][s] = []),
(m.x = (r[3 * s] - r[3 * a]) / l),
(m.y = (r[3 * s + 1] - r[3 * a + 1]) / l),
(m.z = (r[3 * s + 2] - r[3 * a + 2]) / l),
(g.x = (o[3 * s] - o[3 * a]) / l),
(g.y = (o[3 * s + 1] - o[3 * a + 1]) / l),
(g.z = (o[3 * s + 2] - o[3 * a + 2]) / l),
(b.x = (n[2 * s] - n[2 * a]) / l),
(b.y = (n[2 * s + 1] - n[2 * a + 1]) / l),
y[a][s].push(a);
for (var S = 1; S < l; S++)
y[a][s].push(r.length / 3),
(r[P] = r[3 * a] + S * m.x),
(o[P++] = o[3 * a] + S * g.x),
(r[P] = r[3 * a + 1] + S * m.y),
(o[P++] = o[3 * a + 1] + S * g.y),
(r[P] = r[3 * a + 2] + S * m.z),
(o[P++] = o[3 * a + 2] + S * g.z),
(n[x++] = n[2 * a] + S * b.x),
(n[x++] = n[2 * a + 1] + S * b.y);
y[a][s].push(s), (y[s][a] = new Array()), (f = y[a][s].length);
for (var O = 0; O < f; O++) y[s][a][O] = y[a][s][f - 1 - O];
}
(u[0][0] = i[p]), (u[1][0] = y[i[p]][i[p + 1]][1]), (u[1][1] = y[i[p]][i[p + 2]][1]);
for (S = 2; S < l; S++) {
(u[S][0] = y[i[p]][i[p + 1]][S]),
(u[S][S] = y[i[p]][i[p + 2]][S]),
(m.x = (r[3 * u[S][S]] - r[3 * u[S][0]]) / S),
(m.y = (r[3 * u[S][S] + 1] - r[3 * u[S][0] + 1]) / S),
(m.z = (r[3 * u[S][S] + 2] - r[3 * u[S][0] + 2]) / S),
(g.x = (o[3 * u[S][S]] - o[3 * u[S][0]]) / S),
(g.y = (o[3 * u[S][S] + 1] - o[3 * u[S][0] + 1]) / S),
(g.z = (o[3 * u[S][S] + 2] - o[3 * u[S][0] + 2]) / S),
(b.x = (n[2 * u[S][S]] - n[2 * u[S][0]]) / S),
(b.y = (n[2 * u[S][S] + 1] - n[2 * u[S][0] + 1]) / S);
for (T = 1; T < S; T++)
(u[S][T] = r.length / 3),
(r[P] = r[3 * u[S][0]] + T * m.x),
(o[P++] = o[3 * u[S][0]] + T * g.x),
(r[P] = r[3 * u[S][0] + 1] + T * m.y),
(o[P++] = o[3 * u[S][0] + 1] + T * g.y),
(r[P] = r[3 * u[S][0] + 2] + T * m.z),
(o[P++] = o[3 * u[S][0] + 2] + T * g.z),
(n[x++] = n[2 * u[S][0]] + T * b.x),
(n[x++] = n[2 * u[S][0] + 1] + T * b.y);
}
(u[l] = y[i[p + 1]][i[p + 2]]), _.push(u[0][0], u[1][0], u[1][1]);
for (S = 1; S < l; S++) {
for (T = 0; T < S; T++) _.push(u[S][T], u[S + 1][T], u[S + 1][T + 1]), _.push(u[S][T], u[S + 1][T + 1], u[S][T + 1]);
_.push(u[S][T], u[S + 1][T], u[S + 1][T + 1]);
}
}
(t.indices = _), t.applyToMesh(this, this.isVertexBufferUpdatable(h.b.PositionKind));
}
}),
(t.prototype.forceSharedVertices = function () {
var e = d.a.ExtractFromMesh(this),
t = e.uvs,
n = e.indices,
i = e.positions,
r = e.colors;
if (void 0 === n || void 0 === i || null === n || null === i) C.a.Warn("VertexData contains empty entries");
else {
for (var o, a, s = new Array(), c = new Array(), l = new Array(), u = new Array(), p = new Array(), f = 0, m = new Array(), g = 0; g < n.length; g += 3) {
(a = [n[g], n[g + 1], n[g + 2]]), (p = new Array());
for (var b = 0; b < 3; b++) {
p[b] = "";
for (var _ = 0; _ < 3; _++) Math.abs(i[3 * a[b] + _]) < 1e-8 && (i[3 * a[b] + _] = 0), (p[b] += i[3 * a[b] + _] + "|");
p[b] = p[b].slice(0, -1);
}
if (p[0] != p[1] && p[0] != p[2] && p[1] != p[2])
for (b = 0; b < 3; b++) {
if ((o = m.indexOf(p[b])) < 0) {
m.push(p[b]), (o = f++);
for (_ = 0; _ < 3; _++) s.push(i[3 * a[b] + _]);
if (null != r) for (_ = 0; _ < 4; _++) u.push(r[4 * a[b] + _]);
if (null != t) for (_ = 0; _ < 2; _++) l.push(t[2 * a[b] + _]);
}
c.push(o);
}
}
var v = new Array();
d.a.ComputeNormals(s, c, v), (e.positions = s), (e.indices = c), (e.normals = v), null != t && (e.uvs = l), null != r && (e.colors = u), e.applyToMesh(this, this.isVertexBufferUpdatable(h.b.PositionKind));
}
}),
(t._instancedMeshFactory = function (e, t) {
throw x.a.WarnImport("InstancedMesh");
}),
(t._PhysicsImpostorParser = function (e, t, n) {
throw x.a.WarnImport("PhysicsImpostor");
}),
(t.prototype.createInstance = function (e) {
return t._instancedMeshFactory(e, this);
}),
(t.prototype.synchronizeInstances = function () {
for (var e = 0; e < this.instances.length; e++) {
this.instances[e]._syncSubMeshes();
}
return this;
}),
(t.prototype.optimizeIndices = function (e) {
var t = this,
n = this.getIndices(),
i = this.getVerticesData(h.b.PositionKind);
if (!i || !n) return this;
for (var r = new Array(), a = 0; a < i.length; a += 3) r.push(c.e.FromArray(i, a));
var s = new Array();
return (
o.a.SyncAsyncForLoop(
r.length,
40,
function (e) {
for (var t = r.length - 1 - e, n = r[t], i = 0; i < t; ++i) {
var o = r[i];
if (n.equals(o)) {
s[t] = i;
break;
}
}
},
function () {
for (var i = 0; i < n.length; ++i) n[i] = s[n[i]] || n[i];
var r = t.subMeshes.slice(0);
t.setIndices(n), (t.subMeshes = r), e && e(t);
}
),
this
);
}),
(t.prototype.serialize = function (e) {
(e.name = this.name),
(e.id = this.id),
(e.type = this.getClassName()),
s.a && s.a.HasTags(this) && (e.tags = s.a.GetTags(this)),
(e.position = this.position.asArray()),
this.rotationQuaternion ? (e.rotationQuaternion = this.rotationQuaternion.asArray()) : this.rotation && (e.rotation = this.rotation.asArray()),
(e.scaling = this.scaling.asArray()),
this._postMultiplyPivotMatrix ? (e.pivotMatrix = this.getPivotMatrix().asArray()) : (e.localMatrix = this.getPivotMatrix().asArray()),
(e.isEnabled = this.isEnabled(!1)),
(e.isVisible = this.isVisible),
(e.infiniteDistance = this.infiniteDistance),
(e.pickable = this.isPickable),
(e.receiveShadows = this.receiveShadows),
(e.billboardMode = this.billboardMode),
(e.visibility = this.visibility),
(e.checkCollisions = this.checkCollisions),
(e.isBlocker = this.isBlocker),
(e.overrideMaterialSideOrientation = this.overrideMaterialSideOrientation),
this.parent && (e.parentId = this.parent.id),
(e.isUnIndexed = this.isUnIndexed);
var t = this._geometry;
if (t) {
var n = t.id;
(e.geometryId = n), (e.subMeshes = []);
for (var i = 0; i < this.subMeshes.length; i++) {
var r = this.subMeshes[i];
e.subMeshes.push({ materialIndex: r.materialIndex, verticesStart: r.verticesStart, verticesCount: r.verticesCount, indexStart: r.indexStart, indexCount: r.indexCount });
}
}
if (
(this.material ? this.material.doNotSerialize || (e.materialId = this.material.id) : (this.material = null),
this.morphTargetManager && (e.morphTargetManagerId = this.morphTargetManager.uniqueId),
this.skeleton && (e.skeletonId = this.skeleton.id),
this.getScene()._getComponent(T.a.NAME_PHYSICSENGINE))
) {
var o = this.getPhysicsImpostor();
o && ((e.physicsMass = o.getParam("mass")), (e.physicsFriction = o.getParam("friction")), (e.physicsRestitution = o.getParam("mass")), (e.physicsImpostor = o.type));
}
this.metadata && (e.metadata = this.metadata), (e.instances = []);
for (var a = 0; a < this.instances.length; a++) {
var c = this.instances[a];
if (!c.doNotSerialize) {
var l = { name: c.name, id: c.id, position: c.position.asArray(), scaling: c.scaling.asArray() };
c.parent && (l.parentId = c.parent.id),
c.rotationQuaternion ? (l.rotationQuaternion = c.rotationQuaternion.asArray()) : c.rotation && (l.rotation = c.rotation.asArray()),
e.instances.push(l),
y.a.AppendSerializedAnimations(c, l),
(l.ranges = c.serializeAnimationRanges());
}
}
y.a.AppendSerializedAnimations(this, e),
(e.ranges = this.serializeAnimationRanges()),
(e.layerMask = this.layerMask),
(e.alphaIndex = this.alphaIndex),
(e.hasVertexAlpha = this.hasVertexAlpha),
(e.overlayAlpha = this.overlayAlpha),
(e.overlayColor = this.overlayColor.asArray()),
(e.renderOverlay = this.renderOverlay),
(e.applyFog = this.applyFog),
this.actionManager && (e.actions = this.actionManager.serialize(this.name));
}),
(t.prototype._syncGeometryWithMorphTargetManager = function () {
if (this.geometry) {
this._markSubMeshesAsAttributesDirty();
var e = this._internalMeshDataInfo._morphTargetManager;
if (e && e.vertexCount) {
if (e.vertexCount !== this.getTotalVertices()) return C.a.Error("Mesh is incompatible with morph targets. Targets and mesh must all have the same vertices count."), void (this.morphTargetManager = null);
for (var t = 0; t < e.numInfluencers; t++) {
var n = e.getActiveTarget(t),
i = n.getPositions();
if (!i) return void C.a.Error("Invalid morph target. Target must have positions.");
this.geometry.setVerticesData(h.b.PositionKind + t, i, !1, 3);
var r = n.getNormals();
r && this.geometry.setVerticesData(h.b.NormalKind + t, r, !1, 3);
var o = n.getTangents();
o && this.geometry.setVerticesData(h.b.TangentKind + t, o, !1, 3);
var a = n.getUVs();
a && this.geometry.setVerticesData(h.b.UVKind + "_" + t, a, !1, 2);
}
} else
for (t = 0; this.geometry.isVerticesDataPresent(h.b.PositionKind + t); )
this.geometry.removeVerticesData(h.b.PositionKind + t),
this.geometry.isVerticesDataPresent(h.b.NormalKind + t) && this.geometry.removeVerticesData(h.b.NormalKind + t),
this.geometry.isVerticesDataPresent(h.b.TangentKind + t) && this.geometry.removeVerticesData(h.b.TangentKind + t),
this.geometry.isVerticesDataPresent(h.b.UVKind + t) && this.geometry.removeVerticesData(h.b.UVKind + "_" + t),
t++;
}
}),
(t.Parse = function (e, n, i) {
var r;
if (
(((r = e.type && "GroundMesh" === e.type ? t._GroundMeshParser(e, n) : new t(e.name, n)).id = e.id),
s.a && s.a.AddTagsTo(r, e.tags),
(r.position = c.e.FromArray(e.position)),
void 0 !== e.metadata && (r.metadata = e.metadata),
e.rotationQuaternion ? (r.rotationQuaternion = c.b.FromArray(e.rotationQuaternion)) : e.rotation && (r.rotation = c.e.FromArray(e.rotation)),
(r.scaling = c.e.FromArray(e.scaling)),
e.localMatrix ? r.setPreTransformMatrix(c.a.FromArray(e.localMatrix)) : e.pivotMatrix && r.setPivotMatrix(c.a.FromArray(e.pivotMatrix)),
r.setEnabled(e.isEnabled),
(r.isVisible = e.isVisible),
(r.infiniteDistance = e.infiniteDistance),
(r.showBoundingBox = e.showBoundingBox),
(r.showSubMeshesBoundingBox = e.showSubMeshesBoundingBox),
void 0 !== e.applyFog && (r.applyFog = e.applyFog),
void 0 !== e.pickable && (r.isPickable = e.pickable),
void 0 !== e.alphaIndex && (r.alphaIndex = e.alphaIndex),
(r.receiveShadows = e.receiveShadows),
(r.billboardMode = e.billboardMode),
void 0 !== e.visibility && (r.visibility = e.visibility),
(r.checkCollisions = e.checkCollisions),
(r.overrideMaterialSideOrientation = e.overrideMaterialSideOrientation),
void 0 !== e.isBlocker && (r.isBlocker = e.isBlocker),
(r._shouldGenerateFlatShading = e.useFlatShading),
e.freezeWorldMatrix && (r._waitingData.freezeWorldMatrix = e.freezeWorldMatrix),
e.parentId && (r._waitingParentId = e.parentId),
void 0 !== e.actions && (r._waitingData.actions = e.actions),
void 0 !== e.overlayAlpha && (r.overlayAlpha = e.overlayAlpha),
void 0 !== e.overlayColor && (r.overlayColor = l.a.FromArray(e.overlayColor)),
void 0 !== e.renderOverlay && (r.renderOverlay = e.renderOverlay),
(r.isUnIndexed = !!e.isUnIndexed),
(r.hasVertexAlpha = e.hasVertexAlpha),
e.delayLoadingFile
? ((r.delayLoadState = 4),
(r.delayLoadingFile = i + e.delayLoadingFile),
(r._boundingInfo = new g.a(c.e.FromArray(e.boundingBoxMinimum), c.e.FromArray(e.boundingBoxMaximum))),
e._binaryInfo && (r._binaryInfo = e._binaryInfo),
(r._delayInfo = []),
e.hasUVs && r._delayInfo.push(h.b.UVKind),
e.hasUVs2 && r._delayInfo.push(h.b.UV2Kind),
e.hasUVs3 && r._delayInfo.push(h.b.UV3Kind),
e.hasUVs4 && r._delayInfo.push(h.b.UV4Kind),
e.hasUVs5 && r._delayInfo.push(h.b.UV5Kind),
e.hasUVs6 && r._delayInfo.push(h.b.UV6Kind),
e.hasColors && r._delayInfo.push(h.b.ColorKind),
e.hasMatricesIndices && r._delayInfo.push(h.b.MatricesIndicesKind),
e.hasMatricesWeights && r._delayInfo.push(h.b.MatricesWeightsKind),
(r._delayLoadingFunction = p.a._ImportGeometry),
v.a.ForceFullSceneLoadingForIncremental && r._checkDelayState())
: p.a._ImportGeometry(e, r),
e.materialId ? r.setMaterialByID(e.materialId) : (r.material = null),
e.morphTargetManagerId > -1 && (r.morphTargetManager = n.getMorphTargetManagerById(e.morphTargetManagerId)),
e.skeletonId > -1 && ((r.skeleton = n.getLastSkeletonByID(e.skeletonId)), e.numBoneInfluencers && (r.numBoneInfluencers = e.numBoneInfluencers)),
e.animations)
) {
for (var o = 0; o < e.animations.length; o++) {
var a = e.animations[o];
(b = P.a.GetClass("BABYLON.Animation")) && r.animations.push(b.Parse(a));
}
u.a.ParseAnimationRanges(r, e, n);
}
if (
(e.autoAnimate && n.beginAnimation(r, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1),
e.layerMask && !isNaN(e.layerMask) ? (r.layerMask = Math.abs(parseInt(e.layerMask))) : (r.layerMask = 268435455),
e.physicsImpostor && t._PhysicsImpostorParser(n, r, e),
e.lodMeshIds && (r._waitingData.lods = { ids: e.lodMeshIds, distances: e.lodDistances ? e.lodDistances : null, coverages: e.lodCoverages ? e.lodCoverages : null }),
e.instances)
)
for (var d = 0; d < e.instances.length; d++) {
var f = e.instances[d],
m = r.createInstance(f.name);
if (
(f.id && (m.id = f.id),
s.a && (f.tags ? s.a.AddTagsTo(m, f.tags) : s.a.AddTagsTo(m, e.tags)),
(m.position = c.e.FromArray(f.position)),
void 0 !== f.metadata && (m.metadata = f.metadata),
f.parentId && (m._waitingParentId = f.parentId),
f.rotationQuaternion ? (m.rotationQuaternion = c.b.FromArray(f.rotationQuaternion)) : f.rotation && (m.rotation = c.e.FromArray(f.rotation)),
(m.scaling = c.e.FromArray(f.scaling)),
null != f.checkCollisions && null != f.checkCollisions && (m.checkCollisions = f.checkCollisions),
null != f.pickable && null != f.pickable && (m.isPickable = f.pickable),
null != f.showBoundingBox && null != f.showBoundingBox && (m.showBoundingBox = f.showBoundingBox),
null != f.showSubMeshesBoundingBox && null != f.showSubMeshesBoundingBox && (m.showSubMeshesBoundingBox = f.showSubMeshesBoundingBox),
null != f.alphaIndex && null != f.showSubMeshesBoundingBox && (m.alphaIndex = f.alphaIndex),
f.physicsImpostor && t._PhysicsImpostorParser(n, m, f),
f.animations)
) {
for (o = 0; o < f.animations.length; o++) {
var b;
(a = f.animations[o]), (b = P.a.GetClass("BABYLON.Animation")) && m.animations.push(b.Parse(a));
}
u.a.ParseAnimationRanges(m, f, n), f.autoAnimate && n.beginAnimation(m, f.autoAnimateFrom, f.autoAnimateTo, f.autoAnimateLoop, f.autoAnimateSpeed || 1);
}
}
return r;
}),
(t.CreateRibbon = function (e, t, n, i, r, o, a, s, c) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateDisc = function (e, t, n, i, r, o) {
throw (void 0 === i && (i = null), x.a.WarnImport("MeshBuilder"));
}),
(t.CreateBox = function (e, t, n, i, r) {
throw (void 0 === n && (n = null), x.a.WarnImport("MeshBuilder"));
}),
(t.CreateSphere = function (e, t, n, i, r, o) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateHemisphere = function (e, t, n, i) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateCylinder = function (e, t, n, i, r, o, a, s, c) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateTorus = function (e, t, n, i, r, o, a) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateTorusKnot = function (e, t, n, i, r, o, a, s, c, l) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateLines = function (e, t, n, i, r) {
throw (void 0 === n && (n = null), void 0 === i && (i = !1), void 0 === r && (r = null), x.a.WarnImport("MeshBuilder"));
}),
(t.CreateDashedLines = function (e, t, n, i, r, o, a, s) {
throw (void 0 === o && (o = null), x.a.WarnImport("MeshBuilder"));
}),
(t.CreatePolygon = function (e, t, n, i, r, o, a) {
throw (void 0 === a && (a = earcut), x.a.WarnImport("MeshBuilder"));
}),
(t.ExtrudePolygon = function (e, t, n, i, r, o, a, s) {
throw (void 0 === s && (s = earcut), x.a.WarnImport("MeshBuilder"));
}),
(t.ExtrudeShape = function (e, t, n, i, r, o, a, s, c, l) {
throw (void 0 === a && (a = null), x.a.WarnImport("MeshBuilder"));
}),
(t.ExtrudeShapeCustom = function (e, t, n, i, r, o, a, s, c, l, u, h) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateLathe = function (e, t, n, i, r, o, a) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreatePlane = function (e, t, n, i, r) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateGround = function (e, t, n, i, r, o) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateTiledGround = function (e, t, n, i, r, o, a, s, c) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateGroundFromHeightMap = function (e, t, n, i, r, o, a, s, c, l, u) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateTube = function (e, t, n, i, r, o, a, s, c, l) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreatePolyhedron = function (e, t, n) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateIcoSphere = function (e, t, n) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.CreateDecal = function (e, t, n, i, r, o) {
throw x.a.WarnImport("MeshBuilder");
}),
(t.prototype.setPositionsForCPUSkinning = function () {
var e = this._internalMeshDataInfo;
if (!e._sourcePositions) {
var t = this.getVerticesData(h.b.PositionKind);
if (!t) return e._sourcePositions;
(e._sourcePositions = new Float32Array(t)), this.isVertexBufferUpdatable(h.b.PositionKind) || this.setVerticesData(h.b.PositionKind, t, !0);
}
return e._sourcePositions;
}),
(t.prototype.setNormalsForCPUSkinning = function () {
var e = this._internalMeshDataInfo;
if (!e._sourceNormals) {
var t = this.getVerticesData(h.b.NormalKind);
if (!t) return e._sourceNormals;
(e._sourceNormals = new Float32Array(t)), this.isVertexBufferUpdatable(h.b.NormalKind) || this.setVerticesData(h.b.NormalKind, t, !0);
}
return e._sourceNormals;
}),
(t.prototype.applySkeleton = function (e) {
if (!this.geometry) return this;
if (this.geometry._softwareSkinningFrameId == this.getScene().getFrameId()) return this;
if (((this.geometry._softwareSkinningFrameId = this.getScene().getFrameId()), !this.isVerticesDataPresent(h.b.PositionKind))) return this;
if (!this.isVerticesDataPresent(h.b.NormalKind)) return this;
if (!this.isVerticesDataPresent(h.b.MatricesIndicesKind)) return this;
if (!this.isVerticesDataPresent(h.b.MatricesWeightsKind)) return this;
var t = this._internalMeshDataInfo;
if (!t._sourcePositions) {
var n = this.subMeshes.slice();
this.setPositionsForCPUSkinning(), (this.subMeshes = n);
}
t._sourceNormals || this.setNormalsForCPUSkinning();
var i = this.getVerticesData(h.b.PositionKind);
if (!i) return this;
i instanceof Float32Array || (i = new Float32Array(i));
var r = this.getVerticesData(h.b.NormalKind);
if (!r) return this;
r instanceof Float32Array || (r = new Float32Array(r));
var o = this.getVerticesData(h.b.MatricesIndicesKind),
a = this.getVerticesData(h.b.MatricesWeightsKind);
if (!a || !o) return this;
for (
var s,
l = this.numBoneInfluencers > 4,
u = l ? this.getVerticesData(h.b.MatricesIndicesExtraKind) : null,
d = l ? this.getVerticesData(h.b.MatricesWeightsExtraKind) : null,
p = e.getTransformMatrices(this),
f = c.e.Zero(),
m = new c.a(),
g = new c.a(),
b = 0,
_ = 0;
_ < i.length;
_ += 3, b += 4
) {
var v;
for (s = 0; s < 4; s++) (v = a[b + s]) > 0 && (c.a.FromFloat32ArrayToRefScaled(p, Math.floor(16 * o[b + s]), v, g), m.addToSelf(g));
if (l) for (s = 0; s < 4; s++) (v = d[b + s]) > 0 && (c.a.FromFloat32ArrayToRefScaled(p, Math.floor(16 * u[b + s]), v, g), m.addToSelf(g));
c.e.TransformCoordinatesFromFloatsToRef(t._sourcePositions[_], t._sourcePositions[_ + 1], t._sourcePositions[_ + 2], m, f),
f.toArray(i, _),
c.e.TransformNormalFromFloatsToRef(t._sourceNormals[_], t._sourceNormals[_ + 1], t._sourceNormals[_ + 2], m, f),
f.toArray(r, _),
m.reset();
}
return this.updateVerticesData(h.b.PositionKind, i), this.updateVerticesData(h.b.NormalKind, r), this;
}),
(t.MinMax = function (e) {
var t = null,
n = null;
return (
e.forEach(function (e) {
var i = e.getBoundingInfo().boundingBox;
t && n ? (t.minimizeInPlace(i.minimumWorld), n.maximizeInPlace(i.maximumWorld)) : ((t = i.minimumWorld), (n = i.maximumWorld));
}),
t && n ? { min: t, max: n } : { min: c.e.Zero(), max: c.e.Zero() }
);
}),
(t.Center = function (e) {
var n = e instanceof Array ? t.MinMax(e) : e;
return c.e.Center(n.min, n.max);
}),
(t.MergeMeshes = function (e, n, i, r, o, a) {
var s;
if ((void 0 === n && (n = !0), !i)) {
var c = 0;
for (s = 0; s < e.length; s++)
if (e[s] && (c += e[s].getTotalVertices()) >= 65536)
return C.a.Warn("Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices"), null;
}
if (a) {
var l,
u,
h = null;
o = !1;
}
var p,
f = new Array(),
g = new Array(),
b = null,
v = new Array(),
y = null;
for (s = 0; s < e.length; s++)
if (e[s]) {
var P = e[s];
if (P.isAnInstance) return C.a.Warn("Cannot merge instance meshes."), null;
var x = P.computeWorldMatrix(!0);
if (((p = d.a.ExtractFromMesh(P, !0, !0)).transform(x), b ? b.merge(p, i) : ((b = p), (y = P)), o && v.push(P.getTotalIndices()), a))
if (P.material) {
var T = P.material;
if (T instanceof _.a) {
for (u = 0; u < T.subMaterials.length; u++) f.indexOf(T.subMaterials[u]) < 0 && f.push(T.subMaterials[u]);
for (l = 0; l < P.subMeshes.length; l++) g.push(f.indexOf(T.subMaterials[P.subMeshes[l].materialIndex])), v.push(P.subMeshes[l].indexCount);
} else for (f.indexOf(T) < 0 && f.push(T), l = 0; l < P.subMeshes.length; l++) g.push(f.indexOf(T)), v.push(P.subMeshes[l].indexCount);
} else for (l = 0; l < P.subMeshes.length; l++) g.push(0), v.push(P.subMeshes[l].indexCount);
}
if (((y = y), r || (r = new t(y.name + "_merged", y.getScene())), b.applyToMesh(r), (r.checkCollisions = y.checkCollisions), n)) for (s = 0; s < e.length; s++) e[s] && e[s].dispose();
if (o || a) {
r.releaseSubMeshes(), (s = 0);
for (var S = 0; s < v.length; ) m.b.CreateFromIndices(0, S, v[s], r), (S += v[s]), s++;
}
if (a) {
for ((h = new _.a(y.name + "_merged", y.getScene())).subMaterials = f, l = 0; l < r.subMeshes.length; l++) r.subMeshes[l].materialIndex = g[l];
r.material = h;
} else r.material = y.material;
return r;
}),
(t.prototype.addInstance = function (e) {
(e._indexInSourceMeshInstanceArray = this.instances.length), this.instances.push(e);
}),
(t.prototype.removeInstance = function (e) {
var t = e._indexInSourceMeshInstanceArray;
if (-1 != t) {
if (t !== this.instances.length - 1) {
var n = this.instances[this.instances.length - 1];
(this.instances[t] = n), (n._indexInSourceMeshInstanceArray = t);
}
(e._indexInSourceMeshInstanceArray = -1), this.instances.pop();
}
}),
(t.FRONTSIDE = d.a.FRONTSIDE),
(t.BACKSIDE = d.a.BACKSIDE),
(t.DOUBLESIDE = d.a.DOUBLESIDE),
(t.DEFAULTSIDE = d.a.DEFAULTSIDE),
(t.NO_CAP = 0),
(t.CAP_START = 1),
(t.CAP_END = 2),
(t.CAP_ALL = 3),
(t.NO_FLIP = 0),
(t.FLIP_TILE = 1),
(t.ROTATE_TILE = 2),
(t.FLIP_ROW = 3),
(t.ROTATE_ROW = 4),
(t.FLIP_N_ROTATE_TILE = 5),
(t.FLIP_N_ROTATE_ROW = 6),
(t.CENTER = 0),
(t.LEFT = 1),
(t.RIGHT = 2),
(t.TOP = 3),
(t.BOTTOM = 4),
(t._GroundMeshParser = function (e, t) {
throw x.a.WarnImport("GroundMesh");
}),
t
);
})(f.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e._AddLogEntry = function (t) {
(e._LogCache = t + e._LogCache), e.OnNewCacheEntry && e.OnNewCacheEntry(t);
}),
(e._FormatMessage = function (e) {
var t = function (e) {
return e < 10 ? "0" + e : "" + e;
},
n = new Date();
return "[" + t(n.getHours()) + ":" + t(n.getMinutes()) + ":" + t(n.getSeconds()) + "]: " + e;
}),
(e._LogDisabled = function (e) {}),
(e._LogEnabled = function (t) {
var n = "
" + e._FormatMessage(t) + "
";
e._AddLogEntry(n);
}),
(e._WarnDisabled = function (e) {}),
(e._WarnEnabled = function (t) {
var n = "" + e._FormatMessage(t) + "
";
e._AddLogEntry(n);
}),
(e._ErrorDisabled = function (e) {}),
(e._ErrorEnabled = function (t) {
e.errorsCount++;
var n = "" + e._FormatMessage(t) + "
";
e._AddLogEntry(n);
}),
Object.defineProperty(e, "LogCache", {
get: function () {
return e._LogCache;
},
enumerable: !0,
configurable: !0,
}),
(e.ClearLogCache = function () {
(e._LogCache = ""), (e.errorsCount = 0);
}),
Object.defineProperty(e, "LogLevels", {
set: function (t) {
(t & e.MessageLogLevel) === e.MessageLogLevel ? (e.Log = e._LogEnabled) : (e.Log = e._LogDisabled),
(t & e.WarningLogLevel) === e.WarningLogLevel ? (e.Warn = e._WarnEnabled) : (e.Warn = e._WarnDisabled),
(t & e.ErrorLogLevel) === e.ErrorLogLevel ? (e.Error = e._ErrorEnabled) : (e.Error = e._ErrorDisabled);
},
enumerable: !0,
configurable: !0,
}),
(e.NoneLogLevel = 0),
(e.MessageLogLevel = 1),
(e.WarningLogLevel = 2),
(e.ErrorLogLevel = 4),
(e.AllLogLevel = 7),
(e._LogCache = ""),
(e.errorsCount = 0),
(e.Log = e._LogEnabled),
(e.Warn = e._WarnEnabled),
(e.Error = e._ErrorEnabled),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(10),
r = n(18),
o = n(25),
a = n(4),
s = n(57),
c = n(5),
l = (function () {
function e() {}
return (
(e.BindEyePosition = function (e, t) {
if (t._forcedViewPosition) e.setVector3("vEyePosition", t._forcedViewPosition);
else {
var n = t.activeCamera.globalPosition;
n || (n = t.activeCamera.devicePosition), e.setVector3("vEyePosition", t._mirroredCameraPosition ? t._mirroredCameraPosition : n);
}
}),
(e.PrepareDefinesForMergedUV = function (e, t, n) {
(t._needUVs = !0), (t[n] = !0), e.getTextureMatrix().isIdentityAs3x2() ? ((t[n + "DIRECTUV"] = e.coordinatesIndex + 1), 0 === e.coordinatesIndex ? (t.MAINUV1 = !0) : (t.MAINUV2 = !0)) : (t[n + "DIRECTUV"] = 0);
}),
(e.BindTextureMatrix = function (e, t, n) {
var i = e.getTextureMatrix();
t.updateMatrix(n + "Matrix", i);
}),
(e.GetFogState = function (e, t) {
return t.fogEnabled && e.applyFog && t.fogMode !== r.a.FOGMODE_NONE;
}),
(e.PrepareDefinesForMisc = function (e, t, n, i, r, o, a) {
a._areMiscDirty && ((a.LOGARITHMICDEPTH = n), (a.POINTSIZE = i), (a.FOG = r && this.GetFogState(e, t)), (a.NONUNIFORMSCALING = e.nonUniformScaling), (a.ALPHATEST = o));
}),
(e.PrepareDefinesForFrameBoundValues = function (e, t, n, i, r) {
void 0 === r && (r = null);
var o,
a,
s,
c,
l,
u,
h = !1;
(o = null == r ? void 0 !== e.clipPlane && null !== e.clipPlane : r),
(a = null == r ? void 0 !== e.clipPlane2 && null !== e.clipPlane2 : r),
(s = null == r ? void 0 !== e.clipPlane3 && null !== e.clipPlane3 : r),
(c = null == r ? void 0 !== e.clipPlane4 && null !== e.clipPlane4 : r),
(l = null == r ? void 0 !== e.clipPlane5 && null !== e.clipPlane5 : r),
(u = null == r ? void 0 !== e.clipPlane6 && null !== e.clipPlane6 : r),
n.CLIPPLANE !== o && ((n.CLIPPLANE = o), (h = !0)),
n.CLIPPLANE2 !== a && ((n.CLIPPLANE2 = a), (h = !0)),
n.CLIPPLANE3 !== s && ((n.CLIPPLANE3 = s), (h = !0)),
n.CLIPPLANE4 !== c && ((n.CLIPPLANE4 = c), (h = !0)),
n.CLIPPLANE5 !== l && ((n.CLIPPLANE5 = l), (h = !0)),
n.CLIPPLANE6 !== u && ((n.CLIPPLANE6 = u), (h = !0)),
n.DEPTHPREPASS !== !t.getColorWrite() && ((n.DEPTHPREPASS = !n.DEPTHPREPASS), (h = !0)),
n.INSTANCES !== i && ((n.INSTANCES = i), (h = !0)),
h && n.markAsUnprocessed();
}),
(e.PrepareDefinesForBones = function (e, t) {
if (e.useBones && e.computeBonesUsingShaders && e.skeleton) {
t.NUM_BONE_INFLUENCERS = e.numBoneInfluencers;
var n = void 0 !== t.BONETEXTURE;
e.skeleton.isUsingTextureForMatrices && n ? (t.BONETEXTURE = !0) : ((t.BonesPerMesh = e.skeleton.bones.length + 1), (t.BONETEXTURE = !n && void 0));
} else (t.NUM_BONE_INFLUENCERS = 0), (t.BonesPerMesh = 0);
}),
(e.PrepareDefinesForMorphTargets = function (e, t) {
var n = e.morphTargetManager;
n
? ((t.MORPHTARGETS_UV = n.supportsUVs && t.UV1),
(t.MORPHTARGETS_TANGENT = n.supportsTangents && t.TANGENT),
(t.MORPHTARGETS_NORMAL = n.supportsNormals && t.NORMAL),
(t.MORPHTARGETS = n.numInfluencers > 0),
(t.NUM_MORPH_INFLUENCERS = n.numInfluencers))
: ((t.MORPHTARGETS_UV = !1), (t.MORPHTARGETS_TANGENT = !1), (t.MORPHTARGETS_NORMAL = !1), (t.MORPHTARGETS = !1), (t.NUM_MORPH_INFLUENCERS = 0));
}),
(e.PrepareDefinesForAttributes = function (e, t, n, i, r, o) {
if ((void 0 === r && (r = !1), void 0 === o && (o = !0), !t._areAttributesDirty && t._needNormals === t._normals && t._needUVs === t._uvs)) return !1;
if (
((t._normals = t._needNormals),
(t._uvs = t._needUVs),
(t.NORMAL = t._needNormals && e.isVerticesDataPresent(a.b.NormalKind)),
t._needNormals && e.isVerticesDataPresent(a.b.TangentKind) && (t.TANGENT = !0),
t._needUVs ? ((t.UV1 = e.isVerticesDataPresent(a.b.UVKind)), (t.UV2 = e.isVerticesDataPresent(a.b.UV2Kind))) : ((t.UV1 = !1), (t.UV2 = !1)),
n)
) {
var s = e.useVertexColors && e.isVerticesDataPresent(a.b.ColorKind);
(t.VERTEXCOLOR = s), (t.VERTEXALPHA = e.hasVertexAlpha && s && o);
}
return i && this.PrepareDefinesForBones(e, t), r && this.PrepareDefinesForMorphTargets(e, t), !0;
}),
(e.PrepareDefinesForMultiview = function (e, t) {
if (e.activeCamera) {
var n = t.MULTIVIEW;
(t.MULTIVIEW = null !== e.activeCamera.outputRenderTarget && e.activeCamera.outputRenderTarget.getViewCount() > 1), t.MULTIVIEW != n && t.markAsUnprocessed();
}
}),
(e.PrepareDefinesForLight = function (e, t, n, i, r, o, a) {
switch (
((a.needNormals = !0),
void 0 === r["LIGHT" + i] && (a.needRebuild = !0),
(r["LIGHT" + i] = !0),
(r["SPOTLIGHT" + i] = !1),
(r["HEMILIGHT" + i] = !1),
(r["POINTLIGHT" + i] = !1),
(r["DIRLIGHT" + i] = !1),
n.prepareLightSpecificDefines(r, i),
(r["LIGHT_FALLOFF_PHYSICAL" + i] = !1),
(r["LIGHT_FALLOFF_GLTF" + i] = !1),
(r["LIGHT_FALLOFF_STANDARD" + i] = !1),
n.falloffType)
) {
case s.a.FALLOFF_GLTF:
r["LIGHT_FALLOFF_GLTF" + i] = !0;
break;
case s.a.FALLOFF_PHYSICAL:
r["LIGHT_FALLOFF_PHYSICAL" + i] = !0;
break;
case s.a.FALLOFF_STANDARD:
r["LIGHT_FALLOFF_STANDARD" + i] = !0;
}
if (
(o && !n.specular.equalsFloats(0, 0, 0) && (a.specularEnabled = !0),
(r["SHADOW" + i] = !1),
(r["SHADOWCSM" + i] = !1),
(r["SHADOWCSMDEBUG" + i] = !1),
(r["SHADOWCSMNUM_CASCADES" + i] = !1),
(r["SHADOWCSMUSESHADOWMAXZ" + i] = !1),
(r["SHADOWCSMNOBLEND" + i] = !1),
(r["SHADOWCSM_RIGHTHANDED" + i] = !1),
(r["SHADOWPCF" + i] = !1),
(r["SHADOWPCSS" + i] = !1),
(r["SHADOWPOISSON" + i] = !1),
(r["SHADOWESM" + i] = !1),
(r["SHADOWCUBE" + i] = !1),
(r["SHADOWLOWQUALITY" + i] = !1),
(r["SHADOWMEDIUMQUALITY" + i] = !1),
t && t.receiveShadows && e.shadowsEnabled && n.shadowEnabled)
) {
var c = n.getShadowGenerator();
if (c) {
var l = c.getShadowMap();
l && l.renderList && l.renderList.length > 0 && ((a.shadowEnabled = !0), c.prepareDefines(r, i));
}
}
n.lightmapMode != s.a.LIGHTMAP_DEFAULT
? ((a.lightmapMode = !0), (r["LIGHTMAPEXCLUDED" + i] = !0), (r["LIGHTMAPNOSPECULAR" + i] = n.lightmapMode == s.a.LIGHTMAP_SHADOWSONLY))
: ((r["LIGHTMAPEXCLUDED" + i] = !1), (r["LIGHTMAPNOSPECULAR" + i] = !1));
}),
(e.PrepareDefinesForLights = function (e, t, n, i, r, o) {
if ((void 0 === r && (r = 4), void 0 === o && (o = !1), !n._areLightsDirty)) return n._needNormals;
var a = 0,
s = { needNormals: !1, needRebuild: !1, lightmapMode: !1, shadowEnabled: !1, specularEnabled: !1 };
if (e.lightsEnabled && !o)
for (var c = 0, l = t.lightSources; c < l.length; c++) {
var u = l[c];
if ((this.PrepareDefinesForLight(e, t, u, a, n, i, s), ++a === r)) break;
}
(n.SPECULARTERM = s.specularEnabled), (n.SHADOWS = s.shadowEnabled);
for (var h = a; h < r; h++)
void 0 !== n["LIGHT" + h] &&
((n["LIGHT" + h] = !1),
(n["HEMILIGHT" + h] = !1),
(n["POINTLIGHT" + h] = !1),
(n["DIRLIGHT" + h] = !1),
(n["SPOTLIGHT" + h] = !1),
(n["SHADOW" + h] = !1),
(n["SHADOWCSM" + h] = !1),
(n["SHADOWCSMDEBUG" + h] = !1),
(n["SHADOWCSMNUM_CASCADES" + h] = !1),
(n["SHADOWCSMUSESHADOWMAXZ" + h] = !1),
(n["SHADOWCSMNOBLEND" + h] = !1),
(n["SHADOWCSM_RIGHTHANDED" + h] = !1),
(n["SHADOWPCF" + h] = !1),
(n["SHADOWPCSS" + h] = !1),
(n["SHADOWPOISSON" + h] = !1),
(n["SHADOWESM" + h] = !1),
(n["SHADOWCUBE" + h] = !1),
(n["SHADOWLOWQUALITY" + h] = !1),
(n["SHADOWMEDIUMQUALITY" + h] = !1));
var d = e.getEngine().getCaps();
return (
void 0 === n.SHADOWFLOAT && (s.needRebuild = !0),
(n.SHADOWFLOAT = s.shadowEnabled && ((d.textureFloatRender && d.textureFloatLinearFiltering) || (d.textureHalfFloatRender && d.textureHalfFloatLinearFiltering))),
(n.LIGHTMAPEXCLUDED = s.lightmapMode),
s.needRebuild && n.rebuild(),
s.needNormals
);
}),
(e.PrepareUniformsAndSamplersForLight = function (e, t, n, i, r) {
void 0 === r && (r = null),
t.push("vLightData" + e, "vLightDiffuse" + e, "vLightSpecular" + e, "vLightDirection" + e, "vLightFalloff" + e, "vLightGround" + e, "lightMatrix" + e, "shadowsInfo" + e, "depthValues" + e),
r && r.push("Light" + e),
n.push("shadowSampler" + e),
n.push("depthSampler" + e),
t.push("viewFrustumZ" + e, "cascadeBlendFactor" + e, "lightSizeUVCorrection" + e, "depthCorrection" + e, "penumbraDarkness" + e, "frustumLengths" + e),
i && (n.push("projectionLightSampler" + e), t.push("textureProjectionMatrix" + e));
}),
(e.PrepareUniformsAndSamplersList = function (e, t, n, i) {
var r;
void 0 === i && (i = 4);
var o = null;
if (e.uniformsNames) {
var a = e;
(r = a.uniformsNames), (o = a.uniformBuffersNames), (t = a.samplers), (n = a.defines), (i = a.maxSimultaneousLights || 0);
} else (r = e), t || (t = []);
for (var s = 0; s < i && n["LIGHT" + s]; s++) this.PrepareUniformsAndSamplersForLight(s, r, t, n["PROJECTEDLIGHTTEXTURE" + s], o);
n.NUM_MORPH_INFLUENCERS && r.push("morphTargetInfluences");
}),
(e.HandleFallbacksForShadows = function (e, t, n, i) {
void 0 === n && (n = 4), void 0 === i && (i = 0);
for (var r = 0, o = 0; o < n && e["LIGHT" + o]; o++)
o > 0 && ((r = i + o), t.addFallback(r, "LIGHT" + o)),
e.SHADOWS ||
(e["SHADOW" + o] && t.addFallback(i, "SHADOW" + o),
e["SHADOWPCF" + o] && t.addFallback(i, "SHADOWPCF" + o),
e["SHADOWPCSS" + o] && t.addFallback(i, "SHADOWPCSS" + o),
e["SHADOWPOISSON" + o] && t.addFallback(i, "SHADOWPOISSON" + o),
e["SHADOWESM" + o] && t.addFallback(i, "SHADOWESM" + o));
return r++;
}),
(e.PrepareAttributesForMorphTargetsInfluencers = function (e, t, n) {
(this._TmpMorphInfluencers.NUM_MORPH_INFLUENCERS = n), this.PrepareAttributesForMorphTargets(e, t, this._TmpMorphInfluencers);
}),
(e.PrepareAttributesForMorphTargets = function (e, t, n) {
var r = n.NUM_MORPH_INFLUENCERS;
if (r > 0 && o.a.LastCreatedEngine)
for (
var s = o.a.LastCreatedEngine.getCaps().maxVertexAttribs, c = t.morphTargetManager, l = c && c.supportsNormals && n.NORMAL, u = c && c.supportsTangents && n.TANGENT, h = c && c.supportsUVs && n.UV1, d = 0;
d < r;
d++
)
e.push(a.b.PositionKind + d),
l && e.push(a.b.NormalKind + d),
u && e.push(a.b.TangentKind + d),
h && e.push(a.b.UVKind + "_" + d),
e.length > s && i.a.Error("Cannot add more vertex attributes for mesh " + t.name);
}),
(e.PrepareAttributesForBones = function (e, t, n, i) {
n.NUM_BONE_INFLUENCERS > 0 &&
(i.addCPUSkinningFallback(0, t), e.push(a.b.MatricesIndicesKind), e.push(a.b.MatricesWeightsKind), n.NUM_BONE_INFLUENCERS > 4 && (e.push(a.b.MatricesIndicesExtraKind), e.push(a.b.MatricesWeightsExtraKind)));
}),
(e.PrepareAttributesForInstances = function (e, t) {
t.INSTANCES && this.PushAttributesForInstances(e);
}),
(e.PushAttributesForInstances = function (e) {
e.push("world0"), e.push("world1"), e.push("world2"), e.push("world3");
}),
(e.BindLightProperties = function (e, t, n) {
e.transferToEffect(t, n + "");
}),
(e.BindLight = function (e, t, n, i, r, o) {
void 0 === o && (o = !1), e._bindLight(t, n, i, r, o);
}),
(e.BindLights = function (e, t, n, i, r, o) {
void 0 === r && (r = 4), void 0 === o && (o = !1);
for (var a = Math.min(t.lightSources.length, r), s = 0; s < a; s++) {
var c = t.lightSources[s];
this.BindLight(c, s, e, n, "boolean" == typeof i ? i : i.SPECULARTERM, o);
}
}),
(e.BindFogParameters = function (e, t, n, i) {
void 0 === i && (i = !1),
e.fogEnabled &&
t.applyFog &&
e.fogMode !== r.a.FOGMODE_NONE &&
(n.setFloat4("vFogInfos", e.fogMode, e.fogStart, e.fogEnd, e.fogDensity),
i ? (e.fogColor.toLinearSpaceToRef(this._tempFogColor), n.setColor3("vFogColor", this._tempFogColor)) : n.setColor3("vFogColor", e.fogColor));
}),
(e.BindBonesParameters = function (e, t) {
if (t && e && (e.computeBonesUsingShaders && t._bonesComputationForcedToCPU && (e.computeBonesUsingShaders = !1), e.useBones && e.computeBonesUsingShaders && e.skeleton)) {
var n = e.skeleton;
if (n.isUsingTextureForMatrices && t.getUniformIndex("boneTextureWidth") > -1) {
var i = n.getTransformMatrixTexture(e);
t.setTexture("boneSampler", i), t.setFloat("boneTextureWidth", 4 * (n.bones.length + 1));
} else {
var r = n.getTransformMatrices(e);
r && t.setMatrices("mBones", r);
}
}
}),
(e.BindMorphTargetParameters = function (e, t) {
var n = e.morphTargetManager;
e && n && t.setFloatArray("morphTargetInfluences", n.influences);
}),
(e.BindLogDepth = function (e, t, n) {
e.LOGARITHMICDEPTH && t.setFloat("logarithmicDepthConstant", 2 / (Math.log(n.activeCamera.maxZ + 1) / Math.LN2));
}),
(e.BindClipPlane = function (e, t) {
if (t.clipPlane) {
var n = t.clipPlane;
e.setFloat4("vClipPlane", n.normal.x, n.normal.y, n.normal.z, n.d);
}
if (t.clipPlane2) {
n = t.clipPlane2;
e.setFloat4("vClipPlane2", n.normal.x, n.normal.y, n.normal.z, n.d);
}
if (t.clipPlane3) {
n = t.clipPlane3;
e.setFloat4("vClipPlane3", n.normal.x, n.normal.y, n.normal.z, n.d);
}
if (t.clipPlane4) {
n = t.clipPlane4;
e.setFloat4("vClipPlane4", n.normal.x, n.normal.y, n.normal.z, n.d);
}
if (t.clipPlane5) {
n = t.clipPlane5;
e.setFloat4("vClipPlane5", n.normal.x, n.normal.y, n.normal.z, n.d);
}
if (t.clipPlane6) {
n = t.clipPlane6;
e.setFloat4("vClipPlane6", n.normal.x, n.normal.y, n.normal.z, n.d);
}
}),
(e._TmpMorphInfluencers = { NUM_MORPH_INFLUENCERS: 0 }),
(e._tempFogColor = c.a.Black()),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return g;
}),
n.d(t, "c", function () {
return b;
}),
n.d(t, "a", function () {
return _;
});
var i = n(6),
r = n(56),
o = n(10),
a = n(51),
s = n(76),
c = n(22),
l = n(97),
u = n(25),
h = n(74),
d = n(186),
p = n(169),
f = n(164),
m = n(204),
g = (function () {
function e() {}
return (
Object.defineProperty(e, "BaseUrl", {
get: function () {
return h.a.BaseUrl;
},
set: function (e) {
h.a.BaseUrl = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "DefaultRetryStrategy", {
get: function () {
return h.a.DefaultRetryStrategy;
},
set: function (e) {
h.a.DefaultRetryStrategy = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "UseFallbackTexture", {
get: function () {
return u.a.UseFallbackTexture;
},
set: function (e) {
u.a.UseFallbackTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "RegisteredExternalClasses", {
get: function () {
return f.a.RegisteredExternalClasses;
},
set: function (e) {
f.a.RegisteredExternalClasses = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "fallbackTexture", {
get: function () {
return u.a.FallbackTexture;
},
set: function (e) {
u.a.FallbackTexture = e;
},
enumerable: !0,
configurable: !0,
}),
(e.FetchToRef = function (e, t, n, i, r, o) {
var a = 4 * (((Math.abs(e) * n) % n | 0) + ((Math.abs(t) * i) % i | 0) * n);
(o.r = r[a] / 255), (o.g = r[a + 1] / 255), (o.b = r[a + 2] / 255), (o.a = r[a + 3] / 255);
}),
(e.Mix = function (e, t, n) {
return e * (1 - n) + t * n;
}),
(e.Instantiate = function (e) {
return f.a.Instantiate(e);
}),
(e.Slice = function (e, t, n) {
return e.slice ? e.slice(t, n) : Array.prototype.slice.call(e, t, n);
}),
(e.SetImmediate = function (e) {
p.a.SetImmediate(e);
}),
(e.IsExponentOfTwo = function (e) {
var t = 1;
do {
t *= 2;
} while (t < e);
return t === e;
}),
(e.FloatRound = function (t) {
return Math.fround ? Math.fround(t) : (e._tmpFloatArray[0] = t);
}),
(e.GetFilename = function (e) {
var t = e.lastIndexOf("/");
return t < 0 ? e : e.substring(t + 1);
}),
(e.GetFolderPath = function (e, t) {
void 0 === t && (t = !1);
var n = e.lastIndexOf("/");
return n < 0 ? (t ? e : "") : e.substring(0, n + 1);
}),
(e.ToDegrees = function (e) {
return (180 * e) / Math.PI;
}),
(e.ToRadians = function (e) {
return (e * Math.PI) / 180;
}),
(e.MakeArray = function (e, t) {
return !0 === t || (void 0 !== e && null != e) ? (Array.isArray(e) ? e : [e]) : null;
}),
(e.GetPointerPrefix = function () {
var e = "pointer";
return r.a.IsWindowObjectExist() && !window.PointerEvent && r.a.IsNavigatorAvailable() && !navigator.pointerEnabled && (e = "mouse"), e;
}),
(e.SetCorsBehavior = function (e, t) {
h.a.SetCorsBehavior(e, t);
}),
(e.CleanUrl = function (e) {
return (e = e.replace(/#/gm, "%23"));
}),
Object.defineProperty(e, "PreprocessUrl", {
get: function () {
return h.a.PreprocessUrl;
},
set: function (e) {
h.a.PreprocessUrl = e;
},
enumerable: !0,
configurable: !0,
}),
(e.LoadImage = function (e, t, n, i, r) {
return h.a.LoadImage(e, t, n, i, r);
}),
(e.LoadFile = function (e, t, n, i, r, o) {
return h.a.LoadFile(e, t, n, i, r, o);
}),
(e.LoadFileAsync = function (e, t) {
return (
void 0 === t && (t = !0),
new Promise(function (n, i) {
h.a.LoadFile(
e,
function (e) {
n(e);
},
void 0,
void 0,
t,
function (e, t) {
i(t);
}
);
})
);
}),
(e.LoadScript = function (e, t, n, i) {
if (r.a.IsWindowObjectExist()) {
var o = document.getElementsByTagName("head")[0],
a = document.createElement("script");
a.setAttribute("type", "text/javascript"),
a.setAttribute("src", e),
i && (a.id = i),
(a.onload = function () {
t && t();
}),
(a.onerror = function (t) {
n && n("Unable to load script '" + e + "'", t);
}),
o.appendChild(a);
}
}),
(e.LoadScriptAsync = function (e, t) {
var n = this;
return new Promise(function (t, i) {
n.LoadScript(
e,
function () {
t();
},
function (e, t) {
i(t);
}
);
});
}),
(e.ReadFileAsDataURL = function (e, t, n) {
var r = new FileReader(),
o = {
onCompleteObservable: new i.c(),
abort: function () {
return r.abort();
},
};
return (
(r.onloadend = function (e) {
o.onCompleteObservable.notifyObservers(o);
}),
(r.onload = function (e) {
t(e.target.result);
}),
(r.onprogress = n),
r.readAsDataURL(e),
o
);
}),
(e.ReadFile = function (e, t, n, i, r) {
return h.a.ReadFile(e, t, n, i, r);
}),
(e.FileAsURL = function (e) {
var t = new Blob([e]);
return (window.URL || window.webkitURL).createObjectURL(t);
}),
(e.Format = function (e, t) {
return void 0 === t && (t = 2), e.toFixed(t);
}),
(e.DeepCopy = function (e, t, n, i) {
a.a.DeepCopy(e, t, n, i);
}),
(e.IsEmpty = function (e) {
for (var t in e) if (e.hasOwnProperty(t)) return !1;
return !0;
}),
(e.RegisterTopRootEvents = function (e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
e.addEventListener(i.name, i.handler, !1);
try {
window.parent && window.parent.addEventListener(i.name, i.handler, !1);
} catch (e) {}
}
}),
(e.UnregisterTopRootEvents = function (e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
e.removeEventListener(i.name, i.handler);
try {
e.parent && e.parent.removeEventListener(i.name, i.handler);
} catch (e) {}
}
}),
(e.DumpFramebuffer = function (t, n, i, r, o, a) {
void 0 === o && (o = "image/png");
for (var s = 4 * t, c = n / 2, l = i.readPixels(0, 0, t, n), u = 0; u < c; u++)
for (var h = 0; h < s; h++) {
var d = h + u * s,
p = h + (n - u - 1) * s,
f = l[d];
(l[d] = l[p]), (l[p] = f);
}
e._ScreenshotCanvas || (e._ScreenshotCanvas = document.createElement("canvas")), (e._ScreenshotCanvas.width = t), (e._ScreenshotCanvas.height = n);
var m = e._ScreenshotCanvas.getContext("2d");
if (m) {
var g = m.createImageData(t, n);
g.data.set(l), m.putImageData(g, 0, 0), e.EncodeScreenshotCanvasData(r, o, a);
}
}),
(e.ToBlob = function (e, t, n) {
void 0 === n && (n = "image/png"),
e.toBlob ||
(e.toBlob = function (e, t, n) {
var i = this;
setTimeout(function () {
for (var r = atob(i.toDataURL(t, n).split(",")[1]), o = r.length, a = new Uint8Array(o), s = 0; s < o; s++) a[s] = r.charCodeAt(s);
e(new Blob([a]));
});
}),
e.toBlob(function (e) {
t(e);
}, n);
}),
(e.EncodeScreenshotCanvasData = function (t, n, i) {
(void 0 === n && (n = "image/png"), t)
? t(e._ScreenshotCanvas.toDataURL(n))
: this.ToBlob(
e._ScreenshotCanvas,
function (t) {
if ("download" in document.createElement("a")) {
if (!i) {
var n = new Date(),
r = (n.getFullYear() + "-" + (n.getMonth() + 1)).slice(2) + "-" + n.getDate() + "_" + n.getHours() + "-" + ("0" + n.getMinutes()).slice(-2);
i = "screenshot_" + r + ".png";
}
e.Download(t, i);
} else {
var o = URL.createObjectURL(t),
a = window.open("");
if (!a) return;
var s = a.document.createElement("img");
(s.onload = function () {
URL.revokeObjectURL(o);
}),
(s.src = o),
a.document.body.appendChild(s);
}
},
n
);
}),
(e.Download = function (e, t) {
if (navigator && navigator.msSaveBlob) navigator.msSaveBlob(e, t);
else {
var n = window.URL.createObjectURL(e),
i = document.createElement("a");
document.body.appendChild(i),
(i.style.display = "none"),
(i.href = n),
(i.download = t),
i.addEventListener("click", function () {
i.parentElement && i.parentElement.removeChild(i);
}),
i.click(),
window.URL.revokeObjectURL(n);
}
}),
(e.CreateScreenshot = function (e, t, n, i, r) {
throw (void 0 === r && (r = "image/png"), c.a.WarnImport("ScreenshotTools"));
}),
(e.CreateScreenshotAsync = function (e, t, n, i) {
throw (void 0 === i && (i = "image/png"), c.a.WarnImport("ScreenshotTools"));
}),
(e.CreateScreenshotUsingRenderTarget = function (e, t, n, i, r, o, a, s) {
throw (void 0 === r && (r = "image/png"), void 0 === o && (o = 1), void 0 === a && (a = !1), c.a.WarnImport("ScreenshotTools"));
}),
(e.CreateScreenshotUsingRenderTargetAsync = function (e, t, n, i, r, o, a) {
throw (void 0 === i && (i = "image/png"), void 0 === r && (r = 1), void 0 === o && (o = !1), c.a.WarnImport("ScreenshotTools"));
}),
(e.RandomId = function () {
return m.a.RandomId();
}),
(e.IsBase64 = function (e) {
return !(e.length < 5) && "data:" === e.substr(0, 5);
}),
(e.DecodeBase64 = function (e) {
for (var t = atob(e.split(",")[1]), n = t.length, i = new Uint8Array(new ArrayBuffer(n)), r = 0; r < n; r++) i[r] = t.charCodeAt(r);
return i.buffer;
}),
(e.GetAbsoluteUrl = function (e) {
var t = document.createElement("a");
return (t.href = e), t.href;
}),
Object.defineProperty(e, "errorsCount", {
get: function () {
return o.a.errorsCount;
},
enumerable: !0,
configurable: !0,
}),
(e.Log = function (e) {
o.a.Log(e);
}),
(e.Warn = function (e) {
o.a.Warn(e);
}),
(e.Error = function (e) {
o.a.Error(e);
}),
Object.defineProperty(e, "LogCache", {
get: function () {
return o.a.LogCache;
},
enumerable: !0,
configurable: !0,
}),
(e.ClearLogCache = function () {
o.a.ClearLogCache();
}),
Object.defineProperty(e, "LogLevels", {
set: function (e) {
o.a.LogLevels = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "PerformanceLogLevel", {
set: function (t) {
return (t & e.PerformanceUserMarkLogLevel) === e.PerformanceUserMarkLogLevel
? ((e.StartPerformanceCounter = e._StartUserMark), void (e.EndPerformanceCounter = e._EndUserMark))
: (t & e.PerformanceConsoleLogLevel) === e.PerformanceConsoleLogLevel
? ((e.StartPerformanceCounter = e._StartPerformanceConsole), void (e.EndPerformanceCounter = e._EndPerformanceConsole))
: ((e.StartPerformanceCounter = e._StartPerformanceCounterDisabled), void (e.EndPerformanceCounter = e._EndPerformanceCounterDisabled));
},
enumerable: !0,
configurable: !0,
}),
(e._StartPerformanceCounterDisabled = function (e, t) {}),
(e._EndPerformanceCounterDisabled = function (e, t) {}),
(e._StartUserMark = function (t, n) {
if ((void 0 === n && (n = !0), !e._performance)) {
if (!r.a.IsWindowObjectExist()) return;
e._performance = window.performance;
}
n && e._performance.mark && e._performance.mark(t + "-Begin");
}),
(e._EndUserMark = function (t, n) {
void 0 === n && (n = !0), n && e._performance.mark && (e._performance.mark(t + "-End"), e._performance.measure(t, t + "-Begin", t + "-End"));
}),
(e._StartPerformanceConsole = function (t, n) {
void 0 === n && (n = !0), n && (e._StartUserMark(t, n), console.time);
}),
(e._EndPerformanceConsole = function (t, n) {
void 0 === n && (n = !0), n && e._EndUserMark(t, n);
}),
Object.defineProperty(e, "Now", {
get: function () {
return s.a.Now;
},
enumerable: !0,
configurable: !0,
}),
(e.GetClassName = function (e, t) {
void 0 === t && (t = !1);
var n = null;
if (!t && e.getClassName) n = e.getClassName();
else {
if (e instanceof Object) n = (t ? e : Object.getPrototypeOf(e)).constructor.__bjsclassName__;
n || (n = typeof e);
}
return n;
}),
(e.First = function (e, t) {
for (var n = 0, i = e; n < i.length; n++) {
var r = i[n];
if (t(r)) return r;
}
return null;
}),
(e.getFullClassName = function (e, t) {
void 0 === t && (t = !1);
var n = null,
i = null;
if (!t && e.getClassName) n = e.getClassName();
else {
if (e instanceof Object) {
var r = t ? e : Object.getPrototypeOf(e);
(n = r.constructor.__bjsclassName__), (i = r.constructor.__bjsmoduleName__);
}
n || (n = typeof e);
}
return n ? (null != i ? i + "." : "") + n : null;
}),
(e.DelayAsync = function (e) {
return new Promise(function (t) {
setTimeout(function () {
t();
}, e);
});
}),
(e.IsSafari = function () {
return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
}),
(e.UseCustomRequestHeaders = !1),
(e.CustomRequestHeaders = l.a.CustomRequestHeaders),
(e.CorsBehavior = "anonymous"),
(e._tmpFloatArray = new Float32Array(1)),
(e.GetDOMTextContent = r.a.GetDOMTextContent),
(e.NoneLogLevel = o.a.NoneLogLevel),
(e.MessageLogLevel = o.a.MessageLogLevel),
(e.WarningLogLevel = o.a.WarningLogLevel),
(e.ErrorLogLevel = o.a.ErrorLogLevel),
(e.AllLogLevel = o.a.AllLogLevel),
(e.IsWindowObjectExist = r.a.IsWindowObjectExist),
(e.PerformanceNoneLogLevel = 0),
(e.PerformanceUserMarkLogLevel = 1),
(e.PerformanceConsoleLogLevel = 2),
(e.StartPerformanceCounter = e._StartPerformanceCounterDisabled),
(e.EndPerformanceCounter = e._EndPerformanceCounterDisabled),
e
);
})();
function b(e, t) {
return function (n) {
(n.__bjsclassName__ = e), (n.__bjsmoduleName__ = null != t ? t : null);
};
}
var _ = (function () {
function e(e, t, n, i) {
void 0 === i && (i = 0), (this.iterations = e), (this.index = i - 1), (this._done = !1), (this._fn = t), (this._successCallback = n);
}
return (
(e.prototype.executeNext = function () {
this._done || (this.index + 1 < this.iterations ? (++this.index, this._fn(this)) : this.breakLoop());
}),
(e.prototype.breakLoop = function () {
(this._done = !0), this._successCallback();
}),
(e.Run = function (t, n, i, r) {
void 0 === r && (r = 0);
var o = new e(t, n, i, r);
return o.executeNext(), o;
}),
(e.SyncAsyncForLoop = function (t, n, i, r, o, a) {
return (
void 0 === a && (a = 0),
e.Run(
Math.ceil(t / n),
function (e) {
o && o()
? e.breakLoop()
: setTimeout(function () {
for (var r = 0; r < n; ++r) {
var a = e.index * n + r;
if (a >= t) break;
if ((i(a), o && o())) {
e.breakLoop();
break;
}
}
e.executeNext();
}, a);
},
r
)
);
}),
e
);
})();
(u.a.FallbackTexture =
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z"),
d.a.Apply();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.GetClass = function (e) {
return this.RegisteredTypes && this.RegisteredTypes[e] ? this.RegisteredTypes[e] : null;
}),
(e.RegisteredTypes = {}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return p;
});
var i = n(2),
r = n(6),
o = n(56),
a = n(25),
s = n(22),
c = n(38),
l = n(187),
u = n(69),
h = n(126),
d = n(10);
(c.a.prototype.setAlphaConstants = function (e, t, n, i) {
this._alphaState.setAlphaBlendConstants(e, t, n, i);
}),
(c.a.prototype.setAlphaMode = function (e, t) {
if ((void 0 === t && (t = !1), this._alphaMode !== e)) {
switch (e) {
case 0:
this._alphaState.alphaBlend = !1;
break;
case 7:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 8:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0);
break;
case 2:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 6:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ZERO, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 1:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 3:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 4:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR, this._gl.ZERO, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 5:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 9:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR, this._gl.ONE_MINUS_CONSTANT_COLOR, this._gl.CONSTANT_ALPHA, this._gl.ONE_MINUS_CONSTANT_ALPHA), (this._alphaState.alphaBlend = !0);
break;
case 10:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0);
break;
case 11:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0);
break;
case 12:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ZERO), (this._alphaState.alphaBlend = !0);
break;
case 13:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE_MINUS_DST_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0);
break;
case 14:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0);
break;
case 15:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ZERO), (this._alphaState.alphaBlend = !0);
break;
case 16:
this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ZERO, this._gl.ONE), (this._alphaState.alphaBlend = !0);
}
t || (this.depthCullingState.depthMask = 0 === e), (this._alphaMode = e);
}
}),
(c.a.prototype.getAlphaMode = function () {
return this._alphaMode;
}),
(c.a.prototype.setAlphaEquation = function (e) {
if (this._alphaEquation !== e) {
switch (e) {
case 0:
this._alphaState.setAlphaEquationParameters(this._gl.FUNC_ADD, this._gl.FUNC_ADD);
break;
case 1:
this._alphaState.setAlphaEquationParameters(this._gl.FUNC_SUBTRACT, this._gl.FUNC_SUBTRACT);
break;
case 2:
this._alphaState.setAlphaEquationParameters(this._gl.FUNC_REVERSE_SUBTRACT, this._gl.FUNC_REVERSE_SUBTRACT);
break;
case 3:
this._alphaState.setAlphaEquationParameters(this._gl.MAX, this._gl.MAX);
break;
case 4:
this._alphaState.setAlphaEquationParameters(this._gl.MIN, this._gl.MIN);
break;
case 5:
this._alphaState.setAlphaEquationParameters(this._gl.MIN, this._gl.FUNC_ADD);
}
this._alphaEquation = e;
}
}),
(c.a.prototype.getAlphaEquation = function () {
return this._alphaEquation;
});
var p = (function (e) {
function t(n, i, a, s) {
void 0 === s && (s = !1);
var c = e.call(this, n, i, a, s) || this;
if (
((c.enableOfflineSupport = !1),
(c.disableManifestCheck = !1),
(c.scenes = new Array()),
(c.onNewSceneAddedObservable = new r.c()),
(c.postProcesses = new Array()),
(c.isPointerLock = !1),
(c.onResizeObservable = new r.c()),
(c.onCanvasBlurObservable = new r.c()),
(c.onCanvasFocusObservable = new r.c()),
(c.onCanvasPointerOutObservable = new r.c()),
(c.onBeginFrameObservable = new r.c()),
(c.customAnimationFrameRequester = null),
(c.onEndFrameObservable = new r.c()),
(c.onBeforeShaderCompilationObservable = new r.c()),
(c.onAfterShaderCompilationObservable = new r.c()),
(c._deterministicLockstep = !1),
(c._lockstepMaxSteps = 4),
(c._timeStep = 1 / 60),
(c._fps = 60),
(c._deltaTime = 0),
(c._drawCalls = new u.a()),
(c.canvasTabIndex = 1),
(c.disablePerformanceMonitorInBackground = !1),
(c._performanceMonitor = new l.a()),
!n)
)
return c;
if (((a = c._creationOptions), t.Instances.push(c), n.getContext)) {
var h = n;
if (
((c._onCanvasFocus = function () {
c.onCanvasFocusObservable.notifyObservers(c);
}),
(c._onCanvasBlur = function () {
c.onCanvasBlurObservable.notifyObservers(c);
}),
h.addEventListener("focus", c._onCanvasFocus),
h.addEventListener("blur", c._onCanvasBlur),
(c._onBlur = function () {
c.disablePerformanceMonitorInBackground && c._performanceMonitor.disable(), (c._windowIsBackground = !0);
}),
(c._onFocus = function () {
c.disablePerformanceMonitorInBackground && c._performanceMonitor.enable(), (c._windowIsBackground = !1);
}),
(c._onCanvasPointerOut = function (e) {
c.onCanvasPointerOutObservable.notifyObservers(e);
}),
h.addEventListener("pointerout", c._onCanvasPointerOut),
o.a.IsWindowObjectExist())
) {
var d = c.getHostWindow();
d.addEventListener("blur", c._onBlur), d.addEventListener("focus", c._onFocus);
var p = document;
(c._onFullscreenChange = function () {
void 0 !== p.fullscreen
? (c.isFullscreen = p.fullscreen)
: void 0 !== p.mozFullScreen
? (c.isFullscreen = p.mozFullScreen)
: void 0 !== p.webkitIsFullScreen
? (c.isFullscreen = p.webkitIsFullScreen)
: void 0 !== p.msIsFullScreen && (c.isFullscreen = p.msIsFullScreen),
c.isFullscreen && c._pointerLockRequested && h && t._RequestPointerlock(h);
}),
document.addEventListener("fullscreenchange", c._onFullscreenChange, !1),
document.addEventListener("mozfullscreenchange", c._onFullscreenChange, !1),
document.addEventListener("webkitfullscreenchange", c._onFullscreenChange, !1),
document.addEventListener("msfullscreenchange", c._onFullscreenChange, !1),
(c._onPointerLockChange = function () {
c.isPointerLock = p.mozPointerLockElement === h || p.webkitPointerLockElement === h || p.msPointerLockElement === h || p.pointerLockElement === h;
}),
document.addEventListener("pointerlockchange", c._onPointerLockChange, !1),
document.addEventListener("mspointerlockchange", c._onPointerLockChange, !1),
document.addEventListener("mozpointerlockchange", c._onPointerLockChange, !1),
document.addEventListener("webkitpointerlockchange", c._onPointerLockChange, !1),
!t.audioEngine && a.audioEngine && t.AudioEngineFactory && (t.audioEngine = t.AudioEngineFactory(c.getRenderingCanvas()));
}
c._connectVREvents(),
(c.enableOfflineSupport = void 0 !== t.OfflineProviderFactory),
a.doNotHandleTouchAction || c._disableTouchAction(),
(c._deterministicLockstep = !!a.deterministicLockstep),
(c._lockstepMaxSteps = a.lockstepMaxSteps || 0),
(c._timeStep = a.timeStep || 1 / 60);
}
return c._prepareVRComponent(), a.autoEnableWebVR && c.initWebVR(), c;
}
return (
Object(i.d)(t, e),
Object.defineProperty(t, "NpmPackage", {
get: function () {
return c.a.NpmPackage;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "Version", {
get: function () {
return c.a.Version;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "Instances", {
get: function () {
return a.a.Instances;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "LastCreatedEngine", {
get: function () {
return a.a.LastCreatedEngine;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "LastCreatedScene", {
get: function () {
return a.a.LastCreatedScene;
},
enumerable: !0,
configurable: !0,
}),
(t.MarkAllMaterialsAsDirty = function (e, n) {
for (var i = 0; i < t.Instances.length; i++) for (var r = t.Instances[i], o = 0; o < r.scenes.length; o++) r.scenes[o].markAllMaterialsAsDirty(e, n);
}),
(t.DefaultLoadingScreenFactory = function (e) {
throw s.a.WarnImport("LoadingScreen");
}),
Object.defineProperty(t.prototype, "_supportsHardwareTextureRescaling", {
get: function () {
return !!t._RescalePostProcessFactory;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "performanceMonitor", {
get: function () {
return this._performanceMonitor;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getInputElement = function () {
return this._renderingCanvas;
}),
(t.prototype.getAspectRatio = function (e, t) {
void 0 === t && (t = !1);
var n = e.viewport;
return (this.getRenderWidth(t) * n.width) / (this.getRenderHeight(t) * n.height);
}),
(t.prototype.getScreenAspectRatio = function () {
return this.getRenderWidth(!0) / this.getRenderHeight(!0);
}),
(t.prototype.getRenderingCanvasClientRect = function () {
return this._renderingCanvas ? this._renderingCanvas.getBoundingClientRect() : null;
}),
(t.prototype.getInputElementClientRect = function () {
return this._renderingCanvas ? this.getInputElement().getBoundingClientRect() : null;
}),
(t.prototype.isDeterministicLockStep = function () {
return this._deterministicLockstep;
}),
(t.prototype.getLockstepMaxSteps = function () {
return this._lockstepMaxSteps;
}),
(t.prototype.getTimeStep = function () {
return 1e3 * this._timeStep;
}),
(t.prototype.generateMipMapsForCubemap = function (e, t) {
if ((void 0 === t && (t = !0), e.generateMipMaps)) {
var n = this._gl;
this._bindTextureDirectly(n.TEXTURE_CUBE_MAP, e, !0), n.generateMipmap(n.TEXTURE_CUBE_MAP), t && this._bindTextureDirectly(n.TEXTURE_CUBE_MAP, null);
}
}),
(t.prototype.setState = function (e, t, n, i) {
void 0 === t && (t = 0), void 0 === i && (i = !1), (this._depthCullingState.cull !== e || n) && (this._depthCullingState.cull = e);
var r = this.cullBackFaces ? this._gl.BACK : this._gl.FRONT;
(this._depthCullingState.cullFace !== r || n) && (this._depthCullingState.cullFace = r), this.setZOffset(t);
var o = i ? this._gl.CW : this._gl.CCW;
(this._depthCullingState.frontFace !== o || n) && (this._depthCullingState.frontFace = o);
}),
(t.prototype.setZOffset = function (e) {
this._depthCullingState.zOffset = e;
}),
(t.prototype.getZOffset = function () {
return this._depthCullingState.zOffset;
}),
(t.prototype.setDepthBuffer = function (e) {
this._depthCullingState.depthTest = e;
}),
(t.prototype.getDepthWrite = function () {
return this._depthCullingState.depthMask;
}),
(t.prototype.setDepthWrite = function (e) {
this._depthCullingState.depthMask = e;
}),
(t.prototype.getStencilBuffer = function () {
return this._stencilState.stencilTest;
}),
(t.prototype.setStencilBuffer = function (e) {
this._stencilState.stencilTest = e;
}),
(t.prototype.getStencilMask = function () {
return this._stencilState.stencilMask;
}),
(t.prototype.setStencilMask = function (e) {
this._stencilState.stencilMask = e;
}),
(t.prototype.getStencilFunction = function () {
return this._stencilState.stencilFunc;
}),
(t.prototype.getStencilFunctionReference = function () {
return this._stencilState.stencilFuncRef;
}),
(t.prototype.getStencilFunctionMask = function () {
return this._stencilState.stencilFuncMask;
}),
(t.prototype.setStencilFunction = function (e) {
this._stencilState.stencilFunc = e;
}),
(t.prototype.setStencilFunctionReference = function (e) {
this._stencilState.stencilFuncRef = e;
}),
(t.prototype.setStencilFunctionMask = function (e) {
this._stencilState.stencilFuncMask = e;
}),
(t.prototype.getStencilOperationFail = function () {
return this._stencilState.stencilOpStencilFail;
}),
(t.prototype.getStencilOperationDepthFail = function () {
return this._stencilState.stencilOpDepthFail;
}),
(t.prototype.getStencilOperationPass = function () {
return this._stencilState.stencilOpStencilDepthPass;
}),
(t.prototype.setStencilOperationFail = function (e) {
this._stencilState.stencilOpStencilFail = e;
}),
(t.prototype.setStencilOperationDepthFail = function (e) {
this._stencilState.stencilOpDepthFail = e;
}),
(t.prototype.setStencilOperationPass = function (e) {
this._stencilState.stencilOpStencilDepthPass = e;
}),
(t.prototype.setDitheringState = function (e) {
e ? this._gl.enable(this._gl.DITHER) : this._gl.disable(this._gl.DITHER);
}),
(t.prototype.setRasterizerState = function (e) {
e ? this._gl.disable(this._gl.RASTERIZER_DISCARD) : this._gl.enable(this._gl.RASTERIZER_DISCARD);
}),
(t.prototype.getDepthFunction = function () {
return this._depthCullingState.depthFunc;
}),
(t.prototype.setDepthFunction = function (e) {
this._depthCullingState.depthFunc = e;
}),
(t.prototype.setDepthFunctionToGreater = function () {
this._depthCullingState.depthFunc = this._gl.GREATER;
}),
(t.prototype.setDepthFunctionToGreaterOrEqual = function () {
this._depthCullingState.depthFunc = this._gl.GEQUAL;
}),
(t.prototype.setDepthFunctionToLess = function () {
this._depthCullingState.depthFunc = this._gl.LESS;
}),
(t.prototype.setDepthFunctionToLessOrEqual = function () {
this._depthCullingState.depthFunc = this._gl.LEQUAL;
}),
(t.prototype.cacheStencilState = function () {
(this._cachedStencilBuffer = this.getStencilBuffer()),
(this._cachedStencilFunction = this.getStencilFunction()),
(this._cachedStencilMask = this.getStencilMask()),
(this._cachedStencilOperationPass = this.getStencilOperationPass()),
(this._cachedStencilOperationFail = this.getStencilOperationFail()),
(this._cachedStencilOperationDepthFail = this.getStencilOperationDepthFail()),
(this._cachedStencilReference = this.getStencilFunctionReference());
}),
(t.prototype.restoreStencilState = function () {
this.setStencilFunction(this._cachedStencilFunction),
this.setStencilMask(this._cachedStencilMask),
this.setStencilBuffer(this._cachedStencilBuffer),
this.setStencilOperationPass(this._cachedStencilOperationPass),
this.setStencilOperationFail(this._cachedStencilOperationFail),
this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail),
this.setStencilFunctionReference(this._cachedStencilReference);
}),
(t.prototype.setDirectViewport = function (e, t, n, i) {
var r = this._cachedViewport;
return (this._cachedViewport = null), this._viewport(e, t, n, i), r;
}),
(t.prototype.scissorClear = function (e, t, n, i, r) {
this.enableScissor(e, t, n, i), this.clear(r, !0, !0, !0), this.disableScissor();
}),
(t.prototype.enableScissor = function (e, t, n, i) {
var r = this._gl;
r.enable(r.SCISSOR_TEST), r.scissor(e, t, n, i);
}),
(t.prototype.disableScissor = function () {
var e = this._gl;
e.disable(e.SCISSOR_TEST);
}),
(t.prototype._reportDrawCall = function () {
this._drawCalls.addCount(1, !1);
}),
(t.prototype.initWebVR = function () {
throw s.a.WarnImport("WebVRCamera");
}),
(t.prototype._prepareVRComponent = function () {}),
(t.prototype._connectVREvents = function (e, t) {}),
(t.prototype._submitVRFrame = function () {}),
(t.prototype.disableVR = function () {}),
(t.prototype.isVRPresenting = function () {
return !1;
}),
(t.prototype._requestVRFrame = function () {}),
(t.prototype._loadFileAsync = function (e, t, n) {
var i = this;
return new Promise(function (r, o) {
i._loadFile(
e,
function (e) {
r(e);
},
void 0,
t,
n,
function (e, t) {
o(t);
}
);
});
}),
(t.prototype.getVertexShaderSource = function (e) {
var t = this._gl.getAttachedShaders(e);
return t ? this._gl.getShaderSource(t[0]) : null;
}),
(t.prototype.getFragmentShaderSource = function (e) {
var t = this._gl.getAttachedShaders(e);
return t ? this._gl.getShaderSource(t[1]) : null;
}),
(t.prototype.setDepthStencilTexture = function (e, t, n) {
void 0 !== e && (t && (this._boundUniforms[e] = t), n && n.depthStencilTexture ? this._setTexture(e, n, !1, !0) : this._setTexture(e, null));
}),
(t.prototype.setTextureFromPostProcess = function (e, t) {
this._bindTexture(e, t ? t._textures.data[t._currentRenderTextureInd] : null);
}),
(t.prototype.setTextureFromPostProcessOutput = function (e, t) {
this._bindTexture(e, t ? t._outputTexture : null);
}),
(t.prototype._convertRGBtoRGBATextureData = function (e, t, n, i) {
var r;
r = 1 === i ? new Float32Array(t * n * 4) : new Uint32Array(t * n * 4);
for (var o = 0; o < t; o++)
for (var a = 0; a < n; a++) {
var s = 3 * (a * t + o),
c = 4 * (a * t + o);
(r[c + 0] = e[s + 0]), (r[c + 1] = e[s + 1]), (r[c + 2] = e[s + 2]), (r[c + 3] = 1);
}
return r;
}),
(t.prototype._rebuildBuffers = function () {
for (var t = 0, n = this.scenes; t < n.length; t++) {
var i = n[t];
i.resetCachedMaterial(), i._rebuildGeometries(), i._rebuildTextures();
}
e.prototype._rebuildBuffers.call(this);
}),
(t.prototype._renderFrame = function () {
for (var e = 0; e < this._activeRenderLoops.length; e++) {
(0, this._activeRenderLoops[e])();
}
}),
(t.prototype._renderLoop = function () {
if (!this._contextWasLost) {
var e = !0;
!this.renderEvenInBackground && this._windowIsBackground && (e = !1), e && (this.beginFrame(), this._renderViews() || this._renderFrame(), this.endFrame());
}
this._activeRenderLoops.length > 0
? this.customAnimationFrameRequester
? ((this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester)),
(this._frameHandler = this.customAnimationFrameRequester.requestID))
: this.isVRPresenting()
? this._requestVRFrame()
: (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow()))
: (this._renderingQueueLaunched = !1);
}),
(t.prototype._renderViews = function () {
return !1;
}),
(t.prototype.switchFullscreen = function (e) {
this.isFullscreen ? this.exitFullscreen() : this.enterFullscreen(e);
}),
(t.prototype.enterFullscreen = function (e) {
this.isFullscreen || ((this._pointerLockRequested = e), this._renderingCanvas && t._RequestFullscreen(this._renderingCanvas));
}),
(t.prototype.exitFullscreen = function () {
this.isFullscreen && t._ExitFullscreen();
}),
(t.prototype.enterPointerlock = function () {
this._renderingCanvas && t._RequestPointerlock(this._renderingCanvas);
}),
(t.prototype.exitPointerlock = function () {
t._ExitPointerlock();
}),
(t.prototype.beginFrame = function () {
this._measureFps(), this.onBeginFrameObservable.notifyObservers(this), e.prototype.beginFrame.call(this);
}),
(t.prototype.endFrame = function () {
e.prototype.endFrame.call(this), this._submitVRFrame(), this.onEndFrameObservable.notifyObservers(this);
}),
(t.prototype.resize = function () {
this.isVRPresenting() || e.prototype.resize.call(this);
}),
(t.prototype.setSize = function (t, n) {
if (this._renderingCanvas && (e.prototype.setSize.call(this, t, n), this.scenes)) {
for (var i = 0; i < this.scenes.length; i++)
for (var r = this.scenes[i], o = 0; o < r.cameras.length; o++) {
r.cameras[o]._currentRenderId = 0;
}
this.onResizeObservable.hasObservers && this.onResizeObservable.notifyObservers(this);
}
}),
(t.prototype.updateDynamicVertexBuffer = function (e, t, n, i) {
this.bindArrayBuffer(e), void 0 === n && (n = 0);
var r = t.length || t.byteLength;
void 0 === i || (i >= r && 0 === n)
? t instanceof Array
? this._gl.bufferSubData(this._gl.ARRAY_BUFFER, n, new Float32Array(t))
: this._gl.bufferSubData(this._gl.ARRAY_BUFFER, n, t)
: t instanceof Array
? this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(t).subarray(n, n + i))
: ((t = t instanceof ArrayBuffer ? new Uint8Array(t, n, i) : new Uint8Array(t.buffer, t.byteOffset + n, i)), this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, t)),
this._resetVertexBufferBinding();
}),
(t.prototype._deletePipelineContext = function (t) {
var n = t;
n && n.program && n.transformFeedback && (this.deleteTransformFeedback(n.transformFeedback), (n.transformFeedback = null)), e.prototype._deletePipelineContext.call(this, t);
}),
(t.prototype.createShaderProgram = function (t, n, i, r, o, a) {
void 0 === a && (a = null), (o = o || this._gl), this.onBeforeShaderCompilationObservable.notifyObservers(this);
var s = e.prototype.createShaderProgram.call(this, t, n, i, r, o, a);
return this.onAfterShaderCompilationObservable.notifyObservers(this), s;
}),
(t.prototype._createShaderProgram = function (e, t, n, i, r) {
void 0 === r && (r = null);
var o = i.createProgram();
if (((e.program = o), !o)) throw new Error("Unable to create program");
if ((i.attachShader(o, t), i.attachShader(o, n), this.webGLVersion > 1 && r)) {
var a = this.createTransformFeedback();
this.bindTransformFeedback(a), this.setTranformFeedbackVaryings(o, r), (e.transformFeedback = a);
}
return i.linkProgram(o), this.webGLVersion > 1 && r && this.bindTransformFeedback(null), (e.context = i), (e.vertexShader = t), (e.fragmentShader = n), e.isParallelCompiled || this._finalizePipelineContext(e), o;
}),
(t.prototype._releaseTexture = function (t) {
e.prototype._releaseTexture.call(this, t),
this.scenes.forEach(function (e) {
e.postProcesses.forEach(function (e) {
e._outputTexture == t && (e._outputTexture = null);
}),
e.cameras.forEach(function (e) {
e._postProcesses.forEach(function (e) {
e && e._outputTexture == t && (e._outputTexture = null);
});
});
});
}),
(t.prototype._rescaleTexture = function (e, n, i, r, o) {
var a = this;
this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR),
this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR),
this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE),
this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE);
var s = this.createRenderTargetTexture({ width: n.width, height: n.height }, { generateMipMaps: !1, type: 0, samplingMode: 2, generateDepthBuffer: !1, generateStencilBuffer: !1 });
!this._rescalePostProcess && t._RescalePostProcessFactory && (this._rescalePostProcess = t._RescalePostProcessFactory(this)),
this._rescalePostProcess.getEffect().executeWhenCompiled(function () {
a._rescalePostProcess.onApply = function (t) {
t._bindTexture("textureSampler", e);
};
var t = i;
t || (t = a.scenes[a.scenes.length - 1]),
t.postProcessManager.directRender([a._rescalePostProcess], s, !0),
a._bindTextureDirectly(a._gl.TEXTURE_2D, n, !0),
a._gl.copyTexImage2D(a._gl.TEXTURE_2D, 0, r, 0, 0, n.width, n.height, 0),
a.unBindFramebuffer(s),
a._releaseTexture(s),
o && o();
});
}),
(t.prototype.getFps = function () {
return this._fps;
}),
(t.prototype.getDeltaTime = function () {
return this._deltaTime;
}),
(t.prototype._measureFps = function () {
this._performanceMonitor.sampleFrame(), (this._fps = this._performanceMonitor.averageFPS), (this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0);
}),
(t.prototype._uploadImageToTexture = function (e, t, n, i) {
void 0 === n && (n = 0), void 0 === i && (i = 0);
var r = this._gl,
o = this._getWebGLTextureType(e.type),
a = this._getInternalFormat(e.format),
s = this._getRGBABufferInternalSizedFormat(e.type, a),
c = e.isCube ? r.TEXTURE_CUBE_MAP : r.TEXTURE_2D;
this._bindTextureDirectly(c, e, !0), this._unpackFlipY(e.invertY);
var l = r.TEXTURE_2D;
e.isCube && (l = r.TEXTURE_CUBE_MAP_POSITIVE_X + n), r.texImage2D(l, i, s, a, o, t), this._bindTextureDirectly(c, null, !0);
}),
(t.prototype.updateDynamicIndexBuffer = function (e, t, n) {
var i;
void 0 === n && (n = 0),
(this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null),
this.bindIndexBuffer(e),
(i = t instanceof Uint16Array || t instanceof Uint32Array ? t : e.is32Bits ? new Uint32Array(t) : new Uint16Array(t)),
this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, i, this._gl.DYNAMIC_DRAW),
this._resetIndexBufferBinding();
}),
(t.prototype.updateRenderTargetTextureSampleCount = function (e, t) {
if (this.webGLVersion < 2 || !e) return 1;
if (e.samples === t) return t;
var n = this._gl;
if (
((t = Math.min(t, this.getCaps().maxMSAASamples)),
e._depthStencilBuffer && (n.deleteRenderbuffer(e._depthStencilBuffer), (e._depthStencilBuffer = null)),
e._MSAAFramebuffer && (n.deleteFramebuffer(e._MSAAFramebuffer), (e._MSAAFramebuffer = null)),
e._MSAARenderBuffer && (n.deleteRenderbuffer(e._MSAARenderBuffer), (e._MSAARenderBuffer = null)),
t > 1 && n.renderbufferStorageMultisample)
) {
var i = n.createFramebuffer();
if (!i) throw new Error("Unable to create multi sampled framebuffer");
(e._MSAAFramebuffer = i), this._bindUnboundFramebuffer(e._MSAAFramebuffer);
var r = n.createRenderbuffer();
if (!r) throw new Error("Unable to create multi sampled framebuffer");
n.bindRenderbuffer(n.RENDERBUFFER, r),
n.renderbufferStorageMultisample(n.RENDERBUFFER, t, this._getRGBAMultiSampleBufferFormat(e.type), e.width, e.height),
n.framebufferRenderbuffer(n.FRAMEBUFFER, n.COLOR_ATTACHMENT0, n.RENDERBUFFER, r),
(e._MSAARenderBuffer = r);
} else this._bindUnboundFramebuffer(e._framebuffer);
return (e.samples = t), (e._depthStencilBuffer = this._setupFramebufferDepthAttachments(e._generateStencilBuffer, e._generateDepthBuffer, e.width, e.height, t)), this._bindUnboundFramebuffer(null), t;
}),
(t.prototype.updateTextureComparisonFunction = function (e, t) {
if (1 !== this.webGLVersion) {
var n = this._gl;
e.isCube
? (this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, e, !0),
0 === t
? (n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_FUNC, 515), n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_MODE, n.NONE))
: (n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_FUNC, t), n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_MODE, n.COMPARE_REF_TO_TEXTURE)),
this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null))
: (this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0),
0 === t
? (n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_FUNC, 515), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_MODE, n.NONE))
: (n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_FUNC, t), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_MODE, n.COMPARE_REF_TO_TEXTURE)),
this._bindTextureDirectly(this._gl.TEXTURE_2D, null)),
(e._comparisonFunction = t);
} else d.a.Error("WebGL 1 does not support texture comparison.");
}),
(t.prototype.createInstancesBuffer = function (e) {
var t = this._gl.createBuffer();
if (!t) throw new Error("Unable to create instance buffer");
var n = new h.a(t);
return (n.capacity = e), this.bindArrayBuffer(n), this._gl.bufferData(this._gl.ARRAY_BUFFER, e, this._gl.DYNAMIC_DRAW), n;
}),
(t.prototype.deleteInstancesBuffer = function (e) {
this._gl.deleteBuffer(e);
}),
(t.prototype._clientWaitAsync = function (e, t, n) {
void 0 === t && (t = 0), void 0 === n && (n = 10);
var i = this._gl;
return new Promise(function (r, o) {
var a = function () {
var s = i.clientWaitSync(e, t, 0);
s != i.WAIT_FAILED ? (s != i.TIMEOUT_EXPIRED ? r() : setTimeout(a, n)) : o();
};
a();
});
}),
(t.prototype._readPixelsAsync = function (e, t, n, i, r, o, a) {
if (this._webGLVersion < 2) throw new Error("_readPixelsAsync only work on WebGL2+");
var s = this._gl,
c = s.createBuffer();
s.bindBuffer(s.PIXEL_PACK_BUFFER, c), s.bufferData(s.PIXEL_PACK_BUFFER, a.byteLength, s.STREAM_READ), s.readPixels(e, t, n, i, r, o, 0), s.bindBuffer(s.PIXEL_PACK_BUFFER, null);
var l = s.fenceSync(s.SYNC_GPU_COMMANDS_COMPLETE, 0);
return l
? (s.flush(),
this._clientWaitAsync(l, 0, 10).then(function () {
return s.deleteSync(l), s.bindBuffer(s.PIXEL_PACK_BUFFER, c), s.getBufferSubData(s.PIXEL_PACK_BUFFER, 0, a), s.bindBuffer(s.PIXEL_PACK_BUFFER, null), s.deleteBuffer(c), a;
}))
: null;
}),
(t.prototype._readTexturePixels = function (e, t, n, i, r, o) {
void 0 === i && (i = -1), void 0 === r && (r = 0), void 0 === o && (o = null);
var a = this._gl;
if (!this._dummyFramebuffer) {
var s = a.createFramebuffer();
if (!s) throw new Error("Unable to create dummy framebuffer");
this._dummyFramebuffer = s;
}
a.bindFramebuffer(a.FRAMEBUFFER, this._dummyFramebuffer),
i > -1
? a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_CUBE_MAP_POSITIVE_X + i, e._webGLTexture, r)
: a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, e._webGLTexture, r);
var c = void 0 !== e.type ? this._getWebGLTextureType(e.type) : a.UNSIGNED_BYTE;
switch (c) {
case a.UNSIGNED_BYTE:
o || (o = new Uint8Array(4 * t * n)), (c = a.UNSIGNED_BYTE);
break;
default:
o || (o = new Float32Array(4 * t * n)), (c = a.FLOAT);
}
return a.readPixels(0, 0, t, n, a.RGBA, c, o), a.bindFramebuffer(a.FRAMEBUFFER, this._currentFramebuffer), o;
}),
(t.prototype.dispose = function () {
for (this.hideLoadingUI(), this.onNewSceneAddedObservable.clear(); this.postProcesses.length; ) this.postProcesses[0].dispose();
for (this._rescalePostProcess && this._rescalePostProcess.dispose(); this.scenes.length; ) this.scenes[0].dispose();
1 === t.Instances.length && t.audioEngine && t.audioEngine.dispose(),
this._dummyFramebuffer && this._gl.deleteFramebuffer(this._dummyFramebuffer),
this.disableVR(),
o.a.IsWindowObjectExist() &&
(window.removeEventListener("blur", this._onBlur),
window.removeEventListener("focus", this._onFocus),
this._renderingCanvas &&
(this._renderingCanvas.removeEventListener("focus", this._onCanvasFocus),
this._renderingCanvas.removeEventListener("blur", this._onCanvasBlur),
this._renderingCanvas.removeEventListener("pointerout", this._onCanvasPointerOut)),
document.removeEventListener("fullscreenchange", this._onFullscreenChange),
document.removeEventListener("mozfullscreenchange", this._onFullscreenChange),
document.removeEventListener("webkitfullscreenchange", this._onFullscreenChange),
document.removeEventListener("msfullscreenchange", this._onFullscreenChange),
document.removeEventListener("pointerlockchange", this._onPointerLockChange),
document.removeEventListener("mspointerlockchange", this._onPointerLockChange),
document.removeEventListener("mozpointerlockchange", this._onPointerLockChange),
document.removeEventListener("webkitpointerlockchange", this._onPointerLockChange)),
e.prototype.dispose.call(this);
var n = t.Instances.indexOf(this);
n >= 0 && t.Instances.splice(n, 1),
this.onResizeObservable.clear(),
this.onCanvasBlurObservable.clear(),
this.onCanvasFocusObservable.clear(),
this.onCanvasPointerOutObservable.clear(),
this.onBeginFrameObservable.clear(),
this.onEndFrameObservable.clear();
}),
(t.prototype._disableTouchAction = function () {
this._renderingCanvas &&
this._renderingCanvas.setAttribute &&
(this._renderingCanvas.setAttribute("touch-action", "none"), (this._renderingCanvas.style.touchAction = "none"), (this._renderingCanvas.style.msTouchAction = "none"));
}),
(t.prototype.displayLoadingUI = function () {
if (o.a.IsWindowObjectExist()) {
var e = this.loadingScreen;
e && e.displayLoadingUI();
}
}),
(t.prototype.hideLoadingUI = function () {
if (o.a.IsWindowObjectExist()) {
var e = this._loadingScreen;
e && e.hideLoadingUI();
}
}),
Object.defineProperty(t.prototype, "loadingScreen", {
get: function () {
return !this._loadingScreen && this._renderingCanvas && (this._loadingScreen = t.DefaultLoadingScreenFactory(this._renderingCanvas)), this._loadingScreen;
},
set: function (e) {
this._loadingScreen = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "loadingUIText", {
set: function (e) {
this.loadingScreen.loadingUIText = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "loadingUIBackgroundColor", {
set: function (e) {
this.loadingScreen.loadingUIBackgroundColor = e;
},
enumerable: !0,
configurable: !0,
}),
(t._RequestPointerlock = function (e) {
(e.requestPointerLock = e.requestPointerLock || e.msRequestPointerLock || e.mozRequestPointerLock || e.webkitRequestPointerLock), e.requestPointerLock && e.requestPointerLock();
}),
(t._ExitPointerlock = function () {
var e = document;
(document.exitPointerLock = document.exitPointerLock || e.msExitPointerLock || e.mozExitPointerLock || e.webkitExitPointerLock), document.exitPointerLock && document.exitPointerLock();
}),
(t._RequestFullscreen = function (e) {
var t = e.requestFullscreen || e.msRequestFullscreen || e.webkitRequestFullscreen || e.mozRequestFullScreen;
t && t.call(e);
}),
(t._ExitFullscreen = function () {
var e = document;
document.exitFullscreen ? document.exitFullscreen() : e.mozCancelFullScreen ? e.mozCancelFullScreen() : e.webkitCancelFullScreen ? e.webkitCancelFullScreen() : e.msCancelFullScreen && e.msCancelFullScreen();
}),
(t.ALPHA_DISABLE = 0),
(t.ALPHA_ADD = 1),
(t.ALPHA_COMBINE = 2),
(t.ALPHA_SUBTRACT = 3),
(t.ALPHA_MULTIPLY = 4),
(t.ALPHA_MAXIMIZED = 5),
(t.ALPHA_ONEONE = 6),
(t.ALPHA_PREMULTIPLIED = 7),
(t.ALPHA_PREMULTIPLIED_PORTERDUFF = 8),
(t.ALPHA_INTERPOLATE = 9),
(t.ALPHA_SCREENMODE = 10),
(t.DELAYLOADSTATE_NONE = 0),
(t.DELAYLOADSTATE_LOADED = 1),
(t.DELAYLOADSTATE_LOADING = 2),
(t.DELAYLOADSTATE_NOTLOADED = 4),
(t.NEVER = 512),
(t.ALWAYS = 519),
(t.LESS = 513),
(t.EQUAL = 514),
(t.LEQUAL = 515),
(t.GREATER = 516),
(t.GEQUAL = 518),
(t.NOTEQUAL = 517),
(t.KEEP = 7680),
(t.REPLACE = 7681),
(t.INCR = 7682),
(t.DECR = 7683),
(t.INVERT = 5386),
(t.INCR_WRAP = 34055),
(t.DECR_WRAP = 34056),
(t.TEXTURE_CLAMP_ADDRESSMODE = 0),
(t.TEXTURE_WRAP_ADDRESSMODE = 1),
(t.TEXTURE_MIRROR_ADDRESSMODE = 2),
(t.TEXTUREFORMAT_ALPHA = 0),
(t.TEXTUREFORMAT_LUMINANCE = 1),
(t.TEXTUREFORMAT_LUMINANCE_ALPHA = 2),
(t.TEXTUREFORMAT_RGB = 4),
(t.TEXTUREFORMAT_RGBA = 5),
(t.TEXTUREFORMAT_RED = 6),
(t.TEXTUREFORMAT_R = 6),
(t.TEXTUREFORMAT_RG = 7),
(t.TEXTUREFORMAT_RED_INTEGER = 8),
(t.TEXTUREFORMAT_R_INTEGER = 8),
(t.TEXTUREFORMAT_RG_INTEGER = 9),
(t.TEXTUREFORMAT_RGB_INTEGER = 10),
(t.TEXTUREFORMAT_RGBA_INTEGER = 11),
(t.TEXTURETYPE_UNSIGNED_BYTE = 0),
(t.TEXTURETYPE_UNSIGNED_INT = 0),
(t.TEXTURETYPE_FLOAT = 1),
(t.TEXTURETYPE_HALF_FLOAT = 2),
(t.TEXTURETYPE_BYTE = 3),
(t.TEXTURETYPE_SHORT = 4),
(t.TEXTURETYPE_UNSIGNED_SHORT = 5),
(t.TEXTURETYPE_INT = 6),
(t.TEXTURETYPE_UNSIGNED_INTEGER = 7),
(t.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8),
(t.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9),
(t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10),
(t.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11),
(t.TEXTURETYPE_UNSIGNED_INT_24_8 = 12),
(t.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13),
(t.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14),
(t.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15),
(t.TEXTURE_NEAREST_SAMPLINGMODE = 1),
(t.TEXTURE_BILINEAR_SAMPLINGMODE = 2),
(t.TEXTURE_TRILINEAR_SAMPLINGMODE = 3),
(t.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8),
(t.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11),
(t.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3),
(t.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4),
(t.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5),
(t.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6),
(t.TEXTURE_NEAREST_LINEAR = 7),
(t.TEXTURE_NEAREST_NEAREST = 1),
(t.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9),
(t.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10),
(t.TEXTURE_LINEAR_LINEAR = 2),
(t.TEXTURE_LINEAR_NEAREST = 12),
(t.TEXTURE_EXPLICIT_MODE = 0),
(t.TEXTURE_SPHERICAL_MODE = 1),
(t.TEXTURE_PLANAR_MODE = 2),
(t.TEXTURE_CUBIC_MODE = 3),
(t.TEXTURE_PROJECTION_MODE = 4),
(t.TEXTURE_SKYBOX_MODE = 5),
(t.TEXTURE_INVCUBIC_MODE = 6),
(t.TEXTURE_EQUIRECTANGULAR_MODE = 7),
(t.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8),
(t.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9),
(t.SCALEMODE_FLOOR = 1),
(t.SCALEMODE_NEAREST = 2),
(t.SCALEMODE_CEILING = 3),
(t._RescalePostProcessFactory = null),
t
);
})(c.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.WithinEpsilon = function (e, t, n) {
void 0 === n && (n = 1401298e-51);
var i = e - t;
return -n <= i && i <= n;
}),
(e.ToHex = function (e) {
var t = e.toString(16);
return e <= 15 ? ("0" + t).toUpperCase() : t.toUpperCase();
}),
(e.Sign = function (e) {
return 0 === (e = +e) || isNaN(e) ? e : e > 0 ? 1 : -1;
}),
(e.Clamp = function (e, t, n) {
return void 0 === t && (t = 0), void 0 === n && (n = 1), Math.min(n, Math.max(t, e));
}),
(e.Log2 = function (e) {
return Math.log(e) * Math.LOG2E;
}),
(e.Repeat = function (e, t) {
return e - Math.floor(e / t) * t;
}),
(e.Normalize = function (e, t, n) {
return (e - t) / (n - t);
}),
(e.Denormalize = function (e, t, n) {
return e * (n - t) + t;
}),
(e.DeltaAngle = function (t, n) {
var i = e.Repeat(n - t, 360);
return i > 180 && (i -= 360), i;
}),
(e.PingPong = function (t, n) {
var i = e.Repeat(t, 2 * n);
return n - Math.abs(i - n);
}),
(e.SmoothStep = function (t, n, i) {
var r = e.Clamp(i);
return n * (r = -2 * r * r * r + 3 * r * r) + t * (1 - r);
}),
(e.MoveTowards = function (t, n, i) {
return Math.abs(n - t) <= i ? n : t + e.Sign(n - t) * i;
}),
(e.MoveTowardsAngle = function (t, n, i) {
var r = e.DeltaAngle(t, n),
o = 0;
return -i < r && r < i ? (o = n) : ((n = t + r), (o = e.MoveTowards(t, n, i))), o;
}),
(e.Lerp = function (e, t, n) {
return e + (t - e) * n;
}),
(e.LerpAngle = function (t, n, i) {
var r = e.Repeat(n - t, 360);
return r > 180 && (r -= 360), t + r * e.Clamp(i);
}),
(e.InverseLerp = function (t, n, i) {
return t != n ? e.Clamp((i - t) / (n - t)) : 0;
}),
(e.Hermite = function (e, t, n, i, r) {
var o = r * r,
a = r * o;
return e * (2 * a - 3 * o + 1) + n * (-2 * a + 3 * o) + t * (a - 2 * o + r) + i * (a - o);
}),
(e.RandomRange = function (e, t) {
return e === t ? e : Math.random() * (t - e) + e;
}),
(e.RangeToPercent = function (e, t, n) {
return (e - t) / (n - t);
}),
(e.PercentToRange = function (e, t, n) {
return (n - t) * e + t;
}),
(e.NormalizeRadians = function (t) {
return (t -= e.TwoPi * Math.floor((t + Math.PI) / e.TwoPi));
}),
(e.TwoPi = 2 * Math.PI),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(1),
r = n(4),
o = n(22),
a = n(5),
s = (function () {
function e() {}
return (
(e.prototype.set = function (e, t) {
switch (t) {
case r.b.PositionKind:
this.positions = e;
break;
case r.b.NormalKind:
this.normals = e;
break;
case r.b.TangentKind:
this.tangents = e;
break;
case r.b.UVKind:
this.uvs = e;
break;
case r.b.UV2Kind:
this.uvs2 = e;
break;
case r.b.UV3Kind:
this.uvs3 = e;
break;
case r.b.UV4Kind:
this.uvs4 = e;
break;
case r.b.UV5Kind:
this.uvs5 = e;
break;
case r.b.UV6Kind:
this.uvs6 = e;
break;
case r.b.ColorKind:
this.colors = e;
break;
case r.b.MatricesIndicesKind:
this.matricesIndices = e;
break;
case r.b.MatricesWeightsKind:
this.matricesWeights = e;
break;
case r.b.MatricesIndicesExtraKind:
this.matricesIndicesExtra = e;
break;
case r.b.MatricesWeightsExtraKind:
this.matricesWeightsExtra = e;
}
}),
(e.prototype.applyToMesh = function (e, t) {
return this._applyTo(e, t), this;
}),
(e.prototype.applyToGeometry = function (e, t) {
return this._applyTo(e, t), this;
}),
(e.prototype.updateMesh = function (e) {
return this._update(e), this;
}),
(e.prototype.updateGeometry = function (e) {
return this._update(e), this;
}),
(e.prototype._applyTo = function (e, t) {
return (
void 0 === t && (t = !1),
this.positions && e.setVerticesData(r.b.PositionKind, this.positions, t),
this.normals && e.setVerticesData(r.b.NormalKind, this.normals, t),
this.tangents && e.setVerticesData(r.b.TangentKind, this.tangents, t),
this.uvs && e.setVerticesData(r.b.UVKind, this.uvs, t),
this.uvs2 && e.setVerticesData(r.b.UV2Kind, this.uvs2, t),
this.uvs3 && e.setVerticesData(r.b.UV3Kind, this.uvs3, t),
this.uvs4 && e.setVerticesData(r.b.UV4Kind, this.uvs4, t),
this.uvs5 && e.setVerticesData(r.b.UV5Kind, this.uvs5, t),
this.uvs6 && e.setVerticesData(r.b.UV6Kind, this.uvs6, t),
this.colors && e.setVerticesData(r.b.ColorKind, this.colors, t),
this.matricesIndices && e.setVerticesData(r.b.MatricesIndicesKind, this.matricesIndices, t),
this.matricesWeights && e.setVerticesData(r.b.MatricesWeightsKind, this.matricesWeights, t),
this.matricesIndicesExtra && e.setVerticesData(r.b.MatricesIndicesExtraKind, this.matricesIndicesExtra, t),
this.matricesWeightsExtra && e.setVerticesData(r.b.MatricesWeightsExtraKind, this.matricesWeightsExtra, t),
this.indices ? e.setIndices(this.indices, null, t) : e.setIndices([], null),
this
);
}),
(e.prototype._update = function (e, t, n) {
return (
this.positions && e.updateVerticesData(r.b.PositionKind, this.positions, t, n),
this.normals && e.updateVerticesData(r.b.NormalKind, this.normals, t, n),
this.tangents && e.updateVerticesData(r.b.TangentKind, this.tangents, t, n),
this.uvs && e.updateVerticesData(r.b.UVKind, this.uvs, t, n),
this.uvs2 && e.updateVerticesData(r.b.UV2Kind, this.uvs2, t, n),
this.uvs3 && e.updateVerticesData(r.b.UV3Kind, this.uvs3, t, n),
this.uvs4 && e.updateVerticesData(r.b.UV4Kind, this.uvs4, t, n),
this.uvs5 && e.updateVerticesData(r.b.UV5Kind, this.uvs5, t, n),
this.uvs6 && e.updateVerticesData(r.b.UV6Kind, this.uvs6, t, n),
this.colors && e.updateVerticesData(r.b.ColorKind, this.colors, t, n),
this.matricesIndices && e.updateVerticesData(r.b.MatricesIndicesKind, this.matricesIndices, t, n),
this.matricesWeights && e.updateVerticesData(r.b.MatricesWeightsKind, this.matricesWeights, t, n),
this.matricesIndicesExtra && e.updateVerticesData(r.b.MatricesIndicesExtraKind, this.matricesIndicesExtra, t, n),
this.matricesWeightsExtra && e.updateVerticesData(r.b.MatricesWeightsExtraKind, this.matricesWeightsExtra, t, n),
this.indices && e.setIndices(this.indices, null),
this
);
}),
(e.prototype.transform = function (e) {
var t,
n = e.m[0] * e.m[5] * e.m[10] < 0,
r = i.e.Zero();
if (this.positions) {
var o = i.e.Zero();
for (t = 0; t < this.positions.length; t += 3)
i.e.FromArrayToRef(this.positions, t, o), i.e.TransformCoordinatesToRef(o, e, r), (this.positions[t] = r.x), (this.positions[t + 1] = r.y), (this.positions[t + 2] = r.z);
}
if (this.normals) {
var a = i.e.Zero();
for (t = 0; t < this.normals.length; t += 3) i.e.FromArrayToRef(this.normals, t, a), i.e.TransformNormalToRef(a, e, r), (this.normals[t] = r.x), (this.normals[t + 1] = r.y), (this.normals[t + 2] = r.z);
}
if (this.tangents) {
var s = i.f.Zero(),
c = i.f.Zero();
for (t = 0; t < this.tangents.length; t += 4)
i.f.FromArrayToRef(this.tangents, t, s), i.f.TransformNormalToRef(s, e, c), (this.tangents[t] = c.x), (this.tangents[t + 1] = c.y), (this.tangents[t + 2] = c.z), (this.tangents[t + 3] = c.w);
}
if (n && this.indices)
for (t = 0; t < this.indices.length; t += 3) {
var l = this.indices[t + 1];
(this.indices[t + 1] = this.indices[t + 2]), (this.indices[t + 2] = l);
}
return this;
}),
(e.prototype.merge = function (e, t) {
if (
(void 0 === t && (t = !1),
this._validate(),
e._validate(),
!this.normals != !e.normals ||
!this.tangents != !e.tangents ||
!this.uvs != !e.uvs ||
!this.uvs2 != !e.uvs2 ||
!this.uvs3 != !e.uvs3 ||
!this.uvs4 != !e.uvs4 ||
!this.uvs5 != !e.uvs5 ||
!this.uvs6 != !e.uvs6 ||
!this.colors != !e.colors ||
!this.matricesIndices != !e.matricesIndices ||
!this.matricesWeights != !e.matricesWeights ||
!this.matricesIndicesExtra != !e.matricesIndicesExtra ||
!this.matricesWeightsExtra != !e.matricesWeightsExtra)
)
throw new Error("Cannot merge vertex data that do not have the same set of attributes");
if (e.indices) {
this.indices || (this.indices = []);
var n = this.positions ? this.positions.length / 3 : 0;
if (void 0 !== this.indices.BYTES_PER_ELEMENT) {
var i = this.indices.length + e.indices.length,
r = t || this.indices instanceof Uint32Array ? new Uint32Array(i) : new Uint16Array(i);
r.set(this.indices);
for (var o = this.indices.length, a = 0; a < e.indices.length; a++) r[o + a] = e.indices[a] + n;
this.indices = r;
} else for (a = 0; a < e.indices.length; a++) this.indices.push(e.indices[a] + n);
}
return (
(this.positions = this._mergeElement(this.positions, e.positions)),
(this.normals = this._mergeElement(this.normals, e.normals)),
(this.tangents = this._mergeElement(this.tangents, e.tangents)),
(this.uvs = this._mergeElement(this.uvs, e.uvs)),
(this.uvs2 = this._mergeElement(this.uvs2, e.uvs2)),
(this.uvs3 = this._mergeElement(this.uvs3, e.uvs3)),
(this.uvs4 = this._mergeElement(this.uvs4, e.uvs4)),
(this.uvs5 = this._mergeElement(this.uvs5, e.uvs5)),
(this.uvs6 = this._mergeElement(this.uvs6, e.uvs6)),
(this.colors = this._mergeElement(this.colors, e.colors)),
(this.matricesIndices = this._mergeElement(this.matricesIndices, e.matricesIndices)),
(this.matricesWeights = this._mergeElement(this.matricesWeights, e.matricesWeights)),
(this.matricesIndicesExtra = this._mergeElement(this.matricesIndicesExtra, e.matricesIndicesExtra)),
(this.matricesWeightsExtra = this._mergeElement(this.matricesWeightsExtra, e.matricesWeightsExtra)),
this
);
}),
(e.prototype._mergeElement = function (e, t) {
if (!e) return t;
if (!t) return e;
var n = t.length + e.length,
i = e instanceof Float32Array,
r = t instanceof Float32Array;
if (i) {
var o = new Float32Array(n);
return o.set(e), o.set(t, e.length), o;
}
if (r) {
var a = e.slice(0),
s = 0;
for (n = t.length; s < n; s++) a.push(t[s]);
return a;
}
return e.concat(t);
}),
(e.prototype._validate = function () {
if (!this.positions) throw new Error("Positions are required");
var e = function (e, t) {
var n = r.b.DeduceStride(e);
if (t.length % n != 0) throw new Error("The " + e + "s array count must be a multiple of " + n);
return t.length / n;
},
t = e(r.b.PositionKind, this.positions),
n = function (n, i) {
var r = e(n, i);
if (r !== t) throw new Error("The " + n + "s element count (" + r + ") does not match the positions count (" + t + ")");
};
this.normals && n(r.b.NormalKind, this.normals),
this.tangents && n(r.b.TangentKind, this.tangents),
this.uvs && n(r.b.UVKind, this.uvs),
this.uvs2 && n(r.b.UV2Kind, this.uvs2),
this.uvs3 && n(r.b.UV3Kind, this.uvs3),
this.uvs4 && n(r.b.UV4Kind, this.uvs4),
this.uvs5 && n(r.b.UV5Kind, this.uvs5),
this.uvs6 && n(r.b.UV6Kind, this.uvs6),
this.colors && n(r.b.ColorKind, this.colors),
this.matricesIndices && n(r.b.MatricesIndicesKind, this.matricesIndices),
this.matricesWeights && n(r.b.MatricesWeightsKind, this.matricesWeights),
this.matricesIndicesExtra && n(r.b.MatricesIndicesExtraKind, this.matricesIndicesExtra),
this.matricesWeightsExtra && n(r.b.MatricesWeightsExtraKind, this.matricesWeightsExtra);
}),
(e.prototype.serialize = function () {
var e = this.serialize();
return (
this.positions && (e.positions = this.positions),
this.normals && (e.normals = this.normals),
this.tangents && (e.tangents = this.tangents),
this.uvs && (e.uvs = this.uvs),
this.uvs2 && (e.uvs2 = this.uvs2),
this.uvs3 && (e.uvs3 = this.uvs3),
this.uvs4 && (e.uvs4 = this.uvs4),
this.uvs5 && (e.uvs5 = this.uvs5),
this.uvs6 && (e.uvs6 = this.uvs6),
this.colors && (e.colors = this.colors),
this.matricesIndices && ((e.matricesIndices = this.matricesIndices), (e.matricesIndices._isExpanded = !0)),
this.matricesWeights && (e.matricesWeights = this.matricesWeights),
this.matricesIndicesExtra && ((e.matricesIndicesExtra = this.matricesIndicesExtra), (e.matricesIndicesExtra._isExpanded = !0)),
this.matricesWeightsExtra && (e.matricesWeightsExtra = this.matricesWeightsExtra),
(e.indices = this.indices),
e
);
}),
(e.ExtractFromMesh = function (t, n, i) {
return e._ExtractFrom(t, n, i);
}),
(e.ExtractFromGeometry = function (t, n, i) {
return e._ExtractFrom(t, n, i);
}),
(e._ExtractFrom = function (t, n, i) {
var o = new e();
return (
t.isVerticesDataPresent(r.b.PositionKind) && (o.positions = t.getVerticesData(r.b.PositionKind, n, i)),
t.isVerticesDataPresent(r.b.NormalKind) && (o.normals = t.getVerticesData(r.b.NormalKind, n, i)),
t.isVerticesDataPresent(r.b.TangentKind) && (o.tangents = t.getVerticesData(r.b.TangentKind, n, i)),
t.isVerticesDataPresent(r.b.UVKind) && (o.uvs = t.getVerticesData(r.b.UVKind, n, i)),
t.isVerticesDataPresent(r.b.UV2Kind) && (o.uvs2 = t.getVerticesData(r.b.UV2Kind, n, i)),
t.isVerticesDataPresent(r.b.UV3Kind) && (o.uvs3 = t.getVerticesData(r.b.UV3Kind, n, i)),
t.isVerticesDataPresent(r.b.UV4Kind) && (o.uvs4 = t.getVerticesData(r.b.UV4Kind, n, i)),
t.isVerticesDataPresent(r.b.UV5Kind) && (o.uvs5 = t.getVerticesData(r.b.UV5Kind, n, i)),
t.isVerticesDataPresent(r.b.UV6Kind) && (o.uvs6 = t.getVerticesData(r.b.UV6Kind, n, i)),
t.isVerticesDataPresent(r.b.ColorKind) && (o.colors = t.getVerticesData(r.b.ColorKind, n, i)),
t.isVerticesDataPresent(r.b.MatricesIndicesKind) && (o.matricesIndices = t.getVerticesData(r.b.MatricesIndicesKind, n, i)),
t.isVerticesDataPresent(r.b.MatricesWeightsKind) && (o.matricesWeights = t.getVerticesData(r.b.MatricesWeightsKind, n, i)),
t.isVerticesDataPresent(r.b.MatricesIndicesExtraKind) && (o.matricesIndicesExtra = t.getVerticesData(r.b.MatricesIndicesExtraKind, n, i)),
t.isVerticesDataPresent(r.b.MatricesWeightsExtraKind) && (o.matricesWeightsExtra = t.getVerticesData(r.b.MatricesWeightsExtraKind, n, i)),
(o.indices = t.getIndices(n, i)),
o
);
}),
(e.CreateRibbon = function (e) {
throw o.a.WarnImport("ribbonBuilder");
}),
(e.CreateBox = function (e) {
throw o.a.WarnImport("boxBuilder");
}),
(e.CreateTiledBox = function (e) {
throw o.a.WarnImport("tiledBoxBuilder");
}),
(e.CreateTiledPlane = function (e) {
throw o.a.WarnImport("tiledPlaneBuilder");
}),
(e.CreateSphere = function (e) {
throw o.a.WarnImport("sphereBuilder");
}),
(e.CreateCylinder = function (e) {
throw o.a.WarnImport("cylinderBuilder");
}),
(e.CreateTorus = function (e) {
throw o.a.WarnImport("torusBuilder");
}),
(e.CreateLineSystem = function (e) {
throw o.a.WarnImport("linesBuilder");
}),
(e.CreateDashedLines = function (e) {
throw o.a.WarnImport("linesBuilder");
}),
(e.CreateGround = function (e) {
throw o.a.WarnImport("groundBuilder");
}),
(e.CreateTiledGround = function (e) {
throw o.a.WarnImport("groundBuilder");
}),
(e.CreateGroundFromHeightMap = function (e) {
throw o.a.WarnImport("groundBuilder");
}),
(e.CreatePlane = function (e) {
throw o.a.WarnImport("planeBuilder");
}),
(e.CreateDisc = function (e) {
throw o.a.WarnImport("discBuilder");
}),
(e.CreatePolygon = function (e, t, n, i, r, a) {
throw o.a.WarnImport("polygonBuilder");
}),
(e.CreateIcoSphere = function (e) {
throw o.a.WarnImport("icoSphereBuilder");
}),
(e.CreatePolyhedron = function (e) {
throw o.a.WarnImport("polyhedronBuilder");
}),
(e.CreateTorusKnot = function (e) {
throw o.a.WarnImport("torusKnotBuilder");
}),
(e.ComputeNormals = function (e, t, n, r) {
var o = 0,
a = 0,
s = 0,
c = 0,
l = 0,
u = 0,
h = 0,
d = 0,
p = 0,
f = 0,
m = 0,
g = 0,
b = 0,
_ = 0,
v = 0,
y = 0,
C = 0,
P = 0,
x = 0,
T = 0,
S = !1,
O = !1,
E = !1,
M = !1,
A = 1,
I = 0,
D = null;
if (r && ((S = !!r.facetNormals), (O = !!r.facetPositions), (E = !!r.facetPartitioning), (A = !0 === r.useRightHandedSystem ? -1 : 1), (I = r.ratio || 0), (M = !!r.depthSort), (D = r.distanceTo), M)) {
void 0 === D && (D = i.e.Zero());
var R = r.depthSortedFacets;
}
var w = 0,
L = 0,
F = 0,
N = 0;
if (E && r && r.bbSize) {
var k = 0,
z = 0,
j = 0,
B = 0,
V = 0,
G = 0,
U = 0,
H = 0,
W = 0,
X = 0,
Y = 0,
K = 0,
Z = 0,
q = 0,
Q = 0,
J = 0,
$ = r.bbSize.x > r.bbSize.y ? r.bbSize.x : r.bbSize.y;
($ = $ > r.bbSize.z ? $ : r.bbSize.z),
(w = (r.subDiv.X * I) / r.bbSize.x),
(L = (r.subDiv.Y * I) / r.bbSize.y),
(F = (r.subDiv.Z * I) / r.bbSize.z),
(N = r.subDiv.max * r.subDiv.max),
(r.facetPartitioning.length = 0);
}
for (o = 0; o < e.length; o++) n[o] = 0;
var ee = (t.length / 3) | 0;
for (o = 0; o < ee; o++) {
if (
((b = (g = 3 * t[3 * o]) + 1),
(_ = g + 2),
(y = (v = 3 * t[3 * o + 1]) + 1),
(C = v + 2),
(x = (P = 3 * t[3 * o + 2]) + 1),
(T = P + 2),
(a = e[g] - e[v]),
(s = e[b] - e[y]),
(c = e[_] - e[C]),
(l = e[P] - e[v]),
(u = e[x] - e[y]),
(d = A * (s * (h = e[T] - e[C]) - c * u)),
(p = A * (c * l - a * h)),
(f = A * (a * u - s * l)),
(d /= m = 0 === (m = Math.sqrt(d * d + p * p + f * f)) ? 1 : m),
(p /= m),
(f /= m),
S && r && ((r.facetNormals[o].x = d), (r.facetNormals[o].y = p), (r.facetNormals[o].z = f)),
O && r && ((r.facetPositions[o].x = (e[g] + e[v] + e[P]) / 3), (r.facetPositions[o].y = (e[b] + e[y] + e[x]) / 3), (r.facetPositions[o].z = (e[_] + e[C] + e[T]) / 3)),
E &&
r &&
((k = Math.floor((r.facetPositions[o].x - r.bInfo.minimum.x * I) * w)),
(z = Math.floor((r.facetPositions[o].y - r.bInfo.minimum.y * I) * L)),
(j = Math.floor((r.facetPositions[o].z - r.bInfo.minimum.z * I) * F)),
(B = Math.floor((e[g] - r.bInfo.minimum.x * I) * w)),
(V = Math.floor((e[b] - r.bInfo.minimum.y * I) * L)),
(G = Math.floor((e[_] - r.bInfo.minimum.z * I) * F)),
(U = Math.floor((e[v] - r.bInfo.minimum.x * I) * w)),
(H = Math.floor((e[y] - r.bInfo.minimum.y * I) * L)),
(W = Math.floor((e[C] - r.bInfo.minimum.z * I) * F)),
(X = Math.floor((e[P] - r.bInfo.minimum.x * I) * w)),
(Y = Math.floor((e[x] - r.bInfo.minimum.y * I) * L)),
(K = Math.floor((e[T] - r.bInfo.minimum.z * I) * F)),
(q = B + r.subDiv.max * V + N * G),
(Q = U + r.subDiv.max * H + N * W),
(J = X + r.subDiv.max * Y + N * K),
(Z = k + r.subDiv.max * z + N * j),
(r.facetPartitioning[Z] = r.facetPartitioning[Z] ? r.facetPartitioning[Z] : new Array()),
(r.facetPartitioning[q] = r.facetPartitioning[q] ? r.facetPartitioning[q] : new Array()),
(r.facetPartitioning[Q] = r.facetPartitioning[Q] ? r.facetPartitioning[Q] : new Array()),
(r.facetPartitioning[J] = r.facetPartitioning[J] ? r.facetPartitioning[J] : new Array()),
r.facetPartitioning[q].push(o),
Q != q && r.facetPartitioning[Q].push(o),
J != Q && J != q && r.facetPartitioning[J].push(o),
Z != q && Z != Q && Z != J && r.facetPartitioning[Z].push(o)),
M && r && r.facetPositions)
) {
var te = R[o];
(te.ind = 3 * o), (te.sqDistance = i.e.DistanceSquared(r.facetPositions[o], D));
}
(n[g] += d), (n[b] += p), (n[_] += f), (n[v] += d), (n[y] += p), (n[C] += f), (n[P] += d), (n[x] += p), (n[T] += f);
}
for (o = 0; o < n.length / 3; o++)
(d = n[3 * o]), (p = n[3 * o + 1]), (f = n[3 * o + 2]), (d /= m = 0 === (m = Math.sqrt(d * d + p * p + f * f)) ? 1 : m), (p /= m), (f /= m), (n[3 * o] = d), (n[3 * o + 1] = p), (n[3 * o + 2] = f);
}),
(e._ComputeSides = function (t, n, r, o, a, s, c) {
var l,
u,
h = r.length,
d = o.length;
switch ((t = t || e.DEFAULTSIDE)) {
case e.FRONTSIDE:
break;
case e.BACKSIDE:
var p;
for (l = 0; l < h; l += 3) (p = r[l]), (r[l] = r[l + 2]), (r[l + 2] = p);
for (u = 0; u < d; u++) o[u] = -o[u];
break;
case e.DOUBLESIDE:
for (var f = n.length, m = f / 3, g = 0; g < f; g++) n[f + g] = n[g];
for (l = 0; l < h; l += 3) (r[l + h] = r[l + 2] + m), (r[l + 1 + h] = r[l + 1] + m), (r[l + 2 + h] = r[l] + m);
for (u = 0; u < d; u++) o[d + u] = -o[u];
var b = a.length,
_ = 0;
for (_ = 0; _ < b; _++) a[_ + b] = a[_];
for (s = s || new i.f(0, 0, 1, 1), c = c || new i.f(0, 0, 1, 1), _ = 0, l = 0; l < b / 2; l++)
(a[_] = s.x + (s.z - s.x) * a[_]), (a[_ + 1] = s.y + (s.w - s.y) * a[_ + 1]), (a[_ + b] = c.x + (c.z - c.x) * a[_ + b]), (a[_ + b + 1] = c.y + (c.w - c.y) * a[_ + b + 1]), (_ += 2);
}
}),
(e.ImportVertexData = function (t, n) {
var i = new e(),
o = t.positions;
o && i.set(o, r.b.PositionKind);
var s = t.normals;
s && i.set(s, r.b.NormalKind);
var c = t.tangents;
c && i.set(c, r.b.TangentKind);
var l = t.uvs;
l && i.set(l, r.b.UVKind);
var u = t.uv2s;
u && i.set(u, r.b.UV2Kind);
var h = t.uv3s;
h && i.set(h, r.b.UV3Kind);
var d = t.uv4s;
d && i.set(d, r.b.UV4Kind);
var p = t.uv5s;
p && i.set(p, r.b.UV5Kind);
var f = t.uv6s;
f && i.set(f, r.b.UV6Kind);
var m = t.colors;
m && i.set(a.b.CheckColors4(m, o.length / 3), r.b.ColorKind);
var g = t.matricesIndices;
g && i.set(g, r.b.MatricesIndicesKind);
var b = t.matricesWeights;
b && i.set(b, r.b.MatricesWeightsKind);
var _ = t.indices;
_ && (i.indices = _), n.setAllVerticesData(i, t.updatable);
}),
(e.FRONTSIDE = 0),
(e.BACKSIDE = 1),
(e.DOUBLESIDE = 2),
(e.DEFAULTSIDE = 0),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(14),
r = (function () {
function e() {}
return (
Object.defineProperty(e, "DiffuseTextureEnabled", {
get: function () {
return this._DiffuseTextureEnabled;
},
set: function (e) {
this._DiffuseTextureEnabled !== e && ((this._DiffuseTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "AmbientTextureEnabled", {
get: function () {
return this._AmbientTextureEnabled;
},
set: function (e) {
this._AmbientTextureEnabled !== e && ((this._AmbientTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "OpacityTextureEnabled", {
get: function () {
return this._OpacityTextureEnabled;
},
set: function (e) {
this._OpacityTextureEnabled !== e && ((this._OpacityTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ReflectionTextureEnabled", {
get: function () {
return this._ReflectionTextureEnabled;
},
set: function (e) {
this._ReflectionTextureEnabled !== e && ((this._ReflectionTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "EmissiveTextureEnabled", {
get: function () {
return this._EmissiveTextureEnabled;
},
set: function (e) {
this._EmissiveTextureEnabled !== e && ((this._EmissiveTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "SpecularTextureEnabled", {
get: function () {
return this._SpecularTextureEnabled;
},
set: function (e) {
this._SpecularTextureEnabled !== e && ((this._SpecularTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "BumpTextureEnabled", {
get: function () {
return this._BumpTextureEnabled;
},
set: function (e) {
this._BumpTextureEnabled !== e && ((this._BumpTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "LightmapTextureEnabled", {
get: function () {
return this._LightmapTextureEnabled;
},
set: function (e) {
this._LightmapTextureEnabled !== e && ((this._LightmapTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "RefractionTextureEnabled", {
get: function () {
return this._RefractionTextureEnabled;
},
set: function (e) {
this._RefractionTextureEnabled !== e && ((this._RefractionTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ColorGradingTextureEnabled", {
get: function () {
return this._ColorGradingTextureEnabled;
},
set: function (e) {
this._ColorGradingTextureEnabled !== e && ((this._ColorGradingTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "FresnelEnabled", {
get: function () {
return this._FresnelEnabled;
},
set: function (e) {
this._FresnelEnabled !== e && ((this._FresnelEnabled = e), i.a.MarkAllMaterialsAsDirty(4));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ClearCoatTextureEnabled", {
get: function () {
return this._ClearCoatTextureEnabled;
},
set: function (e) {
this._ClearCoatTextureEnabled !== e && ((this._ClearCoatTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ClearCoatBumpTextureEnabled", {
get: function () {
return this._ClearCoatBumpTextureEnabled;
},
set: function (e) {
this._ClearCoatBumpTextureEnabled !== e && ((this._ClearCoatBumpTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ClearCoatTintTextureEnabled", {
get: function () {
return this._ClearCoatTintTextureEnabled;
},
set: function (e) {
this._ClearCoatTintTextureEnabled !== e && ((this._ClearCoatTintTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "SheenTextureEnabled", {
get: function () {
return this._SheenTextureEnabled;
},
set: function (e) {
this._SheenTextureEnabled !== e && ((this._SheenTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "AnisotropicTextureEnabled", {
get: function () {
return this._AnisotropicTextureEnabled;
},
set: function (e) {
this._AnisotropicTextureEnabled !== e && ((this._AnisotropicTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ThicknessTextureEnabled", {
get: function () {
return this._ThicknessTextureEnabled;
},
set: function (e) {
this._ThicknessTextureEnabled !== e && ((this._ThicknessTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
(e._DiffuseTextureEnabled = !0),
(e._AmbientTextureEnabled = !0),
(e._OpacityTextureEnabled = !0),
(e._ReflectionTextureEnabled = !0),
(e._EmissiveTextureEnabled = !0),
(e._SpecularTextureEnabled = !0),
(e._BumpTextureEnabled = !0),
(e._LightmapTextureEnabled = !0),
(e._RefractionTextureEnabled = !0),
(e._ColorGradingTextureEnabled = !0),
(e._FresnelEnabled = !0),
(e._ClearCoatTextureEnabled = !0),
(e._ClearCoatBumpTextureEnabled = !0),
(e._ClearCoatTintTextureEnabled = !0),
(e._SheenTextureEnabled = !0),
(e._AnisotropicTextureEnabled = !0),
(e._ThicknessTextureEnabled = !0),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return k;
});
var i = n(2),
r = n(12),
o = n(76),
a = n(6),
s = n(47),
c = n(151),
l = n(45),
u = n(1),
h = n(39),
d = n(31),
p = n(26),
f = n(54),
m = n(50),
g = n(124),
b = n(57),
_ = n(81),
v = n(64),
y = n(135),
C = n(136),
P = n(21),
x = n(56),
T = n(10),
S = n(25),
O = n(22),
E = n(20),
M = n(130),
A = n(89),
I = (function () {
function e() {
(this._singleClick = !1), (this._doubleClick = !1), (this._hasSwiped = !1), (this._ignore = !1);
}
return (
Object.defineProperty(e.prototype, "singleClick", {
get: function () {
return this._singleClick;
},
set: function (e) {
this._singleClick = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "doubleClick", {
get: function () {
return this._doubleClick;
},
set: function (e) {
this._doubleClick = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasSwiped", {
get: function () {
return this._hasSwiped;
},
set: function (e) {
this._hasSwiped = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "ignore", {
get: function () {
return this._ignore;
},
set: function (e) {
this._ignore = e;
},
enumerable: !0,
configurable: !0,
}),
e
);
})(),
D = (function () {
function e(e) {
(this._wheelEventName = ""),
(this._meshPickProceed = !1),
(this._currentPickResult = null),
(this._previousPickResult = null),
(this._totalPointersPressed = 0),
(this._doubleClickOccured = !1),
(this._pointerX = 0),
(this._pointerY = 0),
(this._startingPointerPosition = new u.d(0, 0)),
(this._previousStartingPointerPosition = new u.d(0, 0)),
(this._startingPointerTime = 0),
(this._previousStartingPointerTime = 0),
(this._pointerCaptures = {}),
(this._scene = e);
}
return (
Object.defineProperty(e.prototype, "meshUnderPointer", {
get: function () {
return this._pointerOverMesh;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "unTranslatedPointer", {
get: function () {
return new u.d(this._unTranslatedPointerX, this._unTranslatedPointerY);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "pointerX", {
get: function () {
return this._pointerX;
},
set: function (e) {
this._pointerX = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "pointerY", {
get: function () {
return this._pointerY;
},
set: function (e) {
this._pointerY = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._updatePointerPosition = function (e) {
var t = this._scene.getEngine().getInputElementClientRect();
t && ((this._pointerX = e.clientX - t.left), (this._pointerY = e.clientY - t.top), (this._unTranslatedPointerX = this._pointerX), (this._unTranslatedPointerY = this._pointerY));
}),
(e.prototype._processPointerMove = function (e, t) {
var n = this._scene,
i = n.getEngine(),
r = i.getInputElement();
if (r) {
(r.tabIndex = i.canvasTabIndex), n.doNotHandleCursors || (r.style.cursor = n.defaultCursor);
var o = !!(e && e.hit && e.pickedMesh);
o
? (n.setPointerOverMesh(e.pickedMesh),
this._pointerOverMesh &&
this._pointerOverMesh.actionManager &&
this._pointerOverMesh.actionManager.hasPointerTriggers &&
(n.doNotHandleCursors || (this._pointerOverMesh.actionManager.hoverCursor ? (r.style.cursor = this._pointerOverMesh.actionManager.hoverCursor) : (r.style.cursor = n.hoverCursor))))
: n.setPointerOverMesh(null);
for (var a = 0, s = n._pointerMoveStage; a < s.length; a++) {
e = s[a].action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, o, r);
}
if (e) {
var c = t.type === this._wheelEventName ? E.a.POINTERWHEEL : E.a.POINTERMOVE;
if ((n.onPointerMove && n.onPointerMove(t, e, c), n.onPointerObservable.hasObservers())) {
var l = new E.b(c, t, e);
this._setRayOnPointerInfo(l), n.onPointerObservable.notifyObservers(l, c);
}
}
}
}),
(e.prototype._setRayOnPointerInfo = function (e) {
var t = this._scene;
e.pickInfo && !e.pickInfo._pickingUnavailable && (e.pickInfo.ray || (e.pickInfo.ray = t.createPickingRay(e.event.offsetX, e.event.offsetY, u.a.Identity(), t.activeCamera)));
}),
(e.prototype._checkPrePointerObservable = function (e, t, n) {
var i = this._scene,
r = new E.d(n, t, this._unTranslatedPointerX, this._unTranslatedPointerY);
return e && (r.ray = e.ray), i.onPrePointerObservable.notifyObservers(r, n), !!r.skipOnPointerObservable;
}),
(e.prototype.simulatePointerMove = function (e, t) {
var n = new PointerEvent("pointermove", t);
this._checkPrePointerObservable(e, n, E.a.POINTERMOVE) || this._processPointerMove(e, n);
}),
(e.prototype.simulatePointerDown = function (e, t) {
var n = new PointerEvent("pointerdown", t);
this._checkPrePointerObservable(e, n, E.a.POINTERDOWN) || this._processPointerDown(e, n);
}),
(e.prototype._processPointerDown = function (t, n) {
var i = this,
r = this._scene;
if (t && t.hit && t.pickedMesh) {
this._pickedDownMesh = t.pickedMesh;
var o = t.pickedMesh._getActionManagerForTrigger();
if (o) {
if (o.hasPickTriggers)
switch ((o.processTrigger(5, v.a.CreateNew(t.pickedMesh, n)), n.button)) {
case 0:
o.processTrigger(2, v.a.CreateNew(t.pickedMesh, n));
break;
case 1:
o.processTrigger(4, v.a.CreateNew(t.pickedMesh, n));
break;
case 2:
o.processTrigger(3, v.a.CreateNew(t.pickedMesh, n));
}
o.hasSpecificTrigger(8) &&
window.setTimeout(function () {
var t = r.pick(
i._unTranslatedPointerX,
i._unTranslatedPointerY,
function (e) {
return e.isPickable && e.isVisible && e.isReady() && e.actionManager && e.actionManager.hasSpecificTrigger(8) && e == i._pickedDownMesh;
},
!1,
r.cameraToUseForPointers
);
t &&
t.hit &&
t.pickedMesh &&
o &&
0 !== i._totalPointersPressed &&
Date.now() - i._startingPointerTime > e.LongPressDelay &&
!i._isPointerSwiping() &&
((i._startingPointerTime = 0), o.processTrigger(8, v.a.CreateNew(t.pickedMesh, n)));
}, e.LongPressDelay);
}
} else
for (var a = 0, s = r._pointerDownStage; a < s.length; a++) {
t = s[a].action(this._unTranslatedPointerX, this._unTranslatedPointerY, t, n);
}
if (t) {
var c = E.a.POINTERDOWN;
if ((r.onPointerDown && r.onPointerDown(n, t, c), r.onPointerObservable.hasObservers())) {
var l = new E.b(c, n, t);
this._setRayOnPointerInfo(l), r.onPointerObservable.notifyObservers(l, c);
}
}
}),
(e.prototype._isPointerSwiping = function () {
return Math.abs(this._startingPointerPosition.x - this._pointerX) > e.DragMovementThreshold || Math.abs(this._startingPointerPosition.y - this._pointerY) > e.DragMovementThreshold;
}),
(e.prototype.simulatePointerUp = function (e, t, n) {
var i = new PointerEvent("pointerup", t),
r = new I();
n ? (r.doubleClick = !0) : (r.singleClick = !0), this._checkPrePointerObservable(e, i, E.a.POINTERUP) || this._processPointerUp(e, i, r);
}),
(e.prototype._processPointerUp = function (e, t, n) {
var i = this._scene;
if (e && e && e.pickedMesh) {
if (((this._pickedUpMesh = e.pickedMesh), this._pickedDownMesh === this._pickedUpMesh && (i.onPointerPick && i.onPointerPick(t, e), n.singleClick && !n.ignore && i.onPointerObservable.hasObservers()))) {
var r = E.a.POINTERPICK,
o = new E.b(r, t, e);
this._setRayOnPointerInfo(o), i.onPointerObservable.notifyObservers(o, r);
}
var a = e.pickedMesh._getActionManagerForTrigger();
if (a && !n.ignore) {
a.processTrigger(7, v.a.CreateNew(e.pickedMesh, t)), !n.hasSwiped && n.singleClick && a.processTrigger(1, v.a.CreateNew(e.pickedMesh, t));
var s = e.pickedMesh._getActionManagerForTrigger(6);
n.doubleClick && s && s.processTrigger(6, v.a.CreateNew(e.pickedMesh, t));
}
} else if (!n.ignore)
for (var c = 0, l = i._pointerUpStage; c < l.length; c++) {
e = l[c].action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, t);
}
if (this._pickedDownMesh && this._pickedDownMesh !== this._pickedUpMesh) {
var u = this._pickedDownMesh._getActionManagerForTrigger(16);
u && u.processTrigger(16, v.a.CreateNew(this._pickedDownMesh, t));
}
var h = 0;
if (i.onPointerObservable.hasObservers()) {
if (
!n.ignore &&
!n.hasSwiped &&
(n.singleClick && i.onPointerObservable.hasSpecificMask(E.a.POINTERTAP) ? (h = E.a.POINTERTAP) : n.doubleClick && i.onPointerObservable.hasSpecificMask(E.a.POINTERDOUBLETAP) && (h = E.a.POINTERDOUBLETAP), h)
) {
o = new E.b(h, t, e);
this._setRayOnPointerInfo(o), i.onPointerObservable.notifyObservers(o, h);
}
if (!n.ignore) {
h = E.a.POINTERUP;
o = new E.b(h, t, e);
this._setRayOnPointerInfo(o), i.onPointerObservable.notifyObservers(o, h);
}
}
i.onPointerUp && !n.ignore && i.onPointerUp(t, e, h);
}),
(e.prototype.isPointerCaptured = function (e) {
return void 0 === e && (e = 0), this._pointerCaptures[e];
}),
(e.prototype.attachControl = function (t, n, i, o) {
var a = this;
void 0 === t && (t = !0), void 0 === n && (n = !0), void 0 === i && (i = !0), void 0 === o && (o = null);
var s = this._scene;
if ((o || (o = s.getEngine().getInputElement()), o)) {
var c,
l = s.getEngine();
(this._initActionManager = function (e, t) {
if (!a._meshPickProceed) {
var n = s.pick(a._unTranslatedPointerX, a._unTranslatedPointerY, s.pointerDownPredicate, !1, s.cameraToUseForPointers);
(a._currentPickResult = n), n && (e = n.hit && n.pickedMesh ? n.pickedMesh._getActionManagerForTrigger() : null), (a._meshPickProceed = !0);
}
return e;
}),
(this._delayedSimpleClick = function (t, n, i) {
((Date.now() - a._previousStartingPointerTime > e.DoubleClickDelay && !a._doubleClickOccured) || t !== a._previousButtonPressed) &&
((a._doubleClickOccured = !1), (n.singleClick = !0), (n.ignore = !1), i(n, a._currentPickResult));
}),
(this._initClickEvent = function (t, n, i, r) {
var o = new I();
a._currentPickResult = null;
var s = null,
c =
t.hasSpecificMask(E.a.POINTERPICK) ||
n.hasSpecificMask(E.a.POINTERPICK) ||
t.hasSpecificMask(E.a.POINTERTAP) ||
n.hasSpecificMask(E.a.POINTERTAP) ||
t.hasSpecificMask(E.a.POINTERDOUBLETAP) ||
n.hasSpecificMask(E.a.POINTERDOUBLETAP);
!c && M.a && (s = a._initActionManager(s, o)) && (c = s.hasPickTriggers);
var l = !1;
if (c) {
var u = i.button;
if (((o.hasSwiped = a._isPointerSwiping()), !o.hasSwiped)) {
var h = !e.ExclusiveDoubleClickMode;
h ||
((h = !t.hasSpecificMask(E.a.POINTERDOUBLETAP) && !n.hasSpecificMask(E.a.POINTERDOUBLETAP)) &&
!M.a.HasSpecificTrigger(6) &&
(s = a._initActionManager(s, o)) &&
(h = !s.hasSpecificTrigger(6))),
h
? (Date.now() - a._previousStartingPointerTime > e.DoubleClickDelay || u !== a._previousButtonPressed) && ((o.singleClick = !0), r(o, a._currentPickResult), (l = !0))
: ((a._previousDelayedSimpleClickTimeout = a._delayedSimpleClickTimeout), (a._delayedSimpleClickTimeout = window.setTimeout(a._delayedSimpleClick.bind(a, u, o, r), e.DoubleClickDelay)));
var d = t.hasSpecificMask(E.a.POINTERDOUBLETAP) || n.hasSpecificMask(E.a.POINTERDOUBLETAP);
!d && M.a.HasSpecificTrigger(6) && (s = a._initActionManager(s, o)) && (d = s.hasSpecificTrigger(6)),
d &&
(u === a._previousButtonPressed && Date.now() - a._previousStartingPointerTime < e.DoubleClickDelay && !a._doubleClickOccured
? (o.hasSwiped || a._isPointerSwiping()
? ((a._doubleClickOccured = !1),
(a._previousStartingPointerTime = a._startingPointerTime),
(a._previousStartingPointerPosition.x = a._startingPointerPosition.x),
(a._previousStartingPointerPosition.y = a._startingPointerPosition.y),
(a._previousButtonPressed = u),
e.ExclusiveDoubleClickMode
? (a._previousDelayedSimpleClickTimeout && clearTimeout(a._previousDelayedSimpleClickTimeout),
(a._previousDelayedSimpleClickTimeout = a._delayedSimpleClickTimeout),
r(o, a._previousPickResult))
: r(o, a._currentPickResult))
: ((a._previousStartingPointerTime = 0),
(a._doubleClickOccured = !0),
(o.doubleClick = !0),
(o.ignore = !1),
e.ExclusiveDoubleClickMode && a._previousDelayedSimpleClickTimeout && clearTimeout(a._previousDelayedSimpleClickTimeout),
(a._previousDelayedSimpleClickTimeout = a._delayedSimpleClickTimeout),
r(o, a._currentPickResult)),
(l = !0))
: ((a._doubleClickOccured = !1),
(a._previousStartingPointerTime = a._startingPointerTime),
(a._previousStartingPointerPosition.x = a._startingPointerPosition.x),
(a._previousStartingPointerPosition.y = a._startingPointerPosition.y),
(a._previousButtonPressed = u)));
}
}
l || r(o, a._currentPickResult);
}),
(this._onPointerMove = function (e) {
if ((a._updatePointerPosition(e), !a._checkPrePointerObservable(null, e, e.type === a._wheelEventName ? E.a.POINTERWHEEL : E.a.POINTERMOVE) && (s.cameraToUseForPointers || s.activeCamera))) {
s.pointerMovePredicate ||
(s.pointerMovePredicate = function (e) {
return (
e.isPickable &&
e.isVisible &&
e.isReady() &&
e.isEnabled() &&
(e.enablePointerMoveEvents || s.constantlyUpdateMeshUnderPointer || null != e._getActionManagerForTrigger()) &&
(!s.cameraToUseForPointers || 0 != (s.cameraToUseForPointers.layerMask & e.layerMask))
);
});
var t = s.pick(a._unTranslatedPointerX, a._unTranslatedPointerY, s.pointerMovePredicate, !1, s.cameraToUseForPointers);
a._processPointerMove(t, e);
}
}),
(this._onPointerDown = function (e) {
if (
(a._totalPointersPressed++,
(a._pickedDownMesh = null),
(a._meshPickProceed = !1),
a._updatePointerPosition(e),
s.preventDefaultOnPointerDown && o && (e.preventDefault(), o.focus()),
(a._startingPointerPosition.x = a._pointerX),
(a._startingPointerPosition.y = a._pointerY),
(a._startingPointerTime = Date.now()),
!a._checkPrePointerObservable(null, e, E.a.POINTERDOWN) && (s.cameraToUseForPointers || s.activeCamera))
) {
(a._pointerCaptures[e.pointerId] = !0),
s.pointerDownPredicate ||
(s.pointerDownPredicate = function (e) {
return e.isPickable && e.isVisible && e.isReady() && e.isEnabled() && (!s.cameraToUseForPointers || 0 != (s.cameraToUseForPointers.layerMask & e.layerMask));
}),
(a._pickedDownMesh = null);
var t = s.pick(a._unTranslatedPointerX, a._unTranslatedPointerY, s.pointerDownPredicate, !1, s.cameraToUseForPointers);
a._processPointerDown(t, e);
}
}),
(this._onPointerUp = function (e) {
0 !== a._totalPointersPressed &&
(a._totalPointersPressed--,
(a._pickedUpMesh = null),
(a._meshPickProceed = !1),
a._updatePointerPosition(e),
s.preventDefaultOnPointerUp && o && (e.preventDefault(), o.focus()),
a._initClickEvent(s.onPrePointerObservable, s.onPointerObservable, e, function (t, n) {
if (s.onPrePointerObservable.hasObservers() && !t.ignore) {
if (!t.hasSwiped) {
if (t.singleClick && s.onPrePointerObservable.hasSpecificMask(E.a.POINTERTAP) && a._checkPrePointerObservable(null, e, E.a.POINTERTAP)) return;
if (t.doubleClick && s.onPrePointerObservable.hasSpecificMask(E.a.POINTERDOUBLETAP) && a._checkPrePointerObservable(null, e, E.a.POINTERDOUBLETAP)) return;
}
if (a._checkPrePointerObservable(null, e, E.a.POINTERUP)) return;
}
a._pointerCaptures[e.pointerId] &&
((a._pointerCaptures[e.pointerId] = !1),
(s.cameraToUseForPointers || s.activeCamera) &&
(s.pointerUpPredicate ||
(s.pointerUpPredicate = function (e) {
return e.isPickable && e.isVisible && e.isReady() && e.isEnabled() && (!s.cameraToUseForPointers || 0 != (s.cameraToUseForPointers.layerMask & e.layerMask));
}),
!a._meshPickProceed && ((M.a && M.a.HasTriggers) || s.onPointerObservable.hasObservers()) && a._initActionManager(null, t),
n || (n = a._currentPickResult),
a._processPointerUp(n, e, t),
(a._previousPickResult = a._currentPickResult)));
}));
}),
(this._onKeyDown = function (e) {
var t = A.a.KEYDOWN;
if (s.onPreKeyboardObservable.hasObservers()) {
var n = new A.c(t, e);
if ((s.onPreKeyboardObservable.notifyObservers(n, t), n.skipOnPointerObservable)) return;
}
if (s.onKeyboardObservable.hasObservers()) {
n = new A.b(t, e);
s.onKeyboardObservable.notifyObservers(n, t);
}
s.actionManager && s.actionManager.processTrigger(14, v.a.CreateNewFromScene(s, e));
}),
(this._onKeyUp = function (e) {
var t = A.a.KEYUP;
if (s.onPreKeyboardObservable.hasObservers()) {
var n = new A.c(t, e);
if ((s.onPreKeyboardObservable.notifyObservers(n, t), n.skipOnPointerObservable)) return;
}
if (s.onKeyboardObservable.hasObservers()) {
n = new A.b(t, e);
s.onKeyboardObservable.notifyObservers(n, t);
}
s.actionManager && s.actionManager.processTrigger(15, v.a.CreateNewFromScene(s, e));
}),
(this._onCanvasFocusObserver = l.onCanvasFocusObservable.add(
((c = function () {
o && (o.addEventListener("keydown", a._onKeyDown, !1), o.addEventListener("keyup", a._onKeyUp, !1));
}),
document.activeElement === o && c(),
c)
)),
(this._onCanvasBlurObserver = l.onCanvasBlurObservable.add(function () {
o && (o.removeEventListener("keydown", a._onKeyDown), o.removeEventListener("keyup", a._onKeyUp));
}));
var u = r.b.GetPointerPrefix();
if (
(i &&
(o.addEventListener(u + "move", this._onPointerMove, !1),
(this._wheelEventName = "onwheel" in document.createElement("div") ? "wheel" : void 0 !== document.onmousewheel ? "mousewheel" : "DOMMouseScroll"),
o.addEventListener(this._wheelEventName, this._onPointerMove, !1)),
n && o.addEventListener(u + "down", this._onPointerDown, !1),
t)
) {
var h = s.getEngine().getHostWindow();
h && h.addEventListener(u + "up", this._onPointerUp, !1);
}
}
}),
(e.prototype.detachControl = function () {
var e = r.b.GetPointerPrefix(),
t = this._scene.getEngine().getInputElement(),
n = this._scene.getEngine();
t &&
(t.removeEventListener(e + "move", this._onPointerMove),
t.removeEventListener(this._wheelEventName, this._onPointerMove),
t.removeEventListener(e + "down", this._onPointerDown),
window.removeEventListener(e + "up", this._onPointerUp),
this._onCanvasBlurObserver && n.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),
this._onCanvasFocusObserver && n.onCanvasFocusObservable.remove(this._onCanvasFocusObserver),
t.removeEventListener("keydown", this._onKeyDown),
t.removeEventListener("keyup", this._onKeyUp),
this._scene.doNotHandleCursors || (t.style.cursor = this._scene.defaultCursor));
}),
(e.prototype.setPointerOverMesh = function (e) {
var t;
this._pointerOverMesh !== e &&
(this._pointerOverMesh && (t = this._pointerOverMesh._getActionManagerForTrigger(10)) && t.processTrigger(10, v.a.CreateNew(this._pointerOverMesh)),
(this._pointerOverMesh = e),
this._pointerOverMesh && (t = this._pointerOverMesh._getActionManagerForTrigger(9)) && t.processTrigger(9, v.a.CreateNew(this._pointerOverMesh)));
}),
(e.prototype.getPointerOverMesh = function () {
return this._pointerOverMesh;
}),
(e.DragMovementThreshold = 10),
(e.LongPressDelay = 500),
(e.DoubleClickDelay = 300),
(e.ExclusiveDoubleClickMode = !1),
e
);
})(),
R = n(69),
w = n(5),
L = n(128),
F = n(205),
N = n(74),
k = (function (e) {
function t(n, r) {
var o = e.call(this) || this;
(o._inputManager = new D(o)),
(o.cameraToUseForPointers = null),
(o._isScene = !0),
(o._blockEntityCollection = !1),
(o.autoClear = !0),
(o.autoClearDepthAndStencil = !0),
(o.clearColor = new w.b(0.2, 0.2, 0.3, 1)),
(o.ambientColor = new w.a(0, 0, 0)),
(o._environmentIntensity = 1),
(o._forceWireframe = !1),
(o._skipFrustumClipping = !1),
(o._forcePointsCloud = !1),
(o.animationsEnabled = !0),
(o._animationPropertiesOverride = null),
(o.useConstantAnimationDeltaTime = !1),
(o.constantlyUpdateMeshUnderPointer = !1),
(o.hoverCursor = "pointer"),
(o.defaultCursor = ""),
(o.doNotHandleCursors = !1),
(o.preventDefaultOnPointerDown = !0),
(o.preventDefaultOnPointerUp = !0),
(o.metadata = null),
(o.reservedDataStore = null),
(o.disableOfflineSupportExceptionRules = new Array()),
(o.onDisposeObservable = new a.c()),
(o._onDisposeObserver = null),
(o.onBeforeRenderObservable = new a.c()),
(o._onBeforeRenderObserver = null),
(o.onAfterRenderObservable = new a.c()),
(o.onAfterRenderCameraObservable = new a.c()),
(o._onAfterRenderObserver = null),
(o.onBeforeAnimationsObservable = new a.c()),
(o.onAfterAnimationsObservable = new a.c()),
(o.onBeforeDrawPhaseObservable = new a.c()),
(o.onAfterDrawPhaseObservable = new a.c()),
(o.onReadyObservable = new a.c()),
(o.onBeforeCameraRenderObservable = new a.c()),
(o._onBeforeCameraRenderObserver = null),
(o.onAfterCameraRenderObservable = new a.c()),
(o._onAfterCameraRenderObserver = null),
(o.onBeforeActiveMeshesEvaluationObservable = new a.c()),
(o.onAfterActiveMeshesEvaluationObservable = new a.c()),
(o.onBeforeParticlesRenderingObservable = new a.c()),
(o.onAfterParticlesRenderingObservable = new a.c()),
(o.onDataLoadedObservable = new a.c()),
(o.onNewCameraAddedObservable = new a.c()),
(o.onCameraRemovedObservable = new a.c()),
(o.onNewLightAddedObservable = new a.c()),
(o.onLightRemovedObservable = new a.c()),
(o.onNewGeometryAddedObservable = new a.c()),
(o.onGeometryRemovedObservable = new a.c()),
(o.onNewTransformNodeAddedObservable = new a.c()),
(o.onTransformNodeRemovedObservable = new a.c()),
(o.onNewMeshAddedObservable = new a.c()),
(o.onMeshRemovedObservable = new a.c()),
(o.onNewSkeletonAddedObservable = new a.c()),
(o.onSkeletonRemovedObservable = new a.c()),
(o.onNewMaterialAddedObservable = new a.c()),
(o.onMaterialRemovedObservable = new a.c()),
(o.onNewTextureAddedObservable = new a.c()),
(o.onTextureRemovedObservable = new a.c()),
(o.onBeforeRenderTargetsRenderObservable = new a.c()),
(o.onAfterRenderTargetsRenderObservable = new a.c()),
(o.onBeforeStepObservable = new a.c()),
(o.onAfterStepObservable = new a.c()),
(o.onActiveCameraChanged = new a.c()),
(o.onBeforeRenderingGroupObservable = new a.c()),
(o.onAfterRenderingGroupObservable = new a.c()),
(o.onMeshImportedObservable = new a.c()),
(o.onAnimationFileImportedObservable = new a.c()),
(o._registeredForLateAnimationBindings = new s.b(256)),
(o.onPrePointerObservable = new a.c()),
(o.onPointerObservable = new a.c()),
(o.onPreKeyboardObservable = new a.c()),
(o.onKeyboardObservable = new a.c()),
(o._useRightHandedSystem = !1),
(o._timeAccumulator = 0),
(o._currentStepId = 0),
(o._currentInternalStep = 0),
(o._fogEnabled = !0),
(o._fogMode = t.FOGMODE_NONE),
(o.fogColor = new w.a(0.2, 0.2, 0.3)),
(o.fogDensity = 0.1),
(o.fogStart = 0),
(o.fogEnd = 1e3),
(o._shadowsEnabled = !0),
(o._lightsEnabled = !0),
(o.activeCameras = new Array()),
(o._texturesEnabled = !0),
(o.particlesEnabled = !0),
(o.spritesEnabled = !0),
(o._skeletonsEnabled = !0),
(o.lensFlaresEnabled = !0),
(o.collisionsEnabled = !0),
(o.gravity = new u.e(0, -9.807, 0)),
(o.postProcessesEnabled = !0),
(o.postProcesses = new Array()),
(o.renderTargetsEnabled = !0),
(o.dumpNextRenderTargets = !1),
(o.customRenderTargets = new Array()),
(o.importedMeshesFiles = new Array()),
(o.probesEnabled = !0),
(o._meshesForIntersections = new s.b(256)),
(o.proceduralTexturesEnabled = !0),
(o._totalVertices = new R.a()),
(o._activeIndices = new R.a()),
(o._activeParticles = new R.a()),
(o._activeBones = new R.a()),
(o._animationTime = 0),
(o.animationTimeScale = 1),
(o._renderId = 0),
(o._frameId = 0),
(o._executeWhenReadyTimeoutId = -1),
(o._intermediateRendering = !1),
(o._viewUpdateFlag = -1),
(o._projectionUpdateFlag = -1),
(o._toBeDisposed = new Array(256)),
(o._activeRequests = new Array()),
(o._pendingData = new Array()),
(o._isDisposed = !1),
(o.dispatchAllSubMeshesOfActiveMeshes = !1),
(o._activeMeshes = new s.a(256)),
(o._processedMaterials = new s.a(256)),
(o._renderTargets = new s.b(256)),
(o._activeParticleSystems = new s.a(256)),
(o._activeSkeletons = new s.b(32)),
(o._softwareSkinnedMeshes = new s.b(32)),
(o._activeAnimatables = new Array()),
(o._transformMatrix = u.a.Zero()),
(o.requireLightSorting = !1),
(o._components = []),
(o._serializableComponents = []),
(o._transientComponents = []),
(o._beforeCameraUpdateStage = P.b.Create()),
(o._beforeClearStage = P.b.Create()),
(o._gatherRenderTargetsStage = P.b.Create()),
(o._gatherActiveCameraRenderTargetsStage = P.b.Create()),
(o._isReadyForMeshStage = P.b.Create()),
(o._beforeEvaluateActiveMeshStage = P.b.Create()),
(o._evaluateSubMeshStage = P.b.Create()),
(o._activeMeshStage = P.b.Create()),
(o._cameraDrawRenderTargetStage = P.b.Create()),
(o._beforeCameraDrawStage = P.b.Create()),
(o._beforeRenderTargetDrawStage = P.b.Create()),
(o._beforeRenderingGroupDrawStage = P.b.Create()),
(o._beforeRenderingMeshStage = P.b.Create()),
(o._afterRenderingMeshStage = P.b.Create()),
(o._afterRenderingGroupDrawStage = P.b.Create()),
(o._afterCameraDrawStage = P.b.Create()),
(o._afterRenderTargetDrawStage = P.b.Create()),
(o._afterRenderStage = P.b.Create()),
(o._pointerMoveStage = P.b.Create()),
(o._pointerDownStage = P.b.Create()),
(o._pointerUpStage = P.b.Create()),
(o.geometriesByUniqueId = null),
(o._defaultMeshCandidates = { data: [], length: 0 }),
(o._defaultSubMeshCandidates = { data: [], length: 0 }),
(o._preventFreeActiveMeshesAndRenderingGroups = !1),
(o._activeMeshesFrozen = !1),
(o._skipEvaluateActiveMeshesCompletely = !1),
(o._allowPostProcessClearColor = !0),
(o.getDeterministicFrameTime = function () {
return o._engine.getTimeStep();
}),
(o._blockMaterialDirtyMechanism = !1);
var c = Object(i.a)({ useGeometryUniqueIdsMap: !0, useMaterialMeshMap: !0, useClonedMeshMap: !0, virtual: !1 }, r);
return (
(o._engine = n || S.a.LastCreatedEngine),
c.virtual || ((S.a._LastCreatedScene = o), o._engine.scenes.push(o)),
(o._uid = null),
(o._renderingManager = new C.b(o)),
y.a && (o.postProcessManager = new y.a(o)),
x.a.IsWindowObjectExist() && o.attachControl(),
o._createUbo(),
m.a && (o._imageProcessingConfiguration = new m.a()),
o.setDefaultCandidateProviders(),
c.useGeometryUniqueIdsMap && (o.geometriesByUniqueId = {}),
(o.useMaterialMeshMap = c.useMaterialMeshMap),
(o.useClonedMeshMap = c.useClonedMeshMap),
(r && r.virtual) || o._engine.onNewSceneAddedObservable.notifyObservers(o),
o
);
}
return (
Object(i.d)(t, e),
(t.DefaultMaterialFactory = function (e) {
throw O.a.WarnImport("StandardMaterial");
}),
(t.CollisionCoordinatorFactory = function () {
throw O.a.WarnImport("DefaultCollisionCoordinator");
}),
Object.defineProperty(t.prototype, "environmentTexture", {
get: function () {
return this._environmentTexture;
},
set: function (e) {
this._environmentTexture !== e && ((this._environmentTexture = e), this.markAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "environmentIntensity", {
get: function () {
return this._environmentIntensity;
},
set: function (e) {
this._environmentIntensity !== e && ((this._environmentIntensity = e), this.markAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "forceWireframe", {
get: function () {
return this._forceWireframe;
},
set: function (e) {
this._forceWireframe !== e && ((this._forceWireframe = e), this.markAllMaterialsAsDirty(16));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "skipFrustumClipping", {
get: function () {
return this._skipFrustumClipping;
},
set: function (e) {
this._skipFrustumClipping !== e && (this._skipFrustumClipping = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "forcePointsCloud", {
get: function () {
return this._forcePointsCloud;
},
set: function (e) {
this._forcePointsCloud !== e && ((this._forcePointsCloud = e), this.markAllMaterialsAsDirty(16));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "animationPropertiesOverride", {
get: function () {
return this._animationPropertiesOverride;
},
set: function (e) {
this._animationPropertiesOverride = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "beforeRender", {
set: function (e) {
this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), e && (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "afterRender", {
set: function (e) {
this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), e && (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "beforeCameraRender", {
set: function (e) {
this._onBeforeCameraRenderObserver && this.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), (this._onBeforeCameraRenderObserver = this.onBeforeCameraRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "afterCameraRender", {
set: function (e) {
this._onAfterCameraRenderObserver && this.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver), (this._onAfterCameraRenderObserver = this.onAfterCameraRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "unTranslatedPointer", {
get: function () {
return this._inputManager.unTranslatedPointer;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "DragMovementThreshold", {
get: function () {
return D.DragMovementThreshold;
},
set: function (e) {
D.DragMovementThreshold = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "LongPressDelay", {
get: function () {
return D.LongPressDelay;
},
set: function (e) {
D.LongPressDelay = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "DoubleClickDelay", {
get: function () {
return D.DoubleClickDelay;
},
set: function (e) {
D.DoubleClickDelay = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "ExclusiveDoubleClickMode", {
get: function () {
return D.ExclusiveDoubleClickMode;
},
set: function (e) {
D.ExclusiveDoubleClickMode = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useRightHandedSystem", {
get: function () {
return this._useRightHandedSystem;
},
set: function (e) {
this._useRightHandedSystem !== e && ((this._useRightHandedSystem = e), this.markAllMaterialsAsDirty(16));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setStepId = function (e) {
this._currentStepId = e;
}),
(t.prototype.getStepId = function () {
return this._currentStepId;
}),
(t.prototype.getInternalStep = function () {
return this._currentInternalStep;
}),
Object.defineProperty(t.prototype, "fogEnabled", {
get: function () {
return this._fogEnabled;
},
set: function (e) {
this._fogEnabled !== e && ((this._fogEnabled = e), this.markAllMaterialsAsDirty(16));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fogMode", {
get: function () {
return this._fogMode;
},
set: function (e) {
this._fogMode !== e && ((this._fogMode = e), this.markAllMaterialsAsDirty(16));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadowsEnabled", {
get: function () {
return this._shadowsEnabled;
},
set: function (e) {
this._shadowsEnabled !== e && ((this._shadowsEnabled = e), this.markAllMaterialsAsDirty(2));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "lightsEnabled", {
get: function () {
return this._lightsEnabled;
},
set: function (e) {
this._lightsEnabled !== e && ((this._lightsEnabled = e), this.markAllMaterialsAsDirty(2));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "activeCamera", {
get: function () {
return this._activeCamera;
},
set: function (e) {
e !== this._activeCamera && ((this._activeCamera = e), this.onActiveCameraChanged.notifyObservers(this));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "defaultMaterial", {
get: function () {
return this._defaultMaterial || (this._defaultMaterial = t.DefaultMaterialFactory(this)), this._defaultMaterial;
},
set: function (e) {
this._defaultMaterial = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "texturesEnabled", {
get: function () {
return this._texturesEnabled;
},
set: function (e) {
this._texturesEnabled !== e && ((this._texturesEnabled = e), this.markAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "skeletonsEnabled", {
get: function () {
return this._skeletonsEnabled;
},
set: function (e) {
this._skeletonsEnabled !== e && ((this._skeletonsEnabled = e), this.markAllMaterialsAsDirty(8));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "collisionCoordinator", {
get: function () {
return this._collisionCoordinator || ((this._collisionCoordinator = t.CollisionCoordinatorFactory()), this._collisionCoordinator.init(this)), this._collisionCoordinator;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "frustumPlanes", {
get: function () {
return this._frustumPlanes;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._registerTransientComponents = function () {
if (this._transientComponents.length > 0) {
for (var e = 0, t = this._transientComponents; e < t.length; e++) {
t[e].register();
}
this._transientComponents = [];
}
}),
(t.prototype._addComponent = function (e) {
this._components.push(e), this._transientComponents.push(e);
var t = e;
t.addFromContainer && t.serialize && this._serializableComponents.push(t);
}),
(t.prototype._getComponent = function (e) {
for (var t = 0, n = this._components; t < n.length; t++) {
var i = n[t];
if (i.name === e) return i;
}
return null;
}),
(t.prototype.getClassName = function () {
return "Scene";
}),
(t.prototype._getDefaultMeshCandidates = function () {
return (this._defaultMeshCandidates.data = this.meshes), (this._defaultMeshCandidates.length = this.meshes.length), this._defaultMeshCandidates;
}),
(t.prototype._getDefaultSubMeshCandidates = function (e) {
return (this._defaultSubMeshCandidates.data = e.subMeshes), (this._defaultSubMeshCandidates.length = e.subMeshes.length), this._defaultSubMeshCandidates;
}),
(t.prototype.setDefaultCandidateProviders = function () {
(this.getActiveMeshCandidates = this._getDefaultMeshCandidates.bind(this)),
(this.getActiveSubMeshCandidates = this._getDefaultSubMeshCandidates.bind(this)),
(this.getIntersectingSubMeshCandidates = this._getDefaultSubMeshCandidates.bind(this)),
(this.getCollidingSubMeshCandidates = this._getDefaultSubMeshCandidates.bind(this));
}),
Object.defineProperty(t.prototype, "meshUnderPointer", {
get: function () {
return this._inputManager.meshUnderPointer;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "pointerX", {
get: function () {
return this._inputManager.pointerX;
},
set: function (e) {
this._inputManager.pointerX = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "pointerY", {
get: function () {
return this._inputManager.pointerY;
},
set: function (e) {
this._inputManager.pointerY = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getCachedMaterial = function () {
return this._cachedMaterial;
}),
(t.prototype.getCachedEffect = function () {
return this._cachedEffect;
}),
(t.prototype.getCachedVisibility = function () {
return this._cachedVisibility;
}),
(t.prototype.isCachedMaterialInvalid = function (e, t, n) {
return void 0 === n && (n = 1), this._cachedEffect !== t || this._cachedMaterial !== e || this._cachedVisibility !== n;
}),
(t.prototype.getEngine = function () {
return this._engine;
}),
(t.prototype.getTotalVertices = function () {
return this._totalVertices.current;
}),
Object.defineProperty(t.prototype, "totalVerticesPerfCounter", {
get: function () {
return this._totalVertices;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getActiveIndices = function () {
return this._activeIndices.current;
}),
Object.defineProperty(t.prototype, "totalActiveIndicesPerfCounter", {
get: function () {
return this._activeIndices;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getActiveParticles = function () {
return this._activeParticles.current;
}),
Object.defineProperty(t.prototype, "activeParticlesPerfCounter", {
get: function () {
return this._activeParticles;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getActiveBones = function () {
return this._activeBones.current;
}),
Object.defineProperty(t.prototype, "activeBonesPerfCounter", {
get: function () {
return this._activeBones;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getActiveMeshes = function () {
return this._activeMeshes;
}),
(t.prototype.getAnimationRatio = function () {
return void 0 !== this._animationRatio ? this._animationRatio : 1;
}),
(t.prototype.getRenderId = function () {
return this._renderId;
}),
(t.prototype.getFrameId = function () {
return this._frameId;
}),
(t.prototype.incrementRenderId = function () {
this._renderId++;
}),
(t.prototype._createUbo = function () {
(this._sceneUbo = new g.a(this._engine, void 0, !0)), this._sceneUbo.addUniform("viewProjection", 16), this._sceneUbo.addUniform("view", 16);
}),
(t.prototype.simulatePointerMove = function (e, t) {
return this._inputManager.simulatePointerMove(e, t), this;
}),
(t.prototype.simulatePointerDown = function (e, t) {
return this._inputManager.simulatePointerDown(e, t), this;
}),
(t.prototype.simulatePointerUp = function (e, t, n) {
return this._inputManager.simulatePointerUp(e, t, n), this;
}),
(t.prototype.isPointerCaptured = function (e) {
return void 0 === e && (e = 0), this._inputManager.isPointerCaptured(e);
}),
(t.prototype.attachControl = function (e, t, n) {
void 0 === e && (e = !0), void 0 === t && (t = !0), void 0 === n && (n = !0), this._inputManager.attachControl(e, t, n);
}),
(t.prototype.detachControl = function () {
this._inputManager.detachControl();
}),
(t.prototype.isReady = function () {
if (this._isDisposed) return !1;
var e,
t = this.getEngine();
if (!t.areAllEffectsReady()) return !1;
if (this._pendingData.length > 0) return !1;
for (e = 0; e < this.meshes.length; e++) {
var n = this.meshes[e];
if (n.isEnabled() && n.subMeshes && 0 !== n.subMeshes.length) {
if (!n.isReady(!0)) return !1;
for (
var i = "InstancedMesh" === n.getClassName() || "InstancedLinesMesh" === n.getClassName() || (t.getCaps().instancedArrays && n.instances.length > 0), r = 0, o = this._isReadyForMeshStage;
r < o.length;
r++
) {
if (!o[r].action(n, i)) return !1;
}
}
}
for (e = 0; e < this.geometries.length; e++) {
if (2 === this.geometries[e].delayLoadState) return !1;
}
if (this.activeCameras && this.activeCameras.length > 0)
for (var a = 0, s = this.activeCameras; a < s.length; a++) {
if (!s[a].isReady(!0)) return !1;
}
else if (this.activeCamera && !this.activeCamera.isReady(!0)) return !1;
for (var c = 0, l = this.particleSystems; c < l.length; c++) {
if (!l[c].isReady()) return !1;
}
return !0;
}),
(t.prototype.resetCachedMaterial = function () {
(this._cachedMaterial = null), (this._cachedEffect = null), (this._cachedVisibility = null);
}),
(t.prototype.registerBeforeRender = function (e) {
this.onBeforeRenderObservable.add(e);
}),
(t.prototype.unregisterBeforeRender = function (e) {
this.onBeforeRenderObservable.removeCallback(e);
}),
(t.prototype.registerAfterRender = function (e) {
this.onAfterRenderObservable.add(e);
}),
(t.prototype.unregisterAfterRender = function (e) {
this.onAfterRenderObservable.removeCallback(e);
}),
(t.prototype._executeOnceBeforeRender = function (e) {
var t = this,
n = function () {
e(),
setTimeout(function () {
t.unregisterBeforeRender(n);
});
};
this.registerBeforeRender(n);
}),
(t.prototype.executeOnceBeforeRender = function (e, t) {
var n = this;
void 0 !== t
? setTimeout(function () {
n._executeOnceBeforeRender(e);
}, t)
: this._executeOnceBeforeRender(e);
}),
(t.prototype._addPendingData = function (e) {
this._pendingData.push(e);
}),
(t.prototype._removePendingData = function (e) {
var t = this.isLoading,
n = this._pendingData.indexOf(e);
-1 !== n && this._pendingData.splice(n, 1), t && !this.isLoading && this.onDataLoadedObservable.notifyObservers(this);
}),
(t.prototype.getWaitingItemsCount = function () {
return this._pendingData.length;
}),
Object.defineProperty(t.prototype, "isLoading", {
get: function () {
return this._pendingData.length > 0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.executeWhenReady = function (e) {
var t = this;
this.onReadyObservable.add(e),
-1 === this._executeWhenReadyTimeoutId &&
(this._executeWhenReadyTimeoutId = setTimeout(function () {
t._checkIsReady();
}, 150));
}),
(t.prototype.whenReadyAsync = function () {
var e = this;
return new Promise(function (t) {
e.executeWhenReady(function () {
t();
});
});
}),
(t.prototype._checkIsReady = function () {
var e = this;
return (
this._registerTransientComponents(),
this.isReady()
? (this.onReadyObservable.notifyObservers(this), this.onReadyObservable.clear(), void (this._executeWhenReadyTimeoutId = -1))
: this._isDisposed
? (this.onReadyObservable.clear(), void (this._executeWhenReadyTimeoutId = -1))
: void (this._executeWhenReadyTimeoutId = setTimeout(function () {
e._checkIsReady();
}, 150))
);
}),
Object.defineProperty(t.prototype, "animatables", {
get: function () {
return this._activeAnimatables;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.resetLastAnimationTimeFrame = function () {
this._animationTimeLast = o.a.Now;
}),
(t.prototype.getViewMatrix = function () {
return this._viewMatrix;
}),
(t.prototype.getProjectionMatrix = function () {
return this._projectionMatrix;
}),
(t.prototype.getTransformMatrix = function () {
return this._transformMatrix;
}),
(t.prototype.setTransformMatrix = function (e, t, n, i) {
(this._viewUpdateFlag === e.updateFlag && this._projectionUpdateFlag === t.updateFlag) ||
((this._viewUpdateFlag = e.updateFlag),
(this._projectionUpdateFlag = t.updateFlag),
(this._viewMatrix = e),
(this._projectionMatrix = t),
this._viewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix),
this._frustumPlanes ? L.a.GetPlanesToRef(this._transformMatrix, this._frustumPlanes) : (this._frustumPlanes = L.a.GetPlanes(this._transformMatrix)),
this._multiviewSceneUbo && this._multiviewSceneUbo.useUbo
? this._updateMultiviewUbo(n, i)
: this._sceneUbo.useUbo && (this._sceneUbo.updateMatrix("viewProjection", this._transformMatrix), this._sceneUbo.updateMatrix("view", this._viewMatrix), this._sceneUbo.update()));
}),
(t.prototype.getSceneUniformBuffer = function () {
return this._multiviewSceneUbo ? this._multiviewSceneUbo : this._sceneUbo;
}),
(t.prototype.getUniqueId = function () {
return F.a.UniqueId;
}),
(t.prototype.addMesh = function (e, t) {
var n = this;
void 0 === t && (t = !1),
this._blockEntityCollection ||
(this.meshes.push(e),
e._resyncLightSources(),
e.parent || e._addToSceneRootNodes(),
this.onNewMeshAddedObservable.notifyObservers(e),
t &&
e.getChildMeshes().forEach(function (e) {
n.addMesh(e);
}));
}),
(t.prototype.removeMesh = function (e, t) {
var n = this;
void 0 === t && (t = !1);
var i = this.meshes.indexOf(e);
return (
-1 !== i && ((this.meshes[i] = this.meshes[this.meshes.length - 1]), this.meshes.pop(), e.parent || e._removeFromSceneRootNodes()),
this.onMeshRemovedObservable.notifyObservers(e),
t &&
e.getChildMeshes().forEach(function (e) {
n.removeMesh(e);
}),
i
);
}),
(t.prototype.addTransformNode = function (e) {
this._blockEntityCollection ||
((e._indexInSceneTransformNodesArray = this.transformNodes.length), this.transformNodes.push(e), e.parent || e._addToSceneRootNodes(), this.onNewTransformNodeAddedObservable.notifyObservers(e));
}),
(t.prototype.removeTransformNode = function (e) {
var t = e._indexInSceneTransformNodesArray;
if (-1 !== t) {
if (t !== this.transformNodes.length - 1) {
var n = this.transformNodes[this.transformNodes.length - 1];
(this.transformNodes[t] = n), (n._indexInSceneTransformNodesArray = t);
}
(e._indexInSceneTransformNodesArray = -1), this.transformNodes.pop(), e.parent || e._removeFromSceneRootNodes();
}
return this.onTransformNodeRemovedObservable.notifyObservers(e), t;
}),
(t.prototype.removeSkeleton = function (e) {
var t = this.skeletons.indexOf(e);
return -1 !== t && (this.skeletons.splice(t, 1), this.onSkeletonRemovedObservable.notifyObservers(e)), t;
}),
(t.prototype.removeMorphTargetManager = function (e) {
var t = this.morphTargetManagers.indexOf(e);
return -1 !== t && this.morphTargetManagers.splice(t, 1), t;
}),
(t.prototype.removeLight = function (e) {
var t = this.lights.indexOf(e);
if (-1 !== t) {
for (var n = 0, i = this.meshes; n < i.length; n++) {
i[n]._removeLightSource(e, !1);
}
this.lights.splice(t, 1), this.sortLightsByPriority(), e.parent || e._removeFromSceneRootNodes();
}
return this.onLightRemovedObservable.notifyObservers(e), t;
}),
(t.prototype.removeCamera = function (e) {
var t = this.cameras.indexOf(e);
-1 !== t && (this.cameras.splice(t, 1), e.parent || e._removeFromSceneRootNodes());
var n = this.activeCameras.indexOf(e);
return (
-1 !== n && this.activeCameras.splice(n, 1),
this.activeCamera === e && (this.cameras.length > 0 ? (this.activeCamera = this.cameras[0]) : (this.activeCamera = null)),
this.onCameraRemovedObservable.notifyObservers(e),
t
);
}),
(t.prototype.removeParticleSystem = function (e) {
var t = this.particleSystems.indexOf(e);
return -1 !== t && this.particleSystems.splice(t, 1), t;
}),
(t.prototype.removeAnimation = function (e) {
var t = this.animations.indexOf(e);
return -1 !== t && this.animations.splice(t, 1), t;
}),
(t.prototype.stopAnimation = function (e, t, n) {}),
(t.prototype.removeAnimationGroup = function (e) {
var t = this.animationGroups.indexOf(e);
return -1 !== t && this.animationGroups.splice(t, 1), t;
}),
(t.prototype.removeMultiMaterial = function (e) {
var t = this.multiMaterials.indexOf(e);
return -1 !== t && this.multiMaterials.splice(t, 1), t;
}),
(t.prototype.removeMaterial = function (e) {
var t = e._indexInSceneMaterialArray;
if (-1 !== t && t < this.materials.length) {
if (t !== this.materials.length - 1) {
var n = this.materials[this.materials.length - 1];
(this.materials[t] = n), (n._indexInSceneMaterialArray = t);
}
(e._indexInSceneMaterialArray = -1), this.materials.pop();
}
return this.onMaterialRemovedObservable.notifyObservers(e), t;
}),
(t.prototype.removeActionManager = function (e) {
var t = this.actionManagers.indexOf(e);
return -1 !== t && this.actionManagers.splice(t, 1), t;
}),
(t.prototype.removeTexture = function (e) {
var t = this.textures.indexOf(e);
return -1 !== t && this.textures.splice(t, 1), this.onTextureRemovedObservable.notifyObservers(e), t;
}),
(t.prototype.addLight = function (e) {
if (!this._blockEntityCollection) {
this.lights.push(e), this.sortLightsByPriority(), e.parent || e._addToSceneRootNodes();
for (var t = 0, n = this.meshes; t < n.length; t++) {
var i = n[t];
-1 === i.lightSources.indexOf(e) && (i.lightSources.push(e), i._resyncLightSources());
}
this.onNewLightAddedObservable.notifyObservers(e);
}
}),
(t.prototype.sortLightsByPriority = function () {
this.requireLightSorting && this.lights.sort(b.a.CompareLightsPriority);
}),
(t.prototype.addCamera = function (e) {
this._blockEntityCollection || (this.cameras.push(e), this.onNewCameraAddedObservable.notifyObservers(e), e.parent || e._addToSceneRootNodes());
}),
(t.prototype.addSkeleton = function (e) {
this._blockEntityCollection || (this.skeletons.push(e), this.onNewSkeletonAddedObservable.notifyObservers(e));
}),
(t.prototype.addParticleSystem = function (e) {
this._blockEntityCollection || this.particleSystems.push(e);
}),
(t.prototype.addAnimation = function (e) {
this._blockEntityCollection || this.animations.push(e);
}),
(t.prototype.addAnimationGroup = function (e) {
this._blockEntityCollection || this.animationGroups.push(e);
}),
(t.prototype.addMultiMaterial = function (e) {
this._blockEntityCollection || this.multiMaterials.push(e);
}),
(t.prototype.addMaterial = function (e) {
this._blockEntityCollection || ((e._indexInSceneMaterialArray = this.materials.length), this.materials.push(e), this.onNewMaterialAddedObservable.notifyObservers(e));
}),
(t.prototype.addMorphTargetManager = function (e) {
this._blockEntityCollection || this.morphTargetManagers.push(e);
}),
(t.prototype.addGeometry = function (e) {
this._blockEntityCollection || (this.geometriesByUniqueId && (this.geometriesByUniqueId[e.uniqueId] = this.geometries.length), this.geometries.push(e));
}),
(t.prototype.addActionManager = function (e) {
this.actionManagers.push(e);
}),
(t.prototype.addTexture = function (e) {
this._blockEntityCollection || (this.textures.push(e), this.onNewTextureAddedObservable.notifyObservers(e));
}),
(t.prototype.switchActiveCamera = function (e, t) {
void 0 === t && (t = !0);
var n = this._engine.getInputElement();
n && (this.activeCamera && this.activeCamera.detachControl(n), (this.activeCamera = e), t && e.attachControl(n));
}),
(t.prototype.setActiveCameraByID = function (e) {
var t = this.getCameraByID(e);
return t ? ((this.activeCamera = t), t) : null;
}),
(t.prototype.setActiveCameraByName = function (e) {
var t = this.getCameraByName(e);
return t ? ((this.activeCamera = t), t) : null;
}),
(t.prototype.getAnimationGroupByName = function (e) {
for (var t = 0; t < this.animationGroups.length; t++) if (this.animationGroups[t].name === e) return this.animationGroups[t];
return null;
}),
(t.prototype.getMaterialByUniqueID = function (e) {
for (var t = 0; t < this.materials.length; t++) if (this.materials[t].uniqueId === e) return this.materials[t];
return null;
}),
(t.prototype.getMaterialByID = function (e) {
for (var t = 0; t < this.materials.length; t++) if (this.materials[t].id === e) return this.materials[t];
return null;
}),
(t.prototype.getLastMaterialByID = function (e) {
for (var t = this.materials.length - 1; t >= 0; t--) if (this.materials[t].id === e) return this.materials[t];
return null;
}),
(t.prototype.getMaterialByName = function (e) {
for (var t = 0; t < this.materials.length; t++) if (this.materials[t].name === e) return this.materials[t];
return null;
}),
(t.prototype.getTextureByUniqueID = function (e) {
for (var t = 0; t < this.textures.length; t++) if (this.textures[t].uniqueId === e) return this.textures[t];
return null;
}),
(t.prototype.getCameraByID = function (e) {
for (var t = 0; t < this.cameras.length; t++) if (this.cameras[t].id === e) return this.cameras[t];
return null;
}),
(t.prototype.getCameraByUniqueID = function (e) {
for (var t = 0; t < this.cameras.length; t++) if (this.cameras[t].uniqueId === e) return this.cameras[t];
return null;
}),
(t.prototype.getCameraByName = function (e) {
for (var t = 0; t < this.cameras.length; t++) if (this.cameras[t].name === e) return this.cameras[t];
return null;
}),
(t.prototype.getBoneByID = function (e) {
for (var t = 0; t < this.skeletons.length; t++) for (var n = this.skeletons[t], i = 0; i < n.bones.length; i++) if (n.bones[i].id === e) return n.bones[i];
return null;
}),
(t.prototype.getBoneByName = function (e) {
for (var t = 0; t < this.skeletons.length; t++) for (var n = this.skeletons[t], i = 0; i < n.bones.length; i++) if (n.bones[i].name === e) return n.bones[i];
return null;
}),
(t.prototype.getLightByName = function (e) {
for (var t = 0; t < this.lights.length; t++) if (this.lights[t].name === e) return this.lights[t];
return null;
}),
(t.prototype.getLightByID = function (e) {
for (var t = 0; t < this.lights.length; t++) if (this.lights[t].id === e) return this.lights[t];
return null;
}),
(t.prototype.getLightByUniqueID = function (e) {
for (var t = 0; t < this.lights.length; t++) if (this.lights[t].uniqueId === e) return this.lights[t];
return null;
}),
(t.prototype.getParticleSystemByID = function (e) {
for (var t = 0; t < this.particleSystems.length; t++) if (this.particleSystems[t].id === e) return this.particleSystems[t];
return null;
}),
(t.prototype.getGeometryByID = function (e) {
for (var t = 0; t < this.geometries.length; t++) if (this.geometries[t].id === e) return this.geometries[t];
return null;
}),
(t.prototype._getGeometryByUniqueID = function (e) {
if (this.geometriesByUniqueId) {
var t = this.geometriesByUniqueId[e];
if (void 0 !== t) return this.geometries[t];
} else for (var n = 0; n < this.geometries.length; n++) if (this.geometries[n].uniqueId === e) return this.geometries[n];
return null;
}),
(t.prototype.pushGeometry = function (e, t) {
return !(!t && this._getGeometryByUniqueID(e.uniqueId)) && (this.addGeometry(e), this.onNewGeometryAddedObservable.notifyObservers(e), !0);
}),
(t.prototype.removeGeometry = function (e) {
var t;
if (this.geometriesByUniqueId) {
if (void 0 === (t = this.geometriesByUniqueId[e.uniqueId])) return !1;
} else if ((t = this.geometries.indexOf(e)) < 0) return !1;
if (t !== this.geometries.length - 1) {
var n = this.geometries[this.geometries.length - 1];
(this.geometries[t] = n), this.geometriesByUniqueId && ((this.geometriesByUniqueId[n.uniqueId] = t), (this.geometriesByUniqueId[e.uniqueId] = void 0));
}
return this.geometries.pop(), this.onGeometryRemovedObservable.notifyObservers(e), !0;
}),
(t.prototype.getGeometries = function () {
return this.geometries;
}),
(t.prototype.getMeshByID = function (e) {
for (var t = 0; t < this.meshes.length; t++) if (this.meshes[t].id === e) return this.meshes[t];
return null;
}),
(t.prototype.getMeshesByID = function (e) {
return this.meshes.filter(function (t) {
return t.id === e;
});
}),
(t.prototype.getTransformNodeByID = function (e) {
for (var t = 0; t < this.transformNodes.length; t++) if (this.transformNodes[t].id === e) return this.transformNodes[t];
return null;
}),
(t.prototype.getTransformNodeByUniqueID = function (e) {
for (var t = 0; t < this.transformNodes.length; t++) if (this.transformNodes[t].uniqueId === e) return this.transformNodes[t];
return null;
}),
(t.prototype.getTransformNodesByID = function (e) {
return this.transformNodes.filter(function (t) {
return t.id === e;
});
}),
(t.prototype.getMeshByUniqueID = function (e) {
for (var t = 0; t < this.meshes.length; t++) if (this.meshes[t].uniqueId === e) return this.meshes[t];
return null;
}),
(t.prototype.getLastMeshByID = function (e) {
for (var t = this.meshes.length - 1; t >= 0; t--) if (this.meshes[t].id === e) return this.meshes[t];
return null;
}),
(t.prototype.getLastEntryByID = function (e) {
var t;
for (t = this.meshes.length - 1; t >= 0; t--) if (this.meshes[t].id === e) return this.meshes[t];
for (t = this.transformNodes.length - 1; t >= 0; t--) if (this.transformNodes[t].id === e) return this.transformNodes[t];
for (t = this.cameras.length - 1; t >= 0; t--) if (this.cameras[t].id === e) return this.cameras[t];
for (t = this.lights.length - 1; t >= 0; t--) if (this.lights[t].id === e) return this.lights[t];
return null;
}),
(t.prototype.getNodeByID = function (e) {
var t = this.getMeshByID(e);
if (t) return t;
var n = this.getTransformNodeByID(e);
if (n) return n;
var i = this.getLightByID(e);
if (i) return i;
var r = this.getCameraByID(e);
if (r) return r;
var o = this.getBoneByID(e);
return o || null;
}),
(t.prototype.getNodeByName = function (e) {
var t = this.getMeshByName(e);
if (t) return t;
var n = this.getTransformNodeByName(e);
if (n) return n;
var i = this.getLightByName(e);
if (i) return i;
var r = this.getCameraByName(e);
if (r) return r;
var o = this.getBoneByName(e);
return o || null;
}),
(t.prototype.getMeshByName = function (e) {
for (var t = 0; t < this.meshes.length; t++) if (this.meshes[t].name === e) return this.meshes[t];
return null;
}),
(t.prototype.getTransformNodeByName = function (e) {
for (var t = 0; t < this.transformNodes.length; t++) if (this.transformNodes[t].name === e) return this.transformNodes[t];
return null;
}),
(t.prototype.getLastSkeletonByID = function (e) {
for (var t = this.skeletons.length - 1; t >= 0; t--) if (this.skeletons[t].id === e) return this.skeletons[t];
return null;
}),
(t.prototype.getSkeletonByUniqueId = function (e) {
for (var t = 0; t < this.skeletons.length; t++) if (this.skeletons[t].uniqueId === e) return this.skeletons[t];
return null;
}),
(t.prototype.getSkeletonById = function (e) {
for (var t = 0; t < this.skeletons.length; t++) if (this.skeletons[t].id === e) return this.skeletons[t];
return null;
}),
(t.prototype.getSkeletonByName = function (e) {
for (var t = 0; t < this.skeletons.length; t++) if (this.skeletons[t].name === e) return this.skeletons[t];
return null;
}),
(t.prototype.getMorphTargetManagerById = function (e) {
for (var t = 0; t < this.morphTargetManagers.length; t++) if (this.morphTargetManagers[t].uniqueId === e) return this.morphTargetManagers[t];
return null;
}),
(t.prototype.getMorphTargetById = function (e) {
for (var t = 0; t < this.morphTargetManagers.length; ++t)
for (var n = this.morphTargetManagers[t], i = 0; i < n.numTargets; ++i) {
var r = n.getTarget(i);
if (r.id === e) return r;
}
return null;
}),
(t.prototype.isActiveMesh = function (e) {
return -1 !== this._activeMeshes.indexOf(e);
}),
Object.defineProperty(t.prototype, "uid", {
get: function () {
return this._uid || (this._uid = r.b.RandomId()), this._uid;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.addExternalData = function (e, t) {
return this._externalData || (this._externalData = new c.a()), this._externalData.add(e, t);
}),
(t.prototype.getExternalData = function (e) {
return this._externalData ? this._externalData.get(e) : null;
}),
(t.prototype.getOrAddExternalDataWithFactory = function (e, t) {
return this._externalData || (this._externalData = new c.a()), this._externalData.getOrAddWithFactory(e, t);
}),
(t.prototype.removeExternalData = function (e) {
return this._externalData.remove(e);
}),
(t.prototype._evaluateSubMesh = function (e, t, n) {
if (n.hasInstances || n.isAnInstance || this.dispatchAllSubMeshesOfActiveMeshes || this._skipFrustumClipping || t.alwaysSelectAsActiveMesh || 1 === t.subMeshes.length || e.isInFrustum(this._frustumPlanes)) {
for (var i = 0, r = this._evaluateSubMeshStage; i < r.length; i++) {
r[i].action(t, e);
}
var o = e.getMaterial();
null != o &&
(o.hasRenderTargetTextures &&
null != o.getRenderTargetTextures &&
-1 === this._processedMaterials.indexOf(o) &&
(this._processedMaterials.push(o), this._renderTargets.concatWithNoDuplicate(o.getRenderTargetTextures())),
this._renderingManager.dispatch(e, t, o));
}
}),
(t.prototype.freeProcessedMaterials = function () {
this._processedMaterials.dispose();
}),
Object.defineProperty(t.prototype, "blockfreeActiveMeshesAndRenderingGroups", {
get: function () {
return this._preventFreeActiveMeshesAndRenderingGroups;
},
set: function (e) {
this._preventFreeActiveMeshesAndRenderingGroups !== e && (e && (this.freeActiveMeshes(), this.freeRenderingGroups()), (this._preventFreeActiveMeshesAndRenderingGroups = e));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.freeActiveMeshes = function () {
if (!this.blockfreeActiveMeshesAndRenderingGroups && (this._activeMeshes.dispose(), this.activeCamera && this.activeCamera._activeMeshes && this.activeCamera._activeMeshes.dispose(), this.activeCameras))
for (var e = 0; e < this.activeCameras.length; e++) {
var t = this.activeCameras[e];
t && t._activeMeshes && t._activeMeshes.dispose();
}
}),
(t.prototype.freeRenderingGroups = function () {
if (!this.blockfreeActiveMeshesAndRenderingGroups && (this._renderingManager && this._renderingManager.freeRenderingGroups(), this.textures))
for (var e = 0; e < this.textures.length; e++) {
var t = this.textures[e];
t && t.renderList && t.freeRenderingGroups();
}
}),
(t.prototype._isInIntermediateRendering = function () {
return this._intermediateRendering;
}),
(t.prototype.freezeActiveMeshes = function (e) {
var t = this;
return (
void 0 === e && (e = !1),
this.executeWhenReady(function () {
if (t.activeCamera) {
t._frustumPlanes || t.setTransformMatrix(t.activeCamera.getViewMatrix(), t.activeCamera.getProjectionMatrix()),
t._evaluateActiveMeshes(),
(t._activeMeshesFrozen = !0),
(t._skipEvaluateActiveMeshesCompletely = e);
for (var n = 0; n < t._activeMeshes.length; n++) t._activeMeshes.data[n]._freeze();
}
}),
this
);
}),
(t.prototype.unfreezeActiveMeshes = function () {
for (var e = 0; e < this.meshes.length; e++) {
var t = this.meshes[e];
t._internalAbstractMeshDataInfo && (t._internalAbstractMeshDataInfo._isActive = !1);
}
for (e = 0; e < this._activeMeshes.length; e++) this._activeMeshes.data[e]._unFreeze();
return (this._activeMeshesFrozen = !1), this;
}),
(t.prototype._evaluateActiveMeshes = function () {
if (this._activeMeshesFrozen && this._activeMeshes.length) {
if (!this._skipEvaluateActiveMeshesCompletely)
for (var e = this._activeMeshes.length, t = 0; t < e; t++) {
(a = this._activeMeshes.data[t]).computeWorldMatrix();
}
} else if (this.activeCamera) {
this.onBeforeActiveMeshesEvaluationObservable.notifyObservers(this),
this.activeCamera._activeMeshes.reset(),
this._activeMeshes.reset(),
this._renderingManager.reset(),
this._processedMaterials.reset(),
this._activeParticleSystems.reset(),
this._activeSkeletons.reset(),
this._softwareSkinnedMeshes.reset();
for (var n = 0, i = this._beforeEvaluateActiveMeshStage; n < i.length; n++) {
i[n].action();
}
var r = this.getActiveMeshCandidates(),
o = r.length;
for (t = 0; t < o; t++) {
var a;
if (!(a = r.data[t]).isBlocked && (this._totalVertices.addCount(a.getTotalVertices(), !1), a.isReady() && a.isEnabled() && 0 !== a.scaling.lengthSquared())) {
a.computeWorldMatrix(), a.actionManager && a.actionManager.hasSpecificTriggers2(12, 13) && this._meshesForIntersections.pushNoDuplicate(a);
var s = this.customLODSelector ? this.customLODSelector(a, this.activeCamera) : a.getLOD(this.activeCamera);
null != s &&
(s !== a && s.billboardMode !== h.a.BILLBOARDMODE_NONE && s.computeWorldMatrix(),
a._preActivate(),
a.isVisible &&
a.visibility > 0 &&
0 != (a.layerMask & this.activeCamera.layerMask) &&
(this._skipFrustumClipping || a.alwaysSelectAsActiveMesh || a.isInFrustum(this._frustumPlanes)) &&
(this._activeMeshes.push(a),
this.activeCamera._activeMeshes.push(a),
s !== a && s._activate(this._renderId, !1),
a._activate(this._renderId, !1) &&
(a.isAnInstance ? a._internalAbstractMeshDataInfo._actAsRegularMesh && (s = a) : (s._internalAbstractMeshDataInfo._onlyForInstances = !1),
(s._internalAbstractMeshDataInfo._isActive = !0),
this._activeMesh(a, s)),
a._postActivate()));
}
}
if ((this.onAfterActiveMeshesEvaluationObservable.notifyObservers(this), this.particlesEnabled)) {
this.onBeforeParticlesRenderingObservable.notifyObservers(this);
for (var c = 0; c < this.particleSystems.length; c++) {
var l = this.particleSystems[c];
if (l.isStarted() && l.emitter) {
var u = l.emitter;
(u.position && !u.isEnabled()) || (this._activeParticleSystems.push(l), l.animate(), this._renderingManager.dispatchParticles(l));
}
}
this.onAfterParticlesRenderingObservable.notifyObservers(this);
}
}
}),
(t.prototype._activeMesh = function (e, t) {
this._skeletonsEnabled &&
null !== t.skeleton &&
void 0 !== t.skeleton &&
(this._activeSkeletons.pushNoDuplicate(t.skeleton) && t.skeleton.prepare(), t.computeBonesUsingShaders || this._softwareSkinnedMeshes.pushNoDuplicate(t));
for (var n = 0, i = this._activeMeshStage; n < i.length; n++) {
i[n].action(e, t);
}
if (null != t && void 0 !== t.subMeshes && null !== t.subMeshes && t.subMeshes.length > 0)
for (var r = this.getActiveSubMeshCandidates(t), o = r.length, a = 0; a < o; a++) {
var s = r.data[a];
this._evaluateSubMesh(s, t, e);
}
}),
(t.prototype.updateTransformMatrix = function (e) {
this.activeCamera && this.setTransformMatrix(this.activeCamera.getViewMatrix(), this.activeCamera.getProjectionMatrix(e));
}),
(t.prototype._bindFrameBuffer = function () {
if (this.activeCamera && this.activeCamera._multiviewTexture) this.activeCamera._multiviewTexture._bindFrameBuffer();
else if (this.activeCamera && this.activeCamera.outputRenderTarget) {
if (this.getEngine().getCaps().multiview && this.activeCamera.outputRenderTarget && this.activeCamera.outputRenderTarget.getViewCount() > 1) this.activeCamera.outputRenderTarget._bindFrameBuffer();
else {
var e = this.activeCamera.outputRenderTarget.getInternalTexture();
e ? this.getEngine().bindFramebuffer(e) : T.a.Error("Camera contains invalid customDefaultRenderTarget");
}
} else this.getEngine().restoreDefaultFramebuffer();
}),
(t.prototype._renderForCamera = function (e, t) {
if (!e || !e._skipRendering) {
var n = this._engine;
if (((this._activeCamera = e), !this.activeCamera)) throw new Error("Active camera not set");
n.setViewport(this.activeCamera.viewport),
this.resetCachedMaterial(),
this._renderId++,
this.getEngine().getCaps().multiview && e.outputRenderTarget && e.outputRenderTarget.getViewCount() > 1
? this.setTransformMatrix(e._rigCameras[0].getViewMatrix(), e._rigCameras[0].getProjectionMatrix(), e._rigCameras[1].getViewMatrix(), e._rigCameras[1].getProjectionMatrix())
: this.updateTransformMatrix(),
this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera),
this._evaluateActiveMeshes();
for (var i = 0; i < this._softwareSkinnedMeshes.length; i++) {
var o = this._softwareSkinnedMeshes.data[i];
o.applySkeleton(o.skeleton);
}
this.onBeforeRenderTargetsRenderObservable.notifyObservers(this),
e.customRenderTargets && e.customRenderTargets.length > 0 && this._renderTargets.concatWithNoDuplicate(e.customRenderTargets),
t && t.customRenderTargets && t.customRenderTargets.length > 0 && this._renderTargets.concatWithNoDuplicate(t.customRenderTargets);
for (var a = 0, s = this._gatherActiveCameraRenderTargetsStage; a < s.length; a++) {
s[a].action(this._renderTargets);
}
if (this.renderTargetsEnabled) {
this._intermediateRendering = !0;
var c = !1;
if (this._renderTargets.length > 0) {
r.b.StartPerformanceCounter("Render targets", this._renderTargets.length > 0);
for (var l = 0; l < this._renderTargets.length; l++) {
var u = this._renderTargets.data[l];
if (u._shouldRender()) {
this._renderId++;
var h = u.activeCamera && u.activeCamera !== this.activeCamera;
u.render(h, this.dumpNextRenderTargets), (c = !0);
}
}
r.b.EndPerformanceCounter("Render targets", this._renderTargets.length > 0), this._renderId++;
}
for (var d = 0, p = this._cameraDrawRenderTargetStage; d < p.length; d++) {
c = p[d].action(this.activeCamera) || c;
}
(this._intermediateRendering = !1), this.activeCamera && this.activeCamera.outputRenderTarget && (c = !0), c && this._bindFrameBuffer();
}
this.onAfterRenderTargetsRenderObservable.notifyObservers(this), this.postProcessManager && !e._multiviewTexture && this.postProcessManager._prepareFrame();
for (var f = 0, m = this._beforeCameraDrawStage; f < m.length; f++) {
m[f].action(this.activeCamera);
}
this.onBeforeDrawPhaseObservable.notifyObservers(this), this._renderingManager.render(null, null, !0, !0), this.onAfterDrawPhaseObservable.notifyObservers(this);
for (var g = 0, b = this._afterCameraDrawStage; g < b.length; g++) {
b[g].action(this.activeCamera);
}
this.postProcessManager && !e._multiviewTexture && this.postProcessManager._finalizeFrame(e.isIntermediate), this._renderTargets.reset(), this.onAfterCameraRenderObservable.notifyObservers(this.activeCamera);
}
}),
(t.prototype._processSubCameras = function (e) {
if (e.cameraRigMode === p.a.RIG_MODE_NONE || (e.outputRenderTarget && e.outputRenderTarget.getViewCount() > 1 && this.getEngine().getCaps().multiview))
return this._renderForCamera(e), void this.onAfterRenderCameraObservable.notifyObservers(e);
if (e._useMultiviewToSingleView) this._renderMultiviewToSingleView(e);
else for (var t = 0; t < e._rigCameras.length; t++) this._renderForCamera(e._rigCameras[t], e);
(this._activeCamera = e), this.setTransformMatrix(this._activeCamera.getViewMatrix(), this._activeCamera.getProjectionMatrix()), this.onAfterRenderCameraObservable.notifyObservers(e);
}),
(t.prototype._checkIntersections = function () {
for (var e = 0; e < this._meshesForIntersections.length; e++) {
var t = this._meshesForIntersections.data[e];
if (t.actionManager)
for (var n = 0; t.actionManager && n < t.actionManager.actions.length; n++) {
var i = t.actionManager.actions[n];
if (12 === i.trigger || 13 === i.trigger) {
var r = i.getTriggerParameter(),
o = r instanceof d.a ? r : r.mesh,
a = o.intersectsMesh(t, r.usePreciseIntersection),
s = t._intersectionsInProgress.indexOf(o);
a && -1 === s
? 12 === i.trigger
? (i._executeCurrent(v.a.CreateNew(t, void 0, o)), t._intersectionsInProgress.push(o))
: 13 === i.trigger && t._intersectionsInProgress.push(o)
: !a &&
s > -1 &&
(13 === i.trigger && i._executeCurrent(v.a.CreateNew(t, void 0, o)),
(t.actionManager.hasSpecificTrigger(13, function (e) {
var t = e instanceof d.a ? e : e.mesh;
return o === t;
}) &&
13 !== i.trigger) ||
t._intersectionsInProgress.splice(s, 1));
}
}
}
}),
(t.prototype._advancePhysicsEngineStep = function (e) {}),
(t.prototype._animate = function () {}),
(t.prototype.animate = function () {
if (this._engine.isDeterministicLockStep()) {
var e = Math.max(t.MinDeltaTime, Math.min(this._engine.getDeltaTime(), t.MaxDeltaTime)) + this._timeAccumulator,
n = this._engine.getTimeStep(),
i = 1e3 / n / 1e3,
r = 0,
o = this._engine.getLockstepMaxSteps(),
a = Math.floor(e / n);
for (a = Math.min(a, o); e > 0 && r < a; )
this.onBeforeStepObservable.notifyObservers(this),
(this._animationRatio = n * i),
this._animate(),
this.onAfterAnimationsObservable.notifyObservers(this),
this._advancePhysicsEngineStep(n),
this.onAfterStepObservable.notifyObservers(this),
this._currentStepId++,
r++,
(e -= n);
this._timeAccumulator = e < 0 ? 0 : e;
} else {
e = this.useConstantAnimationDeltaTime ? 16 : Math.max(t.MinDeltaTime, Math.min(this._engine.getDeltaTime(), t.MaxDeltaTime));
(this._animationRatio = 0.06 * e), this._animate(), this.onAfterAnimationsObservable.notifyObservers(this), this._advancePhysicsEngineStep(e);
}
}),
(t.prototype.render = function (e, t) {
if ((void 0 === e && (e = !0), void 0 === t && (t = !1), !this.isDisposed)) {
this._frameId++,
this._registerTransientComponents(),
this._activeParticles.fetchNewFrame(),
this._totalVertices.fetchNewFrame(),
this._activeIndices.fetchNewFrame(),
this._activeBones.fetchNewFrame(),
this._meshesForIntersections.reset(),
this.resetCachedMaterial(),
this.onBeforeAnimationsObservable.notifyObservers(this),
this.actionManager && this.actionManager.processTrigger(11),
t || this.animate();
for (var n = 0, i = this._beforeCameraUpdateStage; n < i.length; n++) {
i[n].action();
}
if (e)
if (this.activeCameras.length > 0)
for (var o = 0; o < this.activeCameras.length; o++) {
var a = this.activeCameras[o];
if ((a.update(), a.cameraRigMode !== p.a.RIG_MODE_NONE)) for (var s = 0; s < a._rigCameras.length; s++) a._rigCameras[s].update();
}
else if (this.activeCamera && (this.activeCamera.update(), this.activeCamera.cameraRigMode !== p.a.RIG_MODE_NONE))
for (s = 0; s < this.activeCamera._rigCameras.length; s++) this.activeCamera._rigCameras[s].update();
this.onBeforeRenderObservable.notifyObservers(this), this.onBeforeRenderTargetsRenderObservable.notifyObservers(this);
var c = this.getEngine(),
l = this.activeCamera;
if (this.renderTargetsEnabled) {
r.b.StartPerformanceCounter("Custom render targets", this.customRenderTargets.length > 0), (this._intermediateRendering = !0);
for (var u = 0; u < this.customRenderTargets.length; u++) {
var h = this.customRenderTargets[u];
if (h._shouldRender()) {
if ((this._renderId++, (this.activeCamera = h.activeCamera || this.activeCamera), !this.activeCamera)) throw new Error("Active camera not set");
c.setViewport(this.activeCamera.viewport), this.updateTransformMatrix(), h.render(l !== this.activeCamera, this.dumpNextRenderTargets);
}
}
r.b.EndPerformanceCounter("Custom render targets", this.customRenderTargets.length > 0), (this._intermediateRendering = !1), this._renderId++;
}
(this.activeCamera = l), this._bindFrameBuffer(), this.onAfterRenderTargetsRenderObservable.notifyObservers(this);
for (var d = 0, f = this._beforeClearStage; d < f.length; d++) {
f[d].action();
}
(this.autoClearDepthAndStencil || this.autoClear) &&
this._engine.clear(this.clearColor, this.autoClear || this.forceWireframe || this.forcePointsCloud, this.autoClearDepthAndStencil, this.autoClearDepthAndStencil);
for (var m = 0, g = this._gatherRenderTargetsStage; m < g.length; m++) {
g[m].action(this._renderTargets);
}
if (this.activeCameras.length > 0) for (o = 0; o < this.activeCameras.length; o++) o > 0 && this._engine.clear(null, !1, !0, !0), this._processSubCameras(this.activeCameras[o]);
else {
if (!this.activeCamera) throw new Error("No camera defined");
this._processSubCameras(this.activeCamera);
}
this._checkIntersections();
for (var b = 0, _ = this._afterRenderStage; b < _.length; b++) {
_[b].action();
}
if ((this.afterRender && this.afterRender(), this.onAfterRenderObservable.notifyObservers(this), this._toBeDisposed.length)) {
for (s = 0; s < this._toBeDisposed.length; s++) {
var v = this._toBeDisposed[s];
v && v.dispose();
}
this._toBeDisposed = [];
}
this.dumpNextRenderTargets && (this.dumpNextRenderTargets = !1), this._activeBones.addCount(0, !0), this._activeIndices.addCount(0, !0), this._activeParticles.addCount(0, !0);
}
}),
(t.prototype.freezeMaterials = function () {
for (var e = 0; e < this.materials.length; e++) this.materials[e].freeze();
}),
(t.prototype.unfreezeMaterials = function () {
for (var e = 0; e < this.materials.length; e++) this.materials[e].unfreeze();
}),
(t.prototype.dispose = function () {
(this.beforeRender = null),
(this.afterRender = null),
S.a._LastCreatedScene === this && (S.a._LastCreatedScene = null),
(this.skeletons = []),
(this.morphTargetManagers = []),
(this._transientComponents = []),
this._isReadyForMeshStage.clear(),
this._beforeEvaluateActiveMeshStage.clear(),
this._evaluateSubMeshStage.clear(),
this._activeMeshStage.clear(),
this._cameraDrawRenderTargetStage.clear(),
this._beforeCameraDrawStage.clear(),
this._beforeRenderTargetDrawStage.clear(),
this._beforeRenderingGroupDrawStage.clear(),
this._beforeRenderingMeshStage.clear(),
this._afterRenderingMeshStage.clear(),
this._afterRenderingGroupDrawStage.clear(),
this._afterCameraDrawStage.clear(),
this._afterRenderTargetDrawStage.clear(),
this._afterRenderStage.clear(),
this._beforeCameraUpdateStage.clear(),
this._beforeClearStage.clear(),
this._gatherRenderTargetsStage.clear(),
this._gatherActiveCameraRenderTargetsStage.clear(),
this._pointerMoveStage.clear(),
this._pointerDownStage.clear(),
this._pointerUpStage.clear();
for (var e = 0, t = this._components; e < t.length; e++) {
t[e].dispose();
}
(this.importedMeshesFiles = new Array()),
this.stopAllAnimations && this.stopAllAnimations(),
this.resetCachedMaterial(),
this.activeCamera && (this.activeCamera._activeMeshes.dispose(), (this.activeCamera = null)),
this._activeMeshes.dispose(),
this._renderingManager.dispose(),
this._processedMaterials.dispose(),
this._activeParticleSystems.dispose(),
this._activeSkeletons.dispose(),
this._softwareSkinnedMeshes.dispose(),
this._renderTargets.dispose(),
this._registeredForLateAnimationBindings.dispose(),
this._meshesForIntersections.dispose(),
(this._toBeDisposed = []);
for (var n = 0, i = this._activeRequests; n < i.length; n++) {
i[n].abort();
}
this.onDisposeObservable.notifyObservers(this),
this.onDisposeObservable.clear(),
this.onBeforeRenderObservable.clear(),
this.onAfterRenderObservable.clear(),
this.onBeforeRenderTargetsRenderObservable.clear(),
this.onAfterRenderTargetsRenderObservable.clear(),
this.onAfterStepObservable.clear(),
this.onBeforeStepObservable.clear(),
this.onBeforeActiveMeshesEvaluationObservable.clear(),
this.onAfterActiveMeshesEvaluationObservable.clear(),
this.onBeforeParticlesRenderingObservable.clear(),
this.onAfterParticlesRenderingObservable.clear(),
this.onBeforeDrawPhaseObservable.clear(),
this.onAfterDrawPhaseObservable.clear(),
this.onBeforeAnimationsObservable.clear(),
this.onAfterAnimationsObservable.clear(),
this.onDataLoadedObservable.clear(),
this.onBeforeRenderingGroupObservable.clear(),
this.onAfterRenderingGroupObservable.clear(),
this.onMeshImportedObservable.clear(),
this.onBeforeCameraRenderObservable.clear(),
this.onAfterCameraRenderObservable.clear(),
this.onReadyObservable.clear(),
this.onNewCameraAddedObservable.clear(),
this.onCameraRemovedObservable.clear(),
this.onNewLightAddedObservable.clear(),
this.onLightRemovedObservable.clear(),
this.onNewGeometryAddedObservable.clear(),
this.onGeometryRemovedObservable.clear(),
this.onNewTransformNodeAddedObservable.clear(),
this.onTransformNodeRemovedObservable.clear(),
this.onNewMeshAddedObservable.clear(),
this.onMeshRemovedObservable.clear(),
this.onNewSkeletonAddedObservable.clear(),
this.onSkeletonRemovedObservable.clear(),
this.onNewMaterialAddedObservable.clear(),
this.onMaterialRemovedObservable.clear(),
this.onNewTextureAddedObservable.clear(),
this.onTextureRemovedObservable.clear(),
this.onPrePointerObservable.clear(),
this.onPointerObservable.clear(),
this.onPreKeyboardObservable.clear(),
this.onKeyboardObservable.clear(),
this.onActiveCameraChanged.clear(),
this.detachControl();
var r,
o = this._engine.getInputElement();
if (o) for (r = 0; r < this.cameras.length; r++) this.cameras[r].detachControl(o);
for (; this.animationGroups.length; ) this.animationGroups[0].dispose();
for (; this.lights.length; ) this.lights[0].dispose();
for (; this.meshes.length; ) this.meshes[0].dispose(!0);
for (; this.transformNodes.length; ) this.transformNodes[0].dispose(!0);
for (; this.cameras.length; ) this.cameras[0].dispose();
for (this._defaultMaterial && this._defaultMaterial.dispose(); this.multiMaterials.length; ) this.multiMaterials[0].dispose();
for (; this.materials.length; ) this.materials[0].dispose();
for (; this.particleSystems.length; ) this.particleSystems[0].dispose();
for (; this.postProcesses.length; ) this.postProcesses[0].dispose();
for (; this.textures.length; ) this.textures[0].dispose();
this._sceneUbo.dispose(),
this._multiviewSceneUbo && this._multiviewSceneUbo.dispose(),
this.postProcessManager.dispose(),
(r = this._engine.scenes.indexOf(this)) > -1 && this._engine.scenes.splice(r, 1),
this._engine.wipeCaches(!0),
(this._isDisposed = !0);
}),
Object.defineProperty(t.prototype, "isDisposed", {
get: function () {
return this._isDisposed;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.clearCachedVertexData = function () {
for (var e = 0; e < this.meshes.length; e++) {
var t = this.meshes[e].geometry;
if (t) for (var n in ((t._indices = []), t._vertexBuffers)) t._vertexBuffers.hasOwnProperty(n) && (t._vertexBuffers[n]._buffer._data = null);
}
}),
(t.prototype.cleanCachedTextureBuffer = function () {
for (var e = 0, t = this.textures; e < t.length; e++) {
var n = t[e];
n._buffer && (n._buffer = null);
}
}),
(t.prototype.getWorldExtends = function (e) {
var t = new u.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE),
n = new u.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
return (
(e =
e ||
function () {
return !0;
}),
this.meshes.filter(e).forEach(function (e) {
if ((e.computeWorldMatrix(!0), e.subMeshes && 0 !== e.subMeshes.length && !e.infiniteDistance)) {
var i = e.getBoundingInfo(),
r = i.boundingBox.minimumWorld,
o = i.boundingBox.maximumWorld;
u.e.CheckExtends(r, t, n), u.e.CheckExtends(o, t, n);
}
}),
{ min: t, max: n }
);
}),
(t.prototype.createPickingRay = function (e, t, n, i, r) {
throw (void 0 === r && (r = !1), O.a.WarnImport("Ray"));
}),
(t.prototype.createPickingRayToRef = function (e, t, n, i, r, o) {
throw (void 0 === o && (o = !1), O.a.WarnImport("Ray"));
}),
(t.prototype.createPickingRayInCameraSpace = function (e, t, n) {
throw O.a.WarnImport("Ray");
}),
(t.prototype.createPickingRayInCameraSpaceToRef = function (e, t, n, i) {
throw O.a.WarnImport("Ray");
}),
(t.prototype.pick = function (e, t, n, i, r, o) {
var a = new _.a();
return (a._pickingUnavailable = !0), a;
}),
(t.prototype.pickWithRay = function (e, t, n, i) {
throw O.a.WarnImport("Ray");
}),
(t.prototype.multiPick = function (e, t, n, i, r) {
throw O.a.WarnImport("Ray");
}),
(t.prototype.multiPickWithRay = function (e, t, n) {
throw O.a.WarnImport("Ray");
}),
(t.prototype.setPointerOverMesh = function (e) {
this._inputManager.setPointerOverMesh(e);
}),
(t.prototype.getPointerOverMesh = function () {
return this._inputManager.getPointerOverMesh();
}),
(t.prototype._rebuildGeometries = function () {
for (var e = 0, t = this.geometries; e < t.length; e++) {
t[e]._rebuild();
}
for (var n = 0, i = this.meshes; n < i.length; n++) {
i[n]._rebuild();
}
this.postProcessManager && this.postProcessManager._rebuild();
for (var r = 0, o = this._components; r < o.length; r++) {
o[r].rebuild();
}
for (var a = 0, s = this.particleSystems; a < s.length; a++) {
s[a].rebuild();
}
}),
(t.prototype._rebuildTextures = function () {
for (var e = 0, t = this.textures; e < t.length; e++) {
t[e]._rebuild();
}
this.markAllMaterialsAsDirty(1);
}),
(t.prototype._getByTags = function (e, t, n) {
if (void 0 === t) return e;
var i = [];
for (var r in ((n = n || function (e) {}), e)) {
var o = e[r];
l.a && l.a.MatchesQuery(o, t) && (i.push(o), n(o));
}
return i;
}),
(t.prototype.getMeshesByTags = function (e, t) {
return this._getByTags(this.meshes, e, t);
}),
(t.prototype.getCamerasByTags = function (e, t) {
return this._getByTags(this.cameras, e, t);
}),
(t.prototype.getLightsByTags = function (e, t) {
return this._getByTags(this.lights, e, t);
}),
(t.prototype.getMaterialByTags = function (e, t) {
return this._getByTags(this.materials, e, t).concat(this._getByTags(this.multiMaterials, e, t));
}),
(t.prototype.setRenderingOrder = function (e, t, n, i) {
void 0 === t && (t = null), void 0 === n && (n = null), void 0 === i && (i = null), this._renderingManager.setRenderingOrder(e, t, n, i);
}),
(t.prototype.setRenderingAutoClearDepthStencil = function (e, t, n, i) {
void 0 === n && (n = !0), void 0 === i && (i = !0), this._renderingManager.setRenderingAutoClearDepthStencil(e, t, n, i);
}),
(t.prototype.getAutoClearDepthStencilSetup = function (e) {
return this._renderingManager.getAutoClearDepthStencilSetup(e);
}),
Object.defineProperty(t.prototype, "blockMaterialDirtyMechanism", {
get: function () {
return this._blockMaterialDirtyMechanism;
},
set: function (e) {
this._blockMaterialDirtyMechanism !== e && ((this._blockMaterialDirtyMechanism = e), e || this.markAllMaterialsAsDirty(31));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.markAllMaterialsAsDirty = function (e, t) {
if (!this._blockMaterialDirtyMechanism)
for (var n = 0, i = this.materials; n < i.length; n++) {
var r = i[n];
(t && !t(r)) || r.markAsDirty(e);
}
}),
(t.prototype._loadFile = function (e, t, n, i, r, o) {
var a = this,
s = N.a.LoadFile(e, t, n, i ? this.offlineProvider : void 0, r, o);
return (
this._activeRequests.push(s),
s.onCompleteObservable.add(function (e) {
a._activeRequests.splice(a._activeRequests.indexOf(e), 1);
}),
s
);
}),
(t.prototype._loadFileAsync = function (e, t, n, i) {
var r = this;
return new Promise(function (o, a) {
r._loadFile(
e,
function (e) {
o(e);
},
t,
n,
i,
function (e, t) {
a(t);
}
);
});
}),
(t.prototype._requestFile = function (e, t, n, i, r, o, a) {
var s = this,
c = N.a.RequestFile(e, t, n, i ? this.offlineProvider : void 0, r, o, a);
return (
this._activeRequests.push(c),
c.onCompleteObservable.add(function (e) {
s._activeRequests.splice(s._activeRequests.indexOf(e), 1);
}),
c
);
}),
(t.prototype._requestFileAsync = function (e, t, n, i, r) {
var o = this;
return new Promise(function (a, s) {
o._requestFile(
e,
function (e) {
a(e);
},
t,
n,
i,
function (e) {
s(e);
},
r
);
});
}),
(t.prototype._readFile = function (e, t, n, i, r) {
var o = this,
a = N.a.ReadFile(e, t, n, i, r);
return (
this._activeRequests.push(a),
a.onCompleteObservable.add(function (e) {
o._activeRequests.splice(o._activeRequests.indexOf(e), 1);
}),
a
);
}),
(t.prototype._readFileAsync = function (e, t, n) {
var i = this;
return new Promise(function (r, o) {
i._readFile(
e,
function (e) {
r(e);
},
t,
n,
function (e) {
o(e);
}
);
});
}),
(t.FOGMODE_NONE = 0),
(t.FOGMODE_EXP = 1),
(t.FOGMODE_EXP2 = 2),
(t.FOGMODE_LINEAR = 3),
(t.MinDeltaTime = 1),
(t.MaxDeltaTime = 1e3),
t
);
})(f.a);
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.WebUtils = void 0);
class r {
static isSafari() {
let e = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
return e && (e = !navigator.userAgent.match("CriOS")), e;
}
static isChrome() {
const e = window.chrome,
t = window.navigator,
n = t.vendor,
i = void 0 !== window.opr,
r = t.userAgent.indexOf("Edge") > -1;
return !!t.userAgent.match("CriOS") || (null != e && "Google Inc." === n && !1 === i && !1 === r);
}
static check_webp_feature(e) {
return i(this, void 0, void 0, function* () {
const t = {
lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA",
};
return new Promise((n) => {
const i = new Image();
(i.onload = () => n(i.width > 0 && i.height > 0)), (i.onerror = () => n(!1)), (i.src = "data:image/webp;base64," + t[e]);
});
});
}
static isWebpSupported() {
return i(this, void 0, void 0, function* () {
if (-1 != r._webpSupported) return 1 == r._webpSupported;
const e = yield r.check_webp_feature("lossless");
return (r._webpSupported = e ? 1 : 0), 1 == r._webpSupported;
});
}
static get textureExtension() {
return 1 == r._webpSupported ? "webp" : "png";
}
static get loadWebpAssets() {
return 1 == r._webpSupported;
}
static isOggSupported() {
return i(this, void 0, void 0, function* () {
if (-1 != r._isOggSupported) return 1 == r._isOggSupported;
const e = new Audio();
return (r._isOggSupported = e.canPlayType("audio/ogg") ? 1 : 0), 1 == r._isOggSupported;
});
}
static get audioExtension() {
return 1 == r._isOggSupported ? "ogg" : "mp3";
}
static openFullscreen(e) {
let t;
e.requestFullscreen
? (t = e.requestFullscreen())
: e.mozRequestFullScreen
? (t = e.mozRequestFullScreen())
: e.webkitRequestFullscreen
? (t = e.webkitRequestFullscreen())
: e.msRequestFullscreen && (t = e.msRequestFullscreen()),
t && r.hasTouch && t.then(() => r.lockOrientation());
}
static closeFullscreen(e) {
(e && null == e.fullscreenElement) ||
(e.exitFullscreen ? e.exitFullscreen() : e.mozCancelFullScreen ? e.mozCancelFullScreen() : e.webkitExitFullscreen ? e.webkitExitFullscreen() : e.msExitFullscreen && e.msExitFullscreen());
}
static formatNumber(e) {
return r.INTL_NUMBER.format(e);
}
static lockOrientation() {
null != window.screen.orientation &&
window.screen.orientation
.lock("portrait")
.then(
() => {},
() => {}
)
.catch((e) => {});
}
static get isIOS() {
return (
null != r._isIOS || (r._isIOS = ["iPad Simulator", "iPhone Simulator", "iPod Simulator", "iPad", "iPhone", "iPod"].includes(navigator.platform) || (navigator.userAgent.includes("Mac") && "ontouchend" in document)),
r._isIOS
);
}
}
(t.WebUtils = r), (r._webpSupported = -1), (r._isOggSupported = -1), (r.INTL_NUMBER = new Intl.NumberFormat("en-US")), (r.hasTouch = !1), (r.orientationCheckDone = !1), (r._isIOS = void 0);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
}),
n.d(t, "c", function () {
return a;
}),
n.d(t, "d", function () {
return s;
}),
n.d(t, "b", function () {
return c;
});
var i = n(2),
r = n(1),
o = (function () {
function e() {}
return (e.POINTERDOWN = 1), (e.POINTERUP = 2), (e.POINTERMOVE = 4), (e.POINTERWHEEL = 8), (e.POINTERPICK = 16), (e.POINTERTAP = 32), (e.POINTERDOUBLETAP = 64), e;
})(),
a = function (e, t) {
(this.type = e), (this.event = t);
},
s = (function (e) {
function t(t, n, i, o) {
var a = e.call(this, t, n) || this;
return (a.ray = null), (a.skipOnPointerObservable = !1), (a.localPosition = new r.d(i, o)), a;
}
return Object(i.d)(t, e), t;
})(a),
c = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n) || this;
return (r.pickInfo = i), r;
}
return Object(i.d)(t, e), t;
})(a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
}),
n.d(t, "b", function () {
return o;
});
var i = n(2),
r = (function () {
function e() {}
return (
(e.NAME_EFFECTLAYER = "EffectLayer"),
(e.NAME_LAYER = "Layer"),
(e.NAME_LENSFLARESYSTEM = "LensFlareSystem"),
(e.NAME_BOUNDINGBOXRENDERER = "BoundingBoxRenderer"),
(e.NAME_PARTICLESYSTEM = "ParticleSystem"),
(e.NAME_GAMEPAD = "Gamepad"),
(e.NAME_SIMPLIFICATIONQUEUE = "SimplificationQueue"),
(e.NAME_GEOMETRYBUFFERRENDERER = "GeometryBufferRenderer"),
(e.NAME_DEPTHRENDERER = "DepthRenderer"),
(e.NAME_POSTPROCESSRENDERPIPELINEMANAGER = "PostProcessRenderPipelineManager"),
(e.NAME_SPRITE = "Sprite"),
(e.NAME_OUTLINERENDERER = "Outline"),
(e.NAME_PROCEDURALTEXTURE = "ProceduralTexture"),
(e.NAME_SHADOWGENERATOR = "ShadowGenerator"),
(e.NAME_OCTREE = "Octree"),
(e.NAME_PHYSICSENGINE = "PhysicsEngine"),
(e.NAME_AUDIO = "Audio"),
(e.STEP_ISREADYFORMESH_EFFECTLAYER = 0),
(e.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER = 0),
(e.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER = 0),
(e.STEP_ACTIVEMESH_BOUNDINGBOXRENDERER = 0),
(e.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER = 1),
(e.STEP_BEFORECAMERADRAW_EFFECTLAYER = 0),
(e.STEP_BEFORECAMERADRAW_LAYER = 1),
(e.STEP_BEFORERENDERTARGETDRAW_LAYER = 0),
(e.STEP_BEFORERENDERINGMESH_OUTLINE = 0),
(e.STEP_AFTERRENDERINGMESH_OUTLINE = 0),
(e.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW = 0),
(e.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER = 1),
(e.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE = 0),
(e.STEP_BEFORECAMERAUPDATE_GAMEPAD = 1),
(e.STEP_BEFORECLEAR_PROCEDURALTEXTURE = 0),
(e.STEP_AFTERRENDERTARGETDRAW_LAYER = 0),
(e.STEP_AFTERCAMERADRAW_EFFECTLAYER = 0),
(e.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM = 1),
(e.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW = 2),
(e.STEP_AFTERCAMERADRAW_LAYER = 3),
(e.STEP_AFTERRENDER_AUDIO = 0),
(e.STEP_GATHERRENDERTARGETS_DEPTHRENDERER = 0),
(e.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER = 1),
(e.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR = 2),
(e.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER = 3),
(e.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER = 0),
(e.STEP_POINTERMOVE_SPRITE = 0),
(e.STEP_POINTERDOWN_SPRITE = 0),
(e.STEP_POINTERUP_SPRITE = 0),
e
);
})(),
o = (function (e) {
function t(t) {
return e.apply(this, t) || this;
}
return (
Object(i.d)(t, e),
(t.Create = function () {
return Object.create(t.prototype);
}),
(t.prototype.registerStep = function (e, t, n) {
var i = 0;
for (Number.MAX_VALUE; i < this.length; i++) {
if (e < this[i].index) break;
}
this.splice(i, 0, { index: e, component: t, action: n.bind(t) });
}),
(t.prototype.clear = function () {
this.length = 0;
}),
t
);
})(Array);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.WarnImport = function (e) {
return e + " needs to be imported before as it contains a side-effect required by your code.";
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return i;
}),
n.d(t, "a", function () {
return o;
});
var i,
r = n(1);
!(function (e) {
(e[(e.LOCAL = 0)] = "LOCAL"), (e[(e.WORLD = 1)] = "WORLD"), (e[(e.BONE = 2)] = "BONE");
})(i || (i = {}));
var o = (function () {
function e() {}
return (e.X = new r.e(1, 0, 0)), (e.Y = new r.e(0, 1, 0)), (e.Z = new r.e(0, 0, 1)), e;
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(47),
r = n(6),
o = n(1),
a = (n(208), n(14)),
s =
(n(166),
(function () {
function e(e, t, n, a, s, c, l, u, h, d, p, f, m, g, b) {
void 0 === l && (l = 1),
void 0 === d && (d = null),
void 0 === p && (p = 0),
void 0 === f && (f = "postprocess"),
void 0 === g && (g = !1),
void 0 === b && (b = 5),
(this.name = e),
(this.width = -1),
(this.height = -1),
(this._outputTexture = null),
(this.autoClear = !0),
(this.alphaMode = 0),
(this.animations = new Array()),
(this.enablePixelPerfectMode = !1),
(this.forceFullscreenViewport = !0),
(this.scaleMode = 1),
(this.alwaysForcePOT = !1),
(this._samples = 1),
(this.adaptScaleToCurrentViewport = !1),
(this._reusable = !1),
(this._textures = new i.a(2)),
(this._currentRenderTextureInd = 0),
(this._scaleRatio = new o.d(1, 1)),
(this._texelSize = o.d.Zero()),
(this.onActivateObservable = new r.c()),
(this.onSizeChangedObservable = new r.c()),
(this.onApplyObservable = new r.c()),
(this.onBeforeRenderObservable = new r.c()),
(this.onAfterRenderObservable = new r.c()),
null != c
? ((this._camera = c), (this._scene = c.getScene()), c.attachPostProcess(this), (this._engine = this._scene.getEngine()), this._scene.postProcesses.push(this), (this.uniqueId = this._scene.getUniqueId()))
: u && ((this._engine = u), this._engine.postProcesses.push(this)),
(this._options = s),
(this.renderTargetSamplingMode = l || 1),
(this._reusable = h || !1),
(this._textureType = p),
(this._textureFormat = b),
(this._samplers = a || []),
this._samplers.push("textureSampler"),
(this._fragmentUrl = t),
(this._vertexUrl = f),
(this._parameters = n || []),
this._parameters.push("scale"),
(this._indexParameters = m),
g || this.updateEffect(d);
}
return (
Object.defineProperty(e.prototype, "samples", {
get: function () {
return this._samples;
},
set: function (e) {
var t = this;
(this._samples = Math.min(e, this._engine.getCaps().maxMSAASamples)),
this._textures.forEach(function (e) {
e.samples !== t._samples && t._engine.updateRenderTargetTextureSampleCount(e, t._samples);
});
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getEffectName = function () {
return this._fragmentUrl;
}),
Object.defineProperty(e.prototype, "onActivate", {
set: function (e) {
this._onActivateObserver && this.onActivateObservable.remove(this._onActivateObserver), e && (this._onActivateObserver = this.onActivateObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onSizeChanged", {
set: function (e) {
this._onSizeChangedObserver && this.onSizeChangedObservable.remove(this._onSizeChangedObserver), (this._onSizeChangedObserver = this.onSizeChangedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onApply", {
set: function (e) {
this._onApplyObserver && this.onApplyObservable.remove(this._onApplyObserver), (this._onApplyObserver = this.onApplyObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onBeforeRender", {
set: function (e) {
this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onAfterRender", {
set: function (e) {
this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "inputTexture", {
get: function () {
return this._textures.data[this._currentRenderTextureInd];
},
set: function (e) {
this._forcedOutputTexture = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getCamera = function () {
return this._camera;
}),
Object.defineProperty(e.prototype, "texelSize", {
get: function () {
return this._shareOutputWithPostProcess
? this._shareOutputWithPostProcess.texelSize
: (this._forcedOutputTexture && this._texelSize.copyFromFloats(1 / this._forcedOutputTexture.width, 1 / this._forcedOutputTexture.height), this._texelSize);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "PostProcess";
}),
(e.prototype.getEngine = function () {
return this._engine;
}),
(e.prototype.getEffect = function () {
return this._effect;
}),
(e.prototype.shareOutputWith = function (e) {
return this._disposeTextures(), (this._shareOutputWithPostProcess = e), this;
}),
(e.prototype.useOwnOutput = function () {
0 == this._textures.length && (this._textures = new i.a(2)), (this._shareOutputWithPostProcess = null);
}),
(e.prototype.updateEffect = function (e, t, n, i, r, o) {
void 0 === e && (e = null),
void 0 === t && (t = null),
void 0 === n && (n = null),
(this._effect = this._engine.createEffect(
{ vertex: this._vertexUrl, fragment: this._fragmentUrl },
["position"],
t || this._parameters,
n || this._samplers,
null !== e ? e : "",
void 0,
r,
o,
i || this._indexParameters
));
}),
(e.prototype.isReusable = function () {
return this._reusable;
}),
(e.prototype.markTextureDirty = function () {
this.width = -1;
}),
(e.prototype.activate = function (e, t, n) {
var i = this;
void 0 === t && (t = null);
var r = (e = e || this._camera).getScene(),
o = r.getEngine(),
s = o.getCaps().maxTextureSize,
c = ((t ? t.width : this._engine.getRenderWidth(!0)) * this._options) | 0,
l = ((t ? t.height : this._engine.getRenderHeight(!0)) * this._options) | 0,
u = e.parent;
!u || (u.leftCamera != e && u.rightCamera != e) || (c /= 2);
var h,
d = this._options.width || c,
p = this._options.height || l,
f = 7 !== this.renderTargetSamplingMode && 1 !== this.renderTargetSamplingMode && 2 !== this.renderTargetSamplingMode;
if (!this._shareOutputWithPostProcess && !this._forcedOutputTexture) {
if (this.adaptScaleToCurrentViewport) {
var m = o.currentViewport;
m && ((d *= m.width), (p *= m.height));
}
if (
((f || this.alwaysForcePOT) &&
(this._options.width || (d = o.needPOTTextures ? a.a.GetExponentOfTwo(d, s, this.scaleMode) : d), this._options.height || (p = o.needPOTTextures ? a.a.GetExponentOfTwo(p, s, this.scaleMode) : p)),
this.width !== d || this.height !== p)
) {
if (this._textures.length > 0) {
for (var g = 0; g < this._textures.length; g++) this._engine._releaseTexture(this._textures.data[g]);
this._textures.reset();
}
(this.width = d), (this.height = p);
var b = { width: this.width, height: this.height },
_ = {
generateMipMaps: f,
generateDepthBuffer: n || 0 === e._postProcesses.indexOf(this),
generateStencilBuffer: (n || 0 === e._postProcesses.indexOf(this)) && this._engine.isStencilEnable,
samplingMode: this.renderTargetSamplingMode,
type: this._textureType,
format: this._textureFormat,
};
this._textures.push(this._engine.createRenderTargetTexture(b, _)),
this._reusable && this._textures.push(this._engine.createRenderTargetTexture(b, _)),
this._texelSize.copyFromFloats(1 / this.width, 1 / this.height),
this.onSizeChangedObservable.notifyObservers(this);
}
this._textures.forEach(function (e) {
e.samples !== i.samples && i._engine.updateRenderTargetTextureSampleCount(e, i.samples);
});
}
return (
this._shareOutputWithPostProcess
? (h = this._shareOutputWithPostProcess.inputTexture)
: this._forcedOutputTexture
? ((h = this._forcedOutputTexture), (this.width = this._forcedOutputTexture.width), (this.height = this._forcedOutputTexture.height))
: (h = this.inputTexture),
this.enablePixelPerfectMode
? (this._scaleRatio.copyFromFloats(c / d, l / p), this._engine.bindFramebuffer(h, 0, c, l, this.forceFullscreenViewport))
: (this._scaleRatio.copyFromFloats(1, 1), this._engine.bindFramebuffer(h, 0, void 0, void 0, this.forceFullscreenViewport)),
this.onActivateObservable.notifyObservers(e),
this.autoClear && 0 === this.alphaMode && this._engine.clear(this.clearColor ? this.clearColor : r.clearColor, r._allowPostProcessClearColor, !0, !0),
this._reusable && (this._currentRenderTextureInd = (this._currentRenderTextureInd + 1) % 2),
h
);
}),
Object.defineProperty(e.prototype, "isSupported", {
get: function () {
return this._effect.isSupported;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "aspectRatio", {
get: function () {
return this._shareOutputWithPostProcess
? this._shareOutputWithPostProcess.aspectRatio
: this._forcedOutputTexture
? this._forcedOutputTexture.width / this._forcedOutputTexture.height
: this.width / this.height;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.isReady = function () {
return this._effect && this._effect.isReady();
}),
(e.prototype.apply = function () {
return this._effect && this._effect.isReady()
? (this._engine.enableEffect(this._effect),
this._engine.setState(!1),
this._engine.setDepthBuffer(!1),
this._engine.setDepthWrite(!1),
this._engine.setAlphaMode(this.alphaMode),
this.alphaConstants && this.getEngine().setAlphaConstants(this.alphaConstants.r, this.alphaConstants.g, this.alphaConstants.b, this.alphaConstants.a),
(e = this._shareOutputWithPostProcess ? this._shareOutputWithPostProcess.inputTexture : this._forcedOutputTexture ? this._forcedOutputTexture : this.inputTexture),
this._effect._bindTexture("textureSampler", e),
this._effect.setVector2("scale", this._scaleRatio),
this.onApplyObservable.notifyObservers(this._effect),
this._effect)
: null;
var e;
}),
(e.prototype._disposeTextures = function () {
if (!this._shareOutputWithPostProcess && !this._forcedOutputTexture) {
if (this._textures.length > 0) for (var e = 0; e < this._textures.length; e++) this._engine._releaseTexture(this._textures.data[e]);
this._textures.dispose();
}
}),
(e.prototype.dispose = function (e) {
if (((e = e || this._camera), this._disposeTextures(), this._scene)) {
var t = this._scene.postProcesses.indexOf(this);
-1 !== t && this._scene.postProcesses.splice(t, 1);
} else {
var n = this._engine.postProcesses.indexOf(this);
-1 !== n && this._engine.postProcesses.splice(n, 1);
}
if (e) {
if ((e.detachPostProcess(this), 0 === e._postProcesses.indexOf(this) && e._postProcesses.length > 0)) {
var i = this._camera._getFirstPostProcess();
i && i.markTextureDirty();
}
this.onActivateObservable.clear(), this.onAfterRenderObservable.clear(), this.onApplyObservable.clear(), this.onBeforeRenderObservable.clear(), this.onSizeChangedObservable.clear();
}
}),
e
);
})());
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
Object.defineProperty(e, "LastCreatedEngine", {
get: function () {
return 0 === this.Instances.length ? null : this.Instances[this.Instances.length - 1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "LastCreatedScene", {
get: function () {
return this._LastCreatedScene;
},
enumerable: !0,
configurable: !0,
}),
(e.Instances = new Array()),
(e._LastCreatedScene = null),
(e.UseFallbackTexture = !0),
(e.FallbackTexture = ""),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return m;
});
var i = n(2),
r = n(3),
o = n(47),
a = n(12),
s = n(6),
c = n(1),
l = n(35),
u = n(10),
h = n(13),
d = n(22),
p = n(77),
f = n(128),
m = (function (e) {
function t(n, i, r, a) {
void 0 === a && (a = !0);
var l = e.call(this, n, r) || this;
return (
(l._position = c.e.Zero()),
(l.upVector = c.e.Up()),
(l.orthoLeft = null),
(l.orthoRight = null),
(l.orthoBottom = null),
(l.orthoTop = null),
(l.fov = 0.8),
(l.minZ = 1),
(l.maxZ = 1e4),
(l.inertia = 0.9),
(l.mode = t.PERSPECTIVE_CAMERA),
(l.isIntermediate = !1),
(l.viewport = new p.a(0, 0, 1, 1)),
(l.layerMask = 268435455),
(l.fovMode = t.FOVMODE_VERTICAL_FIXED),
(l.cameraRigMode = t.RIG_MODE_NONE),
(l.customRenderTargets = new Array()),
(l.outputRenderTarget = null),
(l.onViewMatrixChangedObservable = new s.c()),
(l.onProjectionMatrixChangedObservable = new s.c()),
(l.onAfterCheckInputsObservable = new s.c()),
(l.onRestoreStateObservable = new s.c()),
(l.isRigCamera = !1),
(l._rigCameras = new Array()),
(l._webvrViewMatrix = c.a.Identity()),
(l._skipRendering = !1),
(l._projectionMatrix = new c.a()),
(l._postProcesses = new Array()),
(l._activeMeshes = new o.a(256)),
(l._globalPosition = c.e.Zero()),
(l._computedViewMatrix = c.a.Identity()),
(l._doNotComputeProjectionMatrix = !1),
(l._transformMatrix = c.a.Zero()),
(l._refreshFrustumPlanes = !0),
(l._isCamera = !0),
(l._isLeftCamera = !1),
(l._isRightCamera = !1),
l.getScene().addCamera(l),
a && !l.getScene().activeCamera && (l.getScene().activeCamera = l),
(l.position = i),
l
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._position;
},
set: function (e) {
this._position = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.storeState = function () {
return (this._stateStored = !0), (this._storedFov = this.fov), this;
}),
(t.prototype._restoreStateValues = function () {
return !!this._stateStored && ((this.fov = this._storedFov), !0);
}),
(t.prototype.restoreState = function () {
return !!this._restoreStateValues() && (this.onRestoreStateObservable.notifyObservers(this), !0);
}),
(t.prototype.getClassName = function () {
return "Camera";
}),
(t.prototype.toString = function (e) {
var t = "Name: " + this.name;
if (((t += ", type: " + this.getClassName()), this.animations)) for (var n = 0; n < this.animations.length; n++) t += ", animation[0]: " + this.animations[n].toString(e);
return t;
}),
Object.defineProperty(t.prototype, "globalPosition", {
get: function () {
return this._globalPosition;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getActiveMeshes = function () {
return this._activeMeshes;
}),
(t.prototype.isActiveMesh = function (e) {
return -1 !== this._activeMeshes.indexOf(e);
}),
(t.prototype.isReady = function (t) {
if ((void 0 === t && (t = !1), t))
for (var n = 0, i = this._postProcesses; n < i.length; n++) {
var r = i[n];
if (r && !r.isReady()) return !1;
}
return e.prototype.isReady.call(this, t);
}),
(t.prototype._initCache = function () {
e.prototype._initCache.call(this),
(this._cache.position = new c.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)),
(this._cache.upVector = new c.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)),
(this._cache.mode = void 0),
(this._cache.minZ = void 0),
(this._cache.maxZ = void 0),
(this._cache.fov = void 0),
(this._cache.fovMode = void 0),
(this._cache.aspectRatio = void 0),
(this._cache.orthoLeft = void 0),
(this._cache.orthoRight = void 0),
(this._cache.orthoBottom = void 0),
(this._cache.orthoTop = void 0),
(this._cache.renderWidth = void 0),
(this._cache.renderHeight = void 0);
}),
(t.prototype._updateCache = function (t) {
t || e.prototype._updateCache.call(this), this._cache.position.copyFrom(this.position), this._cache.upVector.copyFrom(this.upVector);
}),
(t.prototype._isSynchronized = function () {
return this._isSynchronizedViewMatrix() && this._isSynchronizedProjectionMatrix();
}),
(t.prototype._isSynchronizedViewMatrix = function () {
return !!e.prototype._isSynchronized.call(this) && this._cache.position.equals(this.position) && this._cache.upVector.equals(this.upVector) && this.isSynchronizedWithParent();
}),
(t.prototype._isSynchronizedProjectionMatrix = function () {
var e = this._cache.mode === this.mode && this._cache.minZ === this.minZ && this._cache.maxZ === this.maxZ;
if (!e) return !1;
var n = this.getEngine();
return (e =
this.mode === t.PERSPECTIVE_CAMERA
? this._cache.fov === this.fov && this._cache.fovMode === this.fovMode && this._cache.aspectRatio === n.getAspectRatio(this)
: this._cache.orthoLeft === this.orthoLeft &&
this._cache.orthoRight === this.orthoRight &&
this._cache.orthoBottom === this.orthoBottom &&
this._cache.orthoTop === this.orthoTop &&
this._cache.renderWidth === n.getRenderWidth() &&
this._cache.renderHeight === n.getRenderHeight());
}),
(t.prototype.attachControl = function (e, t) {}),
(t.prototype.detachControl = function (e) {}),
(t.prototype.update = function () {
this._checkInputs(), this.cameraRigMode !== t.RIG_MODE_NONE && this._updateRigCameras();
}),
(t.prototype._checkInputs = function () {
this.onAfterCheckInputsObservable.notifyObservers(this);
}),
Object.defineProperty(t.prototype, "rigCameras", {
get: function () {
return this._rigCameras;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rigPostProcess", {
get: function () {
return this._rigPostProcess;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._getFirstPostProcess = function () {
for (var e = 0; e < this._postProcesses.length; e++) if (null !== this._postProcesses[e]) return this._postProcesses[e];
return null;
}),
(t.prototype._cascadePostProcessesToRigCams = function () {
var e = this._getFirstPostProcess();
e && e.markTextureDirty();
for (var t = 0, n = this._rigCameras.length; t < n; t++) {
var i = this._rigCameras[t],
r = i._rigPostProcess;
if (r) "pass" === r.getEffectName() && (i.isIntermediate = 0 === this._postProcesses.length), (i._postProcesses = this._postProcesses.slice(0).concat(r)), r.markTextureDirty();
else i._postProcesses = this._postProcesses.slice(0);
}
}),
(t.prototype.attachPostProcess = function (e, t) {
return (
void 0 === t && (t = null),
!e.isReusable() && this._postProcesses.indexOf(e) > -1
? (u.a.Error("You're trying to reuse a post process not defined as reusable."), 0)
: (null == t || t < 0 ? this._postProcesses.push(e) : null === this._postProcesses[t] ? (this._postProcesses[t] = e) : this._postProcesses.splice(t, 0, e),
this._cascadePostProcessesToRigCams(),
this._postProcesses.indexOf(e))
);
}),
(t.prototype.detachPostProcess = function (e) {
var t = this._postProcesses.indexOf(e);
-1 !== t && (this._postProcesses[t] = null), this._cascadePostProcessesToRigCams();
}),
(t.prototype.getWorldMatrix = function () {
return this._isSynchronizedViewMatrix() || this.getViewMatrix(), this._worldMatrix;
}),
(t.prototype._getViewMatrix = function () {
return c.a.Identity();
}),
(t.prototype.getViewMatrix = function (e) {
return (
(!e && this._isSynchronizedViewMatrix()) ||
(this.updateCache(),
(this._computedViewMatrix = this._getViewMatrix()),
(this._currentRenderId = this.getScene().getRenderId()),
this._childUpdateId++,
(this._refreshFrustumPlanes = !0),
this._cameraRigParams && this._cameraRigParams.vrPreViewMatrix && this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix, this._computedViewMatrix),
this.parent && this.parent.onViewMatrixChangedObservable && this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent),
this.onViewMatrixChangedObservable.notifyObservers(this),
this._computedViewMatrix.invertToRef(this._worldMatrix)),
this._computedViewMatrix
);
}),
(t.prototype.freezeProjectionMatrix = function (e) {
(this._doNotComputeProjectionMatrix = !0), void 0 !== e && (this._projectionMatrix = e);
}),
(t.prototype.unfreezeProjectionMatrix = function () {
this._doNotComputeProjectionMatrix = !1;
}),
(t.prototype.getProjectionMatrix = function (e) {
if (this._doNotComputeProjectionMatrix || (!e && this._isSynchronizedProjectionMatrix())) return this._projectionMatrix;
(this._cache.mode = this.mode), (this._cache.minZ = this.minZ), (this._cache.maxZ = this.maxZ), (this._refreshFrustumPlanes = !0);
var n = this.getEngine(),
i = this.getScene();
if (this.mode === t.PERSPECTIVE_CAMERA) {
(this._cache.fov = this.fov), (this._cache.fovMode = this.fovMode), (this._cache.aspectRatio = n.getAspectRatio(this)), this.minZ <= 0 && (this.minZ = 0.1);
var r = n.useReverseDepthBuffer;
(i.useRightHandedSystem ? (r ? c.a.PerspectiveFovReverseRHToRef : c.a.PerspectiveFovRHToRef) : r ? c.a.PerspectiveFovReverseLHToRef : c.a.PerspectiveFovLHToRef)(
this.fov,
n.getAspectRatio(this),
this.minZ,
this.maxZ,
this._projectionMatrix,
this.fovMode === t.FOVMODE_VERTICAL_FIXED
);
} else {
var o = n.getRenderWidth() / 2,
a = n.getRenderHeight() / 2;
i.useRightHandedSystem
? c.a.OrthoOffCenterRHToRef(this.orthoLeft || -o, this.orthoRight || o, this.orthoBottom || -a, this.orthoTop || a, this.minZ, this.maxZ, this._projectionMatrix)
: c.a.OrthoOffCenterLHToRef(this.orthoLeft || -o, this.orthoRight || o, this.orthoBottom || -a, this.orthoTop || a, this.minZ, this.maxZ, this._projectionMatrix),
(this._cache.orthoLeft = this.orthoLeft),
(this._cache.orthoRight = this.orthoRight),
(this._cache.orthoBottom = this.orthoBottom),
(this._cache.orthoTop = this.orthoTop),
(this._cache.renderWidth = n.getRenderWidth()),
(this._cache.renderHeight = n.getRenderHeight());
}
return this.onProjectionMatrixChangedObservable.notifyObservers(this), this._projectionMatrix;
}),
(t.prototype.getTransformationMatrix = function () {
return this._computedViewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix), this._transformMatrix;
}),
(t.prototype._updateFrustumPlanes = function () {
this._refreshFrustumPlanes &&
(this.getTransformationMatrix(),
this._frustumPlanes ? f.a.GetPlanesToRef(this._transformMatrix, this._frustumPlanes) : (this._frustumPlanes = f.a.GetPlanes(this._transformMatrix)),
(this._refreshFrustumPlanes = !1));
}),
(t.prototype.isInFrustum = function (e, t) {
if ((void 0 === t && (t = !1), this._updateFrustumPlanes(), t && this.rigCameras.length > 0)) {
var n = !1;
return (
this.rigCameras.forEach(function (t) {
t._updateFrustumPlanes(), (n = n || e.isInFrustum(t._frustumPlanes));
}),
n
);
}
return e.isInFrustum(this._frustumPlanes);
}),
(t.prototype.isCompletelyInFrustum = function (e) {
return this._updateFrustumPlanes(), e.isCompletelyInFrustum(this._frustumPlanes);
}),
(t.prototype.getForwardRay = function (e, t, n) {
throw (void 0 === e && (e = 100), d.a.WarnImport("Ray"));
}),
(t.prototype.dispose = function (n, i) {
for (
void 0 === i && (i = !1),
this.onViewMatrixChangedObservable.clear(),
this.onProjectionMatrixChangedObservable.clear(),
this.onAfterCheckInputsObservable.clear(),
this.onRestoreStateObservable.clear(),
this.inputs && this.inputs.clear(),
this.getScene().stopAnimation(this),
this.getScene().removeCamera(this);
this._rigCameras.length > 0;
) {
var r = this._rigCameras.pop();
r && r.dispose();
}
if (this._rigPostProcess) this._rigPostProcess.dispose(this), (this._rigPostProcess = null), (this._postProcesses = []);
else if (this.cameraRigMode !== t.RIG_MODE_NONE) (this._rigPostProcess = null), (this._postProcesses = []);
else
for (var o = this._postProcesses.length; --o >= 0; ) {
var a = this._postProcesses[o];
a && a.dispose(this);
}
for (o = this.customRenderTargets.length; --o >= 0; ) this.customRenderTargets[o].dispose();
(this.customRenderTargets = []), this._activeMeshes.dispose(), e.prototype.dispose.call(this, n, i);
}),
Object.defineProperty(t.prototype, "isLeftCamera", {
get: function () {
return this._isLeftCamera;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isRightCamera", {
get: function () {
return this._isRightCamera;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "leftCamera", {
get: function () {
return this._rigCameras.length < 1 ? null : this._rigCameras[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rightCamera", {
get: function () {
return this._rigCameras.length < 2 ? null : this._rigCameras[1];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getLeftTarget = function () {
return this._rigCameras.length < 1 ? null : this._rigCameras[0].getTarget();
}),
(t.prototype.getRightTarget = function () {
return this._rigCameras.length < 2 ? null : this._rigCameras[1].getTarget();
}),
(t.prototype.setCameraRigMode = function (e, n) {
if (this.cameraRigMode !== e) {
for (; this._rigCameras.length > 0; ) {
var i = this._rigCameras.pop();
i && i.dispose();
}
if (
((this.cameraRigMode = e),
(this._cameraRigParams = {}),
(this._cameraRigParams.interaxialDistance = n.interaxialDistance || 0.0637),
(this._cameraRigParams.stereoHalfAngle = a.b.ToRadians(this._cameraRigParams.interaxialDistance / 0.0637)),
this.cameraRigMode !== t.RIG_MODE_NONE)
) {
var r = this.createRigCamera(this.name + "_L", 0);
r && (r._isLeftCamera = !0);
var o = this.createRigCamera(this.name + "_R", 1);
o && (o._isRightCamera = !0), r && o && (this._rigCameras.push(r), this._rigCameras.push(o));
}
switch (this.cameraRigMode) {
case t.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
t._setStereoscopicAnaglyphRigMode(this);
break;
case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
case t.RIG_MODE_STEREOSCOPIC_OVERUNDER:
case t.RIG_MODE_STEREOSCOPIC_INTERLACED:
t._setStereoscopicRigMode(this);
break;
case t.RIG_MODE_VR:
t._setVRRigMode(this, n);
break;
case t.RIG_MODE_WEBVR:
t._setWebVRRigMode(this, n);
}
this._cascadePostProcessesToRigCams(), this.update();
}
}),
(t._setStereoscopicRigMode = function (e) {
throw "Import Cameras/RigModes/stereoscopicRigMode before using stereoscopic rig mode";
}),
(t._setStereoscopicAnaglyphRigMode = function (e) {
throw "Import Cameras/RigModes/stereoscopicAnaglyphRigMode before using stereoscopic anaglyph rig mode";
}),
(t._setVRRigMode = function (e, t) {
throw "Import Cameras/RigModes/vrRigMode before using VR rig mode";
}),
(t._setWebVRRigMode = function (e, t) {
throw "Import Cameras/RigModes/WebVRRigMode before using Web VR rig mode";
}),
(t.prototype._getVRProjectionMatrix = function () {
return (
c.a.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov, this._cameraRigParams.vrMetrics.aspectRatio, this.minZ, this.maxZ, this._cameraRigParams.vrWorkMatrix),
this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix, this._projectionMatrix),
this._projectionMatrix
);
}),
(t.prototype._updateCameraRotationMatrix = function () {}),
(t.prototype._updateWebVRCameraRotationMatrix = function () {}),
(t.prototype._getWebVRProjectionMatrix = function () {
return c.a.Identity();
}),
(t.prototype._getWebVRViewMatrix = function () {
return c.a.Identity();
}),
(t.prototype.setCameraRigParameter = function (e, t) {
this._cameraRigParams || (this._cameraRigParams = {}), (this._cameraRigParams[e] = t), "interaxialDistance" === e && (this._cameraRigParams.stereoHalfAngle = a.b.ToRadians(t / 0.0637));
}),
(t.prototype.createRigCamera = function (e, t) {
return null;
}),
(t.prototype._updateRigCameras = function () {
for (var e = 0; e < this._rigCameras.length; e++)
(this._rigCameras[e].minZ = this.minZ), (this._rigCameras[e].maxZ = this.maxZ), (this._rigCameras[e].fov = this.fov), this._rigCameras[e].upVector.copyFrom(this.upVector);
this.cameraRigMode === t.RIG_MODE_STEREOSCOPIC_ANAGLYPH && (this._rigCameras[0].viewport = this._rigCameras[1].viewport = this.viewport);
}),
(t.prototype._setupInputs = function () {}),
(t.prototype.serialize = function () {
var e = r.a.Serialize(this);
return (e.type = this.getClassName()), this.parent && (e.parentId = this.parent.id), this.inputs && this.inputs.serialize(e), r.a.AppendSerializedAnimations(this, e), (e.ranges = this.serializeAnimationRanges()), e;
}),
(t.prototype.clone = function (e) {
return r.a.Clone(t.GetConstructorFromName(this.getClassName(), e, this.getScene(), this.interaxialDistance, this.isStereoscopicSideBySide), this);
}),
(t.prototype.getDirection = function (e) {
var t = c.e.Zero();
return this.getDirectionToRef(e, t), t;
}),
Object.defineProperty(t.prototype, "absoluteRotation", {
get: function () {
var e = c.b.Zero();
return this.getWorldMatrix().decompose(void 0, e), e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getDirectionToRef = function (e, t) {
c.e.TransformNormalToRef(e, this.getWorldMatrix(), t);
}),
(t.GetConstructorFromName = function (e, n, i, r, o) {
void 0 === r && (r = 0), void 0 === o && (o = !0);
var a = l.a.Construct(e, n, i, { interaxial_distance: r, isStereoscopicSideBySide: o });
return (
a ||
function () {
return t._createDefaultParsedCamera(n, i);
}
);
}),
(t.prototype.computeWorldMatrix = function () {
return this.getWorldMatrix();
}),
(t.Parse = function (e, n) {
var i = e.type,
o = t.GetConstructorFromName(i, e.name, n, e.interaxial_distance, e.isStereoscopicSideBySide),
a = r.a.Parse(o, e, n);
if (
(e.parentId && (a._waitingParentId = e.parentId),
a.inputs && (a.inputs.parse(e), a._setupInputs()),
a.setPosition && (a.position.copyFromFloats(0, 0, 0), a.setPosition(c.e.FromArray(e.position))),
e.target && a.setTarget && a.setTarget(c.e.FromArray(e.target)),
e.cameraRigMode)
) {
var s = e.interaxial_distance ? { interaxialDistance: e.interaxial_distance } : {};
a.setCameraRigMode(e.cameraRigMode, s);
}
if (e.animations) {
for (var u = 0; u < e.animations.length; u++) {
var d = e.animations[u],
p = h.a.GetClass("BABYLON.Animation");
p && a.animations.push(p.Parse(d));
}
l.a.ParseAnimationRanges(a, e, n);
}
return e.autoAnimate && n.beginAnimation(a, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), a;
}),
(t._createDefaultParsedCamera = function (e, t) {
throw d.a.WarnImport("UniversalCamera");
}),
(t.PERSPECTIVE_CAMERA = 0),
(t.ORTHOGRAPHIC_CAMERA = 1),
(t.FOVMODE_VERTICAL_FIXED = 0),
(t.FOVMODE_HORIZONTAL_FIXED = 1),
(t.RIG_MODE_NONE = 0),
(t.RIG_MODE_STEREOSCOPIC_ANAGLYPH = 10),
(t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL = 11),
(t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED = 12),
(t.RIG_MODE_STEREOSCOPIC_OVERUNDER = 13),
(t.RIG_MODE_STEREOSCOPIC_INTERLACED = 14),
(t.RIG_MODE_VR = 20),
(t.RIG_MODE_WEBVR = 21),
(t.RIG_MODE_CUSTOM = 22),
(t.ForceAttachControlToAlwaysPreventDefault = !1),
Object(i.c)([Object(r.o)("position")], t.prototype, "_position", void 0),
Object(i.c)([Object(r.o)()], t.prototype, "upVector", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "orthoLeft", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "orthoRight", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "orthoBottom", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "orthoTop", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "fov", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "minZ", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "maxZ", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "inertia", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "mode", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "layerMask", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "fovMode", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "cameraRigMode", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "interaxialDistance", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "isStereoscopicSideBySide", void 0),
t
);
})(l.a);
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return d;
}),
n.d(t, "a", function () {
return p;
});
var i = n(1),
r = n(5),
o = n(15),
a = n(3),
s = n(13),
c = n(134),
l = n(146),
u = n(35),
h = n(109),
d = function () {},
p = (function () {
function e(t, n, i, r, o, a) {
(this.name = t),
(this.targetProperty = n),
(this.framePerSecond = i),
(this.dataType = r),
(this.loopMode = o),
(this.enableBlending = a),
(this._runtimeAnimations = new Array()),
(this._events = new Array()),
(this.blendingSpeed = 0.01),
(this._ranges = {}),
(this.targetPropertyPath = n.split(".")),
(this.dataType = r),
(this.loopMode = void 0 === o ? e.ANIMATIONLOOPMODE_CYCLE : o);
}
return (
(e._PrepareAnimation = function (t, n, o, a, s, c, l, u) {
var d = void 0;
if (
(!isNaN(parseFloat(s)) && isFinite(s)
? (d = e.ANIMATIONTYPE_FLOAT)
: s instanceof i.b
? (d = e.ANIMATIONTYPE_QUATERNION)
: s instanceof i.e
? (d = e.ANIMATIONTYPE_VECTOR3)
: s instanceof i.d
? (d = e.ANIMATIONTYPE_VECTOR2)
: s instanceof r.a
? (d = e.ANIMATIONTYPE_COLOR3)
: s instanceof r.b
? (d = e.ANIMATIONTYPE_COLOR4)
: s instanceof h.a && (d = e.ANIMATIONTYPE_SIZE),
null == d)
)
return null;
var p = new e(t, n, o, d, l),
f = [
{ frame: 0, value: s },
{ frame: a, value: c },
];
return p.setKeys(f), void 0 !== u && p.setEasingFunction(u), p;
}),
(e.CreateAnimation = function (t, n, i, r) {
var o = new e(t + "Animation", t, i, n, e.ANIMATIONLOOPMODE_CONSTANT);
return o.setEasingFunction(r), o;
}),
(e.CreateAndStartAnimation = function (t, n, i, r, o, a, s, c, l, u) {
var h = e._PrepareAnimation(t, i, r, o, a, s, c, l);
return h ? n.getScene().beginDirectAnimation(n, [h], 0, o, 1 === h.loopMode, 1, u) : null;
}),
(e.CreateAndStartHierarchyAnimation = function (t, n, i, r, o, a, s, c, l, u, h) {
var d = e._PrepareAnimation(t, r, o, a, s, c, l, u);
return d ? n.getScene().beginDirectHierarchyAnimation(n, i, [d], 0, a, 1 === d.loopMode, 1, h) : null;
}),
(e.CreateMergeAndStartAnimation = function (t, n, i, r, o, a, s, c, l, u) {
var h = e._PrepareAnimation(t, i, r, o, a, s, c, l);
return h ? (n.animations.push(h), n.getScene().beginAnimation(n, 0, o, 1 === h.loopMode, 1, u)) : null;
}),
(e.TransitionTo = function (e, t, n, i, r, o, a, s) {
if ((void 0 === s && (s = null), a <= 0)) return (n[e] = t), s && s(), null;
var c = r * (a / 1e3);
o.setKeys([
{ frame: 0, value: n[e].clone ? n[e].clone() : n[e] },
{ frame: c, value: t },
]),
n.animations || (n.animations = []),
n.animations.push(o);
var l = i.beginAnimation(n, 0, c, !1);
return (l.onAnimationEnd = s), l;
}),
Object.defineProperty(e.prototype, "runtimeAnimations", {
get: function () {
return this._runtimeAnimations;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasRunningRuntimeAnimations", {
get: function () {
for (var e = 0, t = this._runtimeAnimations; e < t.length; e++) {
if (!t[e].isStopped) return !0;
}
return !1;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.toString = function (e) {
var t = "Name: " + this.name + ", property: " + this.targetProperty;
if (
((t += ", datatype: " + ["Float", "Vector3", "Quaternion", "Matrix", "Color3", "Vector2"][this.dataType]),
(t += ", nKeys: " + (this._keys ? this._keys.length : "none")),
(t += ", nRanges: " + (this._ranges ? Object.keys(this._ranges).length : "none")),
e)
) {
t += ", Ranges: {";
var n = !0;
for (var i in this._ranges) n && ((t += ", "), (n = !1)), (t += i);
t += "}";
}
return t;
}),
(e.prototype.addEvent = function (e) {
this._events.push(e);
}),
(e.prototype.removeEvents = function (e) {
for (var t = 0; t < this._events.length; t++) this._events[t].frame === e && (this._events.splice(t, 1), t--);
}),
(e.prototype.getEvents = function () {
return this._events;
}),
(e.prototype.createRange = function (e, t, n) {
this._ranges[e] || (this._ranges[e] = new l.a(e, t, n));
}),
(e.prototype.deleteRange = function (e, t) {
void 0 === t && (t = !0);
var n = this._ranges[e];
if (n) {
if (t) for (var i = n.from, r = n.to, o = this._keys.length - 1; o >= 0; o--) this._keys[o].frame >= i && this._keys[o].frame <= r && this._keys.splice(o, 1);
this._ranges[e] = null;
}
}),
(e.prototype.getRange = function (e) {
return this._ranges[e];
}),
(e.prototype.getKeys = function () {
return this._keys;
}),
(e.prototype.getHighestFrame = function () {
for (var e = 0, t = 0, n = this._keys.length; t < n; t++) e < this._keys[t].frame && (e = this._keys[t].frame);
return e;
}),
(e.prototype.getEasingFunction = function () {
return this._easingFunction;
}),
(e.prototype.setEasingFunction = function (e) {
this._easingFunction = e;
}),
(e.prototype.floatInterpolateFunction = function (e, t, n) {
return o.a.Lerp(e, t, n);
}),
(e.prototype.floatInterpolateFunctionWithTangents = function (e, t, n, i, r) {
return o.a.Hermite(e, t, n, i, r);
}),
(e.prototype.quaternionInterpolateFunction = function (e, t, n) {
return i.b.Slerp(e, t, n);
}),
(e.prototype.quaternionInterpolateFunctionWithTangents = function (e, t, n, r, o) {
return i.b.Hermite(e, t, n, r, o).normalize();
}),
(e.prototype.vector3InterpolateFunction = function (e, t, n) {
return i.e.Lerp(e, t, n);
}),
(e.prototype.vector3InterpolateFunctionWithTangents = function (e, t, n, r, o) {
return i.e.Hermite(e, t, n, r, o);
}),
(e.prototype.vector2InterpolateFunction = function (e, t, n) {
return i.d.Lerp(e, t, n);
}),
(e.prototype.vector2InterpolateFunctionWithTangents = function (e, t, n, r, o) {
return i.d.Hermite(e, t, n, r, o);
}),
(e.prototype.sizeInterpolateFunction = function (e, t, n) {
return h.a.Lerp(e, t, n);
}),
(e.prototype.color3InterpolateFunction = function (e, t, n) {
return r.a.Lerp(e, t, n);
}),
(e.prototype.color4InterpolateFunction = function (e, t, n) {
return r.b.Lerp(e, t, n);
}),
(e.prototype._getKeyValue = function (e) {
return "function" == typeof e ? e() : e;
}),
(e.prototype._interpolate = function (t, n) {
if (n.loopMode === e.ANIMATIONLOOPMODE_CONSTANT && n.repeatCount > 0) return n.highLimitValue.clone ? n.highLimitValue.clone() : n.highLimitValue;
var i = this._keys;
if (1 === i.length) return this._getKeyValue(i[0].value);
var r = n.key;
if (i[r].frame >= t) for (; r - 1 >= 0 && i[r].frame >= t; ) r--;
for (var o = r; o < i.length; o++) {
var a = i[o + 1];
if (a.frame >= t) {
n.key = o;
var s = i[o],
l = this._getKeyValue(s.value);
if (s.interpolation === c.a.STEP) return l;
var u = this._getKeyValue(a.value),
h = void 0 !== s.outTangent && void 0 !== a.inTangent,
d = a.frame - s.frame,
p = (t - s.frame) / d,
f = this.getEasingFunction();
switch ((null != f && (p = f.ease(p)), this.dataType)) {
case e.ANIMATIONTYPE_FLOAT:
var m = h ? this.floatInterpolateFunctionWithTangents(l, s.outTangent * d, u, a.inTangent * d, p) : this.floatInterpolateFunction(l, u, p);
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return m;
case e.ANIMATIONLOOPMODE_RELATIVE:
return n.offsetValue * n.repeatCount + m;
}
break;
case e.ANIMATIONTYPE_QUATERNION:
var g = h ? this.quaternionInterpolateFunctionWithTangents(l, s.outTangent.scale(d), u, a.inTangent.scale(d), p) : this.quaternionInterpolateFunction(l, u, p);
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return g;
case e.ANIMATIONLOOPMODE_RELATIVE:
return g.addInPlace(n.offsetValue.scale(n.repeatCount));
}
return g;
case e.ANIMATIONTYPE_VECTOR3:
var b = h ? this.vector3InterpolateFunctionWithTangents(l, s.outTangent.scale(d), u, a.inTangent.scale(d), p) : this.vector3InterpolateFunction(l, u, p);
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return b;
case e.ANIMATIONLOOPMODE_RELATIVE:
return b.add(n.offsetValue.scale(n.repeatCount));
}
case e.ANIMATIONTYPE_VECTOR2:
var _ = h ? this.vector2InterpolateFunctionWithTangents(l, s.outTangent.scale(d), u, a.inTangent.scale(d), p) : this.vector2InterpolateFunction(l, u, p);
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return _;
case e.ANIMATIONLOOPMODE_RELATIVE:
return _.add(n.offsetValue.scale(n.repeatCount));
}
case e.ANIMATIONTYPE_SIZE:
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return this.sizeInterpolateFunction(l, u, p);
case e.ANIMATIONLOOPMODE_RELATIVE:
return this.sizeInterpolateFunction(l, u, p).add(n.offsetValue.scale(n.repeatCount));
}
case e.ANIMATIONTYPE_COLOR3:
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return this.color3InterpolateFunction(l, u, p);
case e.ANIMATIONLOOPMODE_RELATIVE:
return this.color3InterpolateFunction(l, u, p).add(n.offsetValue.scale(n.repeatCount));
}
case e.ANIMATIONTYPE_COLOR4:
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
return this.color4InterpolateFunction(l, u, p);
case e.ANIMATIONLOOPMODE_RELATIVE:
return this.color4InterpolateFunction(l, u, p).add(n.offsetValue.scale(n.repeatCount));
}
case e.ANIMATIONTYPE_MATRIX:
switch (n.loopMode) {
case e.ANIMATIONLOOPMODE_CYCLE:
case e.ANIMATIONLOOPMODE_CONSTANT:
if (e.AllowMatricesInterpolation) return this.matrixInterpolateFunction(l, u, p, n.workValue);
case e.ANIMATIONLOOPMODE_RELATIVE:
return l;
}
}
break;
}
}
return this._getKeyValue(i[i.length - 1].value);
}),
(e.prototype.matrixInterpolateFunction = function (t, n, r, o) {
return e.AllowMatrixDecomposeForInterpolation ? (o ? (i.a.DecomposeLerpToRef(t, n, r, o), o) : i.a.DecomposeLerp(t, n, r)) : o ? (i.a.LerpToRef(t, n, r, o), o) : i.a.Lerp(t, n, r);
}),
(e.prototype.clone = function () {
var t = new e(this.name, this.targetPropertyPath.join("."), this.framePerSecond, this.dataType, this.loopMode);
if (((t.enableBlending = this.enableBlending), (t.blendingSpeed = this.blendingSpeed), this._keys && t.setKeys(this._keys), this._ranges))
for (var n in ((t._ranges = {}), this._ranges)) {
var i = this._ranges[n];
i && (t._ranges[n] = i.clone());
}
return t;
}),
(e.prototype.setKeys = function (e) {
this._keys = e.slice(0);
}),
(e.prototype.serialize = function () {
var t = {};
(t.name = this.name),
(t.property = this.targetProperty),
(t.framePerSecond = this.framePerSecond),
(t.dataType = this.dataType),
(t.loopBehavior = this.loopMode),
(t.enableBlending = this.enableBlending),
(t.blendingSpeed = this.blendingSpeed);
var n = this.dataType;
t.keys = [];
for (var i = this.getKeys(), r = 0; r < i.length; r++) {
var o = i[r],
a = {};
switch (((a.frame = o.frame), n)) {
case e.ANIMATIONTYPE_FLOAT:
a.values = [o.value];
break;
case e.ANIMATIONTYPE_QUATERNION:
case e.ANIMATIONTYPE_MATRIX:
case e.ANIMATIONTYPE_VECTOR3:
case e.ANIMATIONTYPE_COLOR3:
case e.ANIMATIONTYPE_COLOR4:
a.values = o.value.asArray();
}
t.keys.push(a);
}
for (var s in ((t.ranges = []), this._ranges)) {
var c = this._ranges[s];
if (c) {
var l = {};
(l.name = s), (l.from = c.from), (l.to = c.to), t.ranges.push(l);
}
}
return t;
}),
(e._UniversalLerp = function (e, t, n) {
var i = e.constructor;
return i.Lerp ? i.Lerp(e, t, n) : i.Slerp ? i.Slerp(e, t, n) : e.toFixed ? e * (1 - n) + n * t : t;
}),
(e.Parse = function (t) {
var n,
o,
a = new e(t.name, t.property, t.framePerSecond, t.dataType, t.loopBehavior),
s = t.dataType,
c = [];
for (t.enableBlending && (a.enableBlending = t.enableBlending), t.blendingSpeed && (a.blendingSpeed = t.blendingSpeed), o = 0; o < t.keys.length; o++) {
var l,
u,
h = t.keys[o];
switch (s) {
case e.ANIMATIONTYPE_FLOAT:
(n = h.values[0]), h.values.length >= 1 && (l = h.values[1]), h.values.length >= 2 && (u = h.values[2]);
break;
case e.ANIMATIONTYPE_QUATERNION:
if (((n = i.b.FromArray(h.values)), h.values.length >= 8)) {
var d = i.b.FromArray(h.values.slice(4, 8));
d.equals(i.b.Zero()) || (l = d);
}
if (h.values.length >= 12) {
var p = i.b.FromArray(h.values.slice(8, 12));
p.equals(i.b.Zero()) || (u = p);
}
break;
case e.ANIMATIONTYPE_MATRIX:
n = i.a.FromArray(h.values);
break;
case e.ANIMATIONTYPE_COLOR3:
n = r.a.FromArray(h.values);
break;
case e.ANIMATIONTYPE_COLOR4:
n = r.b.FromArray(h.values);
break;
case e.ANIMATIONTYPE_VECTOR3:
default:
n = i.e.FromArray(h.values);
}
var f = {};
(f.frame = h.frame), (f.value = n), null != l && (f.inTangent = l), null != u && (f.outTangent = u), c.push(f);
}
if ((a.setKeys(c), t.ranges)) for (o = 0; o < t.ranges.length; o++) (n = t.ranges[o]), a.createRange(n.name, n.from, n.to);
return a;
}),
(e.AppendSerializedAnimations = function (e, t) {
a.a.AppendSerializedAnimations(e, t);
}),
(e.AllowMatricesInterpolation = !1),
(e.AllowMatrixDecomposeForInterpolation = !0),
(e.ANIMATIONTYPE_FLOAT = 0),
(e.ANIMATIONTYPE_VECTOR3 = 1),
(e.ANIMATIONTYPE_QUATERNION = 2),
(e.ANIMATIONTYPE_MATRIX = 3),
(e.ANIMATIONTYPE_COLOR3 = 4),
(e.ANIMATIONTYPE_COLOR4 = 7),
(e.ANIMATIONTYPE_VECTOR2 = 5),
(e.ANIMATIONTYPE_SIZE = 6),
(e.ANIMATIONLOOPMODE_RELATIVE = 0),
(e.ANIMATIONLOOPMODE_CYCLE = 1),
(e.ANIMATIONLOOPMODE_CONSTANT = 2),
e
);
})();
(s.a.RegisteredTypes["BABYLON.Animation"] = p),
(u.a._AnimationRangeFactory = function (e, t, n) {
return new l.a(e, t, n);
});
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return d;
});
var i = n(2),
r = n(3),
o = n(12),
a = n(6),
s = n(25),
c = n(78),
l = n(124),
u = n(10),
h = n(85),
d = (function () {
function e(t, n, i) {
(this.metadata = null),
(this.reservedDataStore = null),
(this.checkReadyOnEveryCall = !1),
(this.checkReadyOnlyOnce = !1),
(this.state = ""),
(this._alpha = 1),
(this._backFaceCulling = !0),
(this.onCompiled = null),
(this.onError = null),
(this.getRenderTargetTextures = null),
(this.doNotSerialize = !1),
(this._storeEffectOnSubMeshes = !1),
(this.animations = null),
(this.onDisposeObservable = new a.c()),
(this._onDisposeObserver = null),
(this._onUnBindObservable = null),
(this._onBindObserver = null),
(this._alphaMode = 2),
(this._needDepthPrePass = !1),
(this.disableDepthWrite = !1),
(this.forceDepthWrite = !1),
(this.depthFunction = 0),
(this.separateCullingPass = !1),
(this._fogEnabled = !0),
(this.pointSize = 1),
(this.zOffset = 0),
(this._effect = null),
(this._useUBO = !1),
(this._fillMode = e.TriangleFillMode),
(this._cachedDepthWriteState = !1),
(this._cachedDepthFunctionState = 0),
(this._indexInSceneMaterialArray = -1),
(this.meshMap = null),
(this.name = t),
(this.id = t || o.b.RandomId()),
(this._scene = n || s.a.LastCreatedScene),
(this.uniqueId = this._scene.getUniqueId()),
this._scene.useRightHandedSystem ? (this.sideOrientation = e.ClockWiseSideOrientation) : (this.sideOrientation = e.CounterClockWiseSideOrientation),
(this._uniformBuffer = new l.a(this._scene.getEngine())),
(this._useUBO = this.getScene().getEngine().supportsUniformBuffers),
i || this._scene.addMaterial(this),
this._scene.useMaterialMeshMap && (this.meshMap = {});
}
return (
Object.defineProperty(e.prototype, "alpha", {
get: function () {
return this._alpha;
},
set: function (t) {
this._alpha !== t && ((this._alpha = t), this.markAsDirty(e.MiscDirtyFlag));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "backFaceCulling", {
get: function () {
return this._backFaceCulling;
},
set: function (t) {
this._backFaceCulling !== t && ((this._backFaceCulling = t), this.markAsDirty(e.TextureDirtyFlag));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasRenderTargetTextures", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onBindObservable", {
get: function () {
return this._onBindObservable || (this._onBindObservable = new a.c()), this._onBindObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onBind", {
set: function (e) {
this._onBindObserver && this.onBindObservable.remove(this._onBindObserver), (this._onBindObserver = this.onBindObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onUnBindObservable", {
get: function () {
return this._onUnBindObservable || (this._onUnBindObservable = new a.c()), this._onUnBindObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "alphaMode", {
get: function () {
return this._alphaMode;
},
set: function (t) {
this._alphaMode !== t && ((this._alphaMode = t), this.markAsDirty(e.TextureDirtyFlag));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "needDepthPrePass", {
get: function () {
return this._needDepthPrePass;
},
set: function (e) {
this._needDepthPrePass !== e && ((this._needDepthPrePass = e), this._needDepthPrePass && (this.checkReadyOnEveryCall = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "fogEnabled", {
get: function () {
return this._fogEnabled;
},
set: function (t) {
this._fogEnabled !== t && ((this._fogEnabled = t), this.markAsDirty(e.MiscDirtyFlag));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "wireframe", {
get: function () {
switch (this._fillMode) {
case e.WireFrameFillMode:
case e.LineListDrawMode:
case e.LineLoopDrawMode:
case e.LineStripDrawMode:
return !0;
}
return this._scene.forceWireframe;
},
set: function (t) {
this.fillMode = t ? e.WireFrameFillMode : e.TriangleFillMode;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "pointsCloud", {
get: function () {
switch (this._fillMode) {
case e.PointFillMode:
case e.PointListDrawMode:
return !0;
}
return this._scene.forcePointsCloud;
},
set: function (t) {
this.fillMode = t ? e.PointFillMode : e.TriangleFillMode;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "fillMode", {
get: function () {
return this._fillMode;
},
set: function (t) {
this._fillMode !== t && ((this._fillMode = t), this.markAsDirty(e.MiscDirtyFlag));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.toString = function (e) {
return "Name: " + this.name;
}),
(e.prototype.getClassName = function () {
return "Material";
}),
Object.defineProperty(e.prototype, "isFrozen", {
get: function () {
return this.checkReadyOnlyOnce;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.freeze = function () {
this.markDirty(), (this.checkReadyOnlyOnce = !0);
}),
(e.prototype.unfreeze = function () {
this.markDirty(), (this.checkReadyOnlyOnce = !1);
}),
(e.prototype.isReady = function (e, t) {
return !0;
}),
(e.prototype.isReadyForSubMesh = function (e, t, n) {
return !1;
}),
(e.prototype.getEffect = function () {
return this._effect;
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype.needAlphaBlending = function () {
return this.alpha < 1;
}),
(e.prototype.needAlphaBlendingForMesh = function (e) {
return this.needAlphaBlending() || e.visibility < 1 || e.hasVertexAlpha;
}),
(e.prototype.needAlphaTesting = function () {
return !1;
}),
(e.prototype.getAlphaTestTexture = function () {
return null;
}),
(e.prototype.markDirty = function () {
for (var e = 0, t = this.getScene().meshes; e < t.length; e++) {
var n = t[e];
if (n.subMeshes)
for (var i = 0, r = n.subMeshes; i < r.length; i++) {
var o = r[i];
o.getMaterial() === this && o.effect && (o.effect._wasPreviouslyReady = !1);
}
}
}),
(e.prototype._preBind = function (t, n) {
void 0 === n && (n = null);
var i = this._scene.getEngine(),
r = (null == n ? this.sideOrientation : n) === e.ClockWiseSideOrientation;
return i.enableEffect(t || this._effect), i.setState(this.backFaceCulling, this.zOffset, !1, r), r;
}),
(e.prototype.bind = function (e, t) {}),
(e.prototype.bindForSubMesh = function (e, t, n) {}),
(e.prototype.bindOnlyWorldMatrix = function (e) {}),
(e.prototype.bindSceneUniformBuffer = function (e, t) {
t.bindToEffect(e, "Scene");
}),
(e.prototype.bindView = function (e) {
this._useUBO ? this.bindSceneUniformBuffer(e, this.getScene().getSceneUniformBuffer()) : e.setMatrix("view", this.getScene().getViewMatrix());
}),
(e.prototype.bindViewProjection = function (e) {
this._useUBO ? this.bindSceneUniformBuffer(e, this.getScene().getSceneUniformBuffer()) : e.setMatrix("viewProjection", this.getScene().getTransformMatrix());
}),
(e.prototype._shouldTurnAlphaTestOn = function (e) {
return !this.needAlphaBlendingForMesh(e) && this.needAlphaTesting();
}),
(e.prototype._afterBind = function (e) {
if (((this._scene._cachedMaterial = this), (this._scene._cachedVisibility = e ? e.visibility : 1), this._onBindObservable && e && this._onBindObservable.notifyObservers(e), this.disableDepthWrite)) {
var t = this._scene.getEngine();
(this._cachedDepthWriteState = t.getDepthWrite()), t.setDepthWrite(!1);
}
if (0 !== this.depthFunction) {
t = this._scene.getEngine();
(this._cachedDepthFunctionState = t.getDepthFunction() || 0), t.setDepthFunction(this.depthFunction);
}
}),
(e.prototype.unbind = function () {
(this._onUnBindObservable && this._onUnBindObservable.notifyObservers(this), 0 !== this.depthFunction) && this._scene.getEngine().setDepthFunction(this._cachedDepthFunctionState);
this.disableDepthWrite && this._scene.getEngine().setDepthWrite(this._cachedDepthWriteState);
}),
(e.prototype.getActiveTextures = function () {
return [];
}),
(e.prototype.hasTexture = function (e) {
return !1;
}),
(e.prototype.clone = function (e) {
return null;
}),
(e.prototype.getBindedMeshes = function () {
var e = this;
if (this.meshMap) {
var t = new Array();
for (var n in this.meshMap) {
var i = this.meshMap[n];
i && t.push(i);
}
return t;
}
return this._scene.meshes.filter(function (t) {
return t.material === e;
});
}),
(e.prototype.forceCompilation = function (e, t, n, r) {
var o = this,
a = Object(i.a)({ clipPlane: !1, useInstances: !1 }, n),
s = new c.a(),
l = this.getScene(),
u = function () {
if (o._scene && o._scene.getEngine()) {
s._materialDefines && (s._materialDefines._renderId = -1);
var n = l.clipPlane;
a.clipPlane && (l.clipPlane = new h.a(0, 0, 0, 1)),
o._storeEffectOnSubMeshes
? o.isReadyForSubMesh(e, s, a.useInstances)
? t && t(o)
: s.effect && s.effect.getCompilationError() && s.effect.allFallbacksProcessed()
? r && r(s.effect.getCompilationError())
: setTimeout(u, 16)
: o.isReady()
? t && t(o)
: setTimeout(u, 16),
a.clipPlane && (l.clipPlane = n);
}
};
u();
}),
(e.prototype.forceCompilationAsync = function (e, t) {
var n = this;
return new Promise(function (i, r) {
n.forceCompilation(
e,
function () {
i();
},
t,
function (e) {
r(e);
}
);
});
}),
(e.prototype.markAsDirty = function (t) {
this.getScene().blockMaterialDirtyMechanism ||
((e._DirtyCallbackArray.length = 0),
t & e.TextureDirtyFlag && e._DirtyCallbackArray.push(e._TextureDirtyCallBack),
t & e.LightDirtyFlag && e._DirtyCallbackArray.push(e._LightsDirtyCallBack),
t & e.FresnelDirtyFlag && e._DirtyCallbackArray.push(e._FresnelDirtyCallBack),
t & e.AttributesDirtyFlag && e._DirtyCallbackArray.push(e._AttributeDirtyCallBack),
t & e.MiscDirtyFlag && e._DirtyCallbackArray.push(e._MiscDirtyCallBack),
e._DirtyCallbackArray.length && this._markAllSubMeshesAsDirty(e._RunDirtyCallBacks),
this.getScene().resetCachedMaterial());
}),
(e.prototype._markAllSubMeshesAsDirty = function (e) {
if (!this.getScene().blockMaterialDirtyMechanism)
for (var t = 0, n = this.getScene().meshes; t < n.length; t++) {
var i = n[t];
if (i.subMeshes)
for (var r = 0, o = i.subMeshes; r < o.length; r++) {
var a = o[r];
a.getMaterial() === this && a._materialDefines && e(a._materialDefines);
}
}
}),
(e.prototype._markAllSubMeshesAsAllDirty = function () {
this._markAllSubMeshesAsDirty(e._AllDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsImageProcessingDirty = function () {
this._markAllSubMeshesAsDirty(e._ImageProcessingDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsTexturesDirty = function () {
this._markAllSubMeshesAsDirty(e._TextureDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsFresnelDirty = function () {
this._markAllSubMeshesAsDirty(e._FresnelDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsFresnelAndMiscDirty = function () {
this._markAllSubMeshesAsDirty(e._FresnelAndMiscDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsLightsDirty = function () {
this._markAllSubMeshesAsDirty(e._LightsDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsAttributesDirty = function () {
this._markAllSubMeshesAsDirty(e._AttributeDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsMiscDirty = function () {
this._markAllSubMeshesAsDirty(e._MiscDirtyCallBack);
}),
(e.prototype._markAllSubMeshesAsTexturesAndMiscDirty = function () {
this._markAllSubMeshesAsDirty(e._TextureAndMiscDirtyCallBack);
}),
(e.prototype.dispose = function (e, t, n) {
var i = this.getScene();
if ((i.stopAnimation(this), i.freeProcessedMaterials(), i.removeMaterial(this), !0 !== n))
if (this.meshMap)
for (var r in this.meshMap) {
(s = this.meshMap[r]) && ((s.material = null), this.releaseVertexArrayObject(s, e));
}
else
for (var o = 0, a = i.meshes; o < a.length; o++) {
var s;
(s = a[o]).material !== this || s.sourceMesh || ((s.material = null), this.releaseVertexArrayObject(s, e));
}
this._uniformBuffer.dispose(),
e && this._effect && (this._storeEffectOnSubMeshes || this._effect.dispose(), (this._effect = null)),
this.onDisposeObservable.notifyObservers(this),
this.onDisposeObservable.clear(),
this._onBindObservable && this._onBindObservable.clear(),
this._onUnBindObservable && this._onUnBindObservable.clear();
}),
(e.prototype.releaseVertexArrayObject = function (e, t) {
if (e.geometry) {
var n = e.geometry;
if (this._storeEffectOnSubMeshes)
for (var i = 0, r = e.subMeshes; i < r.length; i++) {
var o = r[i];
n._releaseVertexArrayObject(o._materialEffect), t && o._materialEffect && o._materialEffect.dispose();
}
else n._releaseVertexArrayObject(this._effect);
}
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.Parse = function (e, t, n) {
if (e.customType) {
if ("BABYLON.PBRMaterial" === e.customType && e.overloadedAlbedo && ((e.customType = "BABYLON.LegacyPBRMaterial"), !BABYLON.LegacyPBRMaterial))
return u.a.Error("Your scene is trying to load a legacy version of the PBRMaterial, please, include it from the materials library."), null;
} else e.customType = "BABYLON.StandardMaterial";
return o.b.Instantiate(e.customType).Parse(e, t, n);
}),
(e.TriangleFillMode = 0),
(e.WireFrameFillMode = 1),
(e.PointFillMode = 2),
(e.PointListDrawMode = 3),
(e.LineListDrawMode = 4),
(e.LineLoopDrawMode = 5),
(e.LineStripDrawMode = 6),
(e.TriangleStripDrawMode = 7),
(e.TriangleFanDrawMode = 8),
(e.ClockWiseSideOrientation = 0),
(e.CounterClockWiseSideOrientation = 1),
(e.TextureDirtyFlag = 1),
(e.LightDirtyFlag = 2),
(e.FresnelDirtyFlag = 4),
(e.AttributesDirtyFlag = 8),
(e.MiscDirtyFlag = 16),
(e.AllDirtyFlag = 31),
(e._AllDirtyCallBack = function (e) {
return e.markAllAsDirty();
}),
(e._ImageProcessingDirtyCallBack = function (e) {
return e.markAsImageProcessingDirty();
}),
(e._TextureDirtyCallBack = function (e) {
return e.markAsTexturesDirty();
}),
(e._FresnelDirtyCallBack = function (e) {
return e.markAsFresnelDirty();
}),
(e._MiscDirtyCallBack = function (e) {
return e.markAsMiscDirty();
}),
(e._LightsDirtyCallBack = function (e) {
return e.markAsLightDirty();
}),
(e._AttributeDirtyCallBack = function (e) {
return e.markAsAttributesDirty();
}),
(e._FresnelAndMiscDirtyCallBack = function (t) {
e._FresnelDirtyCallBack(t), e._MiscDirtyCallBack(t);
}),
(e._TextureAndMiscDirtyCallBack = function (t) {
e._TextureDirtyCallBack(t), e._MiscDirtyCallBack(t);
}),
(e._DirtyCallbackArray = []),
(e._RunDirtyCallBacks = function (t) {
for (var n = 0, i = e._DirtyCallbackArray; n < i.length; n++) {
(0, i[n])(t);
}
}),
Object(i.c)([Object(r.c)()], e.prototype, "id", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "uniqueId", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "name", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "checkReadyOnEveryCall", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "checkReadyOnlyOnce", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "state", void 0),
Object(i.c)([Object(r.c)("alpha")], e.prototype, "_alpha", void 0),
Object(i.c)([Object(r.c)("backFaceCulling")], e.prototype, "_backFaceCulling", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "sideOrientation", void 0),
Object(i.c)([Object(r.c)("alphaMode")], e.prototype, "_alphaMode", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_needDepthPrePass", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "disableDepthWrite", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "forceDepthWrite", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "depthFunction", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "separateCullingPass", void 0),
Object(i.c)([Object(r.c)("fogEnabled")], e.prototype, "_fogEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "pointSize", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "zOffset", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "wireframe", null),
Object(i.c)([Object(r.c)()], e.prototype, "pointsCloud", null),
Object(i.c)([Object(r.c)()], e.prototype, "fillMode", null),
e
);
})();
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }),
(t.EventHandler = t.EventID = void 0),
(function (e) {
(e[(e.None = -1)] = "None"),
(e[(e.OnKeyPress = 0)] = "OnKeyPress"),
(e[(e.OnStopInputs = 1)] = "OnStopInputs"),
(e[(e.OnStartInputs = 2)] = "OnStartInputs"),
(e[(e.OnFirstUserInput = 3)] = "OnFirstUserInput"),
(e[(e.OnResetGame = 4)] = "OnResetGame"),
(e[(e.OnPauseGame = 5)] = "OnPauseGame"),
(e[(e.OnResumeGame = 6)] = "OnResumeGame"),
(e[(e.OnPlayGame = 7)] = "OnPlayGame"),
(e[(e.OnContinueGame = 8)] = "OnContinueGame"),
(e[(e.OnGodModeEnabled = 9)] = "OnGodModeEnabled"),
(e[(e.OnGodModeDisabled = 10)] = "OnGodModeDisabled"),
(e[(e.OnGodModeExhausted = 11)] = "OnGodModeExhausted"),
(e[(e.OnEndGame = 12)] = "OnEndGame"),
(e[(e.OnLoadingUpdate = 13)] = "OnLoadingUpdate"),
(e[(e.OnGameLoaded = 14)] = "OnGameLoaded"),
(e[(e.OnTrackRootInit = 15)] = "OnTrackRootInit"),
(e[(e.OnPlayerDeath = 16)] = "OnPlayerDeath"),
(e[(e.ChangeSpeed = 17)] = "ChangeSpeed"),
(e[(e.OnPowerupCollect = 18)] = "OnPowerupCollect"),
(e[(e.OnStumble = 19)] = "OnStumble"),
(e[(e.OnPlayerJumpState = 20)] = "OnPlayerJumpState"),
(e[(e.OnPlayerRunState = 21)] = "OnPlayerRunState"),
(e[(e.OnPlayerEnteringNewZone = 22)] = "OnPlayerEnteringNewZone"),
(e[(e.PlayerDeathTypeUpdate = 23)] = "PlayerDeathTypeUpdate"),
(e[(e.PlayerDeathDebugInfo = 24)] = "PlayerDeathDebugInfo"),
(e[(e.OnUnlockPowerup = 25)] = "OnUnlockPowerup"),
(e[(e.OnMeterFull = 26)] = "OnMeterFull"),
(e[(e.OnMeterReset = 27)] = "OnMeterReset"),
(e[(e.OnPowerupStart = 28)] = "OnPowerupStart"),
(e[(e.OnPowerupComplete = 29)] = "OnPowerupComplete"),
(e[(e.OnPowerupCooldown = 30)] = "OnPowerupCooldown"),
(e[(e.PlaySFX = 31)] = "PlaySFX"),
(e[(e.PlaySFXLoop = 32)] = "PlaySFXLoop"),
(e[(e.PlaySFXDelay = 33)] = "PlaySFXDelay"),
(e[(e.StopSFX = 34)] = "StopSFX"),
(e[(e.PlayMusic = 35)] = "PlayMusic"),
(e[(e.StopMusic = 36)] = "StopMusic"),
(e[(e.MusicVolumeChange = 37)] = "MusicVolumeChange"),
(e[(e.SoundVolumeChange = 38)] = "SoundVolumeChange"),
(e[(e.MuteAll = 39)] = "MuteAll"),
(e[(e.UnmuteAll = 40)] = "UnmuteAll"),
(e[(e.OnDebugButton = 41)] = "OnDebugButton"),
(e[(e.OnDebugFeatureChange = 42)] = "OnDebugFeatureChange"),
(e[(e.OnForceDailyChallenge = 43)] = "OnForceDailyChallenge"),
(e[(e.OnDebugCoinsUpdated = 44)] = "OnDebugCoinsUpdated"),
(e[(e.OnChangeTutorialState = 45)] = "OnChangeTutorialState"),
(e[(e.OnTutorialStart = 46)] = "OnTutorialStart"),
(e[(e.OnTutorialComplete = 47)] = "OnTutorialComplete"),
(e[(e.OnTutorialStepStart = 48)] = "OnTutorialStepStart"),
(e[(e.OnTutorialStepComplete = 49)] = "OnTutorialStepComplete"),
(e[(e.OnPowerupUnlockAnim = 50)] = "OnPowerupUnlockAnim"),
(e[(e.OnCameraFlySkip = 51)] = "OnCameraFlySkip"),
(e[(e.OnCameraFlyEnd = 52)] = "OnCameraFlyEnd"),
(e[(e.OnCameraIntroEnd = 53)] = "OnCameraIntroEnd"),
(e[(e.OnDebugCameraStateChange = 54)] = "OnDebugCameraStateChange"),
(e[(e.OnPersistGameState = 55)] = "OnPersistGameState"),
(e[(e.OnAbilityUpgraded = 56)] = "OnAbilityUpgraded"),
(e[(e.NotEnoughCoins = 57)] = "NotEnoughCoins"),
(e[(e.OnResumeCounterChange = 58)] = "OnResumeCounterChange"),
(e[(e.OnResetCurrentGameData = 59)] = "OnResetCurrentGameData"),
(e[(e.OnShowDistanceToast = 60)] = "OnShowDistanceToast"),
(e[(e.OnHudToastMessage = 61)] = "OnHudToastMessage"),
(e[(e.OnRewardCoins = 62)] = "OnRewardCoins"),
(e[(e.OnDailyChallengeDataUpdate = 63)] = "OnDailyChallengeDataUpdate"),
(e[(e.OnResetDayStatData = 64)] = "OnResetDayStatData"),
(e[(e.OnMineCartSurvived = 65)] = "OnMineCartSurvived"),
(e[(e.OnWaterSlideSurvived = 66)] = "OnWaterSlideSurvived"),
(e[(e.OnRessurect = 67)] = "OnRessurect"),
(e[(e.OnPowerMeterUsed = 68)] = "OnPowerMeterUsed"),
(e[(e.NextChallengeTimerChanged = 69)] = "NextChallengeTimerChanged"),
(e[(e.OnCheckDailyChallenge = 70)] = "OnCheckDailyChallenge"),
(e[(e.OnEnablingChestUI = 71)] = "OnEnablingChestUI"),
(e[(e.OnDisablingChestUI = 72)] = "OnDisablingChestUI"),
(e[(e.OnChestTap = 73)] = "OnChestTap"),
(e[(e.OnChestLandingDone = 74)] = "OnChestLandingDone"),
(e[(e.OnChestReward = 75)] = "OnChestReward");
})(t.EventID || (t.EventID = {}));
class i {
constructor() {
this._handlers = new Map();
}
static get instance() {
return i._instance || (i._instance = new i()), i._instance;
}
addListener(e, t) {
let n = new Array();
this._handlers.has(e) ? ((n = this._handlers.get(e)), n.push(t)) : n.push(t), this._handlers.set(e, n);
}
removeListener(e, t) {
if (this._handlers.has(e)) {
const n = this._handlers.get(e),
i = n.findIndex((e) => e.name == t.name);
i >= 0 && (n.splice(i, 1), 0 == n.length ? this._handlers.delete(e) : this._handlers.set(e, n));
}
}
fireEvent(e, t = {}) {
if (this._handlers.has(e)) {
const n = this._handlers.get(e),
i = new Array();
n.forEach((e) => {
i.push(e);
}),
i.forEach((e) => {
null != e && e(t);
});
}
}
}
t.EventHandler = i;
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }),
(t.sprites_data = void 0),
(t.sprites_data = {
idol:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAIcAQMAAAADk1U4AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAFZJREFUeNrtwTEBAAAAwqD1T20IX6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4Df88AAHZoHy8AAAAAElFTkSuQmCC",
logo:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyQAAAGyAQMAAAAvZJIwAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAEJJREFUeNrtwTEBAAAAwqD1T20ND6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACARwOs7AABD0ZQxQAAAABJRU5ErkJggg==",
"main-1": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApAAAAEzAQMAAAC8G6HOAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAC9JREFUeNrtwQENAAAAwqD3T20PBxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcGGOJAAH56bUCAAAAAElFTkSuQmCC",
play: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAi4AAAC7AQMAAAB4sIdFAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACRJREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAACAiwEz3QABMWPOqAAAAABJRU5ErkJggg==",
powerupglow:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAAP4AQMAAAD5xSmwAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAElJREFUeNrtwQENAAAAwqD3T20PBxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwKcBymgAAclHvtEAAAAASUVORK5CYII=",
powerupbar:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAAP4AQMAAADqEmlEAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAEdJREFUeNrtwQEBAAAAgiD/r25IQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GMZwAAFpB0tbAAAAAElFTkSuQmCC",
fill:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAAP4AQMAAADqEmlEAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAEdJREFUeNrtwQEBAAAAgiD/r25IQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GMZwAAFpB0tbAAAAAElFTkSuQmCC",
pause: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUMAAAFBAQMAAADXNV9PAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACRJREFUeNrtwTEBAAAAwqD1T20IX6AAAAAAAAAAAAAAAAAAXgM0qgAB5W9iOwAAAABJRU5ErkJggg==",
"count-holder": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUEAAACqAQMAAAAJNG+HAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB5JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAACAJwMb5AABtIBNHwAAAABJRU5ErkJggg==",
"cracked-border": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/8AAABnAQMAAABsEWCmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACRJREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAACAswEz5wAB8LYrLgAAAABJRU5ErkJggg==",
divider: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5sAAAAtAQMAAAAa3u2mAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABxJREFUeNrtwTEBAAAAwqD1T20LL6AAAAAAAE4GFJEAAXkbVUgAAAAASUVORK5CYII=",
"brown-bg": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfwAAACFAQMAAACExtjtAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAALgbIcUAASmHDOcAAAAASUVORK5CYII=",
"distance-toast": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFJAQMAAACPQOloAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACdJREFUeNrtwTEBAAAAwqD1T+1jDKAAAAAAAAAAAAAAAAAAAAAAuAFBiwABBg64oAAAAABJRU5ErkJggg==",
"coins-chest-open": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=",
"coins-in-hand": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=",
"coins-urn": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=",
"coins-vault-open": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=",
"chest-closed": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO8AAAC9AQMAAABh+LgGAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB1JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAODSABbjAAEkmyefAAAAAElFTkSuQmCC",
"check-button": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAAD1AQMAAABgLyt+AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB5JREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAngYctgABfTVLSQAAAABJRU5ErkJggg==",
"boost-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADLAQMAAAAC1Q6HAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABxJREFUeNrtwQENAAAAwqD3T20ON6AAAAAAgCMDE9MAAVyNpbYAAAAASUVORK5CYII=",
"boost-meter": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAADBAQMAAABLzpjKAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABxJREFUeNrtwQENAAAAwqD3T20ON6AAAAAA4NAAEtkAAba2GocAAAAASUVORK5CYII=",
"magnet-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAADBAQMAAABVB6h5AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABtJREFUeNrtwTEBAAAAwqD1T20Hb6AAAAAAOAwRVwABCAvLvgAAAABJRU5ErkJggg==",
"shield-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKkAAADEAQMAAADecZPoAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABtJREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAeBkRnAAB8Sqe1gAAAABJRU5ErkJggg==",
"off-button": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAABKAQMAAAC7E1m6AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABJJREFUeNpjYBgFo2AUjILBCQAEoAABR6p4dgAAAABJRU5ErkJggg==",
"on-button": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAABKAQMAAAC7E1m6AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABJJREFUeNpjYBgFo2AUjILBCQAEoAABR6p4dgAAAABJRU5ErkJggg==",
"timer-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAAByAQMAAABjts1bAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABZJREFUeNpjYBgFo2AUjIJRMAoGOwAABq4AAUJ9WPcAAAAASUVORK5CYII=",
"ads-movie": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAABsAQMAAABNSD55AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABRJREFUeNpjYBgFo2AUjIJRMJwBAAXoAAHYHUGlAAAAAElFTkSuQmCC",
tutorialarrowup: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAAEMAQMAAACRBFghAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABpJREFUeNrtwTEBAAAAwqD1T20MH6AAAAB4Gw2cAAFUkNtcAAAAAElFTkSuQmCC",
"coin-single": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABWAQMAAABb4TKoAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABFJREFUeNpjYBgFo2AUDB0AAAOyAAGApPSVAAAAAElFTkSuQmCC",
});
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return C;
});
var i = n(2),
r = n(12),
o = n(6),
a = n(1),
s = n(14),
c = n(4),
l = n(16),
u = n(39),
h = n(81),
d = n(63),
p = n(188),
f = n(22),
m = n(161),
g = n(5),
b = n(34),
_ = n(23),
v = function () {
(this.facetNb = 0),
(this.partitioningSubdivisions = 10),
(this.partitioningBBoxRatio = 1.01),
(this.facetDataEnabled = !1),
(this.facetParameters = {}),
(this.bbSize = a.e.Zero()),
(this.subDiv = { max: 1, X: 1, Y: 1, Z: 1 }),
(this.facetDepthSort = !1),
(this.facetDepthSortEnabled = !1);
},
y = function () {
(this._hasVertexAlpha = !1),
(this._useVertexColors = !0),
(this._numBoneInfluencers = 4),
(this._applyFog = !0),
(this._receiveShadows = !1),
(this._facetData = new v()),
(this._visibility = 1),
(this._skeleton = null),
(this._layerMask = 268435455),
(this._computeBonesUsingShaders = !0),
(this._isActive = !1),
(this._onlyForInstances = !1),
(this._isActiveIntermediate = !1),
(this._onlyForInstancesIntermediate = !1),
(this._actAsRegularMesh = !1);
},
C = (function (e) {
function t(n, i) {
void 0 === i && (i = null);
var r = e.call(this, n, i, !1) || this;
return (
(r._internalAbstractMeshDataInfo = new y()),
(r.cullingStrategy = t.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY),
(r.onCollideObservable = new o.c()),
(r.onCollisionPositionChangeObservable = new o.c()),
(r.onMaterialChangedObservable = new o.c()),
(r.definedFacingForward = !0),
(r._occlusionQuery = null),
(r._renderingGroup = null),
(r.alphaIndex = Number.MAX_VALUE),
(r.isVisible = !0),
(r.isPickable = !0),
(r.showSubMeshesBoundingBox = !1),
(r.isBlocker = !1),
(r.enablePointerMoveEvents = !1),
(r.renderingGroupId = 0),
(r._material = null),
(r.outlineColor = g.a.Red()),
(r.outlineWidth = 0.02),
(r.overlayColor = g.a.Red()),
(r.overlayAlpha = 0.5),
(r.useOctreeForRenderingSelection = !0),
(r.useOctreeForPicking = !0),
(r.useOctreeForCollisions = !0),
(r.alwaysSelectAsActiveMesh = !1),
(r.doNotSyncBoundingInfo = !1),
(r.actionManager = null),
(r._meshCollisionData = new p.a()),
(r.ellipsoid = new a.e(0.5, 1, 0.5)),
(r.ellipsoidOffset = new a.e(0, 0, 0)),
(r.edgesWidth = 1),
(r.edgesColor = new g.b(1, 0, 0, 1)),
(r._edgesRenderer = null),
(r._masterMesh = null),
(r._boundingInfo = null),
(r._renderId = 0),
(r._intersectionsInProgress = new Array()),
(r._unIndexed = !1),
(r._lightSources = new Array()),
(r._waitingData = { lods: null, actions: null, freezeWorldMatrix: null }),
(r._bonesTransformMatrices = null),
(r._transformMatrixTexture = null),
(r.onRebuildObservable = new o.c()),
(r._onCollisionPositionChange = function (e, t, n) {
void 0 === n && (n = null),
t.subtractToRef(r._meshCollisionData._oldPositionForCollisions, r._meshCollisionData._diffPositionForCollisions),
r._meshCollisionData._diffPositionForCollisions.length() > s.a.CollisionsEpsilon && r.position.addInPlace(r._meshCollisionData._diffPositionForCollisions),
n && r.onCollideObservable.notifyObservers(n),
r.onCollisionPositionChangeObservable.notifyObservers(r.position);
}),
r.getScene().addMesh(r),
r._resyncLightSources(),
r
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t, "BILLBOARDMODE_NONE", {
get: function () {
return u.a.BILLBOARDMODE_NONE;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "BILLBOARDMODE_X", {
get: function () {
return u.a.BILLBOARDMODE_X;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "BILLBOARDMODE_Y", {
get: function () {
return u.a.BILLBOARDMODE_Y;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "BILLBOARDMODE_Z", {
get: function () {
return u.a.BILLBOARDMODE_Z;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "BILLBOARDMODE_ALL", {
get: function () {
return u.a.BILLBOARDMODE_ALL;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "BILLBOARDMODE_USE_POSITION", {
get: function () {
return u.a.BILLBOARDMODE_USE_POSITION;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "facetNb", {
get: function () {
return this._internalAbstractMeshDataInfo._facetData.facetNb;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "partitioningSubdivisions", {
get: function () {
return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions;
},
set: function (e) {
this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "partitioningBBoxRatio", {
get: function () {
return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio;
},
set: function (e) {
this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "mustDepthSortFacets", {
get: function () {
return this._internalAbstractMeshDataInfo._facetData.facetDepthSort;
},
set: function (e) {
this._internalAbstractMeshDataInfo._facetData.facetDepthSort = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "facetDepthSortFrom", {
get: function () {
return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom;
},
set: function (e) {
this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isFacetDataEnabled", {
get: function () {
return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._updateNonUniformScalingState = function (t) {
return !!e.prototype._updateNonUniformScalingState.call(this, t) && (this._markSubMeshesAsMiscDirty(), !0);
}),
Object.defineProperty(t.prototype, "onCollide", {
set: function (e) {
this._meshCollisionData._onCollideObserver && this.onCollideObservable.remove(this._meshCollisionData._onCollideObserver), (this._meshCollisionData._onCollideObserver = this.onCollideObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onCollisionPositionChange", {
set: function (e) {
this._meshCollisionData._onCollisionPositionChangeObserver && this.onCollisionPositionChangeObservable.remove(this._meshCollisionData._onCollisionPositionChangeObserver),
(this._meshCollisionData._onCollisionPositionChangeObserver = this.onCollisionPositionChangeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "visibility", {
get: function () {
return this._internalAbstractMeshDataInfo._visibility;
},
set: function (e) {
this._internalAbstractMeshDataInfo._visibility !== e && ((this._internalAbstractMeshDataInfo._visibility = e), this._markSubMeshesAsMiscDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "material", {
get: function () {
return this._material;
},
set: function (e) {
this._material !== e &&
(this._material && this._material.meshMap && (this._material.meshMap[this.uniqueId] = void 0),
(this._material = e),
e && e.meshMap && (e.meshMap[this.uniqueId] = this),
this.onMaterialChangedObservable.hasObservers() && this.onMaterialChangedObservable.notifyObservers(this),
this.subMeshes && this._unBindEffect());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "receiveShadows", {
get: function () {
return this._internalAbstractMeshDataInfo._receiveShadows;
},
set: function (e) {
this._internalAbstractMeshDataInfo._receiveShadows !== e && ((this._internalAbstractMeshDataInfo._receiveShadows = e), this._markSubMeshesAsLightDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hasVertexAlpha", {
get: function () {
return this._internalAbstractMeshDataInfo._hasVertexAlpha;
},
set: function (e) {
this._internalAbstractMeshDataInfo._hasVertexAlpha !== e && ((this._internalAbstractMeshDataInfo._hasVertexAlpha = e), this._markSubMeshesAsAttributesDirty(), this._markSubMeshesAsMiscDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useVertexColors", {
get: function () {
return this._internalAbstractMeshDataInfo._useVertexColors;
},
set: function (e) {
this._internalAbstractMeshDataInfo._useVertexColors !== e && ((this._internalAbstractMeshDataInfo._useVertexColors = e), this._markSubMeshesAsAttributesDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "computeBonesUsingShaders", {
get: function () {
return this._internalAbstractMeshDataInfo._computeBonesUsingShaders;
},
set: function (e) {
this._internalAbstractMeshDataInfo._computeBonesUsingShaders !== e && ((this._internalAbstractMeshDataInfo._computeBonesUsingShaders = e), this._markSubMeshesAsAttributesDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "numBoneInfluencers", {
get: function () {
return this._internalAbstractMeshDataInfo._numBoneInfluencers;
},
set: function (e) {
this._internalAbstractMeshDataInfo._numBoneInfluencers !== e && ((this._internalAbstractMeshDataInfo._numBoneInfluencers = e), this._markSubMeshesAsAttributesDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "applyFog", {
get: function () {
return this._internalAbstractMeshDataInfo._applyFog;
},
set: function (e) {
this._internalAbstractMeshDataInfo._applyFog !== e && ((this._internalAbstractMeshDataInfo._applyFog = e), this._markSubMeshesAsMiscDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "layerMask", {
get: function () {
return this._internalAbstractMeshDataInfo._layerMask;
},
set: function (e) {
e !== this._internalAbstractMeshDataInfo._layerMask && ((this._internalAbstractMeshDataInfo._layerMask = e), this._resyncLightSources());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "collisionMask", {
get: function () {
return this._meshCollisionData._collisionMask;
},
set: function (e) {
this._meshCollisionData._collisionMask = isNaN(e) ? -1 : e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "collisionGroup", {
get: function () {
return this._meshCollisionData._collisionGroup;
},
set: function (e) {
this._meshCollisionData._collisionGroup = isNaN(e) ? -1 : e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "lightSources", {
get: function () {
return this._lightSources;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "_positions", {
get: function () {
return null;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "skeleton", {
get: function () {
return this._internalAbstractMeshDataInfo._skeleton;
},
set: function (e) {
var t = this._internalAbstractMeshDataInfo._skeleton;
t && t.needInitialSkinMatrix && t._unregisterMeshWithPoseMatrix(this),
e && e.needInitialSkinMatrix && e._registerMeshWithPoseMatrix(this),
(this._internalAbstractMeshDataInfo._skeleton = e),
this._internalAbstractMeshDataInfo._skeleton || (this._bonesTransformMatrices = null),
this._markSubMeshesAsAttributesDirty();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "AbstractMesh";
}),
(t.prototype.toString = function (e) {
var t = "Name: " + this.name + ", isInstance: " + ("InstancedMesh" !== this.getClassName() ? "YES" : "NO");
t += ", # of submeshes: " + (this.subMeshes ? this.subMeshes.length : 0);
var n = this._internalAbstractMeshDataInfo._skeleton;
return (
n && (t += ", skeleton: " + n.name),
e &&
((t += ", billboard mode: " + ["NONE", "X", "Y", null, "Z", null, null, "ALL"][this.billboardMode]),
(t += ", freeze wrld mat: " + (this._isWorldMatrixFrozen || this._waitingData.freezeWorldMatrix ? "YES" : "NO"))),
t
);
}),
(t.prototype._getEffectiveParent = function () {
return this._masterMesh && this.billboardMode !== u.a.BILLBOARDMODE_NONE ? this._masterMesh : e.prototype._getEffectiveParent.call(this);
}),
(t.prototype._getActionManagerForTrigger = function (e, t) {
if ((void 0 === t && (t = !0), this.actionManager && (t || this.actionManager.isRecursive))) {
if (!e) return this.actionManager;
if (this.actionManager.hasSpecificTrigger(e)) return this.actionManager;
}
return this.parent ? this.parent._getActionManagerForTrigger(e, !1) : null;
}),
(t.prototype._rebuild = function () {
if ((this.onRebuildObservable.notifyObservers(this), this._occlusionQuery && (this._occlusionQuery = null), this.subMeshes))
for (var e = 0, t = this.subMeshes; e < t.length; e++) {
t[e]._rebuild();
}
}),
(t.prototype._resyncLightSources = function () {
this._lightSources.length = 0;
for (var e = 0, t = this.getScene().lights; e < t.length; e++) {
var n = t[e];
n.isEnabled() && n.canAffectMesh(this) && this._lightSources.push(n);
}
this._markSubMeshesAsLightDirty();
}),
(t.prototype._resyncLightSource = function (e) {
var t = e.isEnabled() && e.canAffectMesh(this),
n = this._lightSources.indexOf(e);
if (-1 === n) {
if (!t) return;
this._lightSources.push(e);
} else {
if (t) return;
this._lightSources.splice(n, 1);
}
this._markSubMeshesAsLightDirty();
}),
(t.prototype._unBindEffect = function () {
for (var e = 0, t = this.subMeshes; e < t.length; e++) {
t[e].setEffect(null);
}
}),
(t.prototype._removeLightSource = function (e, t) {
var n = this._lightSources.indexOf(e);
-1 !== n && (this._lightSources.splice(n, 1), this._markSubMeshesAsLightDirty(t));
}),
(t.prototype._markSubMeshesAsDirty = function (e) {
if (this.subMeshes)
for (var t = 0, n = this.subMeshes; t < n.length; t++) {
var i = n[t];
i._materialDefines && e(i._materialDefines);
}
}),
(t.prototype._markSubMeshesAsLightDirty = function (e) {
void 0 === e && (e = !1),
this._markSubMeshesAsDirty(function (t) {
return t.markAsLightDirty(e);
});
}),
(t.prototype._markSubMeshesAsAttributesDirty = function () {
this._markSubMeshesAsDirty(function (e) {
return e.markAsAttributesDirty();
});
}),
(t.prototype._markSubMeshesAsMiscDirty = function () {
if (this.subMeshes)
for (var e = 0, t = this.subMeshes; e < t.length; e++) {
var n = t[e].getMaterial();
n && n.markAsDirty(16);
}
}),
Object.defineProperty(t.prototype, "scaling", {
get: function () {
return this._scaling;
},
set: function (e) {
this._scaling = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isBlocked", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getLOD = function (e) {
return this;
}),
(t.prototype.getTotalVertices = function () {
return 0;
}),
(t.prototype.getTotalIndices = function () {
return 0;
}),
(t.prototype.getIndices = function () {
return null;
}),
(t.prototype.getVerticesData = function (e) {
return null;
}),
(t.prototype.setVerticesData = function (e, t, n, i) {
return this;
}),
(t.prototype.updateVerticesData = function (e, t, n, i) {
return this;
}),
(t.prototype.setIndices = function (e, t) {
return this;
}),
(t.prototype.isVerticesDataPresent = function (e) {
return !1;
}),
(t.prototype.getBoundingInfo = function () {
return this._masterMesh ? this._masterMesh.getBoundingInfo() : (this._boundingInfo || this._updateBoundingInfo(), this._boundingInfo);
}),
(t.prototype.normalizeToUnitCube = function (t, n, i) {
return void 0 === t && (t = !0), void 0 === n && (n = !1), e.prototype.normalizeToUnitCube.call(this, t, n, i);
}),
(t.prototype.setBoundingInfo = function (e) {
return (this._boundingInfo = e), this;
}),
Object.defineProperty(t.prototype, "useBones", {
get: function () {
return this.skeleton && this.getScene().skeletonsEnabled && this.isVerticesDataPresent(c.b.MatricesIndicesKind) && this.isVerticesDataPresent(c.b.MatricesWeightsKind);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._preActivate = function () {}),
(t.prototype._preActivateForIntermediateRendering = function (e) {}),
(t.prototype._activate = function (e, t) {
return (this._renderId = e), !0;
}),
(t.prototype._postActivate = function () {}),
(t.prototype._freeze = function () {}),
(t.prototype._unFreeze = function () {}),
(t.prototype.getWorldMatrix = function () {
return this._masterMesh && this.billboardMode === u.a.BILLBOARDMODE_NONE ? this._masterMesh.getWorldMatrix() : e.prototype.getWorldMatrix.call(this);
}),
(t.prototype._getWorldMatrixDeterminant = function () {
return this._masterMesh ? this._masterMesh._getWorldMatrixDeterminant() : e.prototype._getWorldMatrixDeterminant.call(this);
}),
Object.defineProperty(t.prototype, "isAnInstance", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hasInstances", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.movePOV = function (e, t, n) {
return this.position.addInPlace(this.calcMovePOV(e, t, n)), this;
}),
(t.prototype.calcMovePOV = function (e, t, n) {
var i = new a.a();
(this.rotationQuaternion ? this.rotationQuaternion : a.b.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z)).toRotationMatrix(i);
var r = a.e.Zero(),
o = this.definedFacingForward ? -1 : 1;
return a.e.TransformCoordinatesFromFloatsToRef(e * o, t, n * o, i, r), r;
}),
(t.prototype.rotatePOV = function (e, t, n) {
return this.rotation.addInPlace(this.calcRotatePOV(e, t, n)), this;
}),
(t.prototype.calcRotatePOV = function (e, t, n) {
var i = this.definedFacingForward ? 1 : -1;
return new a.e(e * i, t, n * i);
}),
(t.prototype.refreshBoundingInfo = function (e) {
return void 0 === e && (e = !1), (this._boundingInfo && this._boundingInfo.isLocked) || this._refreshBoundingInfo(this._getPositionData(e), null), this;
}),
(t.prototype._refreshBoundingInfo = function (e, t) {
if (e) {
var n = Object(m.a)(e, 0, this.getTotalVertices(), t);
this._boundingInfo ? this._boundingInfo.reConstruct(n.minimum, n.maximum) : (this._boundingInfo = new d.a(n.minimum, n.maximum));
}
if (this.subMeshes) for (var i = 0; i < this.subMeshes.length; i++) this.subMeshes[i].refreshBoundingInfo(e);
this._updateBoundingInfo();
}),
(t.prototype._getPositionData = function (e) {
var t = this.getVerticesData(c.b.PositionKind);
if (t && e && this.skeleton) {
(t = r.b.Slice(t)), this._generatePointsArray();
var n = this.getVerticesData(c.b.MatricesIndicesKind),
i = this.getVerticesData(c.b.MatricesWeightsKind);
if (i && n) {
var o = this.numBoneInfluencers > 4,
s = o ? this.getVerticesData(c.b.MatricesIndicesExtraKind) : null,
l = o ? this.getVerticesData(c.b.MatricesWeightsExtraKind) : null;
this.skeleton.prepare();
for (var u = this.skeleton.getTransformMatrices(this), h = a.c.Vector3[0], d = a.c.Matrix[0], p = a.c.Matrix[1], f = 0, m = 0; m < t.length; m += 3, f += 4) {
var g, b;
for (d.reset(), g = 0; g < 4; g++) (b = i[f + g]) > 0 && (a.a.FromFloat32ArrayToRefScaled(u, Math.floor(16 * n[f + g]), b, p), d.addToSelf(p));
if (o) for (g = 0; g < 4; g++) (b = l[f + g]) > 0 && (a.a.FromFloat32ArrayToRefScaled(u, Math.floor(16 * s[f + g]), b, p), d.addToSelf(p));
a.e.TransformCoordinatesFromFloatsToRef(t[m], t[m + 1], t[m + 2], d, h), h.toArray(t, m), this._positions && this._positions[m / 3].copyFrom(h);
}
}
}
return t;
}),
(t.prototype._updateBoundingInfo = function () {
var e = this._effectiveMesh;
return (
this._boundingInfo ? this._boundingInfo.update(e.worldMatrixFromCache) : (this._boundingInfo = new d.a(this.absolutePosition, this.absolutePosition, e.worldMatrixFromCache)),
this._updateSubMeshesBoundingInfo(e.worldMatrixFromCache),
this
);
}),
(t.prototype._updateSubMeshesBoundingInfo = function (e) {
if (!this.subMeshes) return this;
for (var t = this.subMeshes.length, n = 0; n < t; n++) {
var i = this.subMeshes[n];
(t > 1 || !i.IsGlobal) && i.updateBoundingInfo(e);
}
return this;
}),
(t.prototype._afterComputeWorldMatrix = function () {
this.doNotSyncBoundingInfo || this._updateBoundingInfo();
}),
Object.defineProperty(t.prototype, "_effectiveMesh", {
get: function () {
return (this.skeleton && this.skeleton.overrideMesh) || this;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.isInFrustum = function (e) {
return null !== this._boundingInfo && this._boundingInfo.isInFrustum(e, this.cullingStrategy);
}),
(t.prototype.isCompletelyInFrustum = function (e) {
return null !== this._boundingInfo && this._boundingInfo.isCompletelyInFrustum(e);
}),
(t.prototype.intersectsMesh = function (e, t, n) {
if ((void 0 === t && (t = !1), !this._boundingInfo || !e._boundingInfo)) return !1;
if (this._boundingInfo.intersects(e._boundingInfo, t)) return !0;
if (n)
for (var i = 0, r = this.getChildMeshes(); i < r.length; i++) {
if (r[i].intersectsMesh(e, t, !0)) return !0;
}
return !1;
}),
(t.prototype.intersectsPoint = function (e) {
return !!this._boundingInfo && this._boundingInfo.intersectsPoint(e);
}),
Object.defineProperty(t.prototype, "checkCollisions", {
get: function () {
return this._meshCollisionData._checkCollisions;
},
set: function (e) {
this._meshCollisionData._checkCollisions = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "collider", {
get: function () {
return this._meshCollisionData._collider;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.moveWithCollisions = function (e) {
this.getAbsolutePosition().addToRef(this.ellipsoidOffset, this._meshCollisionData._oldPositionForCollisions);
var t = this.getScene().collisionCoordinator;
return (
this._meshCollisionData._collider || (this._meshCollisionData._collider = t.createCollider()),
(this._meshCollisionData._collider._radius = this.ellipsoid),
t.getNewPosition(this._meshCollisionData._oldPositionForCollisions, e, this._meshCollisionData._collider, 3, this, this._onCollisionPositionChange, this.uniqueId),
this
);
}),
(t.prototype._collideForSubMesh = function (e, t, n) {
if ((this._generatePointsArray(), !this._positions)) return this;
if (!e._lastColliderWorldVertices || !e._lastColliderTransformMatrix.equals(t)) {
(e._lastColliderTransformMatrix = t.clone()), (e._lastColliderWorldVertices = []), (e._trianglePlanes = []);
for (var i = e.verticesStart, r = e.verticesStart + e.verticesCount, o = i; o < r; o++) e._lastColliderWorldVertices.push(a.e.TransformCoordinates(this._positions[o], t));
}
return n._collide(e._trianglePlanes, e._lastColliderWorldVertices, this.getIndices(), e.indexStart, e.indexStart + e.indexCount, e.verticesStart, !!e.getMaterial(), this), this;
}),
(t.prototype._processCollisionsForSubMeshes = function (e, t) {
for (var n = this._scene.getCollidingSubMeshCandidates(this, e), i = n.length, r = 0; r < i; r++) {
var o = n.data[r];
(i > 1 && !o._checkCollision(e)) || this._collideForSubMesh(o, t, e);
}
return this;
}),
(t.prototype._checkCollision = function (e) {
if (!this._boundingInfo || !this._boundingInfo._checkCollision(e)) return this;
var t = a.c.Matrix[0],
n = a.c.Matrix[1];
return a.a.ScalingToRef(1 / e._radius.x, 1 / e._radius.y, 1 / e._radius.z, t), this.worldMatrixFromCache.multiplyToRef(t, n), this._processCollisionsForSubMeshes(e, n), this;
}),
(t.prototype._generatePointsArray = function () {
return !1;
}),
(t.prototype.intersects = function (e, t, n) {
var i = new h.a(),
r = "InstancedLinesMesh" === this.getClassName() || "LinesMesh" === this.getClassName() ? this.intersectionThreshold : 0,
o = this._boundingInfo;
if (!(this.subMeshes && o && e.intersectsSphere(o.boundingSphere, r) && e.intersectsBox(o.boundingBox, r))) return i;
if (!this._generatePointsArray()) return i;
for (var s = null, c = this._scene.getIntersectingSubMeshCandidates(this, e), l = c.length, u = 0; u < l; u++) {
var d = c.data[u];
if (!(l > 1) || d.canIntersects(e)) {
var p = d.intersects(e, this._positions, this.getIndices(), t, n);
if (p && (t || !s || p.distance < s.distance) && (((s = p).subMeshId = u), t)) break;
}
}
if (s) {
var f = this.getWorldMatrix(),
m = a.c.Vector3[0],
g = a.c.Vector3[1];
a.e.TransformCoordinatesToRef(e.origin, f, m), e.direction.scaleToRef(s.distance, g);
var b = a.e.TransformNormal(g, f).addInPlace(m);
return (i.hit = !0), (i.distance = a.e.Distance(m, b)), (i.pickedPoint = b), (i.pickedMesh = this), (i.bu = s.bu || 0), (i.bv = s.bv || 0), (i.faceId = s.faceId), (i.subMeshId = s.subMeshId), i;
}
return i;
}),
(t.prototype.clone = function (e, t, n) {
return null;
}),
(t.prototype.releaseSubMeshes = function () {
if (this.subMeshes) for (; this.subMeshes.length; ) this.subMeshes[0].dispose();
else this.subMeshes = new Array();
return this;
}),
(t.prototype.dispose = function (t, n) {
var i,
r = this;
for (
void 0 === n && (n = !1),
this._scene.useMaterialMeshMap && this._material && this._material.meshMap && (this._material.meshMap[this.uniqueId] = void 0),
this.getScene().freeActiveMeshes(),
this.getScene().freeRenderingGroups(),
void 0 !== this.actionManager && null !== this.actionManager && (this.actionManager.dispose(), (this.actionManager = null)),
this._internalAbstractMeshDataInfo._skeleton = null,
this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), (this._transformMatrixTexture = null)),
i = 0;
i < this._intersectionsInProgress.length;
i++
) {
var o = this._intersectionsInProgress[i],
a = o._intersectionsInProgress.indexOf(this);
o._intersectionsInProgress.splice(a, 1);
}
(this._intersectionsInProgress = []),
this.getScene().lights.forEach(function (e) {
var t = e.includedOnlyMeshes.indexOf(r);
-1 !== t && e.includedOnlyMeshes.splice(t, 1), -1 !== (t = e.excludedMeshes.indexOf(r)) && e.excludedMeshes.splice(t, 1);
var n = e.getShadowGenerator();
if (n) {
var i = n.getShadowMap();
i && i.renderList && -1 !== (t = i.renderList.indexOf(r)) && i.renderList.splice(t, 1);
}
}),
("InstancedMesh" === this.getClassName() && "InstancedLinesMesh" === this.getClassName()) || this.releaseSubMeshes();
var s = this.getScene().getEngine();
if (
(this._occlusionQuery && ((this.isOcclusionQueryInProgress = !1), s.deleteQuery(this._occlusionQuery), (this._occlusionQuery = null)),
s.wipeCaches(),
this.getScene().removeMesh(this),
n && this.material && ("MultiMaterial" === this.material.getClassName() ? this.material.dispose(!1, !0, !0) : this.material.dispose(!1, !0)),
!t)
)
for (i = 0; i < this.getScene().particleSystems.length; i++) this.getScene().particleSystems[i].emitter === this && (this.getScene().particleSystems[i].dispose(), i--);
this._internalAbstractMeshDataInfo._facetData.facetDataEnabled && this.disableFacetData(),
this.onAfterWorldMatrixUpdateObservable.clear(),
this.onCollideObservable.clear(),
this.onCollisionPositionChangeObservable.clear(),
this.onRebuildObservable.clear(),
e.prototype.dispose.call(this, t, n);
}),
(t.prototype.addChild = function (e) {
return e.setParent(this), this;
}),
(t.prototype.removeChild = function (e) {
return e.setParent(null), this;
}),
(t.prototype._initFacetData = function () {
var e = this._internalAbstractMeshDataInfo._facetData;
e.facetNormals || (e.facetNormals = new Array()),
e.facetPositions || (e.facetPositions = new Array()),
e.facetPartitioning || (e.facetPartitioning = new Array()),
(e.facetNb = (this.getIndices().length / 3) | 0),
(e.partitioningSubdivisions = e.partitioningSubdivisions ? e.partitioningSubdivisions : 10),
(e.partitioningBBoxRatio = e.partitioningBBoxRatio ? e.partitioningBBoxRatio : 1.01);
for (var t = 0; t < e.facetNb; t++) (e.facetNormals[t] = a.e.Zero()), (e.facetPositions[t] = a.e.Zero());
return (e.facetDataEnabled = !0), this;
}),
(t.prototype.updateFacetData = function () {
var e = this._internalAbstractMeshDataInfo._facetData;
e.facetDataEnabled || this._initFacetData();
var t = this.getVerticesData(c.b.PositionKind),
n = this.getIndices(),
i = this.getVerticesData(c.b.NormalKind),
r = this.getBoundingInfo();
if (e.facetDepthSort && !e.facetDepthSortEnabled) {
if (((e.facetDepthSortEnabled = !0), n instanceof Uint16Array)) e.depthSortedIndices = new Uint16Array(n);
else if (n instanceof Uint32Array) e.depthSortedIndices = new Uint32Array(n);
else {
for (var o = !1, s = 0; s < n.length; s++)
if (n[s] > 65535) {
o = !0;
break;
}
e.depthSortedIndices = o ? new Uint32Array(n) : new Uint16Array(n);
}
if (
((e.facetDepthSortFunction = function (e, t) {
return t.sqDistance - e.sqDistance;
}),
!e.facetDepthSortFrom)
) {
var u = this.getScene().activeCamera;
e.facetDepthSortFrom = u ? u.position : a.e.Zero();
}
e.depthSortedFacets = [];
for (var h = 0; h < e.facetNb; h++) {
var d = { ind: 3 * h, sqDistance: 0 };
e.depthSortedFacets.push(d);
}
(e.invertedMatrix = a.a.Identity()), (e.facetDepthSortOrigin = a.e.Zero());
}
(e.bbSize.x = r.maximum.x - r.minimum.x > b.a ? r.maximum.x - r.minimum.x : b.a),
(e.bbSize.y = r.maximum.y - r.minimum.y > b.a ? r.maximum.y - r.minimum.y : b.a),
(e.bbSize.z = r.maximum.z - r.minimum.z > b.a ? r.maximum.z - r.minimum.z : b.a);
var p = e.bbSize.x > e.bbSize.y ? e.bbSize.x : e.bbSize.y;
if (
((p = p > e.bbSize.z ? p : e.bbSize.z),
(e.subDiv.max = e.partitioningSubdivisions),
(e.subDiv.X = Math.floor((e.subDiv.max * e.bbSize.x) / p)),
(e.subDiv.Y = Math.floor((e.subDiv.max * e.bbSize.y) / p)),
(e.subDiv.Z = Math.floor((e.subDiv.max * e.bbSize.z) / p)),
(e.subDiv.X = e.subDiv.X < 1 ? 1 : e.subDiv.X),
(e.subDiv.Y = e.subDiv.Y < 1 ? 1 : e.subDiv.Y),
(e.subDiv.Z = e.subDiv.Z < 1 ? 1 : e.subDiv.Z),
(e.facetParameters.facetNormals = this.getFacetLocalNormals()),
(e.facetParameters.facetPositions = this.getFacetLocalPositions()),
(e.facetParameters.facetPartitioning = this.getFacetLocalPartitioning()),
(e.facetParameters.bInfo = r),
(e.facetParameters.bbSize = e.bbSize),
(e.facetParameters.subDiv = e.subDiv),
(e.facetParameters.ratio = this.partitioningBBoxRatio),
(e.facetParameters.depthSort = e.facetDepthSort),
e.facetDepthSort &&
e.facetDepthSortEnabled &&
(this.computeWorldMatrix(!0),
this._worldMatrix.invertToRef(e.invertedMatrix),
a.e.TransformCoordinatesToRef(e.facetDepthSortFrom, e.invertedMatrix, e.facetDepthSortOrigin),
(e.facetParameters.distanceTo = e.facetDepthSortOrigin)),
(e.facetParameters.depthSortedFacets = e.depthSortedFacets),
l.a.ComputeNormals(t, n, i, e.facetParameters),
e.facetDepthSort && e.facetDepthSortEnabled)
) {
e.depthSortedFacets.sort(e.facetDepthSortFunction);
var f = (e.depthSortedIndices.length / 3) | 0;
for (h = 0; h < f; h++) {
var m = e.depthSortedFacets[h].ind;
(e.depthSortedIndices[3 * h] = n[m]), (e.depthSortedIndices[3 * h + 1] = n[m + 1]), (e.depthSortedIndices[3 * h + 2] = n[m + 2]);
}
this.updateIndices(e.depthSortedIndices, void 0, !0);
}
return this;
}),
(t.prototype.getFacetLocalNormals = function () {
var e = this._internalAbstractMeshDataInfo._facetData;
return e.facetNormals || this.updateFacetData(), e.facetNormals;
}),
(t.prototype.getFacetLocalPositions = function () {
var e = this._internalAbstractMeshDataInfo._facetData;
return e.facetPositions || this.updateFacetData(), e.facetPositions;
}),
(t.prototype.getFacetLocalPartitioning = function () {
var e = this._internalAbstractMeshDataInfo._facetData;
return e.facetPartitioning || this.updateFacetData(), e.facetPartitioning;
}),
(t.prototype.getFacetPosition = function (e) {
var t = a.e.Zero();
return this.getFacetPositionToRef(e, t), t;
}),
(t.prototype.getFacetPositionToRef = function (e, t) {
var n = this.getFacetLocalPositions()[e],
i = this.getWorldMatrix();
return a.e.TransformCoordinatesToRef(n, i, t), this;
}),
(t.prototype.getFacetNormal = function (e) {
var t = a.e.Zero();
return this.getFacetNormalToRef(e, t), t;
}),
(t.prototype.getFacetNormalToRef = function (e, t) {
var n = this.getFacetLocalNormals()[e];
return a.e.TransformNormalToRef(n, this.getWorldMatrix(), t), this;
}),
(t.prototype.getFacetsAtLocalCoordinates = function (e, t, n) {
var i = this.getBoundingInfo(),
r = this._internalAbstractMeshDataInfo._facetData,
o = Math.floor(((e - i.minimum.x * r.partitioningBBoxRatio) * r.subDiv.X * r.partitioningBBoxRatio) / r.bbSize.x),
a = Math.floor(((t - i.minimum.y * r.partitioningBBoxRatio) * r.subDiv.Y * r.partitioningBBoxRatio) / r.bbSize.y),
s = Math.floor(((n - i.minimum.z * r.partitioningBBoxRatio) * r.subDiv.Z * r.partitioningBBoxRatio) / r.bbSize.z);
return o < 0 || o > r.subDiv.max || a < 0 || a > r.subDiv.max || s < 0 || s > r.subDiv.max ? null : r.facetPartitioning[o + r.subDiv.max * a + r.subDiv.max * r.subDiv.max * s];
}),
(t.prototype.getClosestFacetAtCoordinates = function (e, t, n, i, r, o) {
void 0 === r && (r = !1), void 0 === o && (o = !0);
var s = this.getWorldMatrix(),
c = a.c.Matrix[5];
s.invertToRef(c);
var l = a.c.Vector3[8];
a.e.TransformCoordinatesFromFloatsToRef(e, t, n, c, l);
var u = this.getClosestFacetAtLocalCoordinates(l.x, l.y, l.z, i, r, o);
return i && a.e.TransformCoordinatesFromFloatsToRef(i.x, i.y, i.z, s, i), u;
}),
(t.prototype.getClosestFacetAtLocalCoordinates = function (e, t, n, i, r, o) {
void 0 === r && (r = !1), void 0 === o && (o = !0);
var a = null,
s = 0,
c = 0,
l = 0,
u = 0,
h = 0,
d = 0,
p = 0,
f = 0,
m = this.getFacetLocalPositions(),
g = this.getFacetLocalNormals(),
b = this.getFacetsAtLocalCoordinates(e, t, n);
if (!b) return null;
for (var _, v, y, C = Number.MAX_VALUE, P = C, x = 0; x < b.length; x++)
(v = g[(_ = b[x])]),
(u = (e - (y = m[_]).x) * v.x + (t - y.y) * v.y + (n - y.z) * v.z),
(!r || (r && o && u >= 0) || (r && !o && u <= 0)) &&
((u = v.x * y.x + v.y * y.y + v.z * y.z),
(h = -(v.x * e + v.y * t + v.z * n - u) / (v.x * v.x + v.y * v.y + v.z * v.z)),
(P = (s = (d = e + v.x * h) - e) * s + (c = (p = t + v.y * h) - t) * c + (l = (f = n + v.z * h) - n) * l) < C && ((C = P), (a = _), i && ((i.x = d), (i.y = p), (i.z = f))));
return a;
}),
(t.prototype.getFacetDataParameters = function () {
return this._internalAbstractMeshDataInfo._facetData.facetParameters;
}),
(t.prototype.disableFacetData = function () {
var e = this._internalAbstractMeshDataInfo._facetData;
return (
e.facetDataEnabled &&
((e.facetDataEnabled = !1), (e.facetPositions = new Array()), (e.facetNormals = new Array()), (e.facetPartitioning = new Array()), (e.facetParameters = null), (e.depthSortedIndices = new Uint32Array(0))),
this
);
}),
(t.prototype.updateIndices = function (e, t, n) {
return void 0 === n && (n = !1), this;
}),
(t.prototype.createNormals = function (e) {
var t,
n = this.getVerticesData(c.b.PositionKind),
i = this.getIndices();
return (
(t = this.isVerticesDataPresent(c.b.NormalKind) ? this.getVerticesData(c.b.NormalKind) : []),
l.a.ComputeNormals(n, i, t, { useRightHandedSystem: this.getScene().useRightHandedSystem }),
this.setVerticesData(c.b.NormalKind, t, e),
this
);
}),
(t.prototype.alignWithNormal = function (e, t) {
t || (t = _.a.Y);
var n = a.c.Vector3[0],
i = a.c.Vector3[1];
return a.e.CrossToRef(t, e, i), a.e.CrossToRef(e, i, n), this.rotationQuaternion ? a.b.RotationQuaternionFromAxisToRef(n, e, i, this.rotationQuaternion) : a.e.RotationFromAxisToRef(n, e, i, this.rotation), this;
}),
(t.prototype._checkOcclusionQuery = function () {
return !1;
}),
(t.prototype.disableEdgesRendering = function () {
throw f.a.WarnImport("EdgesRenderer");
}),
(t.prototype.enableEdgesRendering = function (e, t) {
throw f.a.WarnImport("EdgesRenderer");
}),
(t.OCCLUSION_TYPE_NONE = 0),
(t.OCCLUSION_TYPE_OPTIMISTIC = 1),
(t.OCCLUSION_TYPE_STRICT = 2),
(t.OCCLUSION_ALGORITHM_TYPE_ACCURATE = 0),
(t.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE = 1),
(t.CULLINGSTRATEGY_STANDARD = 0),
(t.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1),
(t.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2),
(t.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3),
t
);
})(u.a);
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return i;
}),
n.d(t, "a", function () {
return s;
});
var i,
r = n(6),
o = n(147),
a = n(22);
!(function (e) {
(e[(e.Unknown = 0)] = "Unknown"),
(e[(e.Url = 1)] = "Url"),
(e[(e.Temp = 2)] = "Temp"),
(e[(e.Raw = 3)] = "Raw"),
(e[(e.Dynamic = 4)] = "Dynamic"),
(e[(e.RenderTarget = 5)] = "RenderTarget"),
(e[(e.MultiRenderTarget = 6)] = "MultiRenderTarget"),
(e[(e.Cube = 7)] = "Cube"),
(e[(e.CubeRaw = 8)] = "CubeRaw"),
(e[(e.CubePrefiltered = 9)] = "CubePrefiltered"),
(e[(e.Raw3D = 10)] = "Raw3D"),
(e[(e.Raw2DArray = 11)] = "Raw2DArray"),
(e[(e.Depth = 12)] = "Depth"),
(e[(e.CubeRawRGBD = 13)] = "CubeRawRGBD");
})(i || (i = {}));
var s = (function () {
function e(e, t, n) {
void 0 === n && (n = !1),
(this.isReady = !1),
(this.isCube = !1),
(this.is3D = !1),
(this.is2DArray = !1),
(this.isMultiview = !1),
(this.url = ""),
(this.samplingMode = -1),
(this.generateMipMaps = !1),
(this.samples = 0),
(this.type = -1),
(this.format = -1),
(this.onLoadedObservable = new r.c()),
(this.width = 0),
(this.height = 0),
(this.depth = 0),
(this.baseWidth = 0),
(this.baseHeight = 0),
(this.baseDepth = 0),
(this.invertY = !1),
(this._invertVScale = !1),
(this._associatedChannel = -1),
(this._source = i.Unknown),
(this._buffer = null),
(this._bufferView = null),
(this._bufferViewArray = null),
(this._bufferViewArrayArray = null),
(this._size = 0),
(this._extension = ""),
(this._files = null),
(this._workingCanvas = null),
(this._workingContext = null),
(this._framebuffer = null),
(this._depthStencilBuffer = null),
(this._MSAAFramebuffer = null),
(this._MSAARenderBuffer = null),
(this._attachments = null),
(this._cachedCoordinatesMode = null),
(this._cachedWrapU = null),
(this._cachedWrapV = null),
(this._cachedWrapR = null),
(this._cachedAnisotropicFilteringLevel = null),
(this._isDisabled = !1),
(this._compression = null),
(this._generateStencilBuffer = !1),
(this._generateDepthBuffer = !1),
(this._comparisonFunction = 0),
(this._sphericalPolynomial = null),
(this._lodGenerationScale = 0),
(this._lodGenerationOffset = 0),
(this._colorTextureArray = null),
(this._depthStencilTextureArray = null),
(this._lodTextureHigh = null),
(this._lodTextureMid = null),
(this._lodTextureLow = null),
(this._isRGBD = !1),
(this._linearSpecularLOD = !1),
(this._irradianceTexture = null),
(this._webGLTexture = null),
(this._references = 1),
(this._engine = e),
(this._source = t),
n || (this._webGLTexture = e._createTexture());
}
return (
(e.prototype.getEngine = function () {
return this._engine;
}),
Object.defineProperty(e.prototype, "source", {
get: function () {
return this._source;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.incrementReferences = function () {
this._references++;
}),
(e.prototype.updateSize = function (e, t, n) {
void 0 === n && (n = 1), (this.width = e), (this.height = t), (this.depth = n), (this.baseWidth = e), (this.baseHeight = t), (this.baseDepth = n), (this._size = e * t * n);
}),
(e.prototype._rebuild = function () {
var t,
n = this;
switch (((this.isReady = !1), (this._cachedCoordinatesMode = null), (this._cachedWrapU = null), (this._cachedWrapV = null), (this._cachedAnisotropicFilteringLevel = null), this.source)) {
case i.Temp:
return;
case i.Url:
return void (t = this._engine.createTexture(
this.url,
!this.generateMipMaps,
this.invertY,
null,
this.samplingMode,
function () {
t._swapAndDie(n), (n.isReady = !0);
},
null,
this._buffer,
void 0,
this.format
));
case i.Raw:
return (
(t = this._engine.createRawTexture(this._bufferView, this.baseWidth, this.baseHeight, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression))._swapAndDie(this),
void (this.isReady = !0)
);
case i.Raw3D:
return (
(t = this._engine.createRawTexture3D(this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression))._swapAndDie(
this
),
void (this.isReady = !0)
);
case i.Raw2DArray:
return (
(t = this._engine.createRawTexture2DArray(
this._bufferView,
this.baseWidth,
this.baseHeight,
this.baseDepth,
this.format,
this.generateMipMaps,
this.invertY,
this.samplingMode,
this._compression
))._swapAndDie(this),
void (this.isReady = !0)
);
case i.Dynamic:
return (
(t = this._engine.createDynamicTexture(this.baseWidth, this.baseHeight, this.generateMipMaps, this.samplingMode))._swapAndDie(this),
void this._engine.updateDynamicTexture(this, this._engine.getRenderingCanvas(), this.invertY, void 0, void 0, !0)
);
case i.RenderTarget:
var r = new o.a();
if (
((r.generateDepthBuffer = this._generateDepthBuffer),
(r.generateMipMaps = this.generateMipMaps),
(r.generateStencilBuffer = this._generateStencilBuffer),
(r.samplingMode = this.samplingMode),
(r.type = this.type),
this.isCube)
)
t = this._engine.createRenderTargetCubeTexture(this.width, r);
else {
var a = { width: this.width, height: this.height, layers: this.is2DArray ? this.depth : void 0 };
t = this._engine.createRenderTargetTexture(a, r);
}
return t._swapAndDie(this), void (this.isReady = !0);
case i.Depth:
var s = { bilinearFiltering: 2 !== this.samplingMode, comparisonFunction: this._comparisonFunction, generateStencil: this._generateStencilBuffer, isCube: this.isCube },
c = { width: this.width, height: this.height, layers: this.is2DArray ? this.depth : void 0 };
return (t = this._engine.createDepthStencilTexture(c, s))._swapAndDie(this), void (this.isReady = !0);
case i.Cube:
return void (t = this._engine.createCubeTexture(
this.url,
null,
this._files,
!this.generateMipMaps,
function () {
t._swapAndDie(n), (n.isReady = !0);
},
null,
this.format,
this._extension
));
case i.CubeRaw:
return (
(t = this._engine.createRawCubeTexture(this._bufferViewArray, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression))._swapAndDie(this),
void (this.isReady = !0)
);
case i.CubeRawRGBD:
return (
(t = this._engine.createRawCubeTexture(null, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression)),
void e._UpdateRGBDAsync(t, this._bufferViewArrayArray, this._sphericalPolynomial, this._lodGenerationScale, this._lodGenerationOffset).then(function () {
t._swapAndDie(n), (n.isReady = !0);
})
);
case i.CubePrefiltered:
return void ((t = this._engine.createPrefilteredCubeTexture(
this.url,
null,
this._lodGenerationScale,
this._lodGenerationOffset,
function (e) {
e && e._swapAndDie(n), (n.isReady = !0);
},
null,
this.format,
this._extension
))._sphericalPolynomial = this._sphericalPolynomial);
}
}),
(e.prototype._swapAndDie = function (e) {
(e._webGLTexture = this._webGLTexture),
(e._isRGBD = this._isRGBD),
this._framebuffer && (e._framebuffer = this._framebuffer),
this._depthStencilBuffer && (e._depthStencilBuffer = this._depthStencilBuffer),
(e._depthStencilTexture = this._depthStencilTexture),
this._lodTextureHigh && (e._lodTextureHigh && e._lodTextureHigh.dispose(), (e._lodTextureHigh = this._lodTextureHigh)),
this._lodTextureMid && (e._lodTextureMid && e._lodTextureMid.dispose(), (e._lodTextureMid = this._lodTextureMid)),
this._lodTextureLow && (e._lodTextureLow && e._lodTextureLow.dispose(), (e._lodTextureLow = this._lodTextureLow)),
this._irradianceTexture && (e._irradianceTexture && e._irradianceTexture.dispose(), (e._irradianceTexture = this._irradianceTexture));
var t,
n = this._engine.getLoadedTexturesCache();
-1 !== (t = n.indexOf(this)) && n.splice(t, 1), -1 === (t = n.indexOf(e)) && n.push(e);
}),
(e.prototype.dispose = function () {
this._webGLTexture && (this._references--, 0 === this._references && (this._engine._releaseTexture(this), (this._webGLTexture = null)));
}),
(e._UpdateRGBDAsync = function (e, t, n, i, r) {
throw a.a.WarnImport("environmentTextureTools");
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return T;
}),
n.d(t, "a", function () {
return S;
});
var i = n(2),
r = n(3),
o = n(47),
a = n(18),
s = n(1),
c = n(5),
l = n(4),
u = n(50),
h = n(41),
d = n(46),
p = n(11),
f = n(8),
m = n(13),
g = n(17),
b = n(7),
_ =
"uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nuniform vec3 vEmissiveColor;\nuniform float visibility;\n\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)\nuniform mat4 view;\n#endif\n#ifdef REFRACTION\nuniform vec4 vRefractionInfos;\n#ifndef REFRACTIONMAP_3D\nuniform mat4 refractionMatrix;\n#endif\n#ifdef REFRACTIONFRESNEL\nuniform vec4 refractionLeftColor;\nuniform vec4 refractionRightColor;\n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\n#endif\n#ifdef DIFFUSEFRESNEL\nuniform vec4 diffuseLeftColor;\nuniform vec4 diffuseRightColor;\n#endif\n#ifdef OPACITYFRESNEL\nuniform vec4 opacityParts;\n#endif\n#ifdef EMISSIVEFRESNEL\nuniform vec4 emissiveLeftColor;\nuniform vec4 emissiveRightColor;\n#endif\n\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#if defined(REFLECTIONMAP_PLANAR) || defined(REFLECTIONMAP_CUBIC) || defined(REFLECTIONMAP_PROJECTION) || defined(REFLECTIONMAP_EQUIRECTANGULAR) || defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_SKYBOX)\nuniform mat4 reflectionMatrix;\n#endif\n#ifndef REFLECTIONMAP_SKYBOX\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\n#endif\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 reflectionLeftColor;\nuniform vec4 reflectionRightColor;\n#endif\n#endif";
b.a.IncludesShadersStore.defaultFragmentDeclaration = _;
var v =
"layout(std140,column_major) uniform;\nuniform Material\n{\nvec4 diffuseLeftColor;\nvec4 diffuseRightColor;\nvec4 opacityParts;\nvec4 reflectionLeftColor;\nvec4 reflectionRightColor;\nvec4 refractionLeftColor;\nvec4 refractionRightColor;\nvec4 emissiveLeftColor;\nvec4 emissiveRightColor;\nvec2 vDiffuseInfos;\nvec2 vAmbientInfos;\nvec2 vOpacityInfos;\nvec2 vReflectionInfos;\nvec3 vReflectionPosition;\nvec3 vReflectionSize;\nvec2 vEmissiveInfos;\nvec2 vLightmapInfos;\nvec2 vSpecularInfos;\nvec3 vBumpInfos;\nmat4 diffuseMatrix;\nmat4 ambientMatrix;\nmat4 opacityMatrix;\nmat4 reflectionMatrix;\nmat4 emissiveMatrix;\nmat4 lightmapMatrix;\nmat4 specularMatrix;\nmat4 bumpMatrix;\nvec2 vTangentSpaceParams;\nfloat pointSize;\nmat4 refractionMatrix;\nvec4 vRefractionInfos;\nvec4 vSpecularColor;\nvec3 vEmissiveColor;\nfloat visibility;\nvec4 vDiffuseColor;\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};\n";
b.a.IncludesShadersStore.defaultUboDeclaration = v;
n(59), n(60), n(61), n(105), n(99), n(223), n(171), n(140), n(141), n(172), n(86), n(142), n(87), n(82), n(173), n(114), n(100), n(174), n(90);
var y =
"#include<__decl__defaultFragment>\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n\n#define RECIPROCAL_PI2 0.15915494\nuniform vec3 vEyePosition;\nuniform vec3 vAmbientColor;\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n\n#include\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n\n#ifdef DIFFUSE\n#if DIFFUSEDIRECTUV == 1\n#define vDiffuseUV vMainUV1\n#elif DIFFUSEDIRECTUV == 2\n#define vDiffuseUV vMainUV2\n#else\nvarying vec2 vDiffuseUV;\n#endif\nuniform sampler2D diffuseSampler;\n#endif\n#ifdef AMBIENT\n#if AMBIENTDIRECTUV == 1\n#define vAmbientUV vMainUV1\n#elif AMBIENTDIRECTUV == 2\n#define vAmbientUV vMainUV2\n#else\nvarying vec2 vAmbientUV;\n#endif\nuniform sampler2D ambientSampler;\n#endif\n#ifdef OPACITY\n#if OPACITYDIRECTUV == 1\n#define vOpacityUV vMainUV1\n#elif OPACITYDIRECTUV == 2\n#define vOpacityUV vMainUV2\n#else\nvarying vec2 vOpacityUV;\n#endif\nuniform sampler2D opacitySampler;\n#endif\n#ifdef EMISSIVE\n#if EMISSIVEDIRECTUV == 1\n#define vEmissiveUV vMainUV1\n#elif EMISSIVEDIRECTUV == 2\n#define vEmissiveUV vMainUV2\n#else\nvarying vec2 vEmissiveUV;\n#endif\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef LIGHTMAP\n#if LIGHTMAPDIRECTUV == 1\n#define vLightmapUV vMainUV1\n#elif LIGHTMAPDIRECTUV == 2\n#define vLightmapUV vMainUV2\n#else\nvarying vec2 vLightmapUV;\n#endif\nuniform sampler2D lightmapSampler;\n#endif\n#ifdef REFRACTION\n#ifdef REFRACTIONMAP_3D\nuniform samplerCube refractionCubeSampler;\n#else\nuniform sampler2D refraction2DSampler;\n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\n#if SPECULARDIRECTUV == 1\n#define vSpecularUV vMainUV1\n#elif SPECULARDIRECTUV == 2\n#define vSpecularUV vMainUV2\n#else\nvarying vec2 vSpecularUV;\n#endif\nuniform sampler2D specularSampler;\n#endif\n#ifdef ALPHATEST\nuniform float alphaCutOff;\n#endif\n\n#include\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\nuniform samplerCube reflectionCubeSampler;\n#else\nuniform sampler2D reflection2DSampler;\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include\n#endif\n#include\n#include\n#include\n#include\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\n\nvec4 baseColor=vec4(1.,1.,1.,1.);\nvec3 diffuseColor=vDiffuseColor.rgb;\n\nfloat alpha=vDiffuseColor.a;\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\n#endif\n#include\n#ifdef TWOSIDEDLIGHTING\nnormalW=gl_FrontFacing ? normalW : -normalW;\n#endif\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\n#ifdef ALPHATEST\nif (baseColor.a\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\n\nvec3 baseAmbientColor=vec3(1.,1.,1.);\n#ifdef AMBIENT\nbaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\n\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;\nvec3 specularColor=vSpecularColor.rgb;\n#ifdef SPECULAR\nvec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);\nspecularColor=specularMapColor.rgb;\n#ifdef GLOSSINESS\nglossiness=glossiness*specularMapColor.a;\n#endif\n#endif\n#else\nfloat glossiness=0.;\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\nfloat shadow=1.;\n#ifdef LIGHTMAP\nvec3 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset).rgb*vLightmapInfos.y;\n#endif\n#include[0..maxSimultaneousLights]\n\nvec3 refractionColor=vec3(0.,0.,0.);\n#ifdef REFRACTION\nvec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\n#ifdef REFRACTIONMAP_3D\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;\nif (dot(refractionVector,viewDirectionW)<1.0) {\nrefractionColor=textureCube(refractionCubeSampler,refractionVector).rgb;\n}\n#else\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\nvec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\nrefractionCoords.y=1.0-refractionCoords.y;\nrefractionColor=texture2D(refraction2DSampler,refractionCoords).rgb;\n#endif\n#ifdef IS_REFRACTION_LINEAR\nrefractionColor=toGammaSpace(refractionColor);\n#endif\nrefractionColor*=vRefractionInfos.x;\n#endif\n\nvec3 reflectionColor=vec3(0.,0.,0.);\n#ifdef REFLECTION\nvec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_3D\n#ifdef ROUGHNESS\nfloat bias=vReflectionInfos.y;\n#ifdef SPECULARTERM\n#ifdef SPECULAR\n#ifdef GLOSSINESS\nbias*=(1.0-specularMapColor.a);\n#endif\n#endif\n#endif\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias).rgb;\n#else\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW).rgb;\n#endif\n#else\nvec2 coords=vReflectionUVW.xy;\n#ifdef REFLECTIONMAP_PROJECTION\ncoords/=vReflectionUVW.z;\n#endif\ncoords.y=1.0-coords.y;\nreflectionColor=texture2D(reflection2DSampler,coords).rgb;\n#endif\n#ifdef IS_REFLECTION_LINEAR\nreflectionColor=toGammaSpace(reflectionColor);\n#endif\nreflectionColor*=vReflectionInfos.x;\n#ifdef REFLECTIONFRESNEL\nfloat reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\n#ifdef REFLECTIONFRESNELFROMSPECULAR\n#ifdef SPECULARTERM\nreflectionColor*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#else\nreflectionColor*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#else\nreflectionColor*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#endif\n#endif\n#ifdef REFRACTIONFRESNEL\nfloat refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);\nrefractionColor*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#ifdef OPACITYRGB\nopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);\nalpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;\n#else\nalpha*=opacityMap.a*vOpacityInfos.y;\n#endif\n#endif\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\n#ifdef OPACITYFRESNEL\nfloat opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);\nalpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\n#endif\n\nvec3 emissiveColor=vEmissiveColor;\n#ifdef EMISSIVE\nemissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;\n#endif\n#ifdef EMISSIVEFRESNEL\nfloat emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);\nemissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;\n#endif\n\n#ifdef DIFFUSEFRESNEL\nfloat diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);\ndiffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;\n#endif\n\n#ifdef EMISSIVEASILLUMINATION\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\n#ifdef LINKEMISSIVEWITHDIFFUSE\nvec3 finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#endif\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#ifdef SPECULAROVERALPHA\nalpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#ifdef REFLECTIONOVERALPHA\nalpha=clamp(alpha+dot(reflectionColor,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n\n#ifdef EMISSIVEASILLUMINATION\nvec4 color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor+emissiveColor+refractionColor,0.0,1.0),alpha);\n#else\nvec4 color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor+refractionColor,alpha);\n#endif\n\n#ifdef LIGHTMAP\n#ifndef LIGHTMAPEXCLUDED\n#ifdef USELIGHTMAPASSHADOWMAP\ncolor.rgb*=lightmapColor;\n#else\ncolor.rgb+=lightmapColor;\n#endif\n#endif\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FOG\ncolor.rgb=max(color.rgb,0.);\n#include\n#include\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#else\n#ifdef IMAGEPROCESSING\ncolor.rgb=toLinearSpace(color.rgb);\ncolor=applyImageProcessing(color);\n#endif\n#endif\ncolor.a*=visibility;\n#ifdef PREMULTIPLYALPHA\n\ncolor.rgb*=color.a;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\ngl_FragColor=color;\n}\n";
b.a.ShadersStore.defaultPixelShader = y;
var C =
"\nuniform mat4 viewProjection;\nuniform mat4 view;\n#ifdef DIFFUSE\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform mat4 ambientMatrix;\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY\nuniform mat4 opacityMatrix;\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\nuniform mat4 emissiveMatrix;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\nuniform mat4 lightmapMatrix;\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\nuniform mat4 specularMatrix;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform mat4 bumpMatrix;\n#endif\n#ifdef REFLECTION\nuniform mat4 reflectionMatrix;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n";
b.a.IncludesShadersStore.defaultVertexDeclaration = C;
n(70), n(71), n(224), n(88), n(91), n(131), n(132), n(143), n(72), n(73), n(210), n(83), n(93), n(101);
b.a.IncludesShadersStore.pointCloudVertex = "#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif";
n(175);
var P =
"#include<__decl__defaultVertex>\n\n#define CUSTOM_VERTEX_BEGIN\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef TANGENT\nattribute vec4 tangent;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n\n#include\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nvarying vec2 vDiffuseUV;\n#endif\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\nvarying vec2 vAmbientUV;\n#endif\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\nvarying vec2 vOpacityUV;\n#endif\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\nvarying vec2 vEmissiveUV;\n#endif\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\nvarying vec2 vLightmapUV;\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0\nvarying vec2 vSpecularUV;\n#endif\n#if defined(BUMP) && BUMPDIRECTUV == 0\nvarying vec2 vBumpUV;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include\n#include\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#ifdef NORMAL\nvec3 normalUpdated=normal;\n#endif\n#ifdef TANGENT\nvec4 tangentUpdated=tangent;\n#endif\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR == 0u) {\ngl_Position=viewProjection*worldPos;\n} else {\ngl_Position=viewProjectionR*worldPos;\n}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\n#endif\n\n#ifndef UV1\nvec2 uvUpdated=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uvUpdated;\n#endif\n#ifdef MAINUV2\nvMainUV2=uv2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\nif (vAmbientInfos.x == 0.)\n{\nvAmbientUV=vec2(ambientMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvAmbientUV=vec2(ambientMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\nif (vOpacityInfos.x == 0.)\n{\nvOpacityUV=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\nif (vEmissiveInfos.x == 0.)\n{\nvEmissiveUV=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvEmissiveUV=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\nif (vLightmapInfos.x == 0.)\n{\nvLightmapUV=vec2(lightmapMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvLightmapUV=vec2(lightmapMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0\nif (vSpecularInfos.x == 0.)\n{\nvSpecularUV=vec2(specularMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvSpecularUV=vec2(specularMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(BUMP) && BUMPDIRECTUV == 0\nif (vBumpInfos.x == 0.)\n{\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#include\n#include\n#include\n#include[0..maxSimultaneousLights]\n#ifdef VERTEXCOLOR\n\nvColor=color;\n#endif\n#include\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}\n";
b.a.ShadersStore.defaultVertexShader = P;
var x = n(43),
T = (function (e) {
function t() {
var t = e.call(this) || this;
return (
(t.MAINUV1 = !1),
(t.MAINUV2 = !1),
(t.DIFFUSE = !1),
(t.DIFFUSEDIRECTUV = 0),
(t.AMBIENT = !1),
(t.AMBIENTDIRECTUV = 0),
(t.OPACITY = !1),
(t.OPACITYDIRECTUV = 0),
(t.OPACITYRGB = !1),
(t.REFLECTION = !1),
(t.EMISSIVE = !1),
(t.EMISSIVEDIRECTUV = 0),
(t.SPECULAR = !1),
(t.SPECULARDIRECTUV = 0),
(t.BUMP = !1),
(t.BUMPDIRECTUV = 0),
(t.PARALLAX = !1),
(t.PARALLAXOCCLUSION = !1),
(t.SPECULAROVERALPHA = !1),
(t.CLIPPLANE = !1),
(t.CLIPPLANE2 = !1),
(t.CLIPPLANE3 = !1),
(t.CLIPPLANE4 = !1),
(t.CLIPPLANE5 = !1),
(t.CLIPPLANE6 = !1),
(t.ALPHATEST = !1),
(t.DEPTHPREPASS = !1),
(t.ALPHAFROMDIFFUSE = !1),
(t.POINTSIZE = !1),
(t.FOG = !1),
(t.SPECULARTERM = !1),
(t.DIFFUSEFRESNEL = !1),
(t.OPACITYFRESNEL = !1),
(t.REFLECTIONFRESNEL = !1),
(t.REFRACTIONFRESNEL = !1),
(t.EMISSIVEFRESNEL = !1),
(t.FRESNEL = !1),
(t.NORMAL = !1),
(t.UV1 = !1),
(t.UV2 = !1),
(t.VERTEXCOLOR = !1),
(t.VERTEXALPHA = !1),
(t.NUM_BONE_INFLUENCERS = 0),
(t.BonesPerMesh = 0),
(t.BONETEXTURE = !1),
(t.INSTANCES = !1),
(t.GLOSSINESS = !1),
(t.ROUGHNESS = !1),
(t.EMISSIVEASILLUMINATION = !1),
(t.LINKEMISSIVEWITHDIFFUSE = !1),
(t.REFLECTIONFRESNELFROMSPECULAR = !1),
(t.LIGHTMAP = !1),
(t.LIGHTMAPDIRECTUV = 0),
(t.OBJECTSPACE_NORMALMAP = !1),
(t.USELIGHTMAPASSHADOWMAP = !1),
(t.REFLECTIONMAP_3D = !1),
(t.REFLECTIONMAP_SPHERICAL = !1),
(t.REFLECTIONMAP_PLANAR = !1),
(t.REFLECTIONMAP_CUBIC = !1),
(t.USE_LOCAL_REFLECTIONMAP_CUBIC = !1),
(t.REFLECTIONMAP_PROJECTION = !1),
(t.REFLECTIONMAP_SKYBOX = !1),
(t.REFLECTIONMAP_EXPLICIT = !1),
(t.REFLECTIONMAP_EQUIRECTANGULAR = !1),
(t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1),
(t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1),
(t.INVERTCUBICMAP = !1),
(t.LOGARITHMICDEPTH = !1),
(t.REFRACTION = !1),
(t.REFRACTIONMAP_3D = !1),
(t.REFLECTIONOVERALPHA = !1),
(t.TWOSIDEDLIGHTING = !1),
(t.SHADOWFLOAT = !1),
(t.MORPHTARGETS = !1),
(t.MORPHTARGETS_NORMAL = !1),
(t.MORPHTARGETS_TANGENT = !1),
(t.MORPHTARGETS_UV = !1),
(t.NUM_MORPH_INFLUENCERS = 0),
(t.NONUNIFORMSCALING = !1),
(t.PREMULTIPLYALPHA = !1),
(t.IMAGEPROCESSING = !1),
(t.VIGNETTE = !1),
(t.VIGNETTEBLENDMODEMULTIPLY = !1),
(t.VIGNETTEBLENDMODEOPAQUE = !1),
(t.TONEMAPPING = !1),
(t.TONEMAPPING_ACES = !1),
(t.CONTRAST = !1),
(t.COLORCURVES = !1),
(t.COLORGRADING = !1),
(t.COLORGRADING3D = !1),
(t.SAMPLER3DGREENDEPTH = !1),
(t.SAMPLER3DBGRMAP = !1),
(t.IMAGEPROCESSINGPOSTPROCESS = !1),
(t.MULTIVIEW = !1),
(t.IS_REFLECTION_LINEAR = !1),
(t.IS_REFRACTION_LINEAR = !1),
(t.EXPOSURE = !1),
t.rebuild(),
t
);
}
return (
Object(i.d)(t, e),
(t.prototype.setReflectionMode = function (e) {
for (
var t = 0,
n = [
"REFLECTIONMAP_CUBIC",
"REFLECTIONMAP_EXPLICIT",
"REFLECTIONMAP_PLANAR",
"REFLECTIONMAP_PROJECTION",
"REFLECTIONMAP_PROJECTION",
"REFLECTIONMAP_SKYBOX",
"REFLECTIONMAP_SPHERICAL",
"REFLECTIONMAP_EQUIRECTANGULAR",
"REFLECTIONMAP_EQUIRECTANGULAR_FIXED",
"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED",
];
t < n.length;
t++
) {
var i = n[t];
this[i] = i === e;
}
}),
t
);
})(h.a),
S = (function (e) {
function t(n, i) {
var r = e.call(this, n, i) || this;
return (
(r._diffuseTexture = null),
(r._ambientTexture = null),
(r._opacityTexture = null),
(r._reflectionTexture = null),
(r._emissiveTexture = null),
(r._specularTexture = null),
(r._bumpTexture = null),
(r._lightmapTexture = null),
(r._refractionTexture = null),
(r.ambientColor = new c.a(0, 0, 0)),
(r.diffuseColor = new c.a(1, 1, 1)),
(r.specularColor = new c.a(1, 1, 1)),
(r.emissiveColor = new c.a(0, 0, 0)),
(r.specularPower = 64),
(r._useAlphaFromDiffuseTexture = !1),
(r._useEmissiveAsIllumination = !1),
(r._linkEmissiveWithDiffuse = !1),
(r._useSpecularOverAlpha = !1),
(r._useReflectionOverAlpha = !1),
(r._disableLighting = !1),
(r._useObjectSpaceNormalMap = !1),
(r._useParallax = !1),
(r._useParallaxOcclusion = !1),
(r.parallaxScaleBias = 0.05),
(r._roughness = 0),
(r.indexOfRefraction = 0.98),
(r.invertRefractionY = !0),
(r.alphaCutOff = 0.4),
(r._useLightmapAsShadowmap = !1),
(r._useReflectionFresnelFromSpecular = !1),
(r._useGlossinessFromSpecularMapAlpha = !1),
(r._maxSimultaneousLights = 4),
(r._invertNormalMapX = !1),
(r._invertNormalMapY = !1),
(r._twoSidedLighting = !1),
(r._renderTargets = new o.a(16)),
(r._worldViewProjectionMatrix = s.a.Zero()),
(r._globalAmbientColor = new c.a(0, 0, 0)),
(r._rebuildInParallel = !1),
r._attachImageProcessingConfiguration(null),
(r.getRenderTargetTextures = function () {
return (
r._renderTargets.reset(),
t.ReflectionTextureEnabled && r._reflectionTexture && r._reflectionTexture.isRenderTarget && r._renderTargets.push(r._reflectionTexture),
t.RefractionTextureEnabled && r._refractionTexture && r._refractionTexture.isRenderTarget && r._renderTargets.push(r._refractionTexture),
r._renderTargets
);
}),
r
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
set: function (e) {
this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._attachImageProcessingConfiguration = function (e) {
var t = this;
e !== this._imageProcessingConfiguration &&
(this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
(this._imageProcessingConfiguration = e || this.getScene().imageProcessingConfiguration),
this._imageProcessingConfiguration &&
(this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () {
t._markAllSubMeshesAsImageProcessingDirty();
})));
}),
Object.defineProperty(t.prototype, "cameraColorCurvesEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorCurvesEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorCurvesEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorGradingEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorGradingEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorGradingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraToneMappingEnabled", {
get: function () {
return this._imageProcessingConfiguration.toneMappingEnabled;
},
set: function (e) {
this._imageProcessingConfiguration.toneMappingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraExposure", {
get: function () {
return this._imageProcessingConfiguration.exposure;
},
set: function (e) {
this._imageProcessingConfiguration.exposure = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraContrast", {
get: function () {
return this._imageProcessingConfiguration.contrast;
},
set: function (e) {
this._imageProcessingConfiguration.contrast = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorGradingTexture", {
get: function () {
return this._imageProcessingConfiguration.colorGradingTexture;
},
set: function (e) {
this._imageProcessingConfiguration.colorGradingTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorCurves", {
get: function () {
return this._imageProcessingConfiguration.colorCurves;
},
set: function (e) {
this._imageProcessingConfiguration.colorCurves = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hasRenderTargetTextures", {
get: function () {
return !!(t.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) || !!(t.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "StandardMaterial";
}),
Object.defineProperty(t.prototype, "useLogarithmicDepth", {
get: function () {
return this._useLogarithmicDepth;
},
set: function (e) {
(this._useLogarithmicDepth = e && this.getScene().getEngine().getCaps().fragmentDepthSupported), this._markAllSubMeshesAsMiscDirty();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.needAlphaBlending = function () {
return this.alpha < 1 || null != this._opacityTexture || this._shouldUseAlphaFromDiffuseTexture() || (this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled);
}),
(t.prototype.needAlphaTesting = function () {
return null != this._diffuseTexture && this._diffuseTexture.hasAlpha;
}),
(t.prototype._shouldUseAlphaFromDiffuseTexture = function () {
return null != this._diffuseTexture && this._diffuseTexture.hasAlpha && this._useAlphaFromDiffuseTexture;
}),
(t.prototype.getAlphaTestTexture = function () {
return this._diffuseTexture;
}),
(t.prototype.isReadyForSubMesh = function (e, n, i) {
if ((void 0 === i && (i = !1), n.effect && this.isFrozen && n.effect._wasPreviouslyReady)) return !0;
n._materialDefines || (n._materialDefines = new T());
var r = this.getScene(),
o = n._materialDefines;
if (!this.checkReadyOnEveryCall && n.effect && o._renderId === r.getRenderId()) return !0;
var a = r.getEngine();
if (((o._needNormals = p.a.PrepareDefinesForLights(r, e, o, !0, this._maxSimultaneousLights, this._disableLighting)), p.a.PrepareDefinesForMultiview(r, o), o._areTexturesDirty)) {
if (((o._needUVs = !1), (o.MAINUV1 = !1), (o.MAINUV2 = !1), r.texturesEnabled)) {
if (this._diffuseTexture && t.DiffuseTextureEnabled) {
if (!this._diffuseTexture.isReadyOrNotBlocking()) return !1;
p.a.PrepareDefinesForMergedUV(this._diffuseTexture, o, "DIFFUSE");
} else o.DIFFUSE = !1;
if (this._ambientTexture && t.AmbientTextureEnabled) {
if (!this._ambientTexture.isReadyOrNotBlocking()) return !1;
p.a.PrepareDefinesForMergedUV(this._ambientTexture, o, "AMBIENT");
} else o.AMBIENT = !1;
if (this._opacityTexture && t.OpacityTextureEnabled) {
if (!this._opacityTexture.isReadyOrNotBlocking()) return !1;
p.a.PrepareDefinesForMergedUV(this._opacityTexture, o, "OPACITY"), (o.OPACITYRGB = this._opacityTexture.getAlphaFromRGB);
} else o.OPACITY = !1;
if (this._reflectionTexture && t.ReflectionTextureEnabled) {
if (!this._reflectionTexture.isReadyOrNotBlocking()) return !1;
switch (
((o._needNormals = !0),
(o.REFLECTION = !0),
(o.ROUGHNESS = this._roughness > 0),
(o.REFLECTIONOVERALPHA = this._useReflectionOverAlpha),
(o.INVERTCUBICMAP = this._reflectionTexture.coordinatesMode === f.a.INVCUBIC_MODE),
(o.REFLECTIONMAP_3D = this._reflectionTexture.isCube),
this._reflectionTexture.coordinatesMode)
) {
case f.a.EXPLICIT_MODE:
o.setReflectionMode("REFLECTIONMAP_EXPLICIT");
break;
case f.a.PLANAR_MODE:
o.setReflectionMode("REFLECTIONMAP_PLANAR");
break;
case f.a.PROJECTION_MODE:
o.setReflectionMode("REFLECTIONMAP_PROJECTION");
break;
case f.a.SKYBOX_MODE:
o.setReflectionMode("REFLECTIONMAP_SKYBOX");
break;
case f.a.SPHERICAL_MODE:
o.setReflectionMode("REFLECTIONMAP_SPHERICAL");
break;
case f.a.EQUIRECTANGULAR_MODE:
o.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR");
break;
case f.a.FIXED_EQUIRECTANGULAR_MODE:
o.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR_FIXED");
break;
case f.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:
o.setReflectionMode("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED");
break;
case f.a.CUBIC_MODE:
case f.a.INVCUBIC_MODE:
default:
o.setReflectionMode("REFLECTIONMAP_CUBIC");
}
o.USE_LOCAL_REFLECTIONMAP_CUBIC = !!this._reflectionTexture.boundingBoxSize;
} else o.REFLECTION = !1;
if (this._emissiveTexture && t.EmissiveTextureEnabled) {
if (!this._emissiveTexture.isReadyOrNotBlocking()) return !1;
p.a.PrepareDefinesForMergedUV(this._emissiveTexture, o, "EMISSIVE");
} else o.EMISSIVE = !1;
if (this._lightmapTexture && t.LightmapTextureEnabled) {
if (!this._lightmapTexture.isReadyOrNotBlocking()) return !1;
p.a.PrepareDefinesForMergedUV(this._lightmapTexture, o, "LIGHTMAP"), (o.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap);
} else o.LIGHTMAP = !1;
if (this._specularTexture && t.SpecularTextureEnabled) {
if (!this._specularTexture.isReadyOrNotBlocking()) return !1;
p.a.PrepareDefinesForMergedUV(this._specularTexture, o, "SPECULAR"), (o.GLOSSINESS = this._useGlossinessFromSpecularMapAlpha);
} else o.SPECULAR = !1;
if (r.getEngine().getCaps().standardDerivatives && this._bumpTexture && t.BumpTextureEnabled) {
if (!this._bumpTexture.isReady()) return !1;
p.a.PrepareDefinesForMergedUV(this._bumpTexture, o, "BUMP"),
(o.PARALLAX = this._useParallax),
(o.PARALLAXOCCLUSION = this._useParallaxOcclusion),
(o.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap);
} else o.BUMP = !1;
if (this._refractionTexture && t.RefractionTextureEnabled) {
if (!this._refractionTexture.isReadyOrNotBlocking()) return !1;
(o._needUVs = !0), (o.REFRACTION = !0), (o.REFRACTIONMAP_3D = this._refractionTexture.isCube);
} else o.REFRACTION = !1;
o.TWOSIDEDLIGHTING = !this._backFaceCulling && this._twoSidedLighting;
} else (o.DIFFUSE = !1), (o.AMBIENT = !1), (o.OPACITY = !1), (o.REFLECTION = !1), (o.EMISSIVE = !1), (o.LIGHTMAP = !1), (o.BUMP = !1), (o.REFRACTION = !1);
(o.ALPHAFROMDIFFUSE = this._shouldUseAlphaFromDiffuseTexture()),
(o.EMISSIVEASILLUMINATION = this._useEmissiveAsIllumination),
(o.LINKEMISSIVEWITHDIFFUSE = this._linkEmissiveWithDiffuse),
(o.SPECULAROVERALPHA = this._useSpecularOverAlpha),
(o.PREMULTIPLYALPHA = 7 === this.alphaMode || 8 === this.alphaMode);
}
if (o._areImageProcessingDirty && this._imageProcessingConfiguration) {
if (!this._imageProcessingConfiguration.isReady()) return !1;
this._imageProcessingConfiguration.prepareDefines(o),
(o.IS_REFLECTION_LINEAR = null != this.reflectionTexture && !this.reflectionTexture.gammaSpace),
(o.IS_REFRACTION_LINEAR = null != this.refractionTexture && !this.refractionTexture.gammaSpace);
}
if (
(o._areFresnelDirty &&
(t.FresnelEnabled
? (this._diffuseFresnelParameters || this._opacityFresnelParameters || this._emissiveFresnelParameters || this._refractionFresnelParameters || this._reflectionFresnelParameters) &&
((o.DIFFUSEFRESNEL = this._diffuseFresnelParameters && this._diffuseFresnelParameters.isEnabled),
(o.OPACITYFRESNEL = this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled),
(o.REFLECTIONFRESNEL = this._reflectionFresnelParameters && this._reflectionFresnelParameters.isEnabled),
(o.REFLECTIONFRESNELFROMSPECULAR = this._useReflectionFresnelFromSpecular),
(o.REFRACTIONFRESNEL = this._refractionFresnelParameters && this._refractionFresnelParameters.isEnabled),
(o.EMISSIVEFRESNEL = this._emissiveFresnelParameters && this._emissiveFresnelParameters.isEnabled),
(o._needNormals = !0),
(o.FRESNEL = !0))
: (o.FRESNEL = !1)),
p.a.PrepareDefinesForMisc(e, r, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e), o),
p.a.PrepareDefinesForAttributes(e, o, !0, !0, !0),
p.a.PrepareDefinesForFrameBoundValues(r, a, o, i),
o.isDirty)
) {
var s = o._areLightsDisposed;
o.markAsProcessed();
var c = new x.a();
o.REFLECTION && c.addFallback(0, "REFLECTION"),
o.SPECULAR && c.addFallback(0, "SPECULAR"),
o.BUMP && c.addFallback(0, "BUMP"),
o.PARALLAX && c.addFallback(1, "PARALLAX"),
o.PARALLAXOCCLUSION && c.addFallback(0, "PARALLAXOCCLUSION"),
o.SPECULAROVERALPHA && c.addFallback(0, "SPECULAROVERALPHA"),
o.FOG && c.addFallback(1, "FOG"),
o.POINTSIZE && c.addFallback(0, "POINTSIZE"),
o.LOGARITHMICDEPTH && c.addFallback(0, "LOGARITHMICDEPTH"),
p.a.HandleFallbacksForShadows(o, c, this._maxSimultaneousLights),
o.SPECULARTERM && c.addFallback(0, "SPECULARTERM"),
o.DIFFUSEFRESNEL && c.addFallback(1, "DIFFUSEFRESNEL"),
o.OPACITYFRESNEL && c.addFallback(2, "OPACITYFRESNEL"),
o.REFLECTIONFRESNEL && c.addFallback(3, "REFLECTIONFRESNEL"),
o.EMISSIVEFRESNEL && c.addFallback(4, "EMISSIVEFRESNEL"),
o.FRESNEL && c.addFallback(4, "FRESNEL"),
o.MULTIVIEW && c.addFallback(0, "MULTIVIEW");
var h = [l.b.PositionKind];
o.NORMAL && h.push(l.b.NormalKind),
o.UV1 && h.push(l.b.UVKind),
o.UV2 && h.push(l.b.UV2Kind),
o.VERTEXCOLOR && h.push(l.b.ColorKind),
p.a.PrepareAttributesForBones(h, e, o, c),
p.a.PrepareAttributesForInstances(h, o),
p.a.PrepareAttributesForMorphTargets(h, e, o);
var d = "default",
m = [
"world",
"view",
"viewProjection",
"vEyePosition",
"vLightsType",
"vAmbientColor",
"vDiffuseColor",
"vSpecularColor",
"vEmissiveColor",
"visibility",
"vFogInfos",
"vFogColor",
"pointSize",
"vDiffuseInfos",
"vAmbientInfos",
"vOpacityInfos",
"vReflectionInfos",
"vEmissiveInfos",
"vSpecularInfos",
"vBumpInfos",
"vLightmapInfos",
"vRefractionInfos",
"mBones",
"vClipPlane",
"vClipPlane2",
"vClipPlane3",
"vClipPlane4",
"vClipPlane5",
"vClipPlane6",
"diffuseMatrix",
"ambientMatrix",
"opacityMatrix",
"reflectionMatrix",
"emissiveMatrix",
"specularMatrix",
"bumpMatrix",
"normalMatrix",
"lightmapMatrix",
"refractionMatrix",
"diffuseLeftColor",
"diffuseRightColor",
"opacityParts",
"reflectionLeftColor",
"reflectionRightColor",
"emissiveLeftColor",
"emissiveRightColor",
"refractionLeftColor",
"refractionRightColor",
"vReflectionPosition",
"vReflectionSize",
"logarithmicDepthConstant",
"vTangentSpaceParams",
"alphaCutOff",
"boneTextureWidth",
],
g = [
"diffuseSampler",
"ambientSampler",
"opacitySampler",
"reflectionCubeSampler",
"reflection2DSampler",
"emissiveSampler",
"specularSampler",
"bumpSampler",
"lightmapSampler",
"refractionCubeSampler",
"refraction2DSampler",
"boneSampler",
],
b = ["Material", "Scene"];
u.a && (u.a.PrepareUniforms(m, o), u.a.PrepareSamplers(g, o)),
p.a.PrepareUniformsAndSamplersList({ uniformsNames: m, uniformBuffersNames: b, samplers: g, defines: o, maxSimultaneousLights: this._maxSimultaneousLights }),
this.customShaderNameResolve && (d = this.customShaderNameResolve(d, m, b, g, o));
var _ = o.toString(),
v = n.effect,
y = r
.getEngine()
.createEffect(
d,
{
attributes: h,
uniformsNames: m,
uniformBuffersNames: b,
samplers: g,
defines: _,
fallbacks: c,
onCompiled: this.onCompiled,
onError: this.onError,
indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: o.NUM_MORPH_INFLUENCERS },
},
a
);
if (y)
if (this.allowShaderHotSwapping && v && !y.isReady()) {
if (((y = v), (this._rebuildInParallel = !0), o.markAsUnprocessed(), s)) return (o._areLightsDisposed = !0), !1;
} else (this._rebuildInParallel = !1), r.resetCachedMaterial(), n.setEffect(y, o), this.buildUniformLayout();
}
return !(!n.effect || !n.effect.isReady()) && ((o._renderId = r.getRenderId()), (n.effect._wasPreviouslyReady = !0), !0);
}),
(t.prototype.buildUniformLayout = function () {
var e = this._uniformBuffer;
e.addUniform("diffuseLeftColor", 4),
e.addUniform("diffuseRightColor", 4),
e.addUniform("opacityParts", 4),
e.addUniform("reflectionLeftColor", 4),
e.addUniform("reflectionRightColor", 4),
e.addUniform("refractionLeftColor", 4),
e.addUniform("refractionRightColor", 4),
e.addUniform("emissiveLeftColor", 4),
e.addUniform("emissiveRightColor", 4),
e.addUniform("vDiffuseInfos", 2),
e.addUniform("vAmbientInfos", 2),
e.addUniform("vOpacityInfos", 2),
e.addUniform("vReflectionInfos", 2),
e.addUniform("vReflectionPosition", 3),
e.addUniform("vReflectionSize", 3),
e.addUniform("vEmissiveInfos", 2),
e.addUniform("vLightmapInfos", 2),
e.addUniform("vSpecularInfos", 2),
e.addUniform("vBumpInfos", 3),
e.addUniform("diffuseMatrix", 16),
e.addUniform("ambientMatrix", 16),
e.addUniform("opacityMatrix", 16),
e.addUniform("reflectionMatrix", 16),
e.addUniform("emissiveMatrix", 16),
e.addUniform("lightmapMatrix", 16),
e.addUniform("specularMatrix", 16),
e.addUniform("bumpMatrix", 16),
e.addUniform("vTangentSpaceParams", 2),
e.addUniform("pointSize", 1),
e.addUniform("refractionMatrix", 16),
e.addUniform("vRefractionInfos", 4),
e.addUniform("vSpecularColor", 4),
e.addUniform("vEmissiveColor", 3),
e.addUniform("visibility", 1),
e.addUniform("vDiffuseColor", 4),
e.create();
}),
(t.prototype.unbind = function () {
if (this._activeEffect) {
var t = !1;
this._reflectionTexture && this._reflectionTexture.isRenderTarget && (this._activeEffect.setTexture("reflection2DSampler", null), (t = !0)),
this._refractionTexture && this._refractionTexture.isRenderTarget && (this._activeEffect.setTexture("refraction2DSampler", null), (t = !0)),
t && this._markAllSubMeshesAsTexturesDirty();
}
e.prototype.unbind.call(this);
}),
(t.prototype.bindForSubMesh = function (e, n, i) {
var r = this.getScene(),
o = i._materialDefines;
if (o) {
var s = i.effect;
if (s) {
(this._activeEffect = s), o.INSTANCES || this.bindOnlyWorldMatrix(e), o.OBJECTSPACE_NORMALMAP && (e.toNormalMatrix(this._normalMatrix), this.bindOnlyNormalMatrix(this._normalMatrix));
var l = this._mustRebind(r, s, n.visibility);
p.a.BindBonesParameters(n, s);
var u = this._uniformBuffer;
if (l) {
if ((u.bindToEffect(s, "Material"), this.bindViewProjection(s), !u.useUbo || !this.isFrozen || !u.isSync)) {
if (
(t.FresnelEnabled &&
o.FRESNEL &&
(this.diffuseFresnelParameters &&
this.diffuseFresnelParameters.isEnabled &&
(u.updateColor4("diffuseLeftColor", this.diffuseFresnelParameters.leftColor, this.diffuseFresnelParameters.power),
u.updateColor4("diffuseRightColor", this.diffuseFresnelParameters.rightColor, this.diffuseFresnelParameters.bias)),
this.opacityFresnelParameters &&
this.opacityFresnelParameters.isEnabled &&
u.updateColor4(
"opacityParts",
new c.a(this.opacityFresnelParameters.leftColor.toLuminance(), this.opacityFresnelParameters.rightColor.toLuminance(), this.opacityFresnelParameters.bias),
this.opacityFresnelParameters.power
),
this.reflectionFresnelParameters &&
this.reflectionFresnelParameters.isEnabled &&
(u.updateColor4("reflectionLeftColor", this.reflectionFresnelParameters.leftColor, this.reflectionFresnelParameters.power),
u.updateColor4("reflectionRightColor", this.reflectionFresnelParameters.rightColor, this.reflectionFresnelParameters.bias)),
this.refractionFresnelParameters &&
this.refractionFresnelParameters.isEnabled &&
(u.updateColor4("refractionLeftColor", this.refractionFresnelParameters.leftColor, this.refractionFresnelParameters.power),
u.updateColor4("refractionRightColor", this.refractionFresnelParameters.rightColor, this.refractionFresnelParameters.bias)),
this.emissiveFresnelParameters &&
this.emissiveFresnelParameters.isEnabled &&
(u.updateColor4("emissiveLeftColor", this.emissiveFresnelParameters.leftColor, this.emissiveFresnelParameters.power),
u.updateColor4("emissiveRightColor", this.emissiveFresnelParameters.rightColor, this.emissiveFresnelParameters.bias))),
r.texturesEnabled)
) {
if (
(this._diffuseTexture &&
t.DiffuseTextureEnabled &&
(u.updateFloat2("vDiffuseInfos", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level),
p.a.BindTextureMatrix(this._diffuseTexture, u, "diffuse"),
this._diffuseTexture.hasAlpha && s.setFloat("alphaCutOff", this.alphaCutOff)),
this._ambientTexture &&
t.AmbientTextureEnabled &&
(u.updateFloat2("vAmbientInfos", this._ambientTexture.coordinatesIndex, this._ambientTexture.level), p.a.BindTextureMatrix(this._ambientTexture, u, "ambient")),
this._opacityTexture &&
t.OpacityTextureEnabled &&
(u.updateFloat2("vOpacityInfos", this._opacityTexture.coordinatesIndex, this._opacityTexture.level), p.a.BindTextureMatrix(this._opacityTexture, u, "opacity")),
this._reflectionTexture &&
t.ReflectionTextureEnabled &&
(u.updateFloat2("vReflectionInfos", this._reflectionTexture.level, this.roughness),
u.updateMatrix("reflectionMatrix", this._reflectionTexture.getReflectionTextureMatrix()),
this._reflectionTexture.boundingBoxSize))
) {
var h = this._reflectionTexture;
u.updateVector3("vReflectionPosition", h.boundingBoxPosition), u.updateVector3("vReflectionSize", h.boundingBoxSize);
}
if (
(this._emissiveTexture &&
t.EmissiveTextureEnabled &&
(u.updateFloat2("vEmissiveInfos", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level), p.a.BindTextureMatrix(this._emissiveTexture, u, "emissive")),
this._lightmapTexture &&
t.LightmapTextureEnabled &&
(u.updateFloat2("vLightmapInfos", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level), p.a.BindTextureMatrix(this._lightmapTexture, u, "lightmap")),
this._specularTexture &&
t.SpecularTextureEnabled &&
(u.updateFloat2("vSpecularInfos", this._specularTexture.coordinatesIndex, this._specularTexture.level), p.a.BindTextureMatrix(this._specularTexture, u, "specular")),
this._bumpTexture &&
r.getEngine().getCaps().standardDerivatives &&
t.BumpTextureEnabled &&
(u.updateFloat3("vBumpInfos", this._bumpTexture.coordinatesIndex, 1 / this._bumpTexture.level, this.parallaxScaleBias),
p.a.BindTextureMatrix(this._bumpTexture, u, "bump"),
r._mirroredCameraPosition
? u.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? 1 : -1, this._invertNormalMapY ? 1 : -1)
: u.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? -1 : 1, this._invertNormalMapY ? -1 : 1)),
this._refractionTexture && t.RefractionTextureEnabled)
) {
var d = 1;
this._refractionTexture.isCube ||
(u.updateMatrix("refractionMatrix", this._refractionTexture.getReflectionTextureMatrix()), this._refractionTexture.depth && (d = this._refractionTexture.depth)),
u.updateFloat4("vRefractionInfos", this._refractionTexture.level, this.indexOfRefraction, d, this.invertRefractionY ? -1 : 1);
}
}
this.pointsCloud && u.updateFloat("pointSize", this.pointSize),
o.SPECULARTERM && u.updateColor4("vSpecularColor", this.specularColor, this.specularPower),
u.updateColor3("vEmissiveColor", t.EmissiveTextureEnabled ? this.emissiveColor : c.a.BlackReadOnly),
u.updateFloat("visibility", n.visibility),
u.updateColor4("vDiffuseColor", this.diffuseColor, this.alpha);
}
if (
r.texturesEnabled &&
(this._diffuseTexture && t.DiffuseTextureEnabled && s.setTexture("diffuseSampler", this._diffuseTexture),
this._ambientTexture && t.AmbientTextureEnabled && s.setTexture("ambientSampler", this._ambientTexture),
this._opacityTexture && t.OpacityTextureEnabled && s.setTexture("opacitySampler", this._opacityTexture),
this._reflectionTexture &&
t.ReflectionTextureEnabled &&
(this._reflectionTexture.isCube ? s.setTexture("reflectionCubeSampler", this._reflectionTexture) : s.setTexture("reflection2DSampler", this._reflectionTexture)),
this._emissiveTexture && t.EmissiveTextureEnabled && s.setTexture("emissiveSampler", this._emissiveTexture),
this._lightmapTexture && t.LightmapTextureEnabled && s.setTexture("lightmapSampler", this._lightmapTexture),
this._specularTexture && t.SpecularTextureEnabled && s.setTexture("specularSampler", this._specularTexture),
this._bumpTexture && r.getEngine().getCaps().standardDerivatives && t.BumpTextureEnabled && s.setTexture("bumpSampler", this._bumpTexture),
this._refractionTexture && t.RefractionTextureEnabled)
) {
d = 1;
this._refractionTexture.isCube ? s.setTexture("refractionCubeSampler", this._refractionTexture) : s.setTexture("refraction2DSampler", this._refractionTexture);
}
p.a.BindClipPlane(s, r), r.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor), p.a.BindEyePosition(s, r), s.setColor3("vAmbientColor", this._globalAmbientColor);
}
(!l && this.isFrozen) ||
(r.lightsEnabled && !this._disableLighting && p.a.BindLights(r, n, s, o, this._maxSimultaneousLights, this._rebuildInParallel),
((r.fogEnabled && n.applyFog && r.fogMode !== a.a.FOGMODE_NONE) || this._reflectionTexture || this._refractionTexture) && this.bindView(s),
p.a.BindFogParameters(r, n, s),
o.NUM_MORPH_INFLUENCERS && p.a.BindMorphTargetParameters(n, s),
this.useLogarithmicDepth && p.a.BindLogDepth(o, s, r),
this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(this._activeEffect)),
u.update(),
this._afterBind(n, this._activeEffect);
}
}
}),
(t.prototype.getAnimatables = function () {
var e = [];
return (
this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0 && e.push(this._diffuseTexture),
this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0 && e.push(this._ambientTexture),
this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0 && e.push(this._opacityTexture),
this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0 && e.push(this._reflectionTexture),
this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0 && e.push(this._emissiveTexture),
this._specularTexture && this._specularTexture.animations && this._specularTexture.animations.length > 0 && e.push(this._specularTexture),
this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture),
this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0 && e.push(this._lightmapTexture),
this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0 && e.push(this._refractionTexture),
e
);
}),
(t.prototype.getActiveTextures = function () {
var t = e.prototype.getActiveTextures.call(this);
return (
this._diffuseTexture && t.push(this._diffuseTexture),
this._ambientTexture && t.push(this._ambientTexture),
this._opacityTexture && t.push(this._opacityTexture),
this._reflectionTexture && t.push(this._reflectionTexture),
this._emissiveTexture && t.push(this._emissiveTexture),
this._specularTexture && t.push(this._specularTexture),
this._bumpTexture && t.push(this._bumpTexture),
this._lightmapTexture && t.push(this._lightmapTexture),
this._refractionTexture && t.push(this._refractionTexture),
t
);
}),
(t.prototype.hasTexture = function (t) {
return (
!!e.prototype.hasTexture.call(this, t) ||
this._diffuseTexture === t ||
this._ambientTexture === t ||
this._opacityTexture === t ||
this._reflectionTexture === t ||
this._emissiveTexture === t ||
this._specularTexture === t ||
this._bumpTexture === t ||
this._lightmapTexture === t ||
this._refractionTexture === t
);
}),
(t.prototype.dispose = function (t, n) {
n &&
(this._diffuseTexture && this._diffuseTexture.dispose(),
this._ambientTexture && this._ambientTexture.dispose(),
this._opacityTexture && this._opacityTexture.dispose(),
this._reflectionTexture && this._reflectionTexture.dispose(),
this._emissiveTexture && this._emissiveTexture.dispose(),
this._specularTexture && this._specularTexture.dispose(),
this._bumpTexture && this._bumpTexture.dispose(),
this._lightmapTexture && this._lightmapTexture.dispose(),
this._refractionTexture && this._refractionTexture.dispose()),
this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
e.prototype.dispose.call(this, t, n);
}),
(t.prototype.clone = function (e) {
var n = this,
i = r.a.Clone(function () {
return new t(e, n.getScene());
}, this);
return (i.name = e), (i.id = e), i;
}),
(t.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(t.Parse = function (e, n, i) {
return r.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
}),
Object.defineProperty(t, "DiffuseTextureEnabled", {
get: function () {
return g.a.DiffuseTextureEnabled;
},
set: function (e) {
g.a.DiffuseTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "AmbientTextureEnabled", {
get: function () {
return g.a.AmbientTextureEnabled;
},
set: function (e) {
g.a.AmbientTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "OpacityTextureEnabled", {
get: function () {
return g.a.OpacityTextureEnabled;
},
set: function (e) {
g.a.OpacityTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "ReflectionTextureEnabled", {
get: function () {
return g.a.ReflectionTextureEnabled;
},
set: function (e) {
g.a.ReflectionTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "EmissiveTextureEnabled", {
get: function () {
return g.a.EmissiveTextureEnabled;
},
set: function (e) {
g.a.EmissiveTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "SpecularTextureEnabled", {
get: function () {
return g.a.SpecularTextureEnabled;
},
set: function (e) {
g.a.SpecularTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "BumpTextureEnabled", {
get: function () {
return g.a.BumpTextureEnabled;
},
set: function (e) {
g.a.BumpTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "LightmapTextureEnabled", {
get: function () {
return g.a.LightmapTextureEnabled;
},
set: function (e) {
g.a.LightmapTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "RefractionTextureEnabled", {
get: function () {
return g.a.RefractionTextureEnabled;
},
set: function (e) {
g.a.RefractionTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "ColorGradingTextureEnabled", {
get: function () {
return g.a.ColorGradingTextureEnabled;
},
set: function (e) {
g.a.ColorGradingTextureEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "FresnelEnabled", {
get: function () {
return g.a.FresnelEnabled;
},
set: function (e) {
g.a.FresnelEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object(i.c)([Object(r.m)("diffuseTexture")], t.prototype, "_diffuseTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "diffuseTexture", void 0),
Object(i.c)([Object(r.m)("ambientTexture")], t.prototype, "_ambientTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTexture", void 0),
Object(i.c)([Object(r.m)("opacityTexture")], t.prototype, "_opacityTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "opacityTexture", void 0),
Object(i.c)([Object(r.m)("reflectionTexture")], t.prototype, "_reflectionTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionTexture", void 0),
Object(i.c)([Object(r.m)("emissiveTexture")], t.prototype, "_emissiveTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveTexture", void 0),
Object(i.c)([Object(r.m)("specularTexture")], t.prototype, "_specularTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "specularTexture", void 0),
Object(i.c)([Object(r.m)("bumpTexture")], t.prototype, "_bumpTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "bumpTexture", void 0),
Object(i.c)([Object(r.m)("lightmapTexture")], t.prototype, "_lightmapTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "lightmapTexture", void 0),
Object(i.c)([Object(r.m)("refractionTexture")], t.prototype, "_refractionTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "refractionTexture", void 0),
Object(i.c)([Object(r.e)("ambient")], t.prototype, "ambientColor", void 0),
Object(i.c)([Object(r.e)("diffuse")], t.prototype, "diffuseColor", void 0),
Object(i.c)([Object(r.e)("specular")], t.prototype, "specularColor", void 0),
Object(i.c)([Object(r.e)("emissive")], t.prototype, "emissiveColor", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "specularPower", void 0),
Object(i.c)([Object(r.c)("useAlphaFromDiffuseTexture")], t.prototype, "_useAlphaFromDiffuseTexture", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAlphaFromDiffuseTexture", void 0),
Object(i.c)([Object(r.c)("useEmissiveAsIllumination")], t.prototype, "_useEmissiveAsIllumination", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useEmissiveAsIllumination", void 0),
Object(i.c)([Object(r.c)("linkEmissiveWithDiffuse")], t.prototype, "_linkEmissiveWithDiffuse", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "linkEmissiveWithDiffuse", void 0),
Object(i.c)([Object(r.c)("useSpecularOverAlpha")], t.prototype, "_useSpecularOverAlpha", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useSpecularOverAlpha", void 0),
Object(i.c)([Object(r.c)("useReflectionOverAlpha")], t.prototype, "_useReflectionOverAlpha", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useReflectionOverAlpha", void 0),
Object(i.c)([Object(r.c)("disableLighting")], t.prototype, "_disableLighting", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "disableLighting", void 0),
Object(i.c)([Object(r.c)("useObjectSpaceNormalMap")], t.prototype, "_useObjectSpaceNormalMap", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useObjectSpaceNormalMap", void 0),
Object(i.c)([Object(r.c)("useParallax")], t.prototype, "_useParallax", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallax", void 0),
Object(i.c)([Object(r.c)("useParallaxOcclusion")], t.prototype, "_useParallaxOcclusion", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallaxOcclusion", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "parallaxScaleBias", void 0),
Object(i.c)([Object(r.c)("roughness")], t.prototype, "_roughness", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "roughness", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "indexOfRefraction", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "invertRefractionY", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "alphaCutOff", void 0),
Object(i.c)([Object(r.c)("useLightmapAsShadowmap")], t.prototype, "_useLightmapAsShadowmap", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLightmapAsShadowmap", void 0),
Object(i.c)([Object(r.h)("diffuseFresnelParameters")], t.prototype, "_diffuseFresnelParameters", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "diffuseFresnelParameters", void 0),
Object(i.c)([Object(r.h)("opacityFresnelParameters")], t.prototype, "_opacityFresnelParameters", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelAndMiscDirty")], t.prototype, "opacityFresnelParameters", void 0),
Object(i.c)([Object(r.h)("reflectionFresnelParameters")], t.prototype, "_reflectionFresnelParameters", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "reflectionFresnelParameters", void 0),
Object(i.c)([Object(r.h)("refractionFresnelParameters")], t.prototype, "_refractionFresnelParameters", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "refractionFresnelParameters", void 0),
Object(i.c)([Object(r.h)("emissiveFresnelParameters")], t.prototype, "_emissiveFresnelParameters", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "emissiveFresnelParameters", void 0),
Object(i.c)([Object(r.c)("useReflectionFresnelFromSpecular")], t.prototype, "_useReflectionFresnelFromSpecular", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "useReflectionFresnelFromSpecular", void 0),
Object(i.c)([Object(r.c)("useGlossinessFromSpecularMapAlpha")], t.prototype, "_useGlossinessFromSpecularMapAlpha", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useGlossinessFromSpecularMapAlpha", void 0),
Object(i.c)([Object(r.c)("maxSimultaneousLights")], t.prototype, "_maxSimultaneousLights", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "maxSimultaneousLights", void 0),
Object(i.c)([Object(r.c)("invertNormalMapX")], t.prototype, "_invertNormalMapX", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapX", void 0),
Object(i.c)([Object(r.c)("invertNormalMapY")], t.prototype, "_invertNormalMapY", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapY", void 0),
Object(i.c)([Object(r.c)("twoSidedLighting")], t.prototype, "_twoSidedLighting", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "twoSidedLighting", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "useLogarithmicDepth", null),
t
);
})(d.a);
(m.a.RegisteredTypes["BABYLON.StandardMaterial"] = S),
(a.a.DefaultMaterialFactory = function (e) {
return new S("default material", e);
});
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return i;
}),
n.d(t, "c", function () {
return r;
}),
n.d(t, "a", function () {
return o;
});
var i = 1 / 2.2,
r = 2.2,
o = 0.001;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(1),
o = n(3),
a = n(6),
s = n(25),
c = n(22),
l = (function () {
function e(e, t) {
void 0 === t && (t = null),
(this.state = ""),
(this.metadata = null),
(this.reservedDataStore = null),
(this._doNotSerialize = !1),
(this._isDisposed = !1),
(this.animations = new Array()),
(this._ranges = {}),
(this.onReady = null),
(this._isEnabled = !0),
(this._isParentEnabled = !0),
(this._isReady = !0),
(this._currentRenderId = -1),
(this._parentUpdateId = -1),
(this._childUpdateId = -1),
(this._waitingParentId = null),
(this._cache = {}),
(this._parentNode = null),
(this._children = null),
(this._worldMatrix = r.a.Identity()),
(this._worldMatrixDeterminant = 0),
(this._worldMatrixDeterminantIsDirty = !0),
(this._sceneRootNodesIndex = -1),
(this._animationPropertiesOverride = null),
(this._isNode = !0),
(this.onDisposeObservable = new a.c()),
(this._onDisposeObserver = null),
(this._behaviors = new Array()),
(this.name = e),
(this.id = e),
(this._scene = t || s.a.LastCreatedScene),
(this.uniqueId = this._scene.getUniqueId()),
this._initCache();
}
return (
(e.AddNodeConstructor = function (e, t) {
this._NodeConstructors[e] = t;
}),
(e.Construct = function (e, t, n, i) {
var r = this._NodeConstructors[e];
return r ? r(t, n, i) : null;
}),
Object.defineProperty(e.prototype, "doNotSerialize", {
get: function () {
return !!this._doNotSerialize || (!!this._parentNode && this._parentNode.doNotSerialize);
},
set: function (e) {
this._doNotSerialize = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.isDisposed = function () {
return this._isDisposed;
}),
Object.defineProperty(e.prototype, "parent", {
get: function () {
return this._parentNode;
},
set: function (e) {
if (this._parentNode !== e) {
var t = this._parentNode;
if (this._parentNode && void 0 !== this._parentNode._children && null !== this._parentNode._children) {
var n = this._parentNode._children.indexOf(this);
-1 !== n && this._parentNode._children.splice(n, 1), e || this._isDisposed || this._addToSceneRootNodes();
}
(this._parentNode = e),
this._parentNode &&
((void 0 !== this._parentNode._children && null !== this._parentNode._children) || (this._parentNode._children = new Array()),
this._parentNode._children.push(this),
t || this._removeFromSceneRootNodes()),
this._syncParentEnabledState();
}
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._addToSceneRootNodes = function () {
-1 === this._sceneRootNodesIndex && ((this._sceneRootNodesIndex = this._scene.rootNodes.length), this._scene.rootNodes.push(this));
}),
(e.prototype._removeFromSceneRootNodes = function () {
if (-1 !== this._sceneRootNodesIndex) {
var e = this._scene.rootNodes,
t = e.length - 1;
(e[this._sceneRootNodesIndex] = e[t]), (e[this._sceneRootNodesIndex]._sceneRootNodesIndex = this._sceneRootNodesIndex), this._scene.rootNodes.pop(), (this._sceneRootNodesIndex = -1);
}
}),
Object.defineProperty(e.prototype, "animationPropertiesOverride", {
get: function () {
return this._animationPropertiesOverride ? this._animationPropertiesOverride : this._scene.animationPropertiesOverride;
},
set: function (e) {
this._animationPropertiesOverride = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "Node";
}),
Object.defineProperty(e.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype.getEngine = function () {
return this._scene.getEngine();
}),
(e.prototype.addBehavior = function (e, t) {
var n = this;
return (
void 0 === t && (t = !1),
-1 !== this._behaviors.indexOf(e) ||
(e.init(),
this._scene.isLoading && !t
? this._scene.onDataLoadedObservable.addOnce(function () {
e.attach(n);
})
: e.attach(this),
this._behaviors.push(e)),
this
);
}),
(e.prototype.removeBehavior = function (e) {
var t = this._behaviors.indexOf(e);
return -1 === t || (this._behaviors[t].detach(), this._behaviors.splice(t, 1)), this;
}),
Object.defineProperty(e.prototype, "behaviors", {
get: function () {
return this._behaviors;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getBehaviorByName = function (e) {
for (var t = 0, n = this._behaviors; t < n.length; t++) {
var i = n[t];
if (i.name === e) return i;
}
return null;
}),
(e.prototype.getWorldMatrix = function () {
return this._currentRenderId !== this._scene.getRenderId() && this.computeWorldMatrix(), this._worldMatrix;
}),
(e.prototype._getWorldMatrixDeterminant = function () {
return this._worldMatrixDeterminantIsDirty && ((this._worldMatrixDeterminantIsDirty = !1), (this._worldMatrixDeterminant = this._worldMatrix.determinant())), this._worldMatrixDeterminant;
}),
Object.defineProperty(e.prototype, "worldMatrixFromCache", {
get: function () {
return this._worldMatrix;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._initCache = function () {
(this._cache = {}), (this._cache.parent = void 0);
}),
(e.prototype.updateCache = function (e) {
(!e && this.isSynchronized()) || ((this._cache.parent = this.parent), this._updateCache());
}),
(e.prototype._getActionManagerForTrigger = function (e, t) {
return void 0 === t && (t = !0), this.parent ? this.parent._getActionManagerForTrigger(e, !1) : null;
}),
(e.prototype._updateCache = function (e) {}),
(e.prototype._isSynchronized = function () {
return !0;
}),
(e.prototype._markSyncedWithParent = function () {
this._parentNode && (this._parentUpdateId = this._parentNode._childUpdateId);
}),
(e.prototype.isSynchronizedWithParent = function () {
return !this._parentNode || (this._parentUpdateId === this._parentNode._childUpdateId && this._parentNode.isSynchronized());
}),
(e.prototype.isSynchronized = function () {
return this._cache.parent != this._parentNode ? ((this._cache.parent = this._parentNode), !1) : !(this._parentNode && !this.isSynchronizedWithParent()) && this._isSynchronized();
}),
(e.prototype.isReady = function (e) {
return void 0 === e && (e = !1), this._isReady;
}),
(e.prototype.isEnabled = function (e) {
return void 0 === e && (e = !0), !1 === e ? this._isEnabled : !!this._isEnabled && this._isParentEnabled;
}),
(e.prototype._syncParentEnabledState = function () {
(this._isParentEnabled = !this._parentNode || this._parentNode.isEnabled()),
this._children &&
this._children.forEach(function (e) {
e._syncParentEnabledState();
});
}),
(e.prototype.setEnabled = function (e) {
(this._isEnabled = e), this._syncParentEnabledState();
}),
(e.prototype.isDescendantOf = function (e) {
return !!this.parent && (this.parent === e || this.parent.isDescendantOf(e));
}),
(e.prototype._getDescendants = function (e, t, n) {
if ((void 0 === t && (t = !1), this._children))
for (var i = 0; i < this._children.length; i++) {
var r = this._children[i];
(n && !n(r)) || e.push(r), t || r._getDescendants(e, !1, n);
}
}),
(e.prototype.getDescendants = function (e, t) {
var n = new Array();
return this._getDescendants(n, e, t), n;
}),
(e.prototype.getChildMeshes = function (e, t) {
var n = [];
return (
this._getDescendants(n, e, function (e) {
return (!t || t(e)) && void 0 !== e.cullingStrategy;
}),
n
);
}),
(e.prototype.getChildren = function (e, t) {
return void 0 === t && (t = !0), this.getDescendants(t, e);
}),
(e.prototype._setReady = function (e) {
e !== this._isReady && (e ? (this.onReady && this.onReady(this), (this._isReady = !0)) : (this._isReady = !1));
}),
(e.prototype.getAnimationByName = function (e) {
for (var t = 0; t < this.animations.length; t++) {
var n = this.animations[t];
if (n.name === e) return n;
}
return null;
}),
(e.prototype.createAnimationRange = function (t, n, i) {
if (!this._ranges[t]) {
this._ranges[t] = e._AnimationRangeFactory(t, n, i);
for (var r = 0, o = this.animations.length; r < o; r++) this.animations[r] && this.animations[r].createRange(t, n, i);
}
}),
(e.prototype.deleteAnimationRange = function (e, t) {
void 0 === t && (t = !0);
for (var n = 0, i = this.animations.length; n < i; n++) this.animations[n] && this.animations[n].deleteRange(e, t);
this._ranges[e] = null;
}),
(e.prototype.getAnimationRange = function (e) {
return this._ranges[e];
}),
(e.prototype.getAnimationRanges = function () {
var e,
t = [];
for (e in this._ranges) t.push(this._ranges[e]);
return t;
}),
(e.prototype.beginAnimation = function (e, t, n, i) {
var r = this.getAnimationRange(e);
return r ? this._scene.beginAnimation(this, r.from, r.to, t, n, i) : null;
}),
(e.prototype.serializeAnimationRanges = function () {
var e = [];
for (var t in this._ranges) {
var n = this._ranges[t];
if (n) {
var i = {};
(i.name = t), (i.from = n.from), (i.to = n.to), e.push(i);
}
}
return e;
}),
(e.prototype.computeWorldMatrix = function (e) {
return this._worldMatrix || (this._worldMatrix = r.a.Identity()), this._worldMatrix;
}),
(e.prototype.dispose = function (e, t) {
if ((void 0 === t && (t = !1), (this._isDisposed = !0), !e))
for (var n = 0, i = this.getDescendants(!0); n < i.length; n++) {
i[n].dispose(e, t);
}
this.parent ? (this.parent = null) : this._removeFromSceneRootNodes(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear();
for (var r = 0, o = this._behaviors; r < o.length; r++) {
o[r].detach();
}
this._behaviors = [];
}),
(e.ParseAnimationRanges = function (e, t, n) {
if (t.ranges)
for (var i = 0; i < t.ranges.length; i++) {
var r = t.ranges[i];
e.createAnimationRange(r.name, r.from, r.to);
}
}),
(e.prototype.getHierarchyBoundingVectors = function (e, t) {
var n, i;
void 0 === e && (e = !0), void 0 === t && (t = null), this.getScene().incrementRenderId(), this.computeWorldMatrix(!0);
if (this.getBoundingInfo && this.subMeshes) {
var o = this.getBoundingInfo();
(n = o.boundingBox.minimumWorld.clone()), (i = o.boundingBox.maximumWorld.clone());
} else (n = new r.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (i = new r.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE));
if (e)
for (var a = 0, s = this.getDescendants(!1); a < s.length; a++) {
var c = s[a];
if ((c.computeWorldMatrix(!0), (!t || t(c)) && c.getBoundingInfo && 0 !== c.getTotalVertices())) {
var l = c.getBoundingInfo().boundingBox,
u = l.minimumWorld,
h = l.maximumWorld;
r.e.CheckExtends(u, n, i), r.e.CheckExtends(h, n, i);
}
}
return { min: n, max: i };
}),
(e._AnimationRangeFactory = function (e, t, n) {
throw c.a.WarnImport("AnimationRange");
}),
(e._NodeConstructors = {}),
Object(i.c)([Object(o.c)()], e.prototype, "name", void 0),
Object(i.c)([Object(o.c)()], e.prototype, "id", void 0),
Object(i.c)([Object(o.c)()], e.prototype, "uniqueId", void 0),
Object(i.c)([Object(o.c)()], e.prototype, "state", void 0),
Object(i.c)([Object(o.c)()], e.prototype, "metadata", void 0),
e
);
})();
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.uiState = void 0);
const r = n(222),
o = n(29),
a = n(139),
s = n(48),
c = n(40);
class l {
constructor() {
(this.titlePanelVisible = !1),
(this.optionPanelVisible = !1),
(this.hudPanelVisible = !1),
(this.deathPanelVisible = !1),
(this.deathPanelHidden = !1),
(this.tutorialPanelVisible = !1),
(this.debugPanelVisible = !1),
(this.challengesPanelVisible = !1),
(this.abilitiesPanelVisible = !1),
(this.statsPanelVisible = !1),
(this.settingsPanelVisible = !1),
(this.flyCameraSkipPanelVisible = !1),
(this.resumeCountDown = 0),
(this.loadingBarPercent = 0),
(this.loadingPanelVisible = !1),
(this.customDialogVisible = !1),
(this.customDialogTitle = ""),
(this.customDialogMessage = ""),
(this.chestAnimPanelVisible = !1),
(this.chestAnimOpenVisible = !1),
(this.adsShownCount = 0),
(this.showContinuePlayButton = !0),
(this.showRewardedAdButton = !0),
(this.isPlayingAd = !1),
(this.toastDistanceToShow = 250),
(this.showDistanceCoveredToast = !1),
(this.hudToastMessage = ""),
(this.isDebugCameraEnabled = !1),
(this.deathDebugInfo = "");
}
}
t.uiState = (function () {
const e = new l();
(e.loadingPanelVisible = !0), (e.flyCameraSkipPanelVisible = !0);
let t = !1;
const n = r.writable(e),
{ subscribe: u, update: h } = n,
d = () => {
0 == t &&
((t = !0),
o.EventHandler.instance.fireEvent(o.EventID.OnResetCurrentGameData),
s.GameConfig.HAS_AD_BLOCKER
? (o.EventHandler.instance.fireEvent(o.EventID.OnPlayGame, !1), m(!1), (t = !1))
: b(() => {
c.GameController.instance.checkGameAfterAd({ eventId: o.EventID.OnPlayGame, args: !1 }), m(!1), (t = !1);
}));
},
p = (e, t) => {
const n = new l();
return (n.titlePanelVisible = e), (n.tutorialPanelVisible = t.tutorialPanelVisible), n;
},
f = (e = "", t = "") => {
h((n) => ((n.customDialogTitle = e), (n.customDialogMessage = t), (n.customDialogVisible = !n.customDialogVisible), n));
},
m = (e) => {
h((t) => {
const n = p(!1, t);
return (
(n.tutorialPanelVisible = t.tutorialPanelVisible),
e && ((n.adsShownCount = t.adsShownCount), (n.showContinuePlayButton = t.showContinuePlayButton), (n.toastDistanceToShow = t.toastDistanceToShow), (n.showDistanceCoveredToast = t.showDistanceCoveredToast)),
Object.assign(Object.assign({}, n), { hudPanelVisible: !0 })
);
});
},
g = (e) => {
s.GameConfig.IS_AD_PLAYING = e;
},
b = (e) => {
g(!0),
o.EventHandler.instance.fireEvent(o.EventID.MuteAll),
o.EventHandler.instance.fireEvent(o.EventID.OnStopInputs),
o.EventHandler.instance.fireEvent(o.EventID.UnmuteAll), o.EventHandler.instance.fireEvent(o.EventID.OnStartInputs), g(!1), null != e && e();
},
_ = (e, t) => {
g(!0),
o.EventHandler.instance.fireEvent(o.EventID.MuteAll),
o.EventHandler.instance.fireEvent(o.EventID.OnStopInputs),
n ? null != e && e() : null != t && t(), o.EventHandler.instance.fireEvent(o.EventID.UnmuteAll), o.EventHandler.instance.fireEvent(o.EventID.OnStartInputs), g(!1);
};
return (
(() => {
o.EventHandler.instance.addListener(o.EventID.OnPlayerDeath, () => {
h((e) => {
const t = !!e.showContinuePlayButton && e.adsShownCount < 4;
return Object.assign(Object.assign({}, e), { deathPanelVisible: !0, hudPanelVisible: !1, showContinuePlayButton: t });
})
}),
o.EventHandler.instance.addListener(o.EventID.OnCameraFlyEnd, () => {
h((e) => Object.assign(Object.assign({}, e), { titlePanelVisible: !0, flyCameraSkipPanelVisible: !1 }));
}),
o.EventHandler.instance.addListener(o.EventID.OnTutorialStart, () => {
h((e) => Object.assign(Object.assign({}, e), { tutorialPanelVisible: !0 }));
}),
o.EventHandler.instance.addListener(o.EventID.OnTutorialComplete, () => {
h((e) => Object.assign(Object.assign({}, e), { tutorialPanelVisible: !1 }));
}),
o.EventHandler.instance.addListener(o.EventID.OnPlayGame, () => {
m(!1);
}),
o.EventHandler.instance.addListener(o.EventID.OnPauseGame, (e) => {
"tutorialPause" != e && h((e) => Object.assign(Object.assign({}, e), { hudPanelVisible: !1, optionPanelVisible: !0 }));
}),
o.EventHandler.instance.addListener(o.EventID.OnResumeGame, () => {
m(!0);
}),
o.EventHandler.instance.addListener(o.EventID.OnResumeCounterChange, (e) => {
h((t) => Object.assign(Object.assign({}, t), { resumeCountDown: e }));
}),
o.EventHandler.instance.addListener(o.EventID.OnLoadingUpdate, (e) => {
h((t) => ((t.loadingBarPercent = e), t));
}),
o.EventHandler.instance.addListener(o.EventID.OnGameLoaded, () => {
h((e) => ((e.loadingPanelVisible = !1), e));
}),
o.EventHandler.instance.addListener(o.EventID.NotEnoughCoins, () => {
f("NOT ENOUGH COINS!!", "COMPLETE DAILY CHALLENGES\nAND GO ON RUN\nTO EARN MORE COINS.");
}),
o.EventHandler.instance.addListener(o.EventID.OnEnablingChestUI, () => {
h((e) => ((e.chestAnimPanelVisible = !0), (e.deathPanelHidden = !0), e));
}),
o.EventHandler.instance.addListener(o.EventID.OnDisablingChestUI, () => {
h((e) => ((e.chestAnimPanelVisible = !1), (e.deathPanelHidden = !1), (e.chestAnimOpenVisible = !1), e));
}),
o.EventHandler.instance.addListener(o.EventID.OnChestReward, () => {
h((e) => ((e.chestAnimOpenVisible = !0), e));
}),
o.EventHandler.instance.addListener(o.EventID.OnShowDistanceToast, (e) =>
i(this, void 0, void 0, function* () {
o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.Wooosh),
h((t) => ((t.showDistanceCoveredToast = !0), (t.toastDistanceToShow = e), t)),
setTimeout(() => {
h((e) => ((e.showDistanceCoveredToast = !1), (e.toastDistanceToShow = 250), e));
}, 5e3);
})
),
o.EventHandler.instance.addListener(o.EventID.OnHudToastMessage, (e) =>
i(this, void 0, void 0, function* () {
h((t) => ((t.hudToastMessage = e), t)),
setTimeout(() => {
h((e) => ((e.hudToastMessage = ""), e));
}, 5e3);
})
),
o.EventHandler.instance.addListener(o.EventID.OnDebugCameraStateChange, (e) => {
h((t) => ((t.isDebugCameraEnabled = e), t));
}),
o.EventHandler.instance.addListener(o.EventID.PlayerDeathDebugInfo, (e) => {
h((t) => ((t.deathDebugInfo = e), t));
});
})(),
{
subscribe: u,
buttonClickSound: () => {
o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.ButtonClick);
},
startGamePlay: d,
pauseGamePlay: () => o.EventHandler.instance.fireEvent(o.EventID.OnPauseGame),
resumeGamePlay: () => o.EventHandler.instance.fireEvent(o.EventID.OnResumeGame, !0),
continueGamePlay: () => {
0 == t &&
((t = !0),
s.GameConfig.HAS_AD_BLOCKER
? (o.EventHandler.instance.fireEvent(o.EventID.OnContinueGame, !1), m(!1), (t = !1))
: (_(
() => {
c.GameController.instance.checkGameAfterAd({ eventId: o.EventID.OnContinueGame }), m(!0), (t = !1);
},
() => {
h((e) => ((e.showContinuePlayButton = !1), e)), (t = !1);
}
),
h((e) => ((e.adsShownCount += 1), e))));
},
restartGamePlay: () => {
(c.GameController.instance.isRestarting = !0), o.EventHandler.instance.fireEvent(o.EventID.OnResetGame), d(), (c.GameController.instance.isRestarting = !1);
},
goHome: (e = !1) => {
e && o.EventHandler.instance.fireEvent(o.EventID.OnResetGame), h((e) => p(!0, e)), o.EventHandler.instance.fireEvent(o.EventID.OnResetCurrentGameData);
},
toggleDebugPanel: () => {
h((e) => {
const t = p(e.debugPanelVisible, e);
return Object.assign(Object.assign({}, t), { debugPanelVisible: !e.debugPanelVisible });
});
},
toggleChallengesPanel: () => {
h((e) => {
const t = p(e.challengesPanelVisible, e);
return Object.assign(Object.assign({}, t), { challengesPanelVisible: !e.challengesPanelVisible });
});
},
toggleAbilitiesPanel: () => {
h((e) => {
const t = p(e.abilitiesPanelVisible, e);
return Object.assign(Object.assign({}, t), { abilitiesPanelVisible: !e.abilitiesPanelVisible });
});
},
toggleStatsPanel: () => {
h((e) => {
const t = p(e.statsPanelVisible, e);
return Object.assign(Object.assign({}, t), { statsPanelVisible: !e.statsPanelVisible });
});
},
toggleSettingsPanel: () => {
h((e) => {
const t = p(e.settingsPanelVisible, e);
return Object.assign(Object.assign({}, t), { settingsPanelVisible: !e.settingsPanelVisible });
});
},
toggleCustomDialog: f,
playRewardedAd: (e) => {
s.GameConfig.HAS_AD_BLOCKER
? (h((e) => ((e.showRewardedAdButton = !1), e)), null != e && e())
: _(
() => {
o.EventHandler.instance.fireEvent(o.EventID.OnRewardCoins, s.GameConfig.COIN_REWARDS_FROM_AD), null != e && e();
},
() => {
h((e) => ((e.showRewardedAdButton = !1), e)), null != e && e();
}
);
},
}
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "c", function () {
return d;
}),
n.d(t, "b", function () {
return i;
}),
n.d(t, "a", function () {
return p;
});
var i,
r = n(12),
o = n(6),
a = n(118),
s = n(18),
c = n(14),
l = n(25),
u = n(10),
h = n(103),
d = (function () {
function e(e, t, n) {
(this.lengthComputable = e), (this.loaded = t), (this.total = n);
}
return (
(e.FromProgressEvent = function (t) {
return new e(t.lengthComputable, t.loaded, t.total);
}),
e
);
})();
!(function (e) {
(e[(e.Clean = 0)] = "Clean"), (e[(e.Stop = 1)] = "Stop"), (e[(e.Sync = 2)] = "Sync"), (e[(e.NoSync = 3)] = "NoSync");
})(i || (i = {}));
var p = (function () {
function e() {}
return (
Object.defineProperty(e, "ForceFullSceneLoadingForIncremental", {
get: function () {
return h.a.ForceFullSceneLoadingForIncremental;
},
set: function (e) {
h.a.ForceFullSceneLoadingForIncremental = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ShowLoadingScreen", {
get: function () {
return h.a.ShowLoadingScreen;
},
set: function (e) {
h.a.ShowLoadingScreen = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "loggingLevel", {
get: function () {
return h.a.loggingLevel;
},
set: function (e) {
h.a.loggingLevel = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "CleanBoneMatrixWeights", {
get: function () {
return h.a.CleanBoneMatrixWeights;
},
set: function (e) {
h.a.CleanBoneMatrixWeights = e;
},
enumerable: !0,
configurable: !0,
}),
(e._getDefaultPlugin = function () {
return e._registeredPlugins[".babylon"];
}),
(e._getPluginForExtension = function (t) {
var n = e._registeredPlugins[t];
return (
n ||
(u.a.Warn("Unable to find a plugin to load " + t + " files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: http://doc.babylonjs.com/how_to/load_from_any_file_type"),
e._getDefaultPlugin())
);
}),
(e._getPluginForDirectLoad = function (t) {
for (var n in e._registeredPlugins) {
var i = e._registeredPlugins[n].plugin;
if (i.canDirectLoad && i.canDirectLoad(t)) return e._registeredPlugins[n];
}
return e._getDefaultPlugin();
}),
(e._getPluginForFilename = function (t) {
var n = t.indexOf("?");
-1 !== n && (t = t.substring(0, n));
var i = t.lastIndexOf("."),
r = t.substring(i, t.length).toLowerCase();
return e._getPluginForExtension(r);
}),
(e._getDirectLoad = function (e) {
return "data:" === e.substr(0, 5) ? e.substr(5) : null;
}),
(e._loadData = function (t, n, i, r, o, s, l) {
var u,
h = e._getDirectLoad(t.name),
p = l ? e._getPluginForExtension(l) : h ? e._getPluginForDirectLoad(t.name) : e._getPluginForFilename(t.name);
if (!(u = p.plugin.createPlugin ? p.plugin.createPlugin() : p.plugin))
throw "The loader plugin corresponding to the file type you are trying to load has not been found. If using es6, please import the plugin you wish to use before.";
if ((e.OnPluginActivatedObservable.notifyObservers(u), h)) return i(u, u.directLoad ? u.directLoad(n, h) : h), u;
var f = p.isBinary,
m = function (e, t) {
n.isDisposed ? o("Scene has been disposed") : i(u, e, t);
},
g = null,
b = !1,
_ = u.onDisposeObservable;
_ &&
_.add(function () {
(b = !0), g && (g.abort(), (g = null)), s();
});
var v = r
? function (e) {
r(d.FromProgressEvent(e));
}
: void 0,
y = function () {
if (!b) {
var e = function (e, t) {
m(e, t ? t.responseURL : void 0);
},
i = function (e) {
o(e.message, e);
};
g = u.requestFile ? u.requestFile(n, t.url, e, v, f, i) : n._requestFile(t.url, e, v, !0, f, i);
}
},
C = t.file || a.a.FilesToLoad[t.name.toLowerCase()];
if (-1 === t.rootUrl.indexOf("file:") || (-1 !== t.rootUrl.indexOf("file:") && !C)) {
var P = n.getEngine(),
x = P.enableOfflineSupport;
if (x) {
for (var T = !1, S = 0, O = n.disableOfflineSupportExceptionRules; S < O.length; S++) {
if (O[S].test(t.url)) {
T = !0;
break;
}
}
x = !T;
}
x && c.a.OfflineProviderFactory ? (n.offlineProvider = c.a.OfflineProviderFactory(t.url, y, P.disableManifestCheck)) : y();
} else if (C) {
var E = function (e) {
o(e.message, e);
};
g = u.readFile ? u.readFile(n, C, m, v, f, E) : n._readFile(C, m, v, f, E);
} else o("Unable to find file named " + t.name);
return u;
}),
(e._getFileInfo = function (e, t) {
var n,
i,
o = null;
if (t)
if (t.name) {
var a = t;
(n = e + a.name), (i = a.name), (o = a);
} else {
var s = t;
if ("/" === s.substr(0, 1)) return r.b.Error("Wrong sceneFilename parameter"), null;
(n = e + s), (i = s);
}
else (n = e), (i = r.b.GetFilename(e)), (e = r.b.GetFolderPath(e));
return { url: n, rootUrl: e, name: i, file: o };
}),
(e.GetPluginForExtension = function (t) {
return e._getPluginForExtension(t).plugin;
}),
(e.IsPluginForExtensionAvailable = function (t) {
return !!e._registeredPlugins[t];
}),
(e.RegisterPlugin = function (t) {
if ("string" == typeof t.extensions) {
var n = t.extensions;
e._registeredPlugins[n.toLowerCase()] = { plugin: t, isBinary: !1 };
} else {
var i = t.extensions;
Object.keys(i).forEach(function (n) {
e._registeredPlugins[n.toLowerCase()] = { plugin: t, isBinary: i[n].isBinary };
});
}
}),
(e.ImportMesh = function (t, n, i, r, o, a, s, c) {
if ((void 0 === i && (i = ""), void 0 === r && (r = l.a.LastCreatedScene), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null), !r))
return u.a.Error("No scene available to import mesh to"), null;
var h = e._getFileInfo(n, i);
if (!h) return null;
var d = {};
r._addPendingData(d);
var p = function () {
r._removePendingData(d);
},
f = function (e, t) {
var n = "Unable to import meshes from " + h.url + ": " + e;
s ? s(r, n, t) : u.a.Error(n), p();
},
m = a
? function (e) {
try {
a(e);
} catch (e) {
f("Error in onProgress callback: " + e, e);
}
}
: void 0,
g = function (e, t, n, i) {
if ((r.importedMeshesFiles.push(h.url), o))
try {
o(e, t, n, i);
} catch (e) {
f("Error in onSuccess callback: " + e, e);
}
r._removePendingData(d);
};
return e._loadData(
h,
r,
function (e, n, i) {
if ((e.rewriteRootURL && (h.rootUrl = e.rewriteRootURL(h.rootUrl, i)), e.importMesh)) {
var o = e,
a = new Array(),
s = new Array(),
c = new Array();
if (!o.importMesh(t, r, n, h.rootUrl, a, s, c, f)) return;
(r.loadingPluginName = e.name), g(a, s, c, []);
} else {
e.importMeshAsync(t, r, n, h.rootUrl, m, h.name)
.then(function (t) {
(r.loadingPluginName = e.name), g(t.meshes, t.particleSystems, t.skeletons, t.animationGroups);
})
.catch(function (e) {
f(e.message, e);
});
}
},
m,
f,
p,
c
);
}),
(e.ImportMeshAsync = function (t, n, i, r, o, a) {
return (
void 0 === i && (i = ""),
void 0 === r && (r = l.a.LastCreatedScene),
void 0 === o && (o = null),
void 0 === a && (a = null),
new Promise(function (s, c) {
e.ImportMesh(
t,
n,
i,
r,
function (e, t, n, i) {
s({ meshes: e, particleSystems: t, skeletons: n, animationGroups: i });
},
o,
function (e, t, n) {
c(n || new Error(t));
},
a
);
})
);
}),
(e.Load = function (t, n, i, o, a, c, u) {
return (
void 0 === n && (n = ""),
void 0 === i && (i = l.a.LastCreatedEngine),
void 0 === o && (o = null),
void 0 === a && (a = null),
void 0 === c && (c = null),
void 0 === u && (u = null),
i ? e.Append(t, n, new s.a(i), o, a, c, u) : (r.b.Error("No engine available"), null)
);
}),
(e.LoadAsync = function (t, n, i, r, o) {
return (
void 0 === n && (n = ""),
void 0 === i && (i = l.a.LastCreatedEngine),
void 0 === r && (r = null),
void 0 === o && (o = null),
new Promise(function (a, s) {
e.Load(
t,
n,
i,
function (e) {
a(e);
},
r,
function (e, t, n) {
s(n || new Error(t));
},
o
);
})
);
}),
(e.Append = function (t, n, i, r, o, a, s) {
if ((void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedScene), void 0 === r && (r = null), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), !i))
return u.a.Error("No scene available to append to"), null;
var c = e._getFileInfo(t, n);
if (!c) return null;
e.ShowLoadingScreen && i.getEngine().displayLoadingUI();
var h = {};
i._addPendingData(h);
var d = function () {
i._removePendingData(h), i.getEngine().hideLoadingUI();
},
p = function (e, t) {
var n = "Unable to load from " + c.url + (e ? ": " + e : "");
a ? a(i, n, t) : u.a.Error(n), d();
},
f = o
? function (e) {
try {
o(e);
} catch (e) {
p("Error in onProgress callback", e);
}
}
: void 0,
m = function () {
if (r)
try {
r(i);
} catch (e) {
p("Error in onSuccess callback", e);
}
i._removePendingData(h);
};
return e._loadData(
c,
i,
function (t, n) {
if (t.load) {
if (!t.load(i, n, c.rootUrl, p)) return;
(i.loadingPluginName = t.name), m();
} else {
t.loadAsync(i, n, c.rootUrl, f, c.name)
.then(function () {
(i.loadingPluginName = t.name), m();
})
.catch(function (e) {
p(e.message, e);
});
}
e.ShowLoadingScreen &&
i.executeWhenReady(function () {
i.getEngine().hideLoadingUI();
});
},
f,
p,
d,
s
);
}),
(e.AppendAsync = function (t, n, i, r, o) {
return (
void 0 === n && (n = ""),
void 0 === i && (i = l.a.LastCreatedScene),
void 0 === r && (r = null),
void 0 === o && (o = null),
new Promise(function (a, s) {
e.Append(
t,
n,
i,
function (e) {
a(e);
},
r,
function (e, t, n) {
s(n || new Error(t));
},
o
);
})
);
}),
(e.LoadAssetContainer = function (t, n, i, r, o, a, s) {
if ((void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedScene), void 0 === r && (r = null), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), !i))
return u.a.Error("No scene available to load asset container to"), null;
var c = e._getFileInfo(t, n);
if (!c) return null;
var h = {};
i._addPendingData(h);
var d = function () {
i._removePendingData(h);
},
p = function (e, t) {
var n = "Unable to load assets from " + c.url + (e ? ": " + e : "");
t && t.message && (n += " (" + t.message + ")"), a ? a(i, n, t) : u.a.Error(n), d();
},
f = o
? function (e) {
try {
o(e);
} catch (e) {
p("Error in onProgress callback", e);
}
}
: void 0,
m = function (e) {
if (r)
try {
r(e);
} catch (e) {
p("Error in onSuccess callback", e);
}
i._removePendingData(h);
};
return e._loadData(
c,
i,
function (t, n) {
if (t.loadAssetContainer) {
var r = t.loadAssetContainer(i, n, c.rootUrl, p);
if (!r) return;
(i.loadingPluginName = t.name), m(r);
} else if (t.loadAssetContainerAsync) {
t.loadAssetContainerAsync(i, n, c.rootUrl, f, c.name)
.then(function (e) {
(i.loadingPluginName = t.name), m(e);
})
.catch(function (e) {
p(e.message, e);
});
} else p("LoadAssetContainer is not supported by this plugin. Plugin did not provide a loadAssetContainer or loadAssetContainerAsync method.");
e.ShowLoadingScreen &&
i.executeWhenReady(function () {
i.getEngine().hideLoadingUI();
});
},
f,
p,
d,
s
);
}),
(e.LoadAssetContainerAsync = function (t, n, i, r, o) {
return (
void 0 === n && (n = ""),
void 0 === i && (i = l.a.LastCreatedScene),
void 0 === r && (r = null),
void 0 === o && (o = null),
new Promise(function (a, s) {
e.LoadAssetContainer(
t,
n,
i,
function (e) {
a(e);
},
r,
function (e, t, n) {
s(n || new Error(t));
},
o
);
})
);
}),
(e.ImportAnimations = function (e, t, n, r, o, a, s, c, h) {
if (
(void 0 === t && (t = ""),
void 0 === n && (n = l.a.LastCreatedScene),
void 0 === r && (r = !0),
void 0 === o && (o = i.Clean),
void 0 === a && (a = null),
void 0 === s && (s = null),
void 0 === c && (c = null),
void 0 === h && (h = null),
n)
) {
if (r) {
for (var d = 0, p = n.animatables; d < p.length; d++) {
p[d].reset();
}
n.stopAllAnimations(),
n.animationGroups.slice().forEach(function (e) {
e.dispose();
}),
n.getNodes().forEach(function (e) {
e.animations && (e.animations = []);
});
} else
switch (o) {
case i.Clean:
n.animationGroups.slice().forEach(function (e) {
e.dispose();
});
break;
case i.Stop:
n.animationGroups.forEach(function (e) {
e.stop();
});
break;
case i.Sync:
n.animationGroups.forEach(function (e) {
e.reset(), e.restart();
});
break;
case i.NoSync:
break;
default:
return void u.a.Error("Unknown animation group loading mode value '" + o + "'");
}
var f = n.animatables.length;
this.LoadAssetContainer(
e,
t,
n,
function (e) {
e.mergeAnimationsTo(n, n.animatables.slice(f), a), e.dispose(), n.onAnimationFileImportedObservable.notifyObservers(n), s && s(n);
},
c,
h
);
} else u.a.Error("No scene available to load animations to");
}),
(e.ImportAnimationsAsync = function (t, n, r, o, a, s, c, u, h) {
return (
void 0 === n && (n = ""),
void 0 === r && (r = l.a.LastCreatedScene),
void 0 === o && (o = !0),
void 0 === a && (a = i.Clean),
void 0 === s && (s = null),
void 0 === c && (c = null),
void 0 === u && (u = null),
void 0 === h && (h = null),
new Promise(function (i, c) {
e.ImportAnimations(
t,
n,
r,
o,
a,
s,
function (e) {
i(e);
},
u,
function (e, t, n) {
c(n || new Error(t));
}
);
})
);
}),
(e.NO_LOGGING = 0),
(e.MINIMAL_LOGGING = 1),
(e.SUMMARY_LOGGING = 2),
(e.DETAILED_LOGGING = 3),
(e.OnPluginActivatedObservable = new o.c()),
(e._registeredPlugins = {}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return _;
});
var i = n(25),
r = n(7),
o = n(22),
a = n(6),
s = n(182),
c = n(183),
l = n(184),
u = n(32),
h = n(10),
d = n(56),
p = n(157),
f = n(126),
m = n(185),
g = n(112),
b = function () {},
_ = (function () {
function e(t, n, i, r) {
var o = this;
void 0 === r && (r = !1),
(this.forcePOTTextures = !1),
(this.isFullscreen = !1),
(this.cullBackFaces = !0),
(this.renderEvenInBackground = !0),
(this.preventCacheWipeBetweenFrames = !1),
(this.validateShaderPrograms = !1),
(this.useReverseDepthBuffer = !1),
(this.disableUniformBuffers = !1),
(this._uniformBuffers = new Array()),
(this._webGLVersion = 1),
(this._windowIsBackground = !1),
(this._highPrecisionShadersAllowed = !0),
(this._badOS = !1),
(this._badDesktopOS = !1),
(this._renderingQueueLaunched = !1),
(this._activeRenderLoops = new Array()),
(this.onContextLostObservable = new a.c()),
(this.onContextRestoredObservable = new a.c()),
(this._contextWasLost = !1),
(this._doNotHandleContextLost = !1),
(this.disableVertexArrayObjects = !1),
(this._colorWrite = !0),
(this._colorWriteChanged = !0),
(this._depthCullingState = new s.a()),
(this._stencilState = new c.a()),
(this._alphaState = new l.a()),
(this._alphaMode = 1),
(this._alphaEquation = 0),
(this._internalTexturesCache = new Array()),
(this._activeChannel = 0),
(this._currentTextureChannel = -1),
(this._boundTexturesCache = {}),
(this._compiledEffects = {}),
(this._vertexAttribArraysEnabled = []),
(this._uintIndicesCurrentlySet = !1),
(this._currentBoundBuffer = new Array()),
(this._currentFramebuffer = null),
(this._currentBufferPointers = new Array()),
(this._currentInstanceLocations = new Array()),
(this._currentInstanceBuffers = new Array()),
(this._vaoRecordInProgress = !1),
(this._mustWipeVertexAttributes = !1),
(this._nextFreeTextureSlots = new Array()),
(this._maxSimultaneousTextures = 0),
(this._activeRequests = new Array()),
(this._texturesSupported = new Array()),
(this.premultipliedAlpha = !0),
(this.onBeforeTextureInitObservable = new a.c()),
(this._viewportCached = { x: 0, y: 0, z: 0, w: 0 }),
(this._unpackFlipYCached = null),
(this.enableUnpackFlipYCached = !0),
(this._getDepthStencilBuffer = function (e, t, n, i, r, a) {
var s = o._gl,
c = s.createRenderbuffer();
return (
s.bindRenderbuffer(s.RENDERBUFFER, c),
n > 1 && s.renderbufferStorageMultisample ? s.renderbufferStorageMultisample(s.RENDERBUFFER, n, r, e, t) : s.renderbufferStorage(s.RENDERBUFFER, i, e, t),
s.framebufferRenderbuffer(s.FRAMEBUFFER, a, s.RENDERBUFFER, c),
s.bindRenderbuffer(s.RENDERBUFFER, null),
c
);
}),
(this._boundUniforms = {});
var u = null;
if (t) {
if (((i = i || {}), t.getContext)) {
if (
((u = t),
(this._renderingCanvas = u),
null != n && (i.antialias = n),
void 0 === i.deterministicLockstep && (i.deterministicLockstep = !1),
void 0 === i.lockstepMaxSteps && (i.lockstepMaxSteps = 4),
void 0 === i.timeStep && (i.timeStep = 1 / 60),
void 0 === i.preserveDrawingBuffer && (i.preserveDrawingBuffer = !1),
void 0 === i.audioEngine && (i.audioEngine = !0),
void 0 === i.stencil && (i.stencil = !0),
!1 === i.premultipliedAlpha && (this.premultipliedAlpha = !1),
(this._doNotHandleContextLost = !!i.doNotHandleContextLost),
navigator && navigator.userAgent)
)
for (var f = navigator.userAgent, m = 0, g = e.ExceptionList; m < g.length; m++) {
var _ = g[m],
v = _.key,
y = _.targets;
if (new RegExp(v).test(f)) {
if (_.capture && _.captureConstraint) {
var C = _.capture,
P = _.captureConstraint,
x = new RegExp(C).exec(f);
if (x && x.length > 0) if (parseInt(x[x.length - 1]) >= P) continue;
}
for (var T = 0, S = y; T < S.length; T++) {
switch (S[T]) {
case "uniformBuffer":
this.disableUniformBuffers = !0;
break;
case "vao":
this.disableVertexArrayObjects = !0;
}
}
}
}
if (
(this._doNotHandleContextLost ||
((this._onContextLost = function (e) {
e.preventDefault(), (o._contextWasLost = !0), h.a.Warn("WebGL context lost."), o.onContextLostObservable.notifyObservers(o);
}),
(this._onContextRestored = function () {
setTimeout(function () {
o._initGLContext(),
o._rebuildEffects(),
o._rebuildInternalTextures(),
o._rebuildBuffers(),
o.wipeCaches(!0),
h.a.Warn("WebGL context successfully restored."),
o.onContextRestoredObservable.notifyObservers(o),
(o._contextWasLost = !1);
}, 0);
}),
u.addEventListener("webglcontextlost", this._onContextLost, !1),
u.addEventListener("webglcontextrestored", this._onContextRestored, !1),
(i.powerPreference = "high-performance")),
!i.disableWebGL2Support)
)
try {
(this._gl = u.getContext("webgl2", i) || u.getContext("experimental-webgl2", i)), this._gl && ((this._webGLVersion = 2), this._gl.deleteQuery || (this._webGLVersion = 1));
} catch (e) {}
if (!this._gl) {
if (!u) throw new Error("The provided canvas is null or undefined.");
try {
this._gl = u.getContext("webgl", i) || u.getContext("experimental-webgl", i);
} catch (e) {
throw new Error("WebGL not supported");
}
}
if (!this._gl) throw new Error("WebGL not supported");
} else {
(this._gl = t), (this._renderingCanvas = this._gl.canvas), this._gl.renderbufferStorageMultisample && (this._webGLVersion = 2);
var O = this._gl.getContextAttributes();
O && (i.stencil = O.stencil);
}
this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE), void 0 !== i.useHighPrecisionFloats && (this._highPrecisionShadersAllowed = i.useHighPrecisionFloats);
var E = (d.a.IsWindowObjectExist() && window.devicePixelRatio) || 1,
M = i.limitDeviceRatio || E;
(this._hardwareScalingLevel = r ? 1 / Math.min(M, E) : 1), this.resize(), (this._isStencilEnable = !!i.stencil), this._initGLContext();
for (var A = 0; A < this._caps.maxVertexAttribs; A++) this._currentBufferPointers[A] = new b();
this.webGLVersion > 1 && (this._shaderProcessor = new p.a()),
(this._badOS = /iPad/i.test(navigator.userAgent) || /iPhone/i.test(navigator.userAgent)),
(this._badDesktopOS = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)),
(this._creationOptions = i);
}
}
return (
Object.defineProperty(e, "NpmPackage", {
get: function () {
return "babylonjs@4.1.0";
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "Version", {
get: function () {
return "4.1.0";
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "description", {
get: function () {
var e = "WebGL" + this.webGLVersion;
return this._caps.parallelShaderCompile && (e += " - Parallel shader compilation"), e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ShadersRepository", {
get: function () {
return r.a.ShadersRepository;
},
set: function (e) {
r.a.ShadersRepository = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "supportsUniformBuffers", {
get: function () {
return this.webGLVersion > 1 && !this.disableUniformBuffers;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "_shouldUseHighPrecisionShader", {
get: function () {
return !(!this._caps.highPrecisionShaderSupported || !this._highPrecisionShadersAllowed);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "needPOTTextures", {
get: function () {
return this._webGLVersion < 2 || this.forcePOTTextures;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "doNotHandleContextLost", {
get: function () {
return this._doNotHandleContextLost;
},
set: function (e) {
this._doNotHandleContextLost = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "_supportsHardwareTextureRescaling", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "framebufferDimensionsObject", {
set: function (e) {
this._framebufferDimensionsObject = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "texturesSupported", {
get: function () {
return this._texturesSupported;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "textureFormatInUse", {
get: function () {
return this._textureFormatInUse;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "currentViewport", {
get: function () {
return this._cachedViewport;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "emptyTexture", {
get: function () {
return this._emptyTexture || (this._emptyTexture = this.createRawTexture(new Uint8Array(4), 1, 1, 5, !1, !1, 1)), this._emptyTexture;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "emptyTexture3D", {
get: function () {
return this._emptyTexture3D || (this._emptyTexture3D = this.createRawTexture3D(new Uint8Array(4), 1, 1, 1, 5, !1, !1, 1)), this._emptyTexture3D;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "emptyTexture2DArray", {
get: function () {
return this._emptyTexture2DArray || (this._emptyTexture2DArray = this.createRawTexture2DArray(new Uint8Array(4), 1, 1, 1, 5, !1, !1, 1)), this._emptyTexture2DArray;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "emptyCubeTexture", {
get: function () {
if (!this._emptyCubeTexture) {
var e = new Uint8Array(4),
t = [e, e, e, e, e, e];
this._emptyCubeTexture = this.createRawCubeTexture(t, 1, 5, 0, !1, !1, 1);
}
return this._emptyCubeTexture;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._rebuildInternalTextures = function () {
for (var e = 0, t = this._internalTexturesCache.slice(); e < t.length; e++) {
t[e]._rebuild();
}
}),
(e.prototype._rebuildEffects = function () {
for (var e in this._compiledEffects) {
this._compiledEffects[e]._prepareEffect();
}
r.a.ResetCache();
}),
(e.prototype.areAllEffectsReady = function () {
for (var e in this._compiledEffects) {
if (!this._compiledEffects[e].isReady()) return !1;
}
return !0;
}),
(e.prototype._rebuildBuffers = function () {
for (var e = 0, t = this._uniformBuffers; e < t.length; e++) {
t[e]._rebuild();
}
}),
(e.prototype._initGLContext = function () {
(this._caps = {
maxTexturesImageUnits: this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS),
maxCombinedTexturesImageUnits: this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
maxVertexTextureImageUnits: this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),
maxTextureSize: this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),
maxSamples: this._webGLVersion > 1 ? this._gl.getParameter(this._gl.MAX_SAMPLES) : 1,
maxCubemapTextureSize: this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),
maxRenderTextureSize: this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),
maxVertexAttribs: this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),
maxVaryingVectors: this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),
maxFragmentUniformVectors: this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),
maxVertexUniformVectors: this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),
parallelShaderCompile: this._gl.getExtension("KHR_parallel_shader_compile"),
standardDerivatives: this._webGLVersion > 1 || null !== this._gl.getExtension("OES_standard_derivatives"),
maxAnisotropy: 1,
astc: this._gl.getExtension("WEBGL_compressed_texture_astc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"),
s3tc: this._gl.getExtension("WEBGL_compressed_texture_s3tc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"),
pvrtc: this._gl.getExtension("WEBGL_compressed_texture_pvrtc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),
etc1: this._gl.getExtension("WEBGL_compressed_texture_etc1") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"),
etc2: this._gl.getExtension("WEBGL_compressed_texture_etc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc") || this._gl.getExtension("WEBGL_compressed_texture_es3_0"),
textureAnisotropicFilterExtension:
this._gl.getExtension("EXT_texture_filter_anisotropic") || this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"),
uintIndices: this._webGLVersion > 1 || null !== this._gl.getExtension("OES_element_index_uint"),
fragmentDepthSupported: this._webGLVersion > 1 || null !== this._gl.getExtension("EXT_frag_depth"),
highPrecisionShaderSupported: !1,
timerQuery: this._gl.getExtension("EXT_disjoint_timer_query_webgl2") || this._gl.getExtension("EXT_disjoint_timer_query"),
canUseTimestampForTimerQuery: !1,
drawBuffersExtension: !1,
maxMSAASamples: 1,
colorBufferFloat: this._webGLVersion > 1 && this._gl.getExtension("EXT_color_buffer_float"),
textureFloat: !!(this._webGLVersion > 1 || this._gl.getExtension("OES_texture_float")),
textureHalfFloat: !!(this._webGLVersion > 1 || this._gl.getExtension("OES_texture_half_float")),
textureHalfFloatRender: !1,
textureFloatLinearFiltering: !1,
textureFloatRender: !1,
textureHalfFloatLinearFiltering: !1,
vertexArrayObject: !1,
instancedArrays: !1,
textureLOD: !!(this._webGLVersion > 1 || this._gl.getExtension("EXT_shader_texture_lod")),
blendMinMax: !1,
multiview: this._gl.getExtension("OVR_multiview2"),
oculusMultiview: this._gl.getExtension("OCULUS_multiview"),
depthTextureExtension: !1,
}),
(this._glVersion = this._gl.getParameter(this._gl.VERSION));
var e = this._gl.getExtension("WEBGL_debug_renderer_info");
if (
(null != e && ((this._glRenderer = this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL)), (this._glVendor = this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL))),
this._glVendor || (this._glVendor = "Unknown vendor"),
this._glRenderer || (this._glRenderer = "Unknown renderer"),
(this._gl.HALF_FLOAT_OES = 36193),
34842 !== this._gl.RGBA16F && (this._gl.RGBA16F = 34842),
34836 !== this._gl.RGBA32F && (this._gl.RGBA32F = 34836),
35056 !== this._gl.DEPTH24_STENCIL8 && (this._gl.DEPTH24_STENCIL8 = 35056),
this._caps.timerQuery &&
(1 === this._webGLVersion && (this._gl.getQuery = this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),
(this._caps.canUseTimestampForTimerQuery = this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT, this._caps.timerQuery.QUERY_COUNTER_BITS_EXT) > 0)),
(this._caps.maxAnisotropy = this._caps.textureAnisotropicFilterExtension ? this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0),
(this._caps.textureFloatLinearFiltering = !(!this._caps.textureFloat || !this._gl.getExtension("OES_texture_float_linear"))),
(this._caps.textureFloatRender = !(!this._caps.textureFloat || !this._canRenderToFloatFramebuffer())),
(this._caps.textureHalfFloatLinearFiltering = !!(this._webGLVersion > 1 || (this._caps.textureHalfFloat && this._gl.getExtension("OES_texture_half_float_linear")))),
this._webGLVersion > 1 && (this._gl.HALF_FLOAT_OES = 5131),
(this._caps.textureHalfFloatRender = this._caps.textureHalfFloat && this._canRenderToHalfFloatFramebuffer()),
this._webGLVersion > 1)
)
(this._caps.drawBuffersExtension = !0), (this._caps.maxMSAASamples = this._gl.getParameter(this._gl.MAX_SAMPLES));
else {
var t = this._gl.getExtension("WEBGL_draw_buffers");
if (null !== t) {
(this._caps.drawBuffersExtension = !0), (this._gl.drawBuffers = t.drawBuffersWEBGL.bind(t)), (this._gl.DRAW_FRAMEBUFFER = this._gl.FRAMEBUFFER);
for (var n = 0; n < 16; n++) this._gl["COLOR_ATTACHMENT" + n + "_WEBGL"] = t["COLOR_ATTACHMENT" + n + "_WEBGL"];
}
}
if (this._webGLVersion > 1) this._caps.depthTextureExtension = !0;
else {
var i = this._gl.getExtension("WEBGL_depth_texture");
null != i && ((this._caps.depthTextureExtension = !0), (this._gl.UNSIGNED_INT_24_8 = i.UNSIGNED_INT_24_8_WEBGL));
}
if (this.disableVertexArrayObjects) this._caps.vertexArrayObject = !1;
else if (this._webGLVersion > 1) this._caps.vertexArrayObject = !0;
else {
var r = this._gl.getExtension("OES_vertex_array_object");
null != r &&
((this._caps.vertexArrayObject = !0),
(this._gl.createVertexArray = r.createVertexArrayOES.bind(r)),
(this._gl.bindVertexArray = r.bindVertexArrayOES.bind(r)),
(this._gl.deleteVertexArray = r.deleteVertexArrayOES.bind(r)));
}
if (this._webGLVersion > 1) this._caps.instancedArrays = !0;
else {
var o = this._gl.getExtension("ANGLE_instanced_arrays");
null != o
? ((this._caps.instancedArrays = !0),
(this._gl.drawArraysInstanced = o.drawArraysInstancedANGLE.bind(o)),
(this._gl.drawElementsInstanced = o.drawElementsInstancedANGLE.bind(o)),
(this._gl.vertexAttribDivisor = o.vertexAttribDivisorANGLE.bind(o)))
: (this._caps.instancedArrays = !1);
}
if (
(this._caps.astc && this.texturesSupported.push("-astc.ktx"),
this._caps.s3tc && this.texturesSupported.push("-dxt.ktx"),
this._caps.pvrtc && this.texturesSupported.push("-pvrtc.ktx"),
this._caps.etc2 && this.texturesSupported.push("-etc2.ktx"),
this._caps.etc1 && this.texturesSupported.push("-etc1.ktx"),
this._gl.getShaderPrecisionFormat)
) {
var a = this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER, this._gl.HIGH_FLOAT),
s = this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER, this._gl.HIGH_FLOAT);
a && s && (this._caps.highPrecisionShaderSupported = 0 !== a.precision && 0 !== s.precision);
}
if (this._webGLVersion > 1) this._caps.blendMinMax = !0;
else {
var c = this._gl.getExtension("EXT_blend_minmax");
null != c && ((this._caps.blendMinMax = !0), (this._gl.MAX = c.MAX_EXT), (this._gl.MIN = c.MIN_EXT));
}
(this._depthCullingState.depthTest = !0), (this._depthCullingState.depthFunc = this._gl.LEQUAL), (this._depthCullingState.depthMask = !0), (this._maxSimultaneousTextures = this._caps.maxCombinedTexturesImageUnits);
for (var l = 0; l < this._maxSimultaneousTextures; l++) this._nextFreeTextureSlots.push(l);
}),
Object.defineProperty(e.prototype, "webGLVersion", {
get: function () {
return this._webGLVersion;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "ThinEngine";
}),
Object.defineProperty(e.prototype, "isStencilEnable", {
get: function () {
return this._isStencilEnable;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._prepareWorkingCanvas = function () {
if (!this._workingCanvas) {
this._workingCanvas = g.a.CreateCanvas(1, 1);
var e = this._workingCanvas.getContext("2d");
e && (this._workingContext = e);
}
}),
(e.prototype.resetTextureCache = function () {
for (var e in this._boundTexturesCache) this._boundTexturesCache.hasOwnProperty(e) && (this._boundTexturesCache[e] = null);
this._currentTextureChannel = -1;
}),
(e.prototype.getGlInfo = function () {
return { vendor: this._glVendor, renderer: this._glRenderer, version: this._glVersion };
}),
(e.prototype.setHardwareScalingLevel = function (e) {
(this._hardwareScalingLevel = e), this.resize();
}),
(e.prototype.getHardwareScalingLevel = function () {
return this._hardwareScalingLevel;
}),
(e.prototype.getLoadedTexturesCache = function () {
return this._internalTexturesCache;
}),
(e.prototype.getCaps = function () {
return this._caps;
}),
(e.prototype.stopRenderLoop = function (e) {
if (e) {
var t = this._activeRenderLoops.indexOf(e);
t >= 0 && this._activeRenderLoops.splice(t, 1);
} else this._activeRenderLoops = [];
}),
(e.prototype._renderLoop = function () {
if (!this._contextWasLost) {
var e = !0;
if ((!this.renderEvenInBackground && this._windowIsBackground && (e = !1), e)) {
this.beginFrame();
for (var t = 0; t < this._activeRenderLoops.length; t++) {
(0, this._activeRenderLoops[t])();
}
this.endFrame();
}
}
this._activeRenderLoops.length > 0 ? (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow())) : (this._renderingQueueLaunched = !1);
}),
(e.prototype.getRenderingCanvas = function () {
return this._renderingCanvas;
}),
(e.prototype.getHostWindow = function () {
return d.a.IsWindowObjectExist() ? (this._renderingCanvas && this._renderingCanvas.ownerDocument && this._renderingCanvas.ownerDocument.defaultView ? this._renderingCanvas.ownerDocument.defaultView : window) : null;
}),
(e.prototype.getRenderWidth = function (e) {
return (
void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._framebufferDimensionsObject ? this._framebufferDimensionsObject.framebufferWidth : this._gl.drawingBufferWidth
);
}),
(e.prototype.getRenderHeight = function (e) {
return (
void 0 === e && (e = !1),
!e && this._currentRenderTarget ? this._currentRenderTarget.height : this._framebufferDimensionsObject ? this._framebufferDimensionsObject.framebufferHeight : this._gl.drawingBufferHeight
);
}),
(e.prototype._queueNewFrame = function (t, n) {
return e.QueueNewFrame(t, n);
}),
(e.prototype.runRenderLoop = function (e) {
-1 === this._activeRenderLoops.indexOf(e) &&
(this._activeRenderLoops.push(e),
this._renderingQueueLaunched ||
((this._renderingQueueLaunched = !0), (this._boundRenderFunction = this._renderLoop.bind(this)), (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow()))));
}),
(e.prototype.clear = function (e, t, n, i) {
void 0 === i && (i = !1), this.applyStates();
var r = 0;
t && e && (this._gl.clearColor(e.r, e.g, e.b, void 0 !== e.a ? e.a : 1), (r |= this._gl.COLOR_BUFFER_BIT)),
n && (this.useReverseDepthBuffer ? ((this._depthCullingState.depthFunc = this._gl.GREATER), this._gl.clearDepth(0)) : this._gl.clearDepth(1), (r |= this._gl.DEPTH_BUFFER_BIT)),
i && (this._gl.clearStencil(0), (r |= this._gl.STENCIL_BUFFER_BIT)),
this._gl.clear(r);
}),
(e.prototype._viewport = function (e, t, n, i) {
(e === this._viewportCached.x && t === this._viewportCached.y && n === this._viewportCached.z && i === this._viewportCached.w) ||
((this._viewportCached.x = e), (this._viewportCached.y = t), (this._viewportCached.z = n), (this._viewportCached.w = i), this._gl.viewport(e, t, n, i));
}),
(e.prototype.setViewport = function (e, t, n) {
var i = t || this.getRenderWidth(),
r = n || this.getRenderHeight(),
o = e.x || 0,
a = e.y || 0;
(this._cachedViewport = e), this._viewport(o * i, a * r, i * e.width, r * e.height);
}),
(e.prototype.beginFrame = function () {}),
(e.prototype.endFrame = function () {
this._badOS && this.flushFramebuffer();
}),
(e.prototype.resize = function () {
var e, t;
d.a.IsWindowObjectExist()
? ((e = this._renderingCanvas ? this._renderingCanvas.clientWidth : window.innerWidth), (t = this._renderingCanvas ? this._renderingCanvas.clientHeight : window.innerHeight))
: ((e = this._renderingCanvas ? this._renderingCanvas.width : 100), (t = this._renderingCanvas ? this._renderingCanvas.height : 100)),
this.setSize(e / this._hardwareScalingLevel, t / this._hardwareScalingLevel);
}),
(e.prototype.setSize = function (e, t) {
this._renderingCanvas && ((e |= 0), (t |= 0), (this._renderingCanvas.width === e && this._renderingCanvas.height === t) || ((this._renderingCanvas.width = e), (this._renderingCanvas.height = t)));
}),
(e.prototype.bindFramebuffer = function (e, t, n, i, r, o, a) {
void 0 === t && (t = 0),
void 0 === o && (o = 0),
void 0 === a && (a = 0),
this._currentRenderTarget && this.unBindFramebuffer(this._currentRenderTarget),
(this._currentRenderTarget = e),
this._bindUnboundFramebuffer(e._MSAAFramebuffer ? e._MSAAFramebuffer : e._framebuffer);
var s = this._gl;
e.is2DArray
? s.framebufferTextureLayer(s.FRAMEBUFFER, s.COLOR_ATTACHMENT0, e._webGLTexture, o, a)
: e.isCube && s.framebufferTexture2D(s.FRAMEBUFFER, s.COLOR_ATTACHMENT0, s.TEXTURE_CUBE_MAP_POSITIVE_X + t, e._webGLTexture, o);
var c = e._depthStencilTexture;
if (c) {
var l = c._generateStencilBuffer ? s.DEPTH_STENCIL_ATTACHMENT : s.DEPTH_ATTACHMENT;
e.is2DArray
? s.framebufferTextureLayer(s.FRAMEBUFFER, l, c._webGLTexture, o, a)
: e.isCube
? s.framebufferTexture2D(s.FRAMEBUFFER, l, s.TEXTURE_CUBE_MAP_POSITIVE_X + t, c._webGLTexture, o)
: s.framebufferTexture2D(s.FRAMEBUFFER, l, s.TEXTURE_2D, c._webGLTexture, o);
}
this._cachedViewport && !r ? this.setViewport(this._cachedViewport, n, i) : (n || ((n = e.width), o && (n /= Math.pow(2, o))), i || ((i = e.height), o && (i /= Math.pow(2, o))), this._viewport(0, 0, n, i)),
this.wipeCaches();
}),
(e.prototype._bindUnboundFramebuffer = function (e) {
this._currentFramebuffer !== e && (this._gl.bindFramebuffer(this._gl.FRAMEBUFFER, e), (this._currentFramebuffer = e));
}),
(e.prototype.unBindFramebuffer = function (e, t, n) {
void 0 === t && (t = !1), (this._currentRenderTarget = null);
var i = this._gl;
e._MSAAFramebuffer &&
(i.bindFramebuffer(i.READ_FRAMEBUFFER, e._MSAAFramebuffer),
i.bindFramebuffer(i.DRAW_FRAMEBUFFER, e._framebuffer),
i.blitFramebuffer(0, 0, e.width, e.height, 0, 0, e.width, e.height, i.COLOR_BUFFER_BIT, i.NEAREST)),
!e.generateMipMaps || t || e.isCube || (this._bindTextureDirectly(i.TEXTURE_2D, e, !0), i.generateMipmap(i.TEXTURE_2D), this._bindTextureDirectly(i.TEXTURE_2D, null)),
n && (e._MSAAFramebuffer && this._bindUnboundFramebuffer(e._framebuffer), n()),
this._bindUnboundFramebuffer(null);
}),
(e.prototype.flushFramebuffer = function () {
this._gl.flush();
}),
(e.prototype.restoreDefaultFramebuffer = function () {
this._currentRenderTarget ? this.unBindFramebuffer(this._currentRenderTarget) : this._bindUnboundFramebuffer(null), this._cachedViewport && this.setViewport(this._cachedViewport), this.wipeCaches();
}),
(e.prototype._resetVertexBufferBinding = function () {
this.bindArrayBuffer(null), (this._cachedVertexBuffers = null);
}),
(e.prototype.createVertexBuffer = function (e) {
return this._createVertexBuffer(e, this._gl.STATIC_DRAW);
}),
(e.prototype._createVertexBuffer = function (e, t) {
var n = this._gl.createBuffer();
if (!n) throw new Error("Unable to create vertex buffer");
var i = new f.a(n);
return (
this.bindArrayBuffer(i),
e instanceof Array ? this._gl.bufferData(this._gl.ARRAY_BUFFER, new Float32Array(e), this._gl.STATIC_DRAW) : this._gl.bufferData(this._gl.ARRAY_BUFFER, e, this._gl.STATIC_DRAW),
this._resetVertexBufferBinding(),
(i.references = 1),
i
);
}),
(e.prototype.createDynamicVertexBuffer = function (e) {
return this._createVertexBuffer(e, this._gl.DYNAMIC_DRAW);
}),
(e.prototype._resetIndexBufferBinding = function () {
this.bindIndexBuffer(null), (this._cachedIndexBuffer = null);
}),
(e.prototype.createIndexBuffer = function (e, t) {
var n = this._gl.createBuffer(),
i = new f.a(n);
if (!n) throw new Error("Unable to create index buffer");
this.bindIndexBuffer(i);
var r = this._normalizeIndexData(e);
return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, r, t ? this._gl.DYNAMIC_DRAW : this._gl.STATIC_DRAW), this._resetIndexBufferBinding(), (i.references = 1), (i.is32Bits = 4 === r.BYTES_PER_ELEMENT), i;
}),
(e.prototype._normalizeIndexData = function (e) {
if (e instanceof Uint16Array) return e;
if (this._caps.uintIndices) {
if (e instanceof Uint32Array) return e;
for (var t = 0; t < e.length; t++) if (e[t] >= 65535) return new Uint32Array(e);
return new Uint16Array(e);
}
return new Uint16Array(e);
}),
(e.prototype.bindArrayBuffer = function (e) {
this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.bindBuffer(e, this._gl.ARRAY_BUFFER);
}),
(e.prototype.bindUniformBlock = function (e, t, n) {
var i = e.program,
r = this._gl.getUniformBlockIndex(i, t);
this._gl.uniformBlockBinding(i, r, n);
}),
(e.prototype.bindIndexBuffer = function (e) {
this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.bindBuffer(e, this._gl.ELEMENT_ARRAY_BUFFER);
}),
(e.prototype.bindBuffer = function (e, t) {
(this._vaoRecordInProgress || this._currentBoundBuffer[t] !== e) && (this._gl.bindBuffer(t, e ? e.underlyingResource : null), (this._currentBoundBuffer[t] = e));
}),
(e.prototype.updateArrayBuffer = function (e) {
this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, e);
}),
(e.prototype._vertexAttribPointer = function (e, t, n, i, r, o, a) {
var s = this._currentBufferPointers[t],
c = !1;
s.active
? (s.buffer !== e && ((s.buffer = e), (c = !0)),
s.size !== n && ((s.size = n), (c = !0)),
s.type !== i && ((s.type = i), (c = !0)),
s.normalized !== r && ((s.normalized = r), (c = !0)),
s.stride !== o && ((s.stride = o), (c = !0)),
s.offset !== a && ((s.offset = a), (c = !0)))
: ((c = !0), (s.active = !0), (s.index = t), (s.size = n), (s.type = i), (s.normalized = r), (s.stride = o), (s.offset = a), (s.buffer = e)),
(c || this._vaoRecordInProgress) && (this.bindArrayBuffer(e), this._gl.vertexAttribPointer(t, n, i, r, o, a));
}),
(e.prototype._bindIndexBufferWithCache = function (e) {
null != e && this._cachedIndexBuffer !== e && ((this._cachedIndexBuffer = e), this.bindIndexBuffer(e), (this._uintIndicesCurrentlySet = e.is32Bits));
}),
(e.prototype._bindVertexBuffersAttributes = function (e, t) {
var n = t.getAttributesNames();
this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.unbindAllAttributes();
for (var i = 0; i < n.length; i++) {
var r = t.getAttributeLocation(i);
if (r >= 0) {
var o = e[n[i]];
if (!o) continue;
this._gl.enableVertexAttribArray(r), this._vaoRecordInProgress || (this._vertexAttribArraysEnabled[r] = !0);
var a = o.getBuffer();
a &&
(this._vertexAttribPointer(a, r, o.getSize(), o.type, o.normalized, o.byteStride, o.byteOffset),
o.getIsInstanced() && (this._gl.vertexAttribDivisor(r, o.getInstanceDivisor()), this._vaoRecordInProgress || (this._currentInstanceLocations.push(r), this._currentInstanceBuffers.push(a))));
}
}
}),
(e.prototype.recordVertexArrayObject = function (e, t, n) {
var i = this._gl.createVertexArray();
return (
(this._vaoRecordInProgress = !0),
this._gl.bindVertexArray(i),
(this._mustWipeVertexAttributes = !0),
this._bindVertexBuffersAttributes(e, n),
this.bindIndexBuffer(t),
(this._vaoRecordInProgress = !1),
this._gl.bindVertexArray(null),
i
);
}),
(e.prototype.bindVertexArrayObject = function (e, t) {
this._cachedVertexArrayObject !== e &&
((this._cachedVertexArrayObject = e),
this._gl.bindVertexArray(e),
(this._cachedVertexBuffers = null),
(this._cachedIndexBuffer = null),
(this._uintIndicesCurrentlySet = null != t && t.is32Bits),
(this._mustWipeVertexAttributes = !0));
}),
(e.prototype.bindBuffersDirectly = function (e, t, n, i, r) {
if (this._cachedVertexBuffers !== e || this._cachedEffectForVertexBuffers !== r) {
(this._cachedVertexBuffers = e), (this._cachedEffectForVertexBuffers = r);
var o = r.getAttributesCount();
this._unbindVertexArrayObject(), this.unbindAllAttributes();
for (var a = 0, s = 0; s < o; s++)
if (s < n.length) {
var c = r.getAttributeLocation(s);
c >= 0 && (this._gl.enableVertexAttribArray(c), (this._vertexAttribArraysEnabled[c] = !0), this._vertexAttribPointer(e, c, n[s], this._gl.FLOAT, !1, i, a)), (a += 4 * n[s]);
}
}
this._bindIndexBufferWithCache(t);
}),
(e.prototype._unbindVertexArrayObject = function () {
this._cachedVertexArrayObject && ((this._cachedVertexArrayObject = null), this._gl.bindVertexArray(null));
}),
(e.prototype.bindBuffers = function (e, t, n) {
(this._cachedVertexBuffers === e && this._cachedEffectForVertexBuffers === n) || ((this._cachedVertexBuffers = e), (this._cachedEffectForVertexBuffers = n), this._bindVertexBuffersAttributes(e, n)),
this._bindIndexBufferWithCache(t);
}),
(e.prototype.unbindInstanceAttributes = function () {
for (var e, t = 0, n = this._currentInstanceLocations.length; t < n; t++) {
var i = this._currentInstanceBuffers[t];
e != i && i.references && ((e = i), this.bindArrayBuffer(i));
var r = this._currentInstanceLocations[t];
this._gl.vertexAttribDivisor(r, 0);
}
(this._currentInstanceBuffers.length = 0), (this._currentInstanceLocations.length = 0);
}),
(e.prototype.releaseVertexArrayObject = function (e) {
this._gl.deleteVertexArray(e);
}),
(e.prototype._releaseBuffer = function (e) {
return e.references--, 0 === e.references && (this._deleteBuffer(e), !0);
}),
(e.prototype._deleteBuffer = function (e) {
this._gl.deleteBuffer(e.underlyingResource);
}),
(e.prototype.updateAndBindInstancesBuffer = function (e, t, n) {
if ((this.bindArrayBuffer(e), t && this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, t), void 0 !== n[0].index)) this.bindInstancesBuffer(e, n, !0);
else
for (var i = 0; i < 4; i++) {
var r = n[i];
this._vertexAttribArraysEnabled[r] || (this._gl.enableVertexAttribArray(r), (this._vertexAttribArraysEnabled[r] = !0)),
this._vertexAttribPointer(e, r, 4, this._gl.FLOAT, !1, 64, 16 * i),
this._gl.vertexAttribDivisor(r, 1),
this._currentInstanceLocations.push(r),
this._currentInstanceBuffers.push(e);
}
}),
(e.prototype.bindInstancesBuffer = function (e, t, n) {
void 0 === n && (n = !0), this.bindArrayBuffer(e);
var i = 0;
if (n)
for (var r = 0; r < t.length; r++) {
i += 4 * (o = t[r]).attributeSize;
}
for (r = 0; r < t.length; r++) {
var o;
void 0 === (o = t[r]).index && (o.index = this._currentEffect.getAttributeLocationByName(o.attributeName)),
this._vertexAttribArraysEnabled[o.index] || (this._gl.enableVertexAttribArray(o.index), (this._vertexAttribArraysEnabled[o.index] = !0)),
this._vertexAttribPointer(e, o.index, o.attributeSize, o.attributeType || this._gl.FLOAT, o.normalized || !1, i, o.offset),
this._gl.vertexAttribDivisor(o.index, void 0 === o.divisor ? 1 : o.divisor),
this._currentInstanceLocations.push(o.index),
this._currentInstanceBuffers.push(e);
}
}),
(e.prototype.disableInstanceAttributeByName = function (e) {
if (this._currentEffect) {
var t = this._currentEffect.getAttributeLocationByName(e);
this.disableInstanceAttribute(t);
}
}),
(e.prototype.disableInstanceAttribute = function (e) {
for (var t, n = !1; -1 !== (t = this._currentInstanceLocations.indexOf(e)); )
this._currentInstanceLocations.splice(t, 1), this._currentInstanceBuffers.splice(t, 1), (n = !0), (t = this._currentInstanceLocations.indexOf(e));
n && (this._gl.vertexAttribDivisor(e, 0), this.disableAttributeByIndex(e));
}),
(e.prototype.disableAttributeByIndex = function (e) {
this._gl.disableVertexAttribArray(e), (this._vertexAttribArraysEnabled[e] = !1), (this._currentBufferPointers[e].active = !1);
}),
(e.prototype.draw = function (e, t, n, i) {
this.drawElementsType(e ? 0 : 1, t, n, i);
}),
(e.prototype.drawPointClouds = function (e, t, n) {
this.drawArraysType(2, e, t, n);
}),
(e.prototype.drawUnIndexed = function (e, t, n, i) {
this.drawArraysType(e ? 0 : 1, t, n, i);
}),
(e.prototype.drawElementsType = function (e, t, n, i) {
this.applyStates(), this._reportDrawCall();
var r = this._drawMode(e),
o = this._uintIndicesCurrentlySet ? this._gl.UNSIGNED_INT : this._gl.UNSIGNED_SHORT,
a = this._uintIndicesCurrentlySet ? 4 : 2;
i ? this._gl.drawElementsInstanced(r, n, o, t * a, i) : this._gl.drawElements(r, n, o, t * a);
}),
(e.prototype.drawArraysType = function (e, t, n, i) {
this.applyStates(), this._reportDrawCall();
var r = this._drawMode(e);
i ? this._gl.drawArraysInstanced(r, t, n, i) : this._gl.drawArrays(r, t, n);
}),
(e.prototype._drawMode = function (e) {
switch (e) {
case 0:
return this._gl.TRIANGLES;
case 2:
return this._gl.POINTS;
case 1:
return this._gl.LINES;
case 3:
return this._gl.POINTS;
case 4:
return this._gl.LINES;
case 5:
return this._gl.LINE_LOOP;
case 6:
return this._gl.LINE_STRIP;
case 7:
return this._gl.TRIANGLE_STRIP;
case 8:
return this._gl.TRIANGLE_FAN;
default:
return this._gl.TRIANGLES;
}
}),
(e.prototype._reportDrawCall = function () {}),
(e.prototype._releaseEffect = function (e) {
this._compiledEffects[e._key] && (delete this._compiledEffects[e._key], this._deletePipelineContext(e.getPipelineContext()));
}),
(e.prototype._deletePipelineContext = function (e) {
var t = e;
t && t.program && ((t.program.__SPECTOR_rebuildProgram = null), this._gl.deleteProgram(t.program));
}),
(e.prototype.createEffect = function (e, t, n, i, o, a, s, c, l) {
var u = (e.vertexElement || e.vertex || e) + "+" + (e.fragmentElement || e.fragment || e) + "@" + (o || t.defines);
if (this._compiledEffects[u]) {
var h = this._compiledEffects[u];
return s && h.isReady() && s(h), h;
}
var d = new r.a(e, t, n, i, this, o, a, s, c, l);
return (d._key = u), (this._compiledEffects[u] = d), d;
}),
(e._ConcatenateShader = function (e, t, n) {
return void 0 === n && (n = ""), n + (t ? t + "\n" : "") + e;
}),
(e.prototype._compileShader = function (t, n, i, r) {
return this._compileRawShader(e._ConcatenateShader(t, i, r), n);
}),
(e.prototype._compileRawShader = function (e, t) {
var n = this._gl,
i = n.createShader("vertex" === t ? n.VERTEX_SHADER : n.FRAGMENT_SHADER);
if (!i) throw new Error("Something went wrong while compile the shader.");
return n.shaderSource(i, e), n.compileShader(i), i;
}),
(e.prototype.createRawShaderProgram = function (e, t, n, i, r) {
void 0 === r && (r = null), (i = i || this._gl);
var o = this._compileRawShader(t, "vertex"),
a = this._compileRawShader(n, "fragment");
return this._createShaderProgram(e, o, a, i, r);
}),
(e.prototype.createShaderProgram = function (e, t, n, i, r, o) {
void 0 === o && (o = null), (r = r || this._gl);
var a = this._webGLVersion > 1 ? "#version 300 es\n#define WEBGL2 \n" : "",
s = this._compileShader(t, "vertex", i, a),
c = this._compileShader(n, "fragment", i, a);
return this._createShaderProgram(e, s, c, r, o);
}),
(e.prototype.createPipelineContext = function () {
var e = new m.a();
return (e.engine = this), this._caps.parallelShaderCompile && (e.isParallelCompiled = !0), e;
}),
(e.prototype._createShaderProgram = function (e, t, n, i, r) {
void 0 === r && (r = null);
var o = i.createProgram();
if (((e.program = o), !o)) throw new Error("Unable to create program");
return i.attachShader(o, t), i.attachShader(o, n), i.linkProgram(o), (e.context = i), (e.vertexShader = t), (e.fragmentShader = n), e.isParallelCompiled || this._finalizePipelineContext(e), o;
}),
(e.prototype._finalizePipelineContext = function (e) {
var t = e.context,
n = e.vertexShader,
i = e.fragmentShader,
r = e.program;
if (!t.getProgramParameter(r, t.LINK_STATUS)) {
var o, a;
if (!this._gl.getShaderParameter(n, this._gl.COMPILE_STATUS)) if ((o = this._gl.getShaderInfoLog(n))) throw ((e.vertexCompilationError = o), new Error("VERTEX SHADER " + o));
if (!this._gl.getShaderParameter(i, this._gl.COMPILE_STATUS)) if ((o = this._gl.getShaderInfoLog(i))) throw ((e.fragmentCompilationError = o), new Error("FRAGMENT SHADER " + o));
if ((a = t.getProgramInfoLog(r))) throw ((e.programLinkError = a), new Error(a));
}
if (this.validateShaderPrograms && (t.validateProgram(r), !t.getProgramParameter(r, t.VALIDATE_STATUS) && (a = t.getProgramInfoLog(r)))) throw ((e.programValidationError = a), new Error(a));
t.deleteShader(n), t.deleteShader(i), (e.vertexShader = void 0), (e.fragmentShader = void 0), e.onCompiled && (e.onCompiled(), (e.onCompiled = void 0));
}),
(e.prototype._preparePipelineContext = function (e, t, n, i, r, o, a) {
var s = e;
(s.program = i ? this.createRawShaderProgram(s, t, n, void 0, a) : this.createShaderProgram(s, t, n, o, void 0, a)), (s.program.__SPECTOR_rebuildProgram = r);
}),
(e.prototype._isRenderingStateCompiled = function (e) {
var t = e;
return !!this._gl.getProgramParameter(t.program, this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR) && (this._finalizePipelineContext(t), !0);
}),
(e.prototype._executeWhenRenderingStateIsCompiled = function (e, t) {
var n = e;
if (n.isParallelCompiled) {
var i = n.onCompiled;
n.onCompiled = i
? function () {
i(), t();
}
: t;
} else t();
}),
(e.prototype.getUniforms = function (e, t) {
for (var n = new Array(), i = e, r = 0; r < t.length; r++) n.push(this._gl.getUniformLocation(i.program, t[r]));
return n;
}),
(e.prototype.getAttributes = function (e, t) {
for (var n = [], i = e, r = 0; r < t.length; r++)
try {
n.push(this._gl.getAttribLocation(i.program, t[r]));
} catch (e) {
n.push(-1);
}
return n;
}),
(e.prototype.enableEffect = function (e) {
e && e !== this._currentEffect && (this.bindSamplers(e), (this._currentEffect = e), e.onBind && e.onBind(e), e._onBindObservable && e._onBindObservable.notifyObservers(e));
}),
(e.prototype.setInt = function (e, t) {
e && this._gl.uniform1i(e, t);
}),
(e.prototype.setIntArray = function (e, t) {
e && this._gl.uniform1iv(e, t);
}),
(e.prototype.setIntArray2 = function (e, t) {
e && t.length % 2 == 0 && this._gl.uniform2iv(e, t);
}),
(e.prototype.setIntArray3 = function (e, t) {
e && t.length % 3 == 0 && this._gl.uniform3iv(e, t);
}),
(e.prototype.setIntArray4 = function (e, t) {
e && t.length % 4 == 0 && this._gl.uniform4iv(e, t);
}),
(e.prototype.setArray = function (e, t) {
e && this._gl.uniform1fv(e, t);
}),
(e.prototype.setArray2 = function (e, t) {
e && t.length % 2 == 0 && this._gl.uniform2fv(e, t);
}),
(e.prototype.setArray3 = function (e, t) {
e && t.length % 3 == 0 && this._gl.uniform3fv(e, t);
}),
(e.prototype.setArray4 = function (e, t) {
e && t.length % 4 == 0 && this._gl.uniform4fv(e, t);
}),
(e.prototype.setMatrices = function (e, t) {
e && this._gl.uniformMatrix4fv(e, !1, t);
}),
(e.prototype.setMatrix3x3 = function (e, t) {
e && this._gl.uniformMatrix3fv(e, !1, t);
}),
(e.prototype.setMatrix2x2 = function (e, t) {
e && this._gl.uniformMatrix2fv(e, !1, t);
}),
(e.prototype.setFloat = function (e, t) {
e && this._gl.uniform1f(e, t);
}),
(e.prototype.setFloat2 = function (e, t, n) {
e && this._gl.uniform2f(e, t, n);
}),
(e.prototype.setFloat3 = function (e, t, n, i) {
e && this._gl.uniform3f(e, t, n, i);
}),
(e.prototype.setFloat4 = function (e, t, n, i, r) {
e && this._gl.uniform4f(e, t, n, i, r);
}),
(e.prototype.applyStates = function () {
if ((this._depthCullingState.apply(this._gl), this._stencilState.apply(this._gl), this._alphaState.apply(this._gl), this._colorWriteChanged)) {
this._colorWriteChanged = !1;
var e = this._colorWrite;
this._gl.colorMask(e, e, e, e);
}
}),
(e.prototype.setColorWrite = function (e) {
e !== this._colorWrite && ((this._colorWriteChanged = !0), (this._colorWrite = e));
}),
(e.prototype.getColorWrite = function () {
return this._colorWrite;
}),
Object.defineProperty(e.prototype, "depthCullingState", {
get: function () {
return this._depthCullingState;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "alphaState", {
get: function () {
return this._alphaState;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilState", {
get: function () {
return this._stencilState;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.clearInternalTexturesCache = function () {
this._internalTexturesCache = [];
}),
(e.prototype.wipeCaches = function (e) {
(this.preventCacheWipeBetweenFrames && !e) ||
((this._currentEffect = null),
(this._viewportCached.x = 0),
(this._viewportCached.y = 0),
(this._viewportCached.z = 0),
(this._viewportCached.w = 0),
this._unbindVertexArrayObject(),
e &&
((this._currentProgram = null),
this.resetTextureCache(),
this._stencilState.reset(),
this._depthCullingState.reset(),
(this._depthCullingState.depthFunc = this._gl.LEQUAL),
this._alphaState.reset(),
(this._alphaMode = 1),
(this._alphaEquation = 0),
(this._colorWrite = !0),
(this._colorWriteChanged = !0),
(this._unpackFlipYCached = null),
this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE),
this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0),
(this._mustWipeVertexAttributes = !0),
this.unbindAllAttributes()),
this._resetVertexBufferBinding(),
(this._cachedIndexBuffer = null),
(this._cachedEffectForVertexBuffers = null),
this.bindIndexBuffer(null));
}),
(e.prototype._getSamplingParameters = function (e, t) {
var n = this._gl,
i = n.NEAREST,
r = n.NEAREST;
switch (e) {
case 11:
(i = n.LINEAR), (r = t ? n.LINEAR_MIPMAP_NEAREST : n.LINEAR);
break;
case 3:
(i = n.LINEAR), (r = t ? n.LINEAR_MIPMAP_LINEAR : n.LINEAR);
break;
case 8:
(i = n.NEAREST), (r = t ? n.NEAREST_MIPMAP_LINEAR : n.NEAREST);
break;
case 4:
(i = n.NEAREST), (r = t ? n.NEAREST_MIPMAP_NEAREST : n.NEAREST);
break;
case 5:
(i = n.NEAREST), (r = t ? n.LINEAR_MIPMAP_NEAREST : n.LINEAR);
break;
case 6:
(i = n.NEAREST), (r = t ? n.LINEAR_MIPMAP_LINEAR : n.LINEAR);
break;
case 7:
(i = n.NEAREST), (r = n.LINEAR);
break;
case 1:
(i = n.NEAREST), (r = n.NEAREST);
break;
case 9:
(i = n.LINEAR), (r = t ? n.NEAREST_MIPMAP_NEAREST : n.NEAREST);
break;
case 10:
(i = n.LINEAR), (r = t ? n.NEAREST_MIPMAP_LINEAR : n.NEAREST);
break;
case 2:
(i = n.LINEAR), (r = n.LINEAR);
break;
case 12:
(i = n.LINEAR), (r = n.NEAREST);
}
return { min: r, mag: i };
}),
(e.prototype._createTexture = function () {
var e = this._gl.createTexture();
if (!e) throw new Error("Unable to create texture");
return e;
}),
(e.prototype.createTexture = function (t, n, r, o, a, s, c, l, h, d, p, f) {
var m = this;
void 0 === a && (a = 3), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === h && (h = null), void 0 === d && (d = null), void 0 === p && (p = null);
for (
var g = String(t),
b = "data:" === g.substr(0, 5),
_ = "blob:" === g.substr(0, 5),
v = b && -1 !== g.indexOf(";base64,"),
y = h || new u.a(this, u.b.Url),
C = g.lastIndexOf("."),
P = p || (C > -1 ? g.substring(C).toLowerCase() : ""),
x = null,
T = 0,
S = e._TextureLoaders;
T < S.length;
T++
) {
var O = S[T];
if (O.canLoad(P)) {
x = O;
break;
}
}
o && o._addPendingData(y), (y.url = g), (y.generateMipMaps = !n), (y.samplingMode = a), (y.invertY = r), this._doNotHandleContextLost || (y._buffer = l);
var E = null;
s && !h && (E = y.onLoadedObservable.add(s)), h || this._internalTexturesCache.push(y);
var M = function (e, t) {
o && o._removePendingData(y), E && y.onLoadedObservable.remove(E), i.a.UseFallbackTexture ? m.createTexture(i.a.FallbackTexture, n, y.invertY, o, a, null, c, l, y) : c && c(e || "Unknown error", t);
};
if (x) {
var A = function (e) {
x.loadData(e, y, function (e, t, n, i, r, s) {
s
? M("TextureLoader failed to load data")
: m._prepareWebGLTexture(
y,
o,
e,
t,
y.invertY,
!n,
i,
function () {
return r(), !1;
},
a
);
});
};
l
? l instanceof ArrayBuffer
? A(new Uint8Array(l))
: ArrayBuffer.isView(l)
? A(l)
: c && c("Unable to load: only ArrayBuffer or ArrayBufferView is supported", null)
: this._loadFile(
g,
function (e) {
return A(new Uint8Array(e));
},
void 0,
o ? o.offlineProvider : void 0,
!0,
function (e, t) {
M("Unable to load " + (e && e.responseURL, t));
}
);
} else {
var I = function (e) {
_ && !m._doNotHandleContextLost && (y._buffer = e),
m._prepareWebGLTexture(
y,
o,
e.width,
e.height,
y.invertY,
n,
!1,
function (t, n, i) {
var r = m._gl,
a = e.width === t && e.height === n,
s = d ? m._getInternalFormat(d) : ".jpg" === P ? r.RGB : r.RGBA;
if (a) return r.texImage2D(r.TEXTURE_2D, 0, s, s, r.UNSIGNED_BYTE, e), !1;
var c = m._caps.maxTextureSize;
if (e.width > c || e.height > c || !m._supportsHardwareTextureRescaling)
return (
m._prepareWorkingCanvas(),
!(!m._workingCanvas || !m._workingContext) &&
((m._workingCanvas.width = t),
(m._workingCanvas.height = n),
m._workingContext.drawImage(e, 0, 0, e.width, e.height, 0, 0, t, n),
r.texImage2D(r.TEXTURE_2D, 0, s, s, r.UNSIGNED_BYTE, m._workingCanvas),
(y.width = t),
(y.height = n),
!1)
);
var l = new u.a(m, u.b.Temp);
return (
m._bindTextureDirectly(r.TEXTURE_2D, l, !0),
r.texImage2D(r.TEXTURE_2D, 0, s, s, r.UNSIGNED_BYTE, e),
m._rescaleTexture(l, y, o, s, function () {
m._releaseTexture(l), m._bindTextureDirectly(r.TEXTURE_2D, y, !0), i();
}),
!0
);
},
a
);
};
!b || v
? l && (l.decoding || l.close)
? I(l)
: e._FileToolsLoadImage(g, I, M, o ? o.offlineProvider : null, f)
: "string" == typeof l || l instanceof ArrayBuffer || ArrayBuffer.isView(l) || l instanceof Blob
? e._FileToolsLoadImage(l, I, M, o ? o.offlineProvider : null, f)
: l && I(l);
}
return y;
}),
(e._FileToolsLoadImage = function (e, t, n, i, r) {
throw o.a.WarnImport("FileTools");
}),
(e.prototype._rescaleTexture = function (e, t, n, i, r) {}),
(e.prototype.createRawTexture = function (e, t, n, i, r, a, s, c, l) {
throw (void 0 === c && (c = null), void 0 === l && (l = 0), o.a.WarnImport("Engine.RawTexture"));
}),
(e.prototype.createRawCubeTexture = function (e, t, n, i, r, a, s, c) {
throw (void 0 === c && (c = null), o.a.WarnImport("Engine.RawTexture"));
}),
(e.prototype.createRawTexture3D = function (e, t, n, i, r, a, s, c, l, u) {
throw (void 0 === l && (l = null), void 0 === u && (u = 0), o.a.WarnImport("Engine.RawTexture"));
}),
(e.prototype.createRawTexture2DArray = function (e, t, n, i, r, a, s, c, l, u) {
throw (void 0 === l && (l = null), void 0 === u && (u = 0), o.a.WarnImport("Engine.RawTexture"));
}),
(e.prototype._unpackFlipY = function (e) {
this._unpackFlipYCached !== e && (this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL, e ? 1 : 0), this.enableUnpackFlipYCached && (this._unpackFlipYCached = e));
}),
(e.prototype._getUnpackAlignement = function () {
return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT);
}),
(e.prototype._getTextureTarget = function (e) {
return e.isCube ? this._gl.TEXTURE_CUBE_MAP : e.is3D ? this._gl.TEXTURE_3D : e.is2DArray || e.isMultiview ? this._gl.TEXTURE_2D_ARRAY : this._gl.TEXTURE_2D;
}),
(e.prototype.updateTextureSamplingMode = function (e, t, n) {
void 0 === n && (n = !1);
var i = this._getTextureTarget(t),
r = this._getSamplingParameters(e, t.generateMipMaps || n);
this._setTextureParameterInteger(i, this._gl.TEXTURE_MAG_FILTER, r.mag, t),
this._setTextureParameterInteger(i, this._gl.TEXTURE_MIN_FILTER, r.min),
n && ((t.generateMipMaps = !0), this._gl.generateMipmap(i)),
this._bindTextureDirectly(i, null),
(t.samplingMode = e);
}),
(e.prototype.updateTextureWrappingMode = function (e, t, n, i) {
void 0 === n && (n = null), void 0 === i && (i = null);
var r = this._getTextureTarget(e);
null !== t && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(t), e), (e._cachedWrapU = t)),
null !== n && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(n), e), (e._cachedWrapV = n)),
(e.is2DArray || e.is3D) && null !== i && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(i), e), (e._cachedWrapR = i)),
this._bindTextureDirectly(r, null);
}),
(e.prototype._setupDepthStencilTexture = function (e, t, n, i, r) {
var o = t.width || t,
a = t.height || t,
s = t.layers || 0;
(e.baseWidth = o),
(e.baseHeight = a),
(e.width = o),
(e.height = a),
(e.is2DArray = s > 0),
(e.depth = s),
(e.isReady = !0),
(e.samples = 1),
(e.generateMipMaps = !1),
(e._generateDepthBuffer = !0),
(e._generateStencilBuffer = n),
(e.samplingMode = i ? 2 : 1),
(e.type = 0),
(e._comparisonFunction = r);
var c = this._gl,
l = this._getTextureTarget(e),
u = this._getSamplingParameters(e.samplingMode, !1);
c.texParameteri(l, c.TEXTURE_MAG_FILTER, u.mag),
c.texParameteri(l, c.TEXTURE_MIN_FILTER, u.min),
c.texParameteri(l, c.TEXTURE_WRAP_S, c.CLAMP_TO_EDGE),
c.texParameteri(l, c.TEXTURE_WRAP_T, c.CLAMP_TO_EDGE),
0 === r
? (c.texParameteri(l, c.TEXTURE_COMPARE_FUNC, 515), c.texParameteri(l, c.TEXTURE_COMPARE_MODE, c.NONE))
: (c.texParameteri(l, c.TEXTURE_COMPARE_FUNC, r), c.texParameteri(l, c.TEXTURE_COMPARE_MODE, c.COMPARE_REF_TO_TEXTURE));
}),
(e.prototype._uploadCompressedDataToTextureDirectly = function (e, t, n, i, r, o, a) {
void 0 === o && (o = 0), void 0 === a && (a = 0);
var s = this._gl,
c = s.TEXTURE_2D;
e.isCube && (c = s.TEXTURE_CUBE_MAP_POSITIVE_X + o), this._gl.compressedTexImage2D(c, a, t, n, i, 0, r);
}),
(e.prototype._uploadDataToTextureDirectly = function (e, t, n, i, r, o) {
void 0 === n && (n = 0), void 0 === i && (i = 0), void 0 === o && (o = !1);
var a = this._gl,
s = this._getWebGLTextureType(e.type),
c = this._getInternalFormat(e.format),
l = void 0 === r ? this._getRGBABufferInternalSizedFormat(e.type, e.format) : this._getInternalFormat(r);
this._unpackFlipY(e.invertY);
var u = a.TEXTURE_2D;
e.isCube && (u = a.TEXTURE_CUBE_MAP_POSITIVE_X + n);
var h = Math.round(Math.log(e.width) * Math.LOG2E),
d = Math.round(Math.log(e.height) * Math.LOG2E),
p = o ? e.width : Math.pow(2, Math.max(h - i, 0)),
f = o ? e.height : Math.pow(2, Math.max(d - i, 0));
a.texImage2D(u, i, l, p, f, 0, c, s, t);
}),
(e.prototype.updateTextureData = function (e, t, n, i, r, o, a, s) {
void 0 === a && (a = 0), void 0 === s && (s = 0);
var c = this._gl,
l = this._getWebGLTextureType(e.type),
u = this._getInternalFormat(e.format);
this._unpackFlipY(e.invertY);
var h = c.TEXTURE_2D;
e.isCube && (h = c.TEXTURE_CUBE_MAP_POSITIVE_X + a), c.texSubImage2D(h, s, n, i, r, o, u, l, t);
}),
(e.prototype._uploadArrayBufferViewToTexture = function (e, t, n, i) {
void 0 === n && (n = 0), void 0 === i && (i = 0);
var r = this._gl,
o = e.isCube ? r.TEXTURE_CUBE_MAP : r.TEXTURE_2D;
this._bindTextureDirectly(o, e, !0), this._uploadDataToTextureDirectly(e, t, n, i), this._bindTextureDirectly(o, null, !0);
}),
(e.prototype._prepareWebGLTextureContinuation = function (e, t, n, i, r) {
var o = this._gl;
if (o) {
var a = this._getSamplingParameters(r, !n);
o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, a.mag),
o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, a.min),
n || i || o.generateMipmap(o.TEXTURE_2D),
this._bindTextureDirectly(o.TEXTURE_2D, null),
t && t._removePendingData(e),
e.onLoadedObservable.notifyObservers(e),
e.onLoadedObservable.clear();
}
}),
(e.prototype._prepareWebGLTexture = function (t, n, i, r, o, a, s, c, l) {
var u = this;
void 0 === l && (l = 3);
var h = this.getCaps().maxTextureSize,
d = Math.min(h, this.needPOTTextures ? e.GetExponentOfTwo(i, h) : i),
p = Math.min(h, this.needPOTTextures ? e.GetExponentOfTwo(r, h) : r),
f = this._gl;
f &&
(t._webGLTexture
? (this._bindTextureDirectly(f.TEXTURE_2D, t, !0),
this._unpackFlipY(void 0 === o || !!o),
(t.baseWidth = i),
(t.baseHeight = r),
(t.width = d),
(t.height = p),
(t.isReady = !0),
c(d, p, function () {
u._prepareWebGLTextureContinuation(t, n, a, s, l);
}) || this._prepareWebGLTextureContinuation(t, n, a, s, l))
: n && n._removePendingData(t));
}),
(e.prototype._setupFramebufferDepthAttachments = function (e, t, n, i, r) {
void 0 === r && (r = 1);
var o = this._gl;
if (e && t) return this._getDepthStencilBuffer(n, i, r, o.DEPTH_STENCIL, o.DEPTH24_STENCIL8, o.DEPTH_STENCIL_ATTACHMENT);
if (t) {
var a = o.DEPTH_COMPONENT16;
return this._webGLVersion > 1 && (a = o.DEPTH_COMPONENT32F), this._getDepthStencilBuffer(n, i, r, a, a, o.DEPTH_ATTACHMENT);
}
return e ? this._getDepthStencilBuffer(n, i, r, o.STENCIL_INDEX8, o.STENCIL_INDEX8, o.STENCIL_ATTACHMENT) : null;
}),
(e.prototype._releaseFramebufferObjects = function (e) {
var t = this._gl;
e._framebuffer && (t.deleteFramebuffer(e._framebuffer), (e._framebuffer = null)),
e._depthStencilBuffer && (t.deleteRenderbuffer(e._depthStencilBuffer), (e._depthStencilBuffer = null)),
e._MSAAFramebuffer && (t.deleteFramebuffer(e._MSAAFramebuffer), (e._MSAAFramebuffer = null)),
e._MSAARenderBuffer && (t.deleteRenderbuffer(e._MSAARenderBuffer), (e._MSAARenderBuffer = null));
}),
(e.prototype._releaseTexture = function (e) {
this._releaseFramebufferObjects(e), this._deleteTexture(e._webGLTexture), this.unbindAllTextures();
var t = this._internalTexturesCache.indexOf(e);
-1 !== t && this._internalTexturesCache.splice(t, 1),
e._lodTextureHigh && e._lodTextureHigh.dispose(),
e._lodTextureMid && e._lodTextureMid.dispose(),
e._lodTextureLow && e._lodTextureLow.dispose(),
e._irradianceTexture && e._irradianceTexture.dispose();
}),
(e.prototype._deleteTexture = function (e) {
this._gl.deleteTexture(e);
}),
(e.prototype._setProgram = function (e) {
this._currentProgram !== e && (this._gl.useProgram(e), (this._currentProgram = e));
}),
(e.prototype.bindSamplers = function (e) {
var t = e.getPipelineContext();
this._setProgram(t.program);
for (var n = e.getSamplers(), i = 0; i < n.length; i++) {
var r = e.getUniform(n[i]);
r && (this._boundUniforms[i] = r);
}
this._currentEffect = null;
}),
(e.prototype._activateCurrentTexture = function () {
this._currentTextureChannel !== this._activeChannel && (this._gl.activeTexture(this._gl.TEXTURE0 + this._activeChannel), (this._currentTextureChannel = this._activeChannel));
}),
(e.prototype._bindTextureDirectly = function (e, t, n, i) {
void 0 === n && (n = !1), void 0 === i && (i = !1);
var r = !1,
o = t && t._associatedChannel > -1;
return (
n && o && (this._activeChannel = t._associatedChannel),
this._boundTexturesCache[this._activeChannel] !== t || i
? (this._activateCurrentTexture(),
t && t.isMultiview ? this._gl.bindTexture(e, t ? t._colorTextureArray : null) : this._gl.bindTexture(e, t ? t._webGLTexture : null),
(this._boundTexturesCache[this._activeChannel] = t),
t && (t._associatedChannel = this._activeChannel))
: n && ((r = !0), this._activateCurrentTexture()),
o && !n && this._bindSamplerUniformToChannel(t._associatedChannel, this._activeChannel),
r
);
}),
(e.prototype._bindTexture = function (e, t) {
void 0 !== e && (t && (t._associatedChannel = e), (this._activeChannel = e), this._bindTextureDirectly(this._gl.TEXTURE_2D, t));
}),
(e.prototype.unbindAllTextures = function () {
for (var e = 0; e < this._maxSimultaneousTextures; e++)
(this._activeChannel = e),
this._bindTextureDirectly(this._gl.TEXTURE_2D, null),
this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null),
this.webGLVersion > 1 && (this._bindTextureDirectly(this._gl.TEXTURE_3D, null), this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, null));
}),
(e.prototype.setTexture = function (e, t, n) {
void 0 !== e && (t && (this._boundUniforms[e] = t), this._setTexture(e, n));
}),
(e.prototype._bindSamplerUniformToChannel = function (e, t) {
var n = this._boundUniforms[e];
n && n._currentState !== t && (this._gl.uniform1i(n, t), (n._currentState = t));
}),
(e.prototype._getTextureWrapMode = function (e) {
switch (e) {
case 1:
return this._gl.REPEAT;
case 0:
return this._gl.CLAMP_TO_EDGE;
case 2:
return this._gl.MIRRORED_REPEAT;
}
return this._gl.REPEAT;
}),
(e.prototype._setTexture = function (e, t, n, i) {
if ((void 0 === n && (n = !1), void 0 === i && (i = !1), !t))
return (
null != this._boundTexturesCache[e] &&
((this._activeChannel = e),
this._bindTextureDirectly(this._gl.TEXTURE_2D, null),
this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null),
this.webGLVersion > 1 && (this._bindTextureDirectly(this._gl.TEXTURE_3D, null), this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, null))),
!1
);
if (t.video) (this._activeChannel = e), t.update();
else if (4 === t.delayLoadState) return t.delayLoad(), !1;
var r;
(r = i ? t.depthStencilTexture : t.isReady() ? t.getInternalTexture() : t.isCube ? this.emptyCubeTexture : t.is3D ? this.emptyTexture3D : t.is2DArray ? this.emptyTexture2DArray : this.emptyTexture),
!n && r && (r._associatedChannel = e);
var o = !0;
this._boundTexturesCache[e] === r && (n || this._bindSamplerUniformToChannel(r._associatedChannel, e), (o = !1)), (this._activeChannel = e);
var a = this._getTextureTarget(r);
if ((o && this._bindTextureDirectly(a, r, n), r && !r.isMultiview)) {
if (r.isCube && r._cachedCoordinatesMode !== t.coordinatesMode) {
r._cachedCoordinatesMode = t.coordinatesMode;
var s = 3 !== t.coordinatesMode && 5 !== t.coordinatesMode ? 1 : 0;
(t.wrapU = s), (t.wrapV = s);
}
r._cachedWrapU !== t.wrapU && ((r._cachedWrapU = t.wrapU), this._setTextureParameterInteger(a, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(t.wrapU), r)),
r._cachedWrapV !== t.wrapV && ((r._cachedWrapV = t.wrapV), this._setTextureParameterInteger(a, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(t.wrapV), r)),
r.is3D && r._cachedWrapR !== t.wrapR && ((r._cachedWrapR = t.wrapR), this._setTextureParameterInteger(a, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(t.wrapR), r)),
this._setAnisotropicLevel(a, r, t.anisotropicFilteringLevel);
}
return !0;
}),
(e.prototype.setTextureArray = function (e, t, n) {
if (void 0 !== e && t) {
(this._textureUnits && this._textureUnits.length === n.length) || (this._textureUnits = new Int32Array(n.length));
for (var i = 0; i < n.length; i++) {
var r = n[i].getInternalTexture();
r ? ((this._textureUnits[i] = e + i), (r._associatedChannel = e + i)) : (this._textureUnits[i] = -1);
}
this._gl.uniform1iv(t, this._textureUnits);
for (var o = 0; o < n.length; o++) this._setTexture(this._textureUnits[o], n[o], !0);
}
}),
(e.prototype._setAnisotropicLevel = function (e, t, n) {
var i = this._caps.textureAnisotropicFilterExtension;
11 !== t.samplingMode && 3 !== t.samplingMode && 2 !== t.samplingMode && (n = 1),
i && t._cachedAnisotropicFilteringLevel !== n && (this._setTextureParameterFloat(e, i.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(n, this._caps.maxAnisotropy), t), (t._cachedAnisotropicFilteringLevel = n));
}),
(e.prototype._setTextureParameterFloat = function (e, t, n, i) {
this._bindTextureDirectly(e, i, !0, !0), this._gl.texParameterf(e, t, n);
}),
(e.prototype._setTextureParameterInteger = function (e, t, n, i) {
i && this._bindTextureDirectly(e, i, !0, !0), this._gl.texParameteri(e, t, n);
}),
(e.prototype.unbindAllAttributes = function () {
if (this._mustWipeVertexAttributes) {
this._mustWipeVertexAttributes = !1;
for (var e = 0; e < this._caps.maxVertexAttribs; e++) this.disableAttributeByIndex(e);
} else {
e = 0;
for (var t = this._vertexAttribArraysEnabled.length; e < t; e++) e >= this._caps.maxVertexAttribs || !this._vertexAttribArraysEnabled[e] || this.disableAttributeByIndex(e);
}
}),
(e.prototype.releaseEffects = function () {
for (var e in this._compiledEffects) {
var t = this._compiledEffects[e].getPipelineContext();
this._deletePipelineContext(t);
}
this._compiledEffects = {};
}),
(e.prototype.dispose = function () {
this.stopRenderLoop(),
this.onBeforeTextureInitObservable && this.onBeforeTextureInitObservable.clear(),
this._emptyTexture && (this._releaseTexture(this._emptyTexture), (this._emptyTexture = null)),
this._emptyCubeTexture && (this._releaseTexture(this._emptyCubeTexture), (this._emptyCubeTexture = null)),
this.releaseEffects(),
this.unbindAllAttributes(),
(this._boundUniforms = []),
d.a.IsWindowObjectExist() &&
this._renderingCanvas &&
(this._doNotHandleContextLost ||
(this._renderingCanvas.removeEventListener("webglcontextlost", this._onContextLost), this._renderingCanvas.removeEventListener("webglcontextrestored", this._onContextRestored))),
(this._workingCanvas = null),
(this._workingContext = null),
(this._currentBufferPointers = []),
(this._renderingCanvas = null),
(this._currentProgram = null),
(this._boundRenderFunction = null),
r.a.ResetCache();
for (var e = 0, t = this._activeRequests; e < t.length; e++) {
t[e].abort();
}
}),
(e.prototype.attachContextLostEvent = function (e) {
this._renderingCanvas && this._renderingCanvas.addEventListener("webglcontextlost", e, !1);
}),
(e.prototype.attachContextRestoredEvent = function (e) {
this._renderingCanvas && this._renderingCanvas.addEventListener("webglcontextrestored", e, !1);
}),
(e.prototype.getError = function () {
return this._gl.getError();
}),
(e.prototype._canRenderToFloatFramebuffer = function () {
return this._webGLVersion > 1 ? this._caps.colorBufferFloat : this._canRenderToFramebuffer(1);
}),
(e.prototype._canRenderToHalfFloatFramebuffer = function () {
return this._webGLVersion > 1 ? this._caps.colorBufferFloat : this._canRenderToFramebuffer(2);
}),
(e.prototype._canRenderToFramebuffer = function (e) {
for (var t = this._gl; t.getError() !== t.NO_ERROR; );
var n = !0,
i = t.createTexture();
t.bindTexture(t.TEXTURE_2D, i),
t.texImage2D(t.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(e), 1, 1, 0, t.RGBA, this._getWebGLTextureType(e), null),
t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, t.NEAREST),
t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, t.NEAREST);
var r = t.createFramebuffer();
t.bindFramebuffer(t.FRAMEBUFFER, r), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.TEXTURE_2D, i, 0);
var o = t.checkFramebufferStatus(t.FRAMEBUFFER);
if (((n = (n = n && o === t.FRAMEBUFFER_COMPLETE) && t.getError() === t.NO_ERROR) && (t.clear(t.COLOR_BUFFER_BIT), (n = n && t.getError() === t.NO_ERROR)), n)) {
t.bindFramebuffer(t.FRAMEBUFFER, null);
var a = t.RGBA,
s = t.UNSIGNED_BYTE,
c = new Uint8Array(4);
t.readPixels(0, 0, 1, 1, a, s, c), (n = n && t.getError() === t.NO_ERROR);
}
for (t.deleteTexture(i), t.deleteFramebuffer(r), t.bindFramebuffer(t.FRAMEBUFFER, null); !n && t.getError() !== t.NO_ERROR; );
return n;
}),
(e.prototype._getWebGLTextureType = function (e) {
if (1 === this._webGLVersion) {
switch (e) {
case 1:
return this._gl.FLOAT;
case 2:
return this._gl.HALF_FLOAT_OES;
case 0:
return this._gl.UNSIGNED_BYTE;
case 8:
return this._gl.UNSIGNED_SHORT_4_4_4_4;
case 9:
return this._gl.UNSIGNED_SHORT_5_5_5_1;
case 10:
return this._gl.UNSIGNED_SHORT_5_6_5;
}
return this._gl.UNSIGNED_BYTE;
}
switch (e) {
case 3:
return this._gl.BYTE;
case 0:
return this._gl.UNSIGNED_BYTE;
case 4:
return this._gl.SHORT;
case 5:
return this._gl.UNSIGNED_SHORT;
case 6:
return this._gl.INT;
case 7:
return this._gl.UNSIGNED_INT;
case 1:
return this._gl.FLOAT;
case 2:
return this._gl.HALF_FLOAT;
case 8:
return this._gl.UNSIGNED_SHORT_4_4_4_4;
case 9:
return this._gl.UNSIGNED_SHORT_5_5_5_1;
case 10:
return this._gl.UNSIGNED_SHORT_5_6_5;
case 11:
return this._gl.UNSIGNED_INT_2_10_10_10_REV;
case 12:
return this._gl.UNSIGNED_INT_24_8;
case 13:
return this._gl.UNSIGNED_INT_10F_11F_11F_REV;
case 14:
return this._gl.UNSIGNED_INT_5_9_9_9_REV;
case 15:
return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV;
}
return this._gl.UNSIGNED_BYTE;
}),
(e.prototype._getInternalFormat = function (e) {
var t = this._gl.RGBA;
switch (e) {
case 0:
t = this._gl.ALPHA;
break;
case 1:
t = this._gl.LUMINANCE;
break;
case 2:
t = this._gl.LUMINANCE_ALPHA;
break;
case 6:
t = this._gl.RED;
break;
case 7:
t = this._gl.RG;
break;
case 4:
t = this._gl.RGB;
break;
case 5:
t = this._gl.RGBA;
}
if (this._webGLVersion > 1)
switch (e) {
case 8:
t = this._gl.RED_INTEGER;
break;
case 9:
t = this._gl.RG_INTEGER;
break;
case 10:
t = this._gl.RGB_INTEGER;
break;
case 11:
t = this._gl.RGBA_INTEGER;
}
return t;
}),
(e.prototype._getRGBABufferInternalSizedFormat = function (e, t) {
if (1 === this._webGLVersion) {
if (void 0 !== t)
switch (t) {
case 0:
return this._gl.ALPHA;
case 1:
return this._gl.LUMINANCE;
case 2:
return this._gl.LUMINANCE_ALPHA;
case 4:
return this._gl.RGB;
}
return this._gl.RGBA;
}
switch (e) {
case 3:
switch (t) {
case 6:
return this._gl.R8_SNORM;
case 7:
return this._gl.RG8_SNORM;
case 4:
return this._gl.RGB8_SNORM;
case 8:
return this._gl.R8I;
case 9:
return this._gl.RG8I;
case 10:
return this._gl.RGB8I;
case 11:
return this._gl.RGBA8I;
default:
return this._gl.RGBA8_SNORM;
}
case 0:
switch (t) {
case 6:
return this._gl.R8;
case 7:
return this._gl.RG8;
case 4:
return this._gl.RGB8;
case 5:
return this._gl.RGBA8;
case 8:
return this._gl.R8UI;
case 9:
return this._gl.RG8UI;
case 10:
return this._gl.RGB8UI;
case 11:
return this._gl.RGBA8UI;
case 0:
return this._gl.ALPHA;
case 1:
return this._gl.LUMINANCE;
case 2:
return this._gl.LUMINANCE_ALPHA;
default:
return this._gl.RGBA8;
}
case 4:
switch (t) {
case 8:
return this._gl.R16I;
case 9:
return this._gl.RG16I;
case 10:
return this._gl.RGB16I;
case 11:
default:
return this._gl.RGBA16I;
}
case 5:
switch (t) {
case 8:
return this._gl.R16UI;
case 9:
return this._gl.RG16UI;
case 10:
return this._gl.RGB16UI;
case 11:
default:
return this._gl.RGBA16UI;
}
case 6:
switch (t) {
case 8:
return this._gl.R32I;
case 9:
return this._gl.RG32I;
case 10:
return this._gl.RGB32I;
case 11:
default:
return this._gl.RGBA32I;
}
case 7:
switch (t) {
case 8:
return this._gl.R32UI;
case 9:
return this._gl.RG32UI;
case 10:
return this._gl.RGB32UI;
case 11:
default:
return this._gl.RGBA32UI;
}
case 1:
switch (t) {
case 6:
return this._gl.R32F;
case 7:
return this._gl.RG32F;
case 4:
return this._gl.RGB32F;
case 5:
default:
return this._gl.RGBA32F;
}
case 2:
switch (t) {
case 6:
return this._gl.R16F;
case 7:
return this._gl.RG16F;
case 4:
return this._gl.RGB16F;
case 5:
default:
return this._gl.RGBA16F;
}
case 10:
return this._gl.RGB565;
case 13:
return this._gl.R11F_G11F_B10F;
case 14:
return this._gl.RGB9_E5;
case 8:
return this._gl.RGBA4;
case 9:
return this._gl.RGB5_A1;
case 11:
switch (t) {
case 5:
return this._gl.RGB10_A2;
case 11:
return this._gl.RGB10_A2UI;
default:
return this._gl.RGB10_A2;
}
}
return this._gl.RGBA8;
}),
(e.prototype._getRGBAMultiSampleBufferFormat = function (e) {
return 1 === e ? this._gl.RGBA32F : 2 === e ? this._gl.RGBA16F : this._gl.RGBA8;
}),
(e.prototype._loadFile = function (t, n, i, r, o, a) {
var s = this,
c = e._FileToolsLoadFile(t, n, i, r, o, a);
return (
this._activeRequests.push(c),
c.onCompleteObservable.add(function (e) {
s._activeRequests.splice(s._activeRequests.indexOf(e), 1);
}),
c
);
}),
(e._FileToolsLoadFile = function (e, t, n, i, r, a) {
throw o.a.WarnImport("FileTools");
}),
(e.prototype.readPixels = function (e, t, n, i, r) {
void 0 === r && (r = !0);
var o = r ? 4 : 3,
a = r ? this._gl.RGBA : this._gl.RGB,
s = new Uint8Array(i * n * o);
return this._gl.readPixels(e, t, n, i, a, this._gl.UNSIGNED_BYTE, s), s;
}),
(e.isSupported = function () {
if (null === this._isSupported)
try {
var e = g.a.CreateCanvas(1, 1),
t = e.getContext("webgl") || e.getContext("experimental-webgl");
this._isSupported = null != t && !!window.WebGLRenderingContext;
} catch (e) {
this._isSupported = !1;
}
return this._isSupported;
}),
(e.CeilingPOT = function (e) {
return e--, (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16), ++e;
}),
(e.FloorPOT = function (e) {
return (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16) - (e >> 1);
}),
(e.NearestPOT = function (t) {
var n = e.CeilingPOT(t),
i = e.FloorPOT(t);
return n - t > t - i ? i : n;
}),
(e.GetExponentOfTwo = function (t, n, i) {
var r;
switch ((void 0 === i && (i = 2), i)) {
case 1:
r = e.FloorPOT(t);
break;
case 2:
r = e.NearestPOT(t);
break;
case 3:
default:
r = e.CeilingPOT(t);
}
return Math.min(r, n);
}),
(e.QueueNewFrame = function (e, t) {
return d.a.IsWindowObjectExist()
? (t || (t = window),
t.requestAnimationFrame
? t.requestAnimationFrame(e)
: t.msRequestAnimationFrame
? t.msRequestAnimationFrame(e)
: t.webkitRequestAnimationFrame
? t.webkitRequestAnimationFrame(e)
: t.mozRequestAnimationFrame
? t.mozRequestAnimationFrame(e)
: t.oRequestAnimationFrame
? t.oRequestAnimationFrame(e)
: window.setTimeout(e, 16))
: "undefined" != typeof requestAnimationFrame
? requestAnimationFrame(e)
: setTimeout(e, 16);
}),
(e.prototype.getHostDocument = function () {
return this._renderingCanvas && this._renderingCanvas.ownerDocument ? this._renderingCanvas.ownerDocument : document;
}),
(e.ExceptionList = [
{ key: "Chrome/63.0", capture: "63\\.0\\.3239\\.(\\d+)", captureConstraint: 108, targets: ["uniformBuffer"] },
{ key: "Firefox/58", capture: null, captureConstraint: null, targets: ["uniformBuffer"] },
{ key: "Firefox/59", capture: null, captureConstraint: null, targets: ["uniformBuffer"] },
{ key: "Chrome/72.+?Mobile", capture: null, captureConstraint: null, targets: ["vao"] },
{ key: "Chrome/73.+?Mobile", capture: null, captureConstraint: null, targets: ["vao"] },
{ key: "Chrome/74.+?Mobile", capture: null, captureConstraint: null, targets: ["vao"] },
{ key: "Mac OS.+Chrome/71", capture: null, captureConstraint: null, targets: ["vao"] },
{ key: "Mac OS.+Chrome/72", capture: null, captureConstraint: null, targets: ["vao"] },
]),
(e._TextureLoaders = []),
(e.CollisionsEpsilon = 0.001),
(e._isSupported = null),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(3),
o = n(6),
a = n(1),
s = n(35),
c = n(23),
l = (function (e) {
function t(n, i, r) {
void 0 === i && (i = null), void 0 === r && (r = !0);
var s = e.call(this, n, i) || this;
return (
(s._forward = new a.e(0, 0, 1)),
(s._forwardInverted = new a.e(0, 0, -1)),
(s._up = new a.e(0, 1, 0)),
(s._right = new a.e(1, 0, 0)),
(s._rightInverted = new a.e(-1, 0, 0)),
(s._position = a.e.Zero()),
(s._rotation = a.e.Zero()),
(s._rotationQuaternion = null),
(s._scaling = a.e.One()),
(s._isDirty = !1),
(s._transformToBoneReferal = null),
(s._isAbsoluteSynced = !1),
(s._billboardMode = t.BILLBOARDMODE_NONE),
(s._preserveParentRotationForBillboard = !1),
(s.scalingDeterminant = 1),
(s._infiniteDistance = !1),
(s.ignoreNonUniformScaling = !1),
(s.reIntegrateRotationIntoRotationQuaternion = !1),
(s._poseMatrix = null),
(s._localMatrix = a.a.Zero()),
(s._usePivotMatrix = !1),
(s._absolutePosition = a.e.Zero()),
(s._absoluteScaling = a.e.Zero()),
(s._absoluteRotationQuaternion = a.b.Identity()),
(s._pivotMatrix = a.a.Identity()),
(s._postMultiplyPivotMatrix = !1),
(s._isWorldMatrixFrozen = !1),
(s._indexInSceneTransformNodesArray = -1),
(s.onAfterWorldMatrixUpdateObservable = new o.c()),
(s._nonUniformScaling = !1),
r && s.getScene().addTransformNode(s),
s
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "billboardMode", {
get: function () {
return this._billboardMode;
},
set: function (e) {
this._billboardMode !== e && (this._billboardMode = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "preserveParentRotationForBillboard", {
get: function () {
return this._preserveParentRotationForBillboard;
},
set: function (e) {
e !== this._preserveParentRotationForBillboard && (this._preserveParentRotationForBillboard = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "infiniteDistance", {
get: function () {
return this._infiniteDistance;
},
set: function (e) {
this._infiniteDistance !== e && (this._infiniteDistance = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "TransformNode";
}),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._position;
},
set: function (e) {
(this._position = e), (this._isDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rotation", {
get: function () {
return this._rotation;
},
set: function (e) {
(this._rotation = e), (this._rotationQuaternion = null), (this._isDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "scaling", {
get: function () {
return this._scaling;
},
set: function (e) {
(this._scaling = e), (this._isDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rotationQuaternion", {
get: function () {
return this._rotationQuaternion;
},
set: function (e) {
(this._rotationQuaternion = e), e && this._rotation.setAll(0), (this._isDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "forward", {
get: function () {
return a.e.Normalize(a.e.TransformNormal(this.getScene().useRightHandedSystem ? this._forwardInverted : this._forward, this.getWorldMatrix()));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "up", {
get: function () {
return a.e.Normalize(a.e.TransformNormal(this._up, this.getWorldMatrix()));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return a.e.Normalize(a.e.TransformNormal(this.getScene().useRightHandedSystem ? this._rightInverted : this._right, this.getWorldMatrix()));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.updatePoseMatrix = function (e) {
return this._poseMatrix ? (this._poseMatrix.copyFrom(e), this) : ((this._poseMatrix = e.clone()), this);
}),
(t.prototype.getPoseMatrix = function () {
return this._poseMatrix || (this._poseMatrix = a.a.Identity()), this._poseMatrix;
}),
(t.prototype._isSynchronized = function () {
var e = this._cache;
if (this.billboardMode !== e.billboardMode || this.billboardMode !== t.BILLBOARDMODE_NONE) return !1;
if (e.pivotMatrixUpdated) return !1;
if (this.infiniteDistance) return !1;
if (!e.position.equals(this._position)) return !1;
if (this._rotationQuaternion) {
if (!e.rotationQuaternion.equals(this._rotationQuaternion)) return !1;
} else if (!e.rotation.equals(this._rotation)) return !1;
return !!e.scaling.equals(this._scaling);
}),
(t.prototype._initCache = function () {
e.prototype._initCache.call(this);
var t = this._cache;
(t.localMatrixUpdated = !1), (t.position = a.e.Zero()), (t.scaling = a.e.Zero()), (t.rotation = a.e.Zero()), (t.rotationQuaternion = new a.b(0, 0, 0, 0)), (t.billboardMode = -1), (t.infiniteDistance = !1);
}),
(t.prototype.markAsDirty = function (e) {
return (this._currentRenderId = Number.MAX_VALUE), (this._isDirty = !0), this;
}),
Object.defineProperty(t.prototype, "absolutePosition", {
get: function () {
return this._absolutePosition;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "absoluteScaling", {
get: function () {
return this._syncAbsoluteScalingAndRotation(), this._absoluteScaling;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "absoluteRotationQuaternion", {
get: function () {
return this._syncAbsoluteScalingAndRotation(), this._absoluteRotationQuaternion;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setPreTransformMatrix = function (e) {
return this.setPivotMatrix(e, !1);
}),
(t.prototype.setPivotMatrix = function (e, t) {
return (
void 0 === t && (t = !0),
this._pivotMatrix.copyFrom(e),
(this._usePivotMatrix = !this._pivotMatrix.isIdentity()),
(this._cache.pivotMatrixUpdated = !0),
(this._postMultiplyPivotMatrix = t),
this._postMultiplyPivotMatrix && (this._pivotMatrixInverse ? this._pivotMatrix.invertToRef(this._pivotMatrixInverse) : (this._pivotMatrixInverse = a.a.Invert(this._pivotMatrix))),
this
);
}),
(t.prototype.getPivotMatrix = function () {
return this._pivotMatrix;
}),
(t.prototype.instantiateHierarchy = function (e, t, n) {
void 0 === e && (e = null);
var i = this.clone("Clone of " + (this.name || this.id), e || this.parent, !0);
i && n && n(this, i);
for (var r = 0, o = this.getChildTransformNodes(!0); r < o.length; r++) {
o[r].instantiateHierarchy(i, t, n);
}
return i;
}),
(t.prototype.freezeWorldMatrix = function (e) {
return void 0 === e && (e = null), e ? (this._worldMatrix = e) : ((this._isWorldMatrixFrozen = !1), this.computeWorldMatrix(!0)), (this._isDirty = !1), (this._isWorldMatrixFrozen = !0), this;
}),
(t.prototype.unfreezeWorldMatrix = function () {
return (this._isWorldMatrixFrozen = !1), this.computeWorldMatrix(!0), this;
}),
Object.defineProperty(t.prototype, "isWorldMatrixFrozen", {
get: function () {
return this._isWorldMatrixFrozen;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getAbsolutePosition = function () {
return this.computeWorldMatrix(), this._absolutePosition;
}),
(t.prototype.setAbsolutePosition = function (e) {
if (!e) return this;
var t, n, i;
if (void 0 === e.x) {
if (arguments.length < 3) return this;
(t = arguments[0]), (n = arguments[1]), (i = arguments[2]);
} else (t = e.x), (n = e.y), (i = e.z);
if (this.parent) {
var r = a.c.Matrix[0];
this.parent.getWorldMatrix().invertToRef(r), a.e.TransformCoordinatesFromFloatsToRef(t, n, i, r, this.position);
} else (this.position.x = t), (this.position.y = n), (this.position.z = i);
return this;
}),
(t.prototype.setPositionWithLocalVector = function (e) {
return this.computeWorldMatrix(), (this.position = a.e.TransformNormal(e, this._localMatrix)), this;
}),
(t.prototype.getPositionExpressedInLocalSpace = function () {
this.computeWorldMatrix();
var e = a.c.Matrix[0];
return this._localMatrix.invertToRef(e), a.e.TransformNormal(this.position, e);
}),
(t.prototype.locallyTranslate = function (e) {
return this.computeWorldMatrix(!0), (this.position = a.e.TransformCoordinates(e, this._localMatrix)), this;
}),
(t.prototype.lookAt = function (e, n, i, r, o) {
void 0 === n && (n = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = c.b.LOCAL);
var s = t._lookAtVectorCache,
l = o === c.b.LOCAL ? this.position : this.getAbsolutePosition();
if ((e.subtractToRef(l, s), this.setDirection(s, n, i, r), o === c.b.WORLD && this.parent))
if (this.rotationQuaternion) {
var u = a.c.Matrix[0];
this.rotationQuaternion.toRotationMatrix(u);
var h = a.c.Matrix[1];
this.parent.getWorldMatrix().getRotationMatrixToRef(h), h.invert(), u.multiplyToRef(h, u), this.rotationQuaternion.fromRotationMatrix(u);
} else {
var d = a.c.Quaternion[0];
a.b.FromEulerVectorToRef(this.rotation, d);
u = a.c.Matrix[0];
d.toRotationMatrix(u);
h = a.c.Matrix[1];
this.parent.getWorldMatrix().getRotationMatrixToRef(h), h.invert(), u.multiplyToRef(h, u), d.fromRotationMatrix(u), d.toEulerAnglesToRef(this.rotation);
}
return this;
}),
(t.prototype.getDirection = function (e) {
var t = a.e.Zero();
return this.getDirectionToRef(e, t), t;
}),
(t.prototype.getDirectionToRef = function (e, t) {
return a.e.TransformNormalToRef(e, this.getWorldMatrix(), t), this;
}),
(t.prototype.setDirection = function (e, t, n, i) {
void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 0);
var r = -Math.atan2(e.z, e.x) + Math.PI / 2,
o = Math.sqrt(e.x * e.x + e.z * e.z),
s = -Math.atan2(e.y, o);
return this.rotationQuaternion ? a.b.RotationYawPitchRollToRef(r + t, s + n, i, this.rotationQuaternion) : ((this.rotation.x = s + n), (this.rotation.y = r + t), (this.rotation.z = i)), this;
}),
(t.prototype.setPivotPoint = function (e, t) {
void 0 === t && (t = c.b.LOCAL), 0 == this.getScene().getRenderId() && this.computeWorldMatrix(!0);
var n = this.getWorldMatrix();
if (t == c.b.WORLD) {
var i = a.c.Matrix[0];
n.invertToRef(i), (e = a.e.TransformCoordinates(e, i));
}
return this.setPivotMatrix(a.a.Translation(-e.x, -e.y, -e.z), !0);
}),
(t.prototype.getPivotPoint = function () {
var e = a.e.Zero();
return this.getPivotPointToRef(e), e;
}),
(t.prototype.getPivotPointToRef = function (e) {
return (e.x = -this._pivotMatrix.m[12]), (e.y = -this._pivotMatrix.m[13]), (e.z = -this._pivotMatrix.m[14]), this;
}),
(t.prototype.getAbsolutePivotPoint = function () {
var e = a.e.Zero();
return this.getAbsolutePivotPointToRef(e), e;
}),
(t.prototype.getAbsolutePivotPointToRef = function (e) {
return (e.x = this._pivotMatrix.m[12]), (e.y = this._pivotMatrix.m[13]), (e.z = this._pivotMatrix.m[14]), this.getPivotPointToRef(e), a.e.TransformCoordinatesToRef(e, this.getWorldMatrix(), e), this;
}),
(t.prototype.setParent = function (e) {
if (!e && !this.parent) return this;
var t = a.c.Quaternion[0],
n = a.c.Vector3[0],
i = a.c.Vector3[1];
if (e) {
var r = a.c.Matrix[0],
o = a.c.Matrix[1];
this.computeWorldMatrix(!0), e.computeWorldMatrix(!0), e.getWorldMatrix().invertToRef(o), this.getWorldMatrix().multiplyToRef(o, r), r.decompose(i, t, n);
} else this.computeWorldMatrix(!0), this.getWorldMatrix().decompose(i, t, n);
return this.rotationQuaternion ? this.rotationQuaternion.copyFrom(t) : t.toEulerAnglesToRef(this.rotation), this.scaling.copyFrom(i), this.position.copyFrom(n), (this.parent = e), this;
}),
Object.defineProperty(t.prototype, "nonUniformScaling", {
get: function () {
return this._nonUniformScaling;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._updateNonUniformScalingState = function (e) {
return this._nonUniformScaling !== e && ((this._nonUniformScaling = e), !0);
}),
(t.prototype.attachToBone = function (e, t) {
return (this._transformToBoneReferal = t), (this.parent = e), e.getWorldMatrix().determinant() < 0 && (this.scalingDeterminant *= -1), this;
}),
(t.prototype.detachFromBone = function () {
return this.parent ? (this.parent.getWorldMatrix().determinant() < 0 && (this.scalingDeterminant *= -1), (this._transformToBoneReferal = null), (this.parent = null), this) : this;
}),
(t.prototype.rotate = function (e, n, i) {
var r;
if ((e.normalize(), this.rotationQuaternion || ((this.rotationQuaternion = this.rotation.toQuaternion()), this.rotation.setAll(0)), i && i !== c.b.LOCAL)) {
if (this.parent) {
var o = a.c.Matrix[0];
this.parent.getWorldMatrix().invertToRef(o), (e = a.e.TransformNormal(e, o));
}
(r = a.b.RotationAxisToRef(e, n, t._rotationAxisCache)).multiplyToRef(this.rotationQuaternion, this.rotationQuaternion);
} else (r = a.b.RotationAxisToRef(e, n, t._rotationAxisCache)), this.rotationQuaternion.multiplyToRef(r, this.rotationQuaternion);
return this;
}),
(t.prototype.rotateAround = function (e, t, n) {
t.normalize(), this.rotationQuaternion || ((this.rotationQuaternion = a.b.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z)), this.rotation.setAll(0));
var i = a.c.Vector3[0],
r = a.c.Vector3[1],
o = a.c.Vector3[2],
s = a.c.Quaternion[0],
c = a.c.Matrix[0],
l = a.c.Matrix[1],
u = a.c.Matrix[2],
h = a.c.Matrix[3];
return (
e.subtractToRef(this.position, i),
a.a.TranslationToRef(i.x, i.y, i.z, c),
a.a.TranslationToRef(-i.x, -i.y, -i.z, l),
a.a.RotationAxisToRef(t, n, u),
l.multiplyToRef(u, h),
h.multiplyToRef(c, h),
h.decompose(r, s, o),
this.position.addInPlace(o),
s.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion),
this
);
}),
(t.prototype.translate = function (e, t, n) {
var i = e.scale(t);
if (n && n !== c.b.LOCAL) this.setAbsolutePosition(this.getAbsolutePosition().add(i));
else {
var r = this.getPositionExpressedInLocalSpace().add(i);
this.setPositionWithLocalVector(r);
}
return this;
}),
(t.prototype.addRotation = function (e, t, n) {
var i;
this.rotationQuaternion ? (i = this.rotationQuaternion) : ((i = a.c.Quaternion[1]), a.b.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, i));
var r = a.c.Quaternion[0];
return a.b.RotationYawPitchRollToRef(t, e, n, r), i.multiplyInPlace(r), this.rotationQuaternion || i.toEulerAnglesToRef(this.rotation), this;
}),
(t.prototype._getEffectiveParent = function () {
return this.parent;
}),
(t.prototype.computeWorldMatrix = function (e) {
if (this._isWorldMatrixFrozen && !this._isDirty) return this._worldMatrix;
var n = this.getScene().getRenderId();
if (!this._isDirty && !e && this.isSynchronized()) return (this._currentRenderId = n), this._worldMatrix;
var i = this.getScene().activeCamera,
r = 0 != (this._billboardMode & t.BILLBOARDMODE_USE_POSITION),
o = this._billboardMode !== t.BILLBOARDMODE_NONE && !this.preserveParentRotationForBillboard;
o &&
i &&
r &&
(this.lookAt(i.position),
(this.billboardMode & t.BILLBOARDMODE_X) !== t.BILLBOARDMODE_X && (this.rotation.x = 0),
(this.billboardMode & t.BILLBOARDMODE_Y) !== t.BILLBOARDMODE_Y && (this.rotation.y = 0),
(this.billboardMode & t.BILLBOARDMODE_Z) !== t.BILLBOARDMODE_Z && (this.rotation.z = 0)),
this._updateCache();
var s = this._cache;
(s.pivotMatrixUpdated = !1), (s.billboardMode = this.billboardMode), (s.infiniteDistance = this.infiniteDistance), (this._currentRenderId = n), this._childUpdateId++, (this._isDirty = !1);
var c = this._getEffectiveParent(),
l = s.scaling,
u = s.position;
if (this._infiniteDistance)
if (!this.parent && i) {
var h = i.getWorldMatrix(),
d = new a.e(h.m[12], h.m[13], h.m[14]);
u.copyFromFloats(this._position.x + d.x, this._position.y + d.y, this._position.z + d.z);
} else u.copyFrom(this._position);
else u.copyFrom(this._position);
l.copyFromFloats(this._scaling.x * this.scalingDeterminant, this._scaling.y * this.scalingDeterminant, this._scaling.z * this.scalingDeterminant);
var p = s.rotationQuaternion;
if (this._rotationQuaternion) {
if (this.reIntegrateRotationIntoRotationQuaternion)
this.rotation.lengthSquared() && (this._rotationQuaternion.multiplyInPlace(a.b.RotationYawPitchRoll(this._rotation.y, this._rotation.x, this._rotation.z)), this._rotation.copyFromFloats(0, 0, 0));
p.copyFrom(this._rotationQuaternion);
} else a.b.RotationYawPitchRollToRef(this._rotation.y, this._rotation.x, this._rotation.z, p), s.rotation.copyFrom(this._rotation);
if (this._usePivotMatrix) {
var f = a.c.Matrix[1];
a.a.ScalingToRef(l.x, l.y, l.z, f);
var m = a.c.Matrix[0];
p.toRotationMatrix(m),
this._pivotMatrix.multiplyToRef(f, a.c.Matrix[4]),
a.c.Matrix[4].multiplyToRef(m, this._localMatrix),
this._postMultiplyPivotMatrix && this._localMatrix.multiplyToRef(this._pivotMatrixInverse, this._localMatrix),
this._localMatrix.addTranslationFromFloats(u.x, u.y, u.z);
} else a.a.ComposeToRef(l, p, u, this._localMatrix);
if (c && c.getWorldMatrix) {
if ((e && c.computeWorldMatrix(), o)) {
this._transformToBoneReferal ? c.getWorldMatrix().multiplyToRef(this._transformToBoneReferal.getWorldMatrix(), a.c.Matrix[7]) : a.c.Matrix[7].copyFrom(c.getWorldMatrix());
var g = a.c.Vector3[5],
b = a.c.Vector3[6];
a.c.Matrix[7].decompose(b, void 0, g), a.a.ScalingToRef(b.x, b.y, b.z, a.c.Matrix[7]), a.c.Matrix[7].setTranslation(g), this._localMatrix.multiplyToRef(a.c.Matrix[7], this._worldMatrix);
} else
this._transformToBoneReferal
? (this._localMatrix.multiplyToRef(c.getWorldMatrix(), a.c.Matrix[6]), a.c.Matrix[6].multiplyToRef(this._transformToBoneReferal.getWorldMatrix(), this._worldMatrix))
: this._localMatrix.multiplyToRef(c.getWorldMatrix(), this._worldMatrix);
this._markSyncedWithParent();
} else this._worldMatrix.copyFrom(this._localMatrix);
if (o && i && this.billboardMode && !r) {
var _ = a.c.Vector3[0];
if (
(this._worldMatrix.getTranslationToRef(_),
a.c.Matrix[1].copyFrom(i.getViewMatrix()),
a.c.Matrix[1].setTranslationFromFloats(0, 0, 0),
a.c.Matrix[1].invertToRef(a.c.Matrix[0]),
(this.billboardMode & t.BILLBOARDMODE_ALL) !== t.BILLBOARDMODE_ALL)
) {
a.c.Matrix[0].decompose(void 0, a.c.Quaternion[0], void 0);
var v = a.c.Vector3[1];
a.c.Quaternion[0].toEulerAnglesToRef(v),
(this.billboardMode & t.BILLBOARDMODE_X) !== t.BILLBOARDMODE_X && (v.x = 0),
(this.billboardMode & t.BILLBOARDMODE_Y) !== t.BILLBOARDMODE_Y && (v.y = 0),
(this.billboardMode & t.BILLBOARDMODE_Z) !== t.BILLBOARDMODE_Z && (v.z = 0),
a.a.RotationYawPitchRollToRef(v.y, v.x, v.z, a.c.Matrix[0]);
}
this._worldMatrix.setTranslationFromFloats(0, 0, 0), this._worldMatrix.multiplyToRef(a.c.Matrix[0], this._worldMatrix), this._worldMatrix.setTranslation(a.c.Vector3[0]);
}
return (
this.ignoreNonUniformScaling
? this._updateNonUniformScalingState(!1)
: this._scaling.isNonUniform
? this._updateNonUniformScalingState(!0)
: c && c._nonUniformScaling
? this._updateNonUniformScalingState(c._nonUniformScaling)
: this._updateNonUniformScalingState(!1),
this._afterComputeWorldMatrix(),
this._absolutePosition.copyFromFloats(this._worldMatrix.m[12], this._worldMatrix.m[13], this._worldMatrix.m[14]),
(this._isAbsoluteSynced = !1),
this.onAfterWorldMatrixUpdateObservable.notifyObservers(this),
this._poseMatrix || (this._poseMatrix = a.a.Invert(this._worldMatrix)),
(this._worldMatrixDeterminantIsDirty = !0),
this._worldMatrix
);
}),
(t.prototype.resetLocalMatrix = function (e) {
if ((void 0 === e && (e = !0), this.computeWorldMatrix(), e))
for (var t = this.getChildren(), n = 0; n < t.length; ++n) {
var i = t[n];
if (i) {
i.computeWorldMatrix();
var r = a.c.Matrix[0];
i._localMatrix.multiplyToRef(this._localMatrix, r);
var o = a.c.Quaternion[0];
r.decompose(i.scaling, o, i.position), i.rotationQuaternion ? (i.rotationQuaternion = o) : o.toEulerAnglesToRef(i.rotation);
}
}
this.scaling.copyFromFloats(1, 1, 1),
this.position.copyFromFloats(0, 0, 0),
this.rotation.copyFromFloats(0, 0, 0),
this.rotationQuaternion && (this.rotationQuaternion = a.b.Identity()),
(this._worldMatrix = a.a.Identity());
}),
(t.prototype._afterComputeWorldMatrix = function () {}),
(t.prototype.registerAfterWorldMatrixUpdate = function (e) {
return this.onAfterWorldMatrixUpdateObservable.add(e), this;
}),
(t.prototype.unregisterAfterWorldMatrixUpdate = function (e) {
return this.onAfterWorldMatrixUpdateObservable.removeCallback(e), this;
}),
(t.prototype.getPositionInCameraSpace = function (e) {
return void 0 === e && (e = null), e || (e = this.getScene().activeCamera), a.e.TransformCoordinates(this.absolutePosition, e.getViewMatrix());
}),
(t.prototype.getDistanceToCamera = function (e) {
return void 0 === e && (e = null), e || (e = this.getScene().activeCamera), this.absolutePosition.subtract(e.globalPosition).length();
}),
(t.prototype.clone = function (e, n, i) {
var o = this,
a = r.a.Clone(function () {
return new t(e, o.getScene());
}, this);
if (((a.name = e), (a.id = e), n && (a.parent = n), !i))
for (var s = this.getDescendants(!0), c = 0; c < s.length; c++) {
var l = s[c];
l.clone && l.clone(e + "." + l.name, a);
}
return a;
}),
(t.prototype.serialize = function (e) {
var t = r.a.Serialize(this, e);
return (
(t.type = this.getClassName()), this.parent && (t.parentId = this.parent.id), (t.localMatrix = this.getPivotMatrix().asArray()), (t.isEnabled = this.isEnabled()), this.parent && (t.parentId = this.parent.id), t
);
}),
(t.Parse = function (e, n, i) {
var o = r.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
return (
e.localMatrix ? o.setPreTransformMatrix(a.a.FromArray(e.localMatrix)) : e.pivotMatrix && o.setPivotMatrix(a.a.FromArray(e.pivotMatrix)),
o.setEnabled(e.isEnabled),
e.parentId && (o._waitingParentId = e.parentId),
o
);
}),
(t.prototype.getChildTransformNodes = function (e, n) {
var i = [];
return (
this._getDescendants(i, e, function (e) {
return (!n || n(e)) && e instanceof t;
}),
i
);
}),
(t.prototype.dispose = function (t, n) {
if ((void 0 === n && (n = !1), this.getScene().stopAnimation(this), this.getScene().removeTransformNode(this), this.onAfterWorldMatrixUpdateObservable.clear(), t))
for (var i = 0, r = this.getChildTransformNodes(!0); i < r.length; i++) {
var o = r[i];
(o.parent = null), o.computeWorldMatrix(!0);
}
e.prototype.dispose.call(this, t, n);
}),
(t.prototype.normalizeToUnitCube = function (e, t, n) {
void 0 === e && (e = !0), void 0 === t && (t = !1);
var i = null,
r = null;
t && (this.rotationQuaternion ? ((r = this.rotationQuaternion.clone()), this.rotationQuaternion.copyFromFloats(0, 0, 0, 1)) : this.rotation && ((i = this.rotation.clone()), this.rotation.copyFromFloats(0, 0, 0)));
var o = this.getHierarchyBoundingVectors(e, n),
a = o.max.subtract(o.min),
s = Math.max(a.x, a.y, a.z);
if (0 === s) return this;
var c = 1 / s;
return this.scaling.scaleInPlace(c), t && (this.rotationQuaternion && r ? this.rotationQuaternion.copyFrom(r) : this.rotation && i && this.rotation.copyFrom(i)), this;
}),
(t.prototype._syncAbsoluteScalingAndRotation = function () {
this._isAbsoluteSynced || (this._worldMatrix.decompose(this._absoluteScaling, this._absoluteRotationQuaternion), (this._isAbsoluteSynced = !0));
}),
(t.BILLBOARDMODE_NONE = 0),
(t.BILLBOARDMODE_X = 1),
(t.BILLBOARDMODE_Y = 2),
(t.BILLBOARDMODE_Z = 4),
(t.BILLBOARDMODE_ALL = 7),
(t.BILLBOARDMODE_USE_POSITION = 128),
(t._lookAtVectorCache = new a.e(0, 0, 0)),
(t._rotationAxisCache = new a.b()),
Object(i.c)([Object(r.o)("position")], t.prototype, "_position", void 0),
Object(i.c)([Object(r.o)("rotation")], t.prototype, "_rotation", void 0),
Object(i.c)([Object(r.l)("rotationQuaternion")], t.prototype, "_rotationQuaternion", void 0),
Object(i.c)([Object(r.o)("scaling")], t.prototype, "_scaling", void 0),
Object(i.c)([Object(r.c)("billboardMode")], t.prototype, "_billboardMode", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "scalingDeterminant", void 0),
Object(i.c)([Object(r.c)("infiniteDistance")], t.prototype, "_infiniteDistance", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "ignoreNonUniformScaling", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "reIntegrateRotationIntoRotationQuaternion", void 0),
t
);
})(s.a);
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.GameController = t.ETR2RenderingGroup = void 0);
const r = n(248),
o = n(271),
a = n(272),
s = n(273),
c = n(139),
l = n(277),
u = n(29),
h = n(278),
d = n(280),
p = n(281),
f = n(283),
m = n(284),
g = n(285),
b = n(52),
_ = n(286),
v = n(237),
y = n(288),
C = n(289),
P = n(48),
x = n(19);
var T;
!(function (e) {
(e[(e.SKYBOX = 0)] = "SKYBOX"), (e[(e.TRACK_PIECES = 1)] = "TRACK_PIECES"), (e[(e.CHARACTER = 1)] = "CHARACTER"), (e[(e.PICK_UPS = 1)] = "PICK_UPS"), (e[(e.PARTICLES = 2)] = "PARTICLES"), (e[(e.UI = 3)] = "UI");
})((T = t.ETR2RenderingGroup || (t.ETR2RenderingGroup = {})));
class S {
constructor() {
(this._isStarted = !1), (this._isPaused = !0), (this._afterAdEvent = void 0), (this._isCheckingFocus = !1), (this._timeIntervalResume = void 0), (this.isRestarting = !1);
}
static get instance() {
return null == this._instance && (this._instance = new S()), this._instance;
}
initialize(e, t) {
(this._canvas = e),
(this._scene = t),
(this._controllers = new Array()),
this._scene.freezeMaterials(),
(this._scene.blockMaterialDirtyMechanism = !0),
(this._scene.autoClear = !1),
(this._scene.autoClearDepthAndStencil = !0),
this._scene.setRenderingAutoClearDepthStencil(T.PARTICLES, !1),
(this._gameState = b.gameState.getStateFromStore()),
b.gameState.subscribe((e) => {
this._gameState = e;
}),
(this._inputController = new a.GameInputContoller(this._scene)),
this._controllers.push(this._inputController),
(this._soundController = new c.SoundController(this._scene)),
this._controllers.push(this._soundController),
(this._particleController = new p.ParticleController(this._scene)),
this._controllers.push(this._particleController),
(this._skyboxController = new l.SkyboxController(this._scene)),
this._controllers.push(this._skyboxController),
(this._characterController = new r.CharacterController(this._scene)),
this._controllers.push(this._characterController),
(this._monkeyController = new o.MonkeyController(this._scene)),
this._controllers.push(this._monkeyController),
(this._coinsController = new h.CoinsController(this._scene)),
this._controllers.push(this._coinsController),
(this._bonusController = new f.BonusController(this._scene)),
this._controllers.push(this._bonusController),
(this._cameraController = new d.CameraController(this._scene)),
this._controllers.push(this._cameraController),
(this._powerupController = new m.PowerupController(this._scene)),
this._controllers.push(this._powerupController),
(this._characterFXController = new _.CharacterFXController(this._scene)),
this._controllers.push(this._characterFXController),
(this._shadersController = new v.ShadersController(this._scene)),
this._controllers.push(this._shadersController),
(this._tutorialController = new g.TutorialController(this._scene)),
this._controllers.push(this._tutorialController),
(this._dailyChallengesController = new y.DailyChallengesController(this._scene)),
this._controllers.push(this._dailyChallengesController),
(this._chestController = new C.ChestController(this._scene)),
this._controllers.push(this._chestController),
(this._trackController = new s.TrackController(this._scene)),
this._controllers.push(this._trackController),
this._initialize(),
this._scene.registerBeforeRender(() => {
this._preUpdate();
}),
this._scene.registerAfterRender(() => {
this._postUpdate();
}),
this._initializeEvents();
}
_initializeEvents() {
u.EventHandler.instance.addListener(u.EventID.OnContinueGame, () => {
S.instance.powerup.reset(), S.instance.sound.reset(), this.character.setToResurrectionState(), this._monkeyController.goIdle(), u.EventHandler.instance.fireEvent(u.EventID.OnResumeGame, !0);
}),
u.EventHandler.instance.addListener(u.EventID.OnEndGame, () => {
this._isStarted = !1;
}),
u.EventHandler.instance.addListener(u.EventID.OnResetGame, this._reset.bind(this)),
u.EventHandler.instance.addListener(u.EventID.OnPauseGame, this._pause.bind(this)),
u.EventHandler.instance.addListener(u.EventID.OnResumeGame, (e) => {
e ? this._resumeWithGrace() : this._resume();
}),
u.EventHandler.instance.addListener(u.EventID.OnPlayerDeath, () => {
this._isPaused = !0;
}),
u.EventHandler.instance.addListener(u.EventID.OnPlayGame, () => {
(this._isStarted = !0), (this._isPaused = !1);
}),
u.EventHandler.instance.addListener(u.EventID.OnKeyPress, (e) => {
"Escape" == e && 0 == this._isPaused && u.EventHandler.instance.fireEvent(u.EventID.OnPauseGame);
}),
this._attachDocEvents();
}
_attachDocEvents() {
window.addEventListener(
"blur",
() => {
this._checkGameFocus(x.WebUtils.isIOS);
},
{ passive: !1 }
),
document.addEventListener(
"blur",
() => {
this._checkGameFocus();
},
{ passive: !1 }
);
let e = "visibilitychange",
t = document;
null != t.webkitHidden ? (e = "webkitvisibilitychange") : null != t.mozHidden ? (e = "mozvisibilitychange") : null != t.msHidden && (e = "msvisibilitychange"),
document.addEventListener(
e,
() => {
(t = document), ("hidden" == document.visibilityState || t.webkitHidden || t.mozHidden || t.msHidden) && this._checkGameFocus();
},
{ passive: !1 }
);
}
checkGameAfterAd(e) {
this._afterAdEvent = e;
}
_checkGameFocus(e = !1) {
return i(this, void 0, void 0, function* () {
if (this._isCheckingFocus) return;
this._isCheckingFocus = !0;
const t = document.hasFocus();
null != this._afterAdEvent && t
? (u.EventHandler.instance.fireEvent(this._afterAdEvent.eventId, this._afterAdEvent.args), (this._afterAdEvent = void 0))
: !this.isGameRunning || (t && !e)
? this.isGameRunning && document.activeElement != this._canvas && this._canvas.focus()
: ((this._isPaused = !0), u.EventHandler.instance.fireEvent(u.EventID.OnPauseGame)),
0 == P.GameConfig.IS_AD_PLAYING && (document.hasFocus() ? u.EventHandler.instance.fireEvent(u.EventID.UnmuteAll) : u.EventHandler.instance.fireEvent(u.EventID.MuteAll)),
(this._isCheckingFocus = !1);
});
}
_initialize() {
this._controllers.forEach((e) => {
e.initialize();
});
}
_preUpdate() {
this._checkGameFocus(),
this._controllers.forEach((e) => {
e.preUpdate();
});
}
_postUpdate() {
this._controllers.forEach((e) => {
e.postUpdate();
});
}
_pause() {
null != this._timeIntervalResume && (clearInterval(this._timeIntervalResume), (this._timeIntervalResume = null)),
(this._isPaused = !0),
this._controllers.forEach((e) => {
e.pause();
});
}
_resume() {
(this._isPaused = !1),
this._controllers.forEach((e) => {
e.resume();
});
}
_resumeWithGrace() {
let e = 3;
u.EventHandler.instance.fireEvent(u.EventID.OnResumeCounterChange, e),
(this._timeIntervalResume = setInterval(() => {
e--, u.EventHandler.instance.fireEvent(u.EventID.OnResumeCounterChange, e), e <= 0 && (clearInterval(this._timeIntervalResume), (this._timeIntervalResume = void 0), this._resume());
}, 1e3));
}
_reset() {
(this._isStarted = !1),
(this._isPaused = !0),
this._controllers.forEach((e) => {
e.reset();
});
}
get isGameStarted() {
return this._isStarted;
}
get isGameRunning() {
return this._isStarted && !this._isPaused;
}
get input() {
return this._inputController;
}
get track() {
return this._trackController;
}
get coins() {
return this._coinsController;
}
get bonus() {
return this._bonusController;
}
get character() {
return this._characterController;
}
get camera() {
return this._cameraController;
}
get sound() {
return this._soundController;
}
get particle() {
return this._particleController;
}
get skybox() {
return this._skyboxController;
}
get tutorial() {
return this._tutorialController;
}
get powerup() {
return this._powerupController;
}
get shader() {
return this._shadersController;
}
get dailyChallenges() {
return this._dailyChallengesController;
}
get gameState() {
return this._gameState;
}
}
t.GameController = S;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this._isDirty = !0),
(this._areLightsDirty = !0),
(this._areLightsDisposed = !1),
(this._areAttributesDirty = !0),
(this._areTexturesDirty = !0),
(this._areFresnelDirty = !0),
(this._areMiscDirty = !0),
(this._areImageProcessingDirty = !0),
(this._normals = !1),
(this._uvs = !1),
(this._needNormals = !1),
(this._needUVs = !1);
}
return (
Object.defineProperty(e.prototype, "isDirty", {
get: function () {
return this._isDirty;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.markAsProcessed = function () {
(this._isDirty = !1),
(this._areAttributesDirty = !1),
(this._areTexturesDirty = !1),
(this._areFresnelDirty = !1),
(this._areLightsDirty = !1),
(this._areLightsDisposed = !1),
(this._areMiscDirty = !1),
(this._areImageProcessingDirty = !1);
}),
(e.prototype.markAsUnprocessed = function () {
this._isDirty = !0;
}),
(e.prototype.markAllAsDirty = function () {
(this._areTexturesDirty = !0), (this._areAttributesDirty = !0), (this._areLightsDirty = !0), (this._areFresnelDirty = !0), (this._areMiscDirty = !0), (this._areImageProcessingDirty = !0), (this._isDirty = !0);
}),
(e.prototype.markAsImageProcessingDirty = function () {
(this._areImageProcessingDirty = !0), (this._isDirty = !0);
}),
(e.prototype.markAsLightDirty = function (e) {
void 0 === e && (e = !1), (this._areLightsDirty = !0), (this._areLightsDisposed = this._areLightsDisposed || e), (this._isDirty = !0);
}),
(e.prototype.markAsAttributesDirty = function () {
(this._areAttributesDirty = !0), (this._isDirty = !0);
}),
(e.prototype.markAsTexturesDirty = function () {
(this._areTexturesDirty = !0), (this._isDirty = !0);
}),
(e.prototype.markAsFresnelDirty = function () {
(this._areFresnelDirty = !0), (this._isDirty = !0);
}),
(e.prototype.markAsMiscDirty = function () {
(this._areMiscDirty = !0), (this._isDirty = !0);
}),
(e.prototype.rebuild = function () {
this._keys && delete this._keys, (this._keys = []);
for (var e = 0, t = Object.keys(this); e < t.length; e++) {
var n = t[e];
"_" !== n[0] && this._keys.push(n);
}
}),
(e.prototype.isEqual = function (e) {
if (this._keys.length !== e._keys.length) return !1;
for (var t = 0; t < this._keys.length; t++) {
var n = this._keys[t];
if (this[n] !== e[n]) return !1;
}
return !0;
}),
(e.prototype.cloneTo = function (e) {
this._keys.length !== e._keys.length && (e._keys = this._keys.slice(0));
for (var t = 0; t < this._keys.length; t++) {
var n = this._keys[t];
e[n] = this[n];
}
}),
(e.prototype.reset = function () {
for (var e = 0; e < this._keys.length; e++) {
var t = this._keys[e];
switch (typeof this[t]) {
case "number":
this[t] = 0;
break;
case "string":
this[t] = "";
break;
default:
this[t] = !1;
}
}
}),
(e.prototype.toString = function () {
for (var e = "", t = 0; t < this._keys.length; t++) {
var n = this._keys[t],
i = this[n];
switch (typeof i) {
case "number":
case "string":
e += "#define " + n + " " + i + "\n";
break;
default:
i && (e += "#define " + n + "\n");
}
}
return e;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return a;
}),
n.d(t, "b", function () {
return s;
});
var i = n(10),
r = n(3),
o = n(26),
a = {},
s = (function () {
function e(e) {
(this.attached = {}), (this.camera = e), (this.checkInputs = function () {});
}
return (
(e.prototype.add = function (e) {
var t = e.getSimpleName();
this.attached[t]
? i.a.Warn("camera input of type " + t + " already exists on camera")
: ((this.attached[t] = e), (e.camera = this.camera), e.checkInputs && (this.checkInputs = this._addCheckInputs(e.checkInputs.bind(e))), this.attachedElement && e.attachControl(this.attachedElement));
}),
(e.prototype.remove = function (e) {
for (var t in this.attached) {
var n = this.attached[t];
n === e && (n.detachControl(this.attachedElement), (n.camera = null), delete this.attached[t], this.rebuildInputCheck());
}
}),
(e.prototype.removeByType = function (e) {
for (var t in this.attached) {
var n = this.attached[t];
n.getClassName() === e && (n.detachControl(this.attachedElement), (n.camera = null), delete this.attached[t], this.rebuildInputCheck());
}
}),
(e.prototype._addCheckInputs = function (e) {
var t = this.checkInputs;
return function () {
t(), e();
};
}),
(e.prototype.attachInput = function (e) {
this.attachedElement && e.attachControl(this.attachedElement, this.noPreventDefault);
}),
(e.prototype.attachElement = function (e, t) {
if ((void 0 === t && (t = !1), !this.attachedElement))
for (var n in ((t = !o.a.ForceAttachControlToAlwaysPreventDefault && t), (this.attachedElement = e), (this.noPreventDefault = t), this.attached)) this.attached[n].attachControl(e, t);
}),
(e.prototype.detachElement = function (e, t) {
if ((void 0 === t && (t = !1), this.attachedElement === e)) {
for (var n in this.attached) this.attached[n].detachControl(e), t && (this.attached[n].camera = null);
this.attachedElement = null;
}
}),
(e.prototype.rebuildInputCheck = function () {
for (var e in ((this.checkInputs = function () {}), this.attached)) {
var t = this.attached[e];
t.checkInputs && (this.checkInputs = this._addCheckInputs(t.checkInputs.bind(t)));
}
}),
(e.prototype.clear = function () {
this.attachedElement && this.detachElement(this.attachedElement, !0), (this.attached = {}), (this.attachedElement = null), (this.checkInputs = function () {});
}),
(e.prototype.serialize = function (e) {
var t = {};
for (var n in this.attached) {
var i = this.attached[n],
o = r.a.Serialize(i);
t[i.getClassName()] = o;
}
e.inputsmgr = t;
}),
(e.prototype.parse = function (e) {
var t = e.inputsmgr;
if (t)
for (var n in (this.clear(), t)) {
if ((s = a[n])) {
var i = t[n],
o = r.a.Parse(
function () {
return new s();
},
i,
null
);
this.add(o);
}
}
else
for (var n in this.attached) {
var s;
if ((s = a[this.attached[n].getClassName()])) {
o = r.a.Parse(
function () {
return new s();
},
e,
null
);
this.remove(this.attached[n]), this.add(o);
}
}
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this._defines = {}), (this._currentRank = 32), (this._maxRank = -1), (this._mesh = null);
}
return (
(e.prototype.unBindMesh = function () {
this._mesh = null;
}),
(e.prototype.addFallback = function (e, t) {
this._defines[e] || (e < this._currentRank && (this._currentRank = e), e > this._maxRank && (this._maxRank = e), (this._defines[e] = new Array())), this._defines[e].push(t);
}),
(e.prototype.addCPUSkinningFallback = function (e, t) {
(this._mesh = t), e < this._currentRank && (this._currentRank = e), e > this._maxRank && (this._maxRank = e);
}),
Object.defineProperty(e.prototype, "hasMoreFallbacks", {
get: function () {
return this._currentRank <= this._maxRank;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.reduce = function (e, t) {
if (this._mesh && this._mesh.computeBonesUsingShaders && this._mesh.numBoneInfluencers > 0) {
(this._mesh.computeBonesUsingShaders = !1), (e = e.replace("#define NUM_BONE_INFLUENCERS " + this._mesh.numBoneInfluencers, "#define NUM_BONE_INFLUENCERS 0")), (t._bonesComputationForcedToCPU = !0);
for (var n = this._mesh.getScene(), i = 0; i < n.meshes.length; i++) {
var r = n.meshes[i];
if (r.material) {
if (r.computeBonesUsingShaders && 0 !== r.numBoneInfluencers)
if (r.material.getEffect() === t) r.computeBonesUsingShaders = !1;
else if (r.subMeshes)
for (var o = 0, a = r.subMeshes; o < a.length; o++) {
if (a[o].effect === t) {
r.computeBonesUsingShaders = !1;
break;
}
}
} else !this._mesh.material && r.computeBonesUsingShaders && r.numBoneInfluencers > 0 && (r.computeBonesUsingShaders = !1);
}
} else {
var s = this._defines[this._currentRank];
if (s) for (i = 0; i < s.length; i++) e = e.replace("#define " + s[i], "");
this._currentRank++;
}
return e;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return h;
});
var i = n(2),
r = n(6),
o = n(12),
a = n(1),
s = n(8),
c = n(135),
l = n(136),
u = (n(166), n(209), n(14)),
h = (function (e) {
function t(t, n, i, o, c, u, h, d, p, f, m, g, b) {
void 0 === c && (c = !0),
void 0 === u && (u = 0),
void 0 === h && (h = !1),
void 0 === d && (d = s.a.TRILINEAR_SAMPLINGMODE),
void 0 === p && (p = !0),
void 0 === f && (f = !1),
void 0 === m && (m = !1),
void 0 === g && (g = 5),
void 0 === b && (b = !1);
var _ = e.call(this, null, i, !o) || this;
return (
(_.isCube = h),
(_.renderParticles = !0),
(_.renderSprites = !1),
(_.coordinatesMode = s.a.PROJECTION_MODE),
(_.ignoreCameraViewport = !1),
(_.onBeforeBindObservable = new r.c()),
(_.onAfterUnbindObservable = new r.c()),
(_.onBeforeRenderObservable = new r.c()),
(_.onAfterRenderObservable = new r.c()),
(_.onClearObservable = new r.c()),
(_.onResizeObservable = new r.c()),
(_._currentRefreshId = -1),
(_._refreshRate = 1),
(_._samples = 1),
(_.boundingBoxPosition = a.e.Zero()),
(i = _.getScene())
? ((_.renderList = new Array()),
(_._engine = i.getEngine()),
(_.name = t),
(_.isRenderTarget = !0),
(_._initialSizeParameter = n),
_._processSizeParameter(n),
(_._resizeObserver = _.getScene()
.getEngine()
.onResizeObservable.add(function () {})),
(_._generateMipMaps = !!o),
(_._doNotChangeAspectRatio = c),
(_._renderingManager = new l.b(i)),
(_._renderingManager._useSceneAutoClearSetup = !0),
m ||
((_._renderTargetOptions = { generateMipMaps: o, type: u, format: g, samplingMode: d, generateDepthBuffer: p, generateStencilBuffer: f }),
d === s.a.NEAREST_SAMPLINGMODE && ((_.wrapU = s.a.CLAMP_ADDRESSMODE), (_.wrapV = s.a.CLAMP_ADDRESSMODE)),
b ||
(h
? ((_._texture = i.getEngine().createRenderTargetCubeTexture(_.getRenderSize(), _._renderTargetOptions)), (_.coordinatesMode = s.a.INVCUBIC_MODE), (_._textureMatrix = a.a.Identity()))
: (_._texture = i.getEngine().createRenderTargetTexture(_._size, _._renderTargetOptions)))),
_)
: _
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "renderList", {
get: function () {
return this._renderList;
},
set: function (e) {
(this._renderList = e), this._renderList && this._hookArray(this._renderList);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._hookArray = function (e) {
var t = this,
n = e.push;
e.push = function () {
for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r];
var o = 0 === e.length,
a = n.apply(e, i);
return (
o &&
t.getScene().meshes.forEach(function (e) {
e._markSubMeshesAsLightDirty();
}),
a
);
};
var i = e.splice;
e.splice = function (n, r) {
var o = i.apply(e, [n, r]);
return (
0 === e.length &&
t.getScene().meshes.forEach(function (e) {
e._markSubMeshesAsLightDirty();
}),
o
);
};
}),
Object.defineProperty(t.prototype, "onAfterUnbind", {
set: function (e) {
this._onAfterUnbindObserver && this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver), (this._onAfterUnbindObserver = this.onAfterUnbindObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onBeforeRender", {
set: function (e) {
this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onAfterRender", {
set: function (e) {
this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onClear", {
set: function (e) {
this._onClearObserver && this.onClearObservable.remove(this._onClearObserver), (this._onClearObserver = this.onClearObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "renderTargetOptions", {
get: function () {
return this._renderTargetOptions;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._onRatioRescale = function () {
this._sizeRatio && this.resize(this._initialSizeParameter);
}),
Object.defineProperty(t.prototype, "boundingBoxSize", {
get: function () {
return this._boundingBoxSize;
},
set: function (e) {
if (!this._boundingBoxSize || !this._boundingBoxSize.equals(e)) {
this._boundingBoxSize = e;
var t = this.getScene();
t && t.markAllMaterialsAsDirty(1);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "depthStencilTexture", {
get: function () {
var e;
return (null === (e = this.getInternalTexture()) || void 0 === e ? void 0 : e._depthStencilTexture) || null;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.createDepthStencilTexture = function (e, t, n) {
void 0 === e && (e = 0), void 0 === t && (t = !0), void 0 === n && (n = !1);
var i = this.getInternalTexture();
if (this.getScene() && i) {
var r = this.getScene().getEngine();
i._depthStencilTexture = r.createDepthStencilTexture(this._size, { bilinearFiltering: t, comparisonFunction: e, generateStencil: n, isCube: this.isCube });
}
}),
(t.prototype._processSizeParameter = function (e) {
e.ratio
? ((this._sizeRatio = e.ratio),
(this._size = {
width: this._bestReflectionRenderTargetDimension(this._engine.getRenderWidth(), this._sizeRatio),
height: this._bestReflectionRenderTargetDimension(this._engine.getRenderHeight(), this._sizeRatio),
}))
: (this._size = e);
}),
Object.defineProperty(t.prototype, "samples", {
get: function () {
return this._samples;
},
set: function (e) {
if (this._samples !== e) {
var t = this.getScene();
t && (this._samples = t.getEngine().updateRenderTargetTextureSampleCount(this._texture, e));
}
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.resetRefreshCounter = function () {
this._currentRefreshId = -1;
}),
Object.defineProperty(t.prototype, "refreshRate", {
get: function () {
return this._refreshRate;
},
set: function (e) {
(this._refreshRate = e), this.resetRefreshCounter();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.addPostProcess = function (e) {
if (!this._postProcessManager) {
var t = this.getScene();
if (!t) return;
(this._postProcessManager = new c.a(t)), (this._postProcesses = new Array());
}
this._postProcesses.push(e), (this._postProcesses[0].autoClear = !1);
}),
(t.prototype.clearPostProcesses = function (e) {
if ((void 0 === e && (e = !1), this._postProcesses)) {
if (e)
for (var t = 0, n = this._postProcesses; t < n.length; t++) {
n[t].dispose();
}
this._postProcesses = [];
}
}),
(t.prototype.removePostProcess = function (e) {
if (this._postProcesses) {
var t = this._postProcesses.indexOf(e);
-1 !== t && (this._postProcesses.splice(t, 1), this._postProcesses.length > 0 && (this._postProcesses[0].autoClear = !1));
}
}),
(t.prototype._shouldRender = function () {
return -1 === this._currentRefreshId || this.refreshRate === this._currentRefreshId ? ((this._currentRefreshId = 1), !0) : (this._currentRefreshId++, !1);
}),
(t.prototype.getRenderSize = function () {
return this.getRenderWidth();
}),
(t.prototype.getRenderWidth = function () {
return this._size.width ? this._size.width : this._size;
}),
(t.prototype.getRenderHeight = function () {
return this._size.width ? this._size.height : this._size;
}),
(t.prototype.getRenderLayers = function () {
var e = this._size.layers;
return e || 0;
}),
Object.defineProperty(t.prototype, "canRescale", {
get: function () {
return !0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.scale = function (e) {
var t = Math.max(1, this.getRenderSize() * e);
this.resize(t);
}),
(t.prototype.getReflectionTextureMatrix = function () {
return this.isCube ? this._textureMatrix : e.prototype.getReflectionTextureMatrix.call(this);
}),
(t.prototype.resize = function (e) {
var t = this.isCube;
this.releaseInternalTexture();
var n = this.getScene();
n &&
(this._processSizeParameter(e),
(this._texture = t ? n.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions) : n.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions)),
this.onResizeObservable.hasObservers() && this.onResizeObservable.notifyObservers(this));
}),
(t.prototype.render = function (e, t) {
if ((void 0 === e && (e = !1), void 0 === t && (t = !1), (s = this.getScene()))) {
var n,
i = s.getEngine();
if ((void 0 !== this.useCameraPostProcesses && (e = this.useCameraPostProcesses), this._waitingRenderList)) {
this.renderList = [];
for (var r = 0; r < this._waitingRenderList.length; r++) {
var o = this._waitingRenderList[r],
a = s.getMeshByID(o);
a && this.renderList.push(a);
}
delete this._waitingRenderList;
}
if (this.renderListPredicate) {
var s;
if ((this.renderList ? (this.renderList.length = 0) : (this.renderList = []), !(s = this.getScene()))) return;
var c = s.meshes;
for (r = 0; r < c.length; r++) {
var l = c[r];
this.renderListPredicate(l) && this.renderList.push(l);
}
}
if (
(this.onBeforeBindObservable.notifyObservers(this),
this.activeCamera
? ((n = this.activeCamera),
i.setViewport(this.activeCamera.viewport, this.getRenderWidth(), this.getRenderHeight()),
this.activeCamera !== s.activeCamera && s.setTransformMatrix(this.activeCamera.getViewMatrix(), this.activeCamera.getProjectionMatrix(!0)))
: (n = s.activeCamera) && i.setViewport(n.viewport, this.getRenderWidth(), this.getRenderHeight()),
(this._defaultRenderListPrepared = !1),
this.is2DArray)
)
for (var u = 0; u < this.getRenderLayers(); u++) this.renderToTarget(0, e, t, u, n), s.incrementRenderId(), s.resetCachedMaterial();
else if (this.isCube) for (var h = 0; h < 6; h++) this.renderToTarget(h, e, t, void 0, n), s.incrementRenderId(), s.resetCachedMaterial();
else this.renderToTarget(0, e, t, void 0, n);
this.onAfterUnbindObservable.notifyObservers(this),
s.activeCamera &&
((s.getEngine().scenes.length > 1 || (this.activeCamera && this.activeCamera !== s.activeCamera)) && s.setTransformMatrix(s.activeCamera.getViewMatrix(), s.activeCamera.getProjectionMatrix(!0)),
i.setViewport(s.activeCamera.viewport)),
s.resetCachedMaterial();
}
}),
(t.prototype._bestReflectionRenderTargetDimension = function (e, t) {
var n = e * t,
i = u.a.NearestPOT(n + 16384 / (128 + n));
return Math.min(u.a.FloorPOT(e), i);
}),
(t.prototype._prepareRenderingManager = function (e, t, n, i) {
var r = this.getScene();
if (r) {
this._renderingManager.reset();
for (var o = r.getRenderId(), a = 0; a < t; a++) {
var s = e[a];
if (s) {
if (!s.isReady(0 === this.refreshRate)) {
this.resetRefreshCounter();
continue;
}
s._preActivateForIntermediateRendering(o);
var c = void 0;
if (((c = !(!i || !n) && 0 == (s.layerMask & n.layerMask)), s.isEnabled() && s.isVisible && s.subMeshes && !c && s._activate(o, !0) && s.subMeshes.length)) {
s.isAnInstance ? (s = s.sourceMesh) : (s._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = !1), (s._internalAbstractMeshDataInfo._isActiveIntermediate = !0);
for (var l = 0; l < s.subMeshes.length; l++) {
var u = s.subMeshes[l];
this._renderingManager.dispatch(u, s);
}
}
}
}
for (var h = 0; h < r.particleSystems.length; h++) {
var d = r.particleSystems[h],
p = d.emitter;
d.isStarted() && p && p.position && p.isEnabled() && e.indexOf(p) >= 0 && this._renderingManager.dispatchParticles(d);
}
}
}),
(t.prototype._bindFrameBuffer = function (e, t) {
void 0 === e && (e = 0), void 0 === t && (t = 0);
var n = this.getScene();
if (n) {
var i = n.getEngine();
this._texture && i.bindFramebuffer(this._texture, this.isCube ? e : void 0, void 0, void 0, this.ignoreCameraViewport, 0, t);
}
}),
(t.prototype.unbindFrameBuffer = function (e, t) {
var n = this;
this._texture &&
e.unBindFramebuffer(this._texture, this.isCube, function () {
n.onAfterRenderObservable.notifyObservers(t);
});
}),
(t.prototype.renderToTarget = function (e, t, n, i, r) {
void 0 === i && (i = 0), void 0 === r && (r = null);
var a = this.getScene();
if (a) {
var s = a.getEngine();
if (this._texture) {
this._postProcessManager ? this._postProcessManager._prepareFrame(this._texture, this._postProcesses) : (t && a.postProcessManager._prepareFrame(this._texture)) || this._bindFrameBuffer(e, i),
this.is2DArray ? this.onBeforeRenderObservable.notifyObservers(i) : this.onBeforeRenderObservable.notifyObservers(e);
var c = null,
l = this.renderList ? this.renderList : a.getActiveMeshes().data,
u = this.renderList ? this.renderList.length : a.getActiveMeshes().length;
this.getCustomRenderList && (c = this.getCustomRenderList(this.is2DArray ? i : e, l, u)),
c ? this._prepareRenderingManager(c, c.length, r, !1) : (this._defaultRenderListPrepared || (this._prepareRenderingManager(l, u, r, !this.renderList), (this._defaultRenderListPrepared = !0)), (c = l)),
this.onClearObservable.hasObservers() ? this.onClearObservable.notifyObservers(s) : s.clear(this.clearColor || a.clearColor, !0, !0, !0),
this._doNotChangeAspectRatio || a.updateTransformMatrix(!0);
for (var h = 0, d = a._beforeRenderTargetDrawStage; h < d.length; h++) {
d[h].action(this);
}
this._renderingManager.render(this.customRenderFunction, c, this.renderParticles, this.renderSprites);
for (var p = 0, f = a._afterRenderTargetDrawStage; p < f.length; p++) {
f[p].action(this);
}
this._postProcessManager ? this._postProcessManager._finalizeFrame(!1, this._texture, e, this._postProcesses, this.ignoreCameraViewport) : t && a.postProcessManager._finalizeFrame(!1, this._texture, e),
this._doNotChangeAspectRatio || a.updateTransformMatrix(!0),
n && o.b.DumpFramebuffer(this.getRenderWidth(), this.getRenderHeight(), s),
this.isCube && 5 !== e ? this.onAfterRenderObservable.notifyObservers(e) : (this.isCube && 5 === e && s.generateMipMapsForCubemap(this._texture), this.unbindFrameBuffer(s, e));
}
}
}),
(t.prototype.setRenderingOrder = function (e, t, n, i) {
void 0 === t && (t = null), void 0 === n && (n = null), void 0 === i && (i = null), this._renderingManager.setRenderingOrder(e, t, n, i);
}),
(t.prototype.setRenderingAutoClearDepthStencil = function (e, t) {
this._renderingManager.setRenderingAutoClearDepthStencil(e, t), (this._renderingManager._useSceneAutoClearSetup = !1);
}),
(t.prototype.clone = function () {
var e = this.getSize(),
n = new t(
this.name,
e,
this.getScene(),
this._renderTargetOptions.generateMipMaps,
this._doNotChangeAspectRatio,
this._renderTargetOptions.type,
this.isCube,
this._renderTargetOptions.samplingMode,
this._renderTargetOptions.generateDepthBuffer,
this._renderTargetOptions.generateStencilBuffer
);
return (n.hasAlpha = this.hasAlpha), (n.level = this.level), (n.coordinatesMode = this.coordinatesMode), this.renderList && (n.renderList = this.renderList.slice(0)), n;
}),
(t.prototype.serialize = function () {
if (!this.name) return null;
var t = e.prototype.serialize.call(this);
if (((t.renderTargetSize = this.getRenderSize()), (t.renderList = []), this.renderList)) for (var n = 0; n < this.renderList.length; n++) t.renderList.push(this.renderList[n].id);
return t;
}),
(t.prototype.disposeFramebufferObjects = function () {
var e = this.getInternalTexture(),
t = this.getScene();
e && t && t.getEngine()._releaseFramebufferObjects(e);
}),
(t.prototype.dispose = function () {
this.onResizeObservable.clear(),
this.onClearObservable.clear(),
this.onAfterRenderObservable.clear(),
this.onAfterUnbindObservable.clear(),
this.onBeforeBindObservable.clear(),
this.onBeforeRenderObservable.clear(),
this._postProcessManager && (this._postProcessManager.dispose(), (this._postProcessManager = null)),
this.clearPostProcesses(!0),
this._resizeObserver && (this.getScene().getEngine().onResizeObservable.remove(this._resizeObserver), (this._resizeObserver = null)),
(this.renderList = null);
var t = this.getScene();
if (t) {
var n = t.customRenderTargets.indexOf(this);
n >= 0 && t.customRenderTargets.splice(n, 1);
for (var i = 0, r = t.cameras; i < r.length; i++) {
var o = r[i];
(n = o.customRenderTargets.indexOf(this)) >= 0 && o.customRenderTargets.splice(n, 1);
}
this.depthStencilTexture && this.getScene().getEngine()._releaseTexture(this.depthStencilTexture), e.prototype.dispose.call(this);
}
}),
(t.prototype._rebuild = function () {
this.refreshRate === t.REFRESHRATE_RENDER_ONCE && (this.refreshRate = t.REFRESHRATE_RENDER_ONCE), this._postProcessManager && this._postProcessManager._rebuild();
}),
(t.prototype.freeRenderingGroups = function () {
this._renderingManager && this._renderingManager.freeRenderingGroups();
}),
(t.prototype.getViewCount = function () {
return 1;
}),
(t.REFRESHRATE_RENDER_ONCE = 0),
(t.REFRESHRATE_RENDER_ONEVERYFRAME = 1),
(t.REFRESHRATE_RENDER_ONEVERYTWOFRAMES = 2),
t
);
})(s.a);
s.a._CreateRenderTargetTexture = function (e, t, n, i) {
return new h(e, t, n, i);
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(179),
r = (function () {
function e() {}
return (
(e.EnableFor = function (t) {
(t._tags = t._tags || {}),
(t.hasTags = function () {
return e.HasTags(t);
}),
(t.addTags = function (n) {
return e.AddTagsTo(t, n);
}),
(t.removeTags = function (n) {
return e.RemoveTagsFrom(t, n);
}),
(t.matchesTagsQuery = function (n) {
return e.MatchesQuery(t, n);
});
}),
(e.DisableFor = function (e) {
delete e._tags, delete e.hasTags, delete e.addTags, delete e.removeTags, delete e.matchesTagsQuery;
}),
(e.HasTags = function (e) {
if (!e._tags) return !1;
var t = e._tags;
for (var n in t) if (t.hasOwnProperty(n)) return !0;
return !1;
}),
(e.GetTags = function (e, t) {
if ((void 0 === t && (t = !0), !e._tags)) return null;
if (t) {
var n = [];
for (var i in e._tags) e._tags.hasOwnProperty(i) && !0 === e._tags[i] && n.push(i);
return n.join(" ");
}
return e._tags;
}),
(e.AddTagsTo = function (t, n) {
n &&
"string" == typeof n &&
n.split(" ").forEach(function (n, i, r) {
e._AddTagTo(t, n);
});
}),
(e._AddTagTo = function (t, n) {
"" !== (n = n.trim()) && "true" !== n && "false" !== n && (n.match(/[\s]/) || n.match(/^([!]|([|]|[&]){2})/) || (e.EnableFor(t), (t._tags[n] = !0)));
}),
(e.RemoveTagsFrom = function (t, n) {
if (e.HasTags(t)) {
var i = n.split(" ");
for (var r in i) e._RemoveTagFrom(t, i[r]);
}
}),
(e._RemoveTagFrom = function (e, t) {
delete e._tags[t];
}),
(e.MatchesQuery = function (t, n) {
return (
void 0 === n ||
("" === n
? e.HasTags(t)
: i.a.Eval(n, function (n) {
return e.HasTags(t) && t._tags[n];
}))
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(2),
r = n(1),
o = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (i._normalMatrix = new r.a()), (i.allowShaderHotSwapping = !0), (i._storeEffectOnSubMeshes = !0), i;
}
return (
Object(i.d)(t, e),
(t.prototype.getEffect = function () {
return this._activeEffect;
}),
(t.prototype.isReady = function (e, t) {
return !!e && (!e.subMeshes || 0 === e.subMeshes.length || this.isReadyForSubMesh(e, e.subMeshes[0], t));
}),
(t.prototype.bindOnlyWorldMatrix = function (e) {
this._activeEffect.setMatrix("world", e);
}),
(t.prototype.bindOnlyNormalMatrix = function (e) {
this._activeEffect.setMatrix("normalMatrix", e);
}),
(t.prototype.bind = function (e, t) {
t && this.bindForSubMesh(e, t, t.subMeshes[0]);
}),
(t.prototype._afterBind = function (t, n) {
void 0 === n && (n = null), e.prototype._afterBind.call(this, t), (this.getScene()._cachedEffect = n);
}),
(t.prototype._mustRebind = function (e, t, n) {
return void 0 === n && (n = 1), e.isCachedMaterialInvalid(this, t, n);
}),
t
);
})(n(28).a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
}),
n.d(t, "b", function () {
return o;
});
var i = n(2),
r = (function () {
function e(t) {
(this.length = 0), (this.data = new Array(t)), (this._id = e._GlobalId++);
}
return (
(e.prototype.push = function (e) {
(this.data[this.length++] = e), this.length > this.data.length && (this.data.length *= 2);
}),
(e.prototype.forEach = function (e) {
for (var t = 0; t < this.length; t++) e(this.data[t]);
}),
(e.prototype.sort = function (e) {
this.data.sort(e);
}),
(e.prototype.reset = function () {
this.length = 0;
}),
(e.prototype.dispose = function () {
this.reset(), this.data && ((this.data.length = 0), (this.data = []));
}),
(e.prototype.concat = function (e) {
if (0 !== e.length) {
this.length + e.length > this.data.length && (this.data.length = 2 * (this.length + e.length));
for (var t = 0; t < e.length; t++) this.data[this.length++] = (e.data || e)[t];
}
}),
(e.prototype.indexOf = function (e) {
var t = this.data.indexOf(e);
return t >= this.length ? -1 : t;
}),
(e.prototype.contains = function (e) {
return -1 !== this.indexOf(e);
}),
(e._GlobalId = 0),
e
);
})(),
o = (function (e) {
function t() {
var t = (null !== e && e.apply(this, arguments)) || this;
return (t._duplicateId = 0), t;
}
return (
Object(i.d)(t, e),
(t.prototype.push = function (t) {
e.prototype.push.call(this, t), t.__smartArrayFlags || (t.__smartArrayFlags = {}), (t.__smartArrayFlags[this._id] = this._duplicateId);
}),
(t.prototype.pushNoDuplicate = function (e) {
return (!e.__smartArrayFlags || e.__smartArrayFlags[this._id] !== this._duplicateId) && (this.push(e), !0);
}),
(t.prototype.reset = function () {
e.prototype.reset.call(this), this._duplicateId++;
}),
(t.prototype.concatWithNoDuplicate = function (e) {
if (0 !== e.length) {
this.length + e.length > this.data.length && (this.data.length = 2 * (this.length + e.length));
for (var t = 0; t < e.length; t++) {
var n = (e.data || e)[t];
this.pushNoDuplicate(n);
}
}
}),
t
);
})(r);
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.GameConfig = void 0);
class i {
static get showDebugInfo() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("FPS INFO");
}
static get isGodMode() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("GOD MODE");
}
static get showColliders() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("COLLIDERS");
}
static get showPlayerCollider() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("PLAYER COLLIDER");
}
static get showPathPoints() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("PATH POINTS");
}
static get canSwitchCamera() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("SECOND CAMERA");
}
static get canShowInspector() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("INSPECTOR");
}
static get showDeathInfo() {
return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("DEATH INFO");
}
}
(t.GameConfig = i),
(i.DEFAULT_ZONES = ["Base", "Forest", "Narrows", "WaterSlide", "MineCart"]),
(i.DEFAULT_REGION = "Machu"),
(i.IS_PROD = !1),
(i.IS_DEBUG = !1),
(i.IS_RELEASE = !0),
(i.BUILD_VERSION = "1.0.0"),
(i.DEBUG_SELECTED_ZONES = [...i.DEFAULT_ZONES]),
(i.DEBUG_MIN_DISTANCE_BETWEEN_BASE_ZONE_CHANGE = 80),
(i.MAX_START_PIECES = 10),
(i.HAS_AD_BLOCKER = !1),
(i.COIN_REWARDS_FROM_AD = 100),
(i.IS_AD_PLAYING = !1),
(i.DEBUG_FEATURES = i.IS_DEBUG ? ["FPS INFO", "SECOND CAMERA", "INSPECTOR", "DEATH INFO"] : []),
(i.ALL_DEBUG_FEATURES = ["FPS INFO", "GOD MODE", "PATH POINTS", "SECOND CAMERA", "INSPECTOR", "COLLIDERS", "PLAYER COLLIDER", "DEATH INFO"]);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(3),
o = n(158),
a = n(5),
s = n(95),
c = n(13),
l = (function (e) {
function t(n, i) {
var r = e.call(this, n, i) || this;
return (
(r.directIntensity = 1),
(r.emissiveIntensity = 1),
(r.environmentIntensity = 1),
(r.specularIntensity = 1),
(r.disableBumpMap = !1),
(r.ambientTextureStrength = 1),
(r.ambientTextureImpactOnAnalyticalLights = t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS),
(r.metallicF0Factor = 0.5),
(r.useMetallicF0FactorFromMetallicTexture = !1),
(r.ambientColor = new a.a(0, 0, 0)),
(r.albedoColor = new a.a(1, 1, 1)),
(r.reflectivityColor = new a.a(1, 1, 1)),
(r.reflectionColor = new a.a(1, 1, 1)),
(r.emissiveColor = new a.a(0, 0, 0)),
(r.microSurface = 1),
(r.useLightmapAsShadowmap = !1),
(r.useAlphaFromAlbedoTexture = !1),
(r.forceAlphaTest = !1),
(r.alphaCutOff = 0.4),
(r.useSpecularOverAlpha = !0),
(r.useMicroSurfaceFromReflectivityMapAlpha = !1),
(r.useRoughnessFromMetallicTextureAlpha = !0),
(r.useRoughnessFromMetallicTextureGreen = !1),
(r.useMetallnessFromMetallicTextureBlue = !1),
(r.useAmbientOcclusionFromMetallicTextureRed = !1),
(r.useAmbientInGrayScale = !1),
(r.useAutoMicroSurfaceFromReflectivityMap = !1),
(r.useRadianceOverAlpha = !0),
(r.useObjectSpaceNormalMap = !1),
(r.useParallax = !1),
(r.useParallaxOcclusion = !1),
(r.parallaxScaleBias = 0.05),
(r.disableLighting = !1),
(r.forceIrradianceInFragment = !1),
(r.maxSimultaneousLights = 4),
(r.invertNormalMapX = !1),
(r.invertNormalMapY = !1),
(r.twoSidedLighting = !1),
(r.useAlphaFresnel = !1),
(r.useLinearAlphaFresnel = !1),
(r.environmentBRDFTexture = null),
(r.forceNormalForward = !1),
(r.enableSpecularAntiAliasing = !1),
(r.useHorizonOcclusion = !0),
(r.useRadianceOcclusion = !0),
(r.unlit = !1),
(r._environmentBRDFTexture = o.a.GetEnvironmentBRDFTexture(i)),
r
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "refractionTexture", {
get: function () {
return this.subSurface.refractionTexture;
},
set: function (e) {
(this.subSurface.refractionTexture = e), e ? (this.subSurface.isRefractionEnabled = !0) : this.subSurface.linkRefractionWithTransparency || (this.subSurface.isRefractionEnabled = !1);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "indexOfRefraction", {
get: function () {
return 1 / this.subSurface.indexOfRefraction;
},
set: function (e) {
this.subSurface.indexOfRefraction = 1 / e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "invertRefractionY", {
get: function () {
return this.subSurface.invertRefractionY;
},
set: function (e) {
this.subSurface.invertRefractionY = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "linkRefractionWithTransparency", {
get: function () {
return this.subSurface.linkRefractionWithTransparency;
},
set: function (e) {
(this.subSurface.linkRefractionWithTransparency = e), e && (this.subSurface.isRefractionEnabled = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "usePhysicalLightFalloff", {
get: function () {
return this._lightFalloff === s.a.LIGHTFALLOFF_PHYSICAL;
},
set: function (e) {
e !== this.usePhysicalLightFalloff && (this._markAllSubMeshesAsTexturesDirty(), (this._lightFalloff = e ? s.a.LIGHTFALLOFF_PHYSICAL : s.a.LIGHTFALLOFF_STANDARD));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useGLTFLightFalloff", {
get: function () {
return this._lightFalloff === s.a.LIGHTFALLOFF_GLTF;
},
set: function (e) {
e !== this.useGLTFLightFalloff && (this._markAllSubMeshesAsTexturesDirty(), (this._lightFalloff = e ? s.a.LIGHTFALLOFF_GLTF : s.a.LIGHTFALLOFF_STANDARD));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
set: function (e) {
this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorCurvesEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorCurvesEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorCurvesEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorGradingEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorGradingEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorGradingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraToneMappingEnabled", {
get: function () {
return this._imageProcessingConfiguration.toneMappingEnabled;
},
set: function (e) {
this._imageProcessingConfiguration.toneMappingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraExposure", {
get: function () {
return this._imageProcessingConfiguration.exposure;
},
set: function (e) {
this._imageProcessingConfiguration.exposure = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraContrast", {
get: function () {
return this._imageProcessingConfiguration.contrast;
},
set: function (e) {
this._imageProcessingConfiguration.contrast = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorGradingTexture", {
get: function () {
return this._imageProcessingConfiguration.colorGradingTexture;
},
set: function (e) {
this._imageProcessingConfiguration.colorGradingTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorCurves", {
get: function () {
return this._imageProcessingConfiguration.colorCurves;
},
set: function (e) {
this._imageProcessingConfiguration.colorCurves = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "PBRMaterial";
}),
(t.prototype.clone = function (e) {
var n = this,
i = r.a.Clone(function () {
return new t(e, n.getScene());
}, this);
return (i.id = e), (i.name = e), this.clearCoat.copyTo(i.clearCoat), this.anisotropy.copyTo(i.anisotropy), this.brdf.copyTo(i.brdf), this.sheen.copyTo(i.sheen), this.subSurface.copyTo(i.subSurface), i;
}),
(t.prototype.serialize = function () {
var e = r.a.Serialize(this);
return (
(e.customType = "BABYLON.PBRMaterial"),
(e.clearCoat = this.clearCoat.serialize()),
(e.anisotropy = this.anisotropy.serialize()),
(e.brdf = this.brdf.serialize()),
(e.sheen = this.sheen.serialize()),
(e.subSurface = this.subSurface.serialize()),
e
);
}),
(t.Parse = function (e, n, i) {
var o = r.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
return (
e.clearCoat && o.clearCoat.parse(e.clearCoat, n, i),
e.anisotropy && o.anisotropy.parse(e.anisotropy, n, i),
e.brdf && o.brdf.parse(e.brdf, n, i),
e.sheen && o.sheen.parse(e.sheen, n, i),
e.subSurface && o.subSurface.parse(e.subSurface, n, i),
o
);
}),
(t.PBRMATERIAL_OPAQUE = s.a.PBRMATERIAL_OPAQUE),
(t.PBRMATERIAL_ALPHATEST = s.a.PBRMATERIAL_ALPHATEST),
(t.PBRMATERIAL_ALPHABLEND = s.a.PBRMATERIAL_ALPHABLEND),
(t.PBRMATERIAL_ALPHATESTANDBLEND = s.a.PBRMATERIAL_ALPHATESTANDBLEND),
(t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = s.a.DEFAULT_AO_ON_ANALYTICAL_LIGHTS),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "directIntensity", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveIntensity", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "environmentIntensity", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "specularIntensity", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "disableBumpMap", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "albedoTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTextureStrength", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTextureImpactOnAnalyticalLights", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "opacityTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectivityTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallicTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallic", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "roughness", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallicF0Factor", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useMetallicF0FactorFromMetallicTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "microSurfaceTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "bumpTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", null)], t.prototype, "lightmapTexture", void 0),
Object(i.c)([Object(r.e)("ambient"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientColor", void 0),
Object(i.c)([Object(r.e)("albedo"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "albedoColor", void 0),
Object(i.c)([Object(r.e)("reflectivity"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectivityColor", void 0),
Object(i.c)([Object(r.e)("reflection"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionColor", void 0),
Object(i.c)([Object(r.e)("emissive"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveColor", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "microSurface", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLightmapAsShadowmap", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "useAlphaFromAlbedoTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "forceAlphaTest", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "alphaCutOff", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useSpecularOverAlpha", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useMicroSurfaceFromReflectivityMapAlpha", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRoughnessFromMetallicTextureAlpha", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRoughnessFromMetallicTextureGreen", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useMetallnessFromMetallicTextureBlue", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAmbientOcclusionFromMetallicTextureRed", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAmbientInGrayScale", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAutoMicroSurfaceFromReflectivityMap", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "usePhysicalLightFalloff", null),
Object(i.c)([Object(r.c)()], t.prototype, "useGLTFLightFalloff", null),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRadianceOverAlpha", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useObjectSpaceNormalMap", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallax", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallaxOcclusion", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "parallaxScaleBias", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "disableLighting", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "forceIrradianceInFragment", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "maxSimultaneousLights", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapX", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapY", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "twoSidedLighting", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAlphaFresnel", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLinearAlphaFresnel", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "environmentBRDFTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "forceNormalForward", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "enableSpecularAntiAliasing", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useHorizonOcclusion", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRadianceOcclusion", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], t.prototype, "unlit", void 0),
t
);
})(s.a);
c.a.RegisteredTypes["BABYLON.PBRMaterial"] = l;
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return u;
}),
n.d(t, "a", function () {
return h;
});
var i = n(2),
r = n(3),
o = n(6),
a = n(12),
s = n(5),
c = n(41),
l = n(162),
u = (function (e) {
function t() {
var t = e.call(this) || this;
return (
(t.IMAGEPROCESSING = !1),
(t.VIGNETTE = !1),
(t.VIGNETTEBLENDMODEMULTIPLY = !1),
(t.VIGNETTEBLENDMODEOPAQUE = !1),
(t.TONEMAPPING = !1),
(t.TONEMAPPING_ACES = !1),
(t.CONTRAST = !1),
(t.COLORCURVES = !1),
(t.COLORGRADING = !1),
(t.COLORGRADING3D = !1),
(t.SAMPLER3DGREENDEPTH = !1),
(t.SAMPLER3DBGRMAP = !1),
(t.IMAGEPROCESSINGPOSTPROCESS = !1),
(t.EXPOSURE = !1),
t.rebuild(),
t
);
}
return Object(i.d)(t, e), t;
})(c.a),
h = (function () {
function e() {
(this.colorCurves = new l.a()),
(this._colorCurvesEnabled = !1),
(this._colorGradingEnabled = !1),
(this._colorGradingWithGreenDepth = !0),
(this._colorGradingBGR = !0),
(this._exposure = 1),
(this._toneMappingEnabled = !1),
(this._toneMappingType = e.TONEMAPPING_STANDARD),
(this._contrast = 1),
(this.vignetteStretch = 0),
(this.vignetteCentreX = 0),
(this.vignetteCentreY = 0),
(this.vignetteWeight = 1.5),
(this.vignetteColor = new s.b(0, 0, 0, 0)),
(this.vignetteCameraFov = 0.5),
(this._vignetteBlendMode = e.VIGNETTEMODE_MULTIPLY),
(this._vignetteEnabled = !1),
(this._applyByPostProcess = !1),
(this._isEnabled = !0),
(this.onUpdateParameters = new o.c());
}
return (
Object.defineProperty(e.prototype, "colorCurvesEnabled", {
get: function () {
return this._colorCurvesEnabled;
},
set: function (e) {
this._colorCurvesEnabled !== e && ((this._colorCurvesEnabled = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "colorGradingTexture", {
get: function () {
return this._colorGradingTexture;
},
set: function (e) {
this._colorGradingTexture !== e && ((this._colorGradingTexture = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "colorGradingEnabled", {
get: function () {
return this._colorGradingEnabled;
},
set: function (e) {
this._colorGradingEnabled !== e && ((this._colorGradingEnabled = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "colorGradingWithGreenDepth", {
get: function () {
return this._colorGradingWithGreenDepth;
},
set: function (e) {
this._colorGradingWithGreenDepth !== e && ((this._colorGradingWithGreenDepth = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "colorGradingBGR", {
get: function () {
return this._colorGradingBGR;
},
set: function (e) {
this._colorGradingBGR !== e && ((this._colorGradingBGR = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "exposure", {
get: function () {
return this._exposure;
},
set: function (e) {
this._exposure !== e && ((this._exposure = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "toneMappingEnabled", {
get: function () {
return this._toneMappingEnabled;
},
set: function (e) {
this._toneMappingEnabled !== e && ((this._toneMappingEnabled = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "toneMappingType", {
get: function () {
return this._toneMappingType;
},
set: function (e) {
this._toneMappingType !== e && ((this._toneMappingType = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "contrast", {
get: function () {
return this._contrast;
},
set: function (e) {
this._contrast !== e && ((this._contrast = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "vignetteBlendMode", {
get: function () {
return this._vignetteBlendMode;
},
set: function (e) {
this._vignetteBlendMode !== e && ((this._vignetteBlendMode = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "vignetteEnabled", {
get: function () {
return this._vignetteEnabled;
},
set: function (e) {
this._vignetteEnabled !== e && ((this._vignetteEnabled = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "applyByPostProcess", {
get: function () {
return this._applyByPostProcess;
},
set: function (e) {
this._applyByPostProcess !== e && ((this._applyByPostProcess = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
this._isEnabled !== e && ((this._isEnabled = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._updateParameters = function () {
this.onUpdateParameters.notifyObservers(this);
}),
(e.prototype.getClassName = function () {
return "ImageProcessingConfiguration";
}),
(e.PrepareUniforms = function (e, t) {
t.EXPOSURE && e.push("exposureLinear"),
t.CONTRAST && e.push("contrast"),
t.COLORGRADING && e.push("colorTransformSettings"),
t.VIGNETTE && (e.push("vInverseScreenSize"), e.push("vignetteSettings1"), e.push("vignetteSettings2")),
t.COLORCURVES && l.a.PrepareUniforms(e);
}),
(e.PrepareSamplers = function (e, t) {
t.COLORGRADING && e.push("txColorTransform");
}),
(e.prototype.prepareDefines = function (t, n) {
if ((void 0 === n && (n = !1), n !== this.applyByPostProcess || !this._isEnabled))
return (
(t.VIGNETTE = !1),
(t.TONEMAPPING = !1),
(t.TONEMAPPING_ACES = !1),
(t.CONTRAST = !1),
(t.EXPOSURE = !1),
(t.COLORCURVES = !1),
(t.COLORGRADING = !1),
(t.COLORGRADING3D = !1),
(t.IMAGEPROCESSING = !1),
void (t.IMAGEPROCESSINGPOSTPROCESS = this.applyByPostProcess && this._isEnabled)
);
switch (
((t.VIGNETTE = this.vignetteEnabled),
(t.VIGNETTEBLENDMODEMULTIPLY = this.vignetteBlendMode === e._VIGNETTEMODE_MULTIPLY),
(t.VIGNETTEBLENDMODEOPAQUE = !t.VIGNETTEBLENDMODEMULTIPLY),
(t.TONEMAPPING = this.toneMappingEnabled),
this._toneMappingType)
) {
case e.TONEMAPPING_ACES:
t.TONEMAPPING_ACES = !0;
break;
default:
t.TONEMAPPING_ACES = !1;
}
(t.CONTRAST = 1 !== this.contrast),
(t.EXPOSURE = 1 !== this.exposure),
(t.COLORCURVES = this.colorCurvesEnabled && !!this.colorCurves),
(t.COLORGRADING = this.colorGradingEnabled && !!this.colorGradingTexture),
t.COLORGRADING ? (t.COLORGRADING3D = this.colorGradingTexture.is3D) : (t.COLORGRADING3D = !1),
(t.SAMPLER3DGREENDEPTH = this.colorGradingWithGreenDepth),
(t.SAMPLER3DBGRMAP = this.colorGradingBGR),
(t.IMAGEPROCESSINGPOSTPROCESS = this.applyByPostProcess),
(t.IMAGEPROCESSING = t.VIGNETTE || t.TONEMAPPING || t.CONTRAST || t.EXPOSURE || t.COLORCURVES || t.COLORGRADING);
}),
(e.prototype.isReady = function () {
return !this.colorGradingEnabled || !this.colorGradingTexture || this.colorGradingTexture.isReady();
}),
(e.prototype.bind = function (e, t) {
if ((this._colorCurvesEnabled && this.colorCurves && l.a.Bind(this.colorCurves, e), this._vignetteEnabled)) {
var n = 1 / e.getEngine().getRenderWidth(),
i = 1 / e.getEngine().getRenderHeight();
e.setFloat2("vInverseScreenSize", n, i);
var r = null != t ? t : i / n,
o = Math.tan(0.5 * this.vignetteCameraFov),
s = o * r,
c = Math.sqrt(s * o);
(s = a.b.Mix(s, c, this.vignetteStretch)), (o = a.b.Mix(o, c, this.vignetteStretch)), e.setFloat4("vignetteSettings1", s, o, -s * this.vignetteCentreX, -o * this.vignetteCentreY);
var u = -2 * this.vignetteWeight;
e.setFloat4("vignetteSettings2", this.vignetteColor.r, this.vignetteColor.g, this.vignetteColor.b, u);
}
if ((e.setFloat("exposureLinear", this.exposure), e.setFloat("contrast", this.contrast), this.colorGradingTexture)) {
e.setTexture("txColorTransform", this.colorGradingTexture);
var h = this.colorGradingTexture.getSize().height;
e.setFloat4("colorTransformSettings", (h - 1) / h, 0.5 / h, h, this.colorGradingTexture.level);
}
}),
(e.prototype.clone = function () {
return r.a.Clone(function () {
return new e();
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.Parse = function (t) {
return r.a.Parse(
function () {
return new e();
},
t,
null,
null
);
}),
Object.defineProperty(e, "VIGNETTEMODE_MULTIPLY", {
get: function () {
return this._VIGNETTEMODE_MULTIPLY;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "VIGNETTEMODE_OPAQUE", {
get: function () {
return this._VIGNETTEMODE_OPAQUE;
},
enumerable: !0,
configurable: !0,
}),
(e.TONEMAPPING_STANDARD = 0),
(e.TONEMAPPING_ACES = 1),
(e._VIGNETTEMODE_MULTIPLY = 0),
(e._VIGNETTEMODE_OPAQUE = 1),
Object(i.c)([Object(r.g)()], e.prototype, "colorCurves", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_colorCurvesEnabled", void 0),
Object(i.c)([Object(r.m)("colorGradingTexture")], e.prototype, "_colorGradingTexture", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_colorGradingEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_colorGradingWithGreenDepth", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_colorGradingBGR", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_exposure", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_toneMappingEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_toneMappingType", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_contrast", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "vignetteStretch", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "vignetteCentreX", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "vignetteCentreY", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "vignetteWeight", void 0),
Object(i.c)([Object(r.f)()], e.prototype, "vignetteColor", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "vignetteCameraFov", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_vignetteBlendMode", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_vignetteEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_applyByPostProcess", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_isEnabled", void 0),
e
);
})();
r.a._ImageProcessingConfigurationParser = h.Parse;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(53),
r = function (e, t) {
return e ? (e.getClassName && "Mesh" === e.getClassName() ? null : e.getClassName && "SubMesh" === e.getClassName() ? e.clone(t) : e.clone ? e.clone() : null) : null;
},
o = (function () {
function e() {}
return (
(e.DeepCopy = function (e, t, n, o) {
for (var a in e)
if (("_" !== a[0] || (o && -1 !== o.indexOf(a))) && !(i.a.EndsWith(a, "Observable") || (n && -1 !== n.indexOf(a)))) {
var s = e[a],
c = typeof s;
if ("function" !== c)
try {
if ("object" === c)
if (s instanceof Array) {
if (((t[a] = []), s.length > 0))
if ("object" == typeof s[0])
for (var l = 0; l < s.length; l++) {
var u = r(s[l], t);
-1 === t[a].indexOf(u) && t[a].push(u);
}
else t[a] = s.slice(0);
} else t[a] = r(s, t);
else t[a] = s;
} catch (e) {}
}
}),
e
);
})();
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }),
(t.gameState = t.GameState = t.AbilityUpgradesData = t.DailyChallengeData = t.FlagsData = t.StatsData = t.CurrentDayData = t.CurrentRunData = t.STORAGE_GAME_STATE_KEY = t.POWERUP_FILL_MIN = t.POWERUP_FILL_MAX = void 0);
const i = n(222),
r = n(29),
o = n(233),
a = n(139),
s = n(156),
c = n(269),
l = n(234),
u = n(40),
h = n(48);
(t.POWERUP_FILL_MAX = 360), (t.POWERUP_FILL_MIN = 110), (t.STORAGE_GAME_STATE_KEY = "TR2_GAME_STATE");
class d {
constructor() {
(this.score = 0),
(this.distance = 0),
(this.coins = 0),
(this.currentMeterStreak = 0),
(this.powerupFillValue = t.POWERUP_FILL_MAX),
(this.powerupFillGlow = ""),
(this.powerupFillBlink = ""),
(this.deathMessage = ""),
(this.deathImagePosition = "0% 0%"),
(this.nextDistanceToastThreshold = 250),
(this.highScoreToastMessageDone = !1),
(this.stumbleThisRun = 0),
(this.resurrectsThisRun = 0),
(this.powermeterUsedThisRun = 0),
(this.powerupsCollectedThisRun = 0),
(this.waterslideSurvivedThisRun = 0),
(this.minecartSurvivedThisRun = 0),
(this.coinsCollectedInWaterSlide = 0),
(this.coinsCollectedInMineCart = 0),
(this.distanceCoveredInMineCart = 0),
(this.distanceCoveredInWaterSlide = 0);
}
}
t.CurrentRunData = d;
class p {
constructor() {
(this.score = 0),
(this.distance = 0),
(this.coins = 0),
(this.stumbleToday = 0),
(this.resurrectsToday = 0),
(this.powerMeterUsedToday = 0),
(this.powerupsCollectedToday = 0),
(this.waterSlideSurvivedToday = 0),
(this.minecartSurviveToday = 0),
(this.coinsCollectedInWaterSlide = 0),
(this.coinsCollectedInMineCart = 0),
(this.distanceCoveredInMineCart = 0),
(this.distanceCoveredInWaterSlide = 0),
(this.runs = 0);
}
}
t.CurrentDayData = p;
class f {
constructor() {
(this.highestScore = 0), (this.hsNoSaveMe = 0), (this.longestRun = 0), (this.mostCoins = 0), (this.totalGames = 0), (this.totalDistance = 0), (this.totalCoins = 0), (this.bestDailyStreak = 0);
}
}
t.StatsData = f;
class m {
constructor() {
(this.powerupUplocked = !1), (this.tutorialPhaseState = "phase1"), (this.tutorialZonesDone = []), (this.musicVolume = 50), (this.soundVolume = 50);
}
}
t.FlagsData = m;
class g {
constructor() {
(this.currentChallengeID = -1), (this.currentDayStreak = 0), (this.isChallengeCompleted = !1), (this.pastChallengeID = new Map());
}
}
t.DailyChallengeData = g;
class b {
constructor() {
(this.abilitiesLevels = new Array()), this.abilitiesLevels.push(0), this.abilitiesLevels.push(0), this.abilitiesLevels.push(0);
}
}
t.AbilityUpgradesData = b;
class _ {
constructor() {
(this.currentRunData = new d()),
(this.currentDayData = new p()),
(this.currentDayDataFinal = new p()),
(this.statsData = new f()),
(this.flagsData = new m()),
(this.dailyChallengeData = new g()),
(this.abilitiesData = new b());
}
}
(t.GameState = _),
(t.gameState = (function () {
const e = o.AbiltiesUpgradeModel.fromJson(n(235)),
v = l.DailyChallenges.fromJson(n(236)),
y = n(270),
C = (() => {
const e = c.LocalStore.getItem(t.STORAGE_GAME_STATE_KEY);
if (e) {
const t = JSON.parse(e);
return Object.assign(Object.assign({}, t), {
currentRunData: new d(),
currentDayDataFinal: Object.assign(Object.assign({}, new p()), t.currentDayDataFinal),
currentDayData: Object.assign(Object.assign({}, new p()), t.currentDayDataFinal),
statsData: Object.assign(Object.assign({}, new f()), t.statsData),
flagsData: Object.assign(Object.assign({}, new m()), t.flagsData),
dailyChallengeData: Object.assign(Object.assign(Object.assign({}, new g()), t.dailyChallengeData), { pastChallengeID: c.parseToMap(t.dailyChallengeData.pastChallengeID) }),
abilitiesData: Object.assign(Object.assign({}, new b()), t.abilitiesData),
});
}
return new _();
})(),
P = i.writable(C),
{ subscribe: x, update: T } = P,
S = () => {
T((e) => {
const n = Object.assign(Object.assign({}, e), {
currentRunData: {},
currentDayData: {},
dailyChallengeData: Object.assign(Object.assign({}, e.dailyChallengeData), { pastChallengeID: c.parseFromMap(e.dailyChallengeData.pastChallengeID) }),
});
return c.LocalStore.setItem(t.STORAGE_GAME_STATE_KEY, JSON.stringify(n)), e;
});
};
return (
r.EventHandler.instance.addListener(r.EventID.OnTutorialStart, () => {
T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX), (e.currentRunData.powerupFillGlow = ""), (e.currentRunData.powerupFillBlink = ""), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnMeterReset, () => {
T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX), (e.currentRunData.powerupFillGlow = ""), (e.currentRunData.powerupFillBlink = ""), (e.currentRunData.currentMeterStreak = 0), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnTutorialComplete, () => {
T(
(e) => (
(e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX - e.currentRunData.currentMeterStreak * (t.POWERUP_FILL_MAX / 200)),
e.currentRunData.powerupFillValue <= t.POWERUP_FILL_MIN &&
((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), r.EventHandler.instance.fireEvent(r.EventID.OnMeterFull), (e.currentRunData.powerupFillGlow = "fill-glow")),
e
)
);
}),
r.EventHandler.instance.addListener(r.EventID.OnResetCurrentGameData, () => {
T((e) => Object.assign(Object.assign({}, e), { currentRunData: new d(), currentDayData: Object.assign(Object.assign({}, new p()), e.currentDayDataFinal) }));
}),
r.EventHandler.instance.addListener(r.EventID.OnMeterFull, () => {
T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), (e.currentRunData.powerupFillGlow = "fill-glow"), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnPowerupCooldown, () => {
u.GameController.instance.powerup.isTriggeredManually &&
T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), (e.currentRunData.powerupFillGlow = "fill-glow"), (e.currentRunData.powerupFillBlink = "fill-blink"), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnPowerupComplete, (e) => {
u.GameController.instance.powerup.isTriggeredManually &&
e == u.GameController.instance.powerup.meterPowerUpType &&
T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX), (e.currentRunData.powerupFillGlow = ""), (e.currentRunData.powerupFillBlink = ""), (e.currentRunData.currentMeterStreak = 0), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnUnlockPowerup, () => {
T((e) => ((e.flagsData.powerupUplocked = !0), (e.flagsData.tutorialPhaseState = "phase2"), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnChangeTutorialState, (e) => {
T((t) => {
const n = t.flagsData.tutorialZonesDone;
return null == e.zoneDone || n.includes(e.zoneDone) || n.push(e.zoneDone), (t.flagsData.tutorialPhaseState = e.tutorialPhaseState), (t.flagsData.tutorialZonesDone = n), t;
});
}),
r.EventHandler.instance.addListener(r.EventID.OnPersistGameState, () => {
S();
}),
r.EventHandler.instance.addListener(r.EventID.OnPlayerDeath, () => {
u.GameController.instance.tutorial.isEnabled;
}),
r.EventHandler.instance.addListener(r.EventID.OnEndGame, () => {
u.GameController.instance.tutorial.isEnabled ||
(T(
(e) => (
(e.currentDayDataFinal = Object.assign(Object.assign({}, new p()), e.currentDayData)),
(e.currentDayDataFinal.runs += 1),
(e.statsData.totalGames += 1),
(e.statsData.totalDistance = Math.floor(e.statsData.totalDistance + e.currentRunData.distance)),
(e.statsData.totalCoins = Math.floor(e.statsData.totalCoins + e.currentRunData.coins)),
e.currentRunData.score > e.statsData.highestScore && (e.statsData.highestScore = Math.floor(e.currentRunData.score)),
e.currentRunData.distance > e.statsData.longestRun && (e.statsData.longestRun = Math.floor(e.currentRunData.distance)),
e.currentRunData.coins > e.statsData.mostCoins && (e.statsData.mostCoins = Math.floor(e.currentRunData.coins)),
e.currentRunData.resurrectsThisRun <= 0 && e.currentRunData.score > e.statsData.hsNoSaveMe && (e.statsData.hsNoSaveMe = Math.floor(e.currentRunData.score)),
e
)
),
r.EventHandler.instance.fireEvent(r.EventID.OnCheckDailyChallenge),
S());
}),
r.EventHandler.instance.addListener(r.EventID.OnDailyChallengeDataUpdate, (e) => {
T((t) => ((t.dailyChallengeData = e), t.dailyChallengeData.currentDayStreak > t.statsData.bestDailyStreak && (t.statsData.bestDailyStreak = t.dailyChallengeData.currentDayStreak), t)), S();
}),
r.EventHandler.instance.addListener(r.EventID.OnResetDayStatData, (e = !1) => {
T((t) => ((t.currentDayData = new p()), e && (t.currentDayDataFinal = new p()), t)), S();
}),
r.EventHandler.instance.addListener(r.EventID.OnStumble, () => {
T((e) => ((e.currentDayData.stumbleToday += 1), (e.currentRunData.stumbleThisRun += 1), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnPowerupCollect, () => {
T((e) => ((e.currentDayData.powerupsCollectedToday += 1), (e.currentRunData.powerupsCollectedThisRun += 1), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnRessurect, () => {
T((e) => ((e.currentDayData.resurrectsToday += 1), (e.currentRunData.resurrectsThisRun += 1), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnMineCartSurvived, () => {
T((e) => ((e.currentDayData.minecartSurviveToday += 1), (e.currentRunData.minecartSurvivedThisRun += 1), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnWaterSlideSurvived, () => {
T((e) => ((e.currentDayData.waterSlideSurvivedToday += 1), (e.currentRunData.waterslideSurvivedThisRun += 1), e));
}),
r.EventHandler.instance.addListener(r.EventID.OnPowerMeterUsed, () => {
T((e) => ((e.currentDayData.powerMeterUsedToday += 1), (e.currentRunData.powermeterUsedThisRun += 1), e));
}),
r.EventHandler.instance.addListener(r.EventID.PlayerDeathTypeUpdate, (e) => {
T((t) => ((t.currentRunData.deathMessage = e.message), (t.currentRunData.deathImagePosition = e.position), t));
}),
r.EventHandler.instance.addListener(r.EventID.OnChestReward, (e) => {
T((t) => ((t.currentDayData.coins += e), (t.currentRunData.coins += e), (t.statsData.totalCoins += e), t)), S();
}),
r.EventHandler.instance.addListener(r.EventID.OnRewardCoins, (e) => {
T((t) => ((t.statsData.totalCoins += e), t)), S();
}),
h.GameConfig.IS_DEBUG &&
r.EventHandler.instance.addListener(r.EventID.OnDebugCoinsUpdated, (e) => {
T((t) => ((t.statsData.totalCoins = e), t));
}),
{
getStateFromStore: () => i.get(P),
subscribe: x,
upgradeAbility: (t) => {
T((n) => {
const i = e;
let o = n.abilitiesData.abilitiesLevels[t];
const s = i.data[t].rule,
c = s[o].amount;
if (n.statsData.totalCoins < c) return r.EventHandler.instance.fireEvent(r.EventID.NotEnoughCoins), n;
n.statsData.totalCoins -= c;
const l = s[o].reward,
u = { _id: t, _reward: l };
return r.EventHandler.instance.fireEvent(r.EventID.OnAbilityUpgraded, u), r.EventHandler.instance.fireEvent(r.EventID.PlaySFX, a.SoundID.CashRegister), (n.abilitiesData.abilitiesLevels[t] = ++o), n;
}),
S();
},
changeVolumeState: (e = "", t = 100) => {
T(
(n) => (
"music" == e
? ((n.flagsData.musicVolume = t), r.EventHandler.instance.fireEvent(r.EventID.MusicVolumeChange, t))
: "sound" == e && ((n.flagsData.soundVolume = t), r.EventHandler.instance.fireEvent(r.EventID.SoundVolumeChange, t)),
n
)
),
S();
},
abilitiesConfig: e,
dailyChallengesConfig: v,
creditsConfig: y,
updateCoins: (e) => {
T((n) => {
(n.currentRunData.coins = n.currentRunData.coins + 1), (n.currentDayData.coins = n.currentDayData.coins + 1), (n.currentRunData.score = 10 * (n.currentRunData.coins + n.currentRunData.distance));
const i = n.currentRunData.score;
n.currentRunData.score = 10 * (n.currentRunData.coins + n.currentRunData.distance);
const o = n.currentRunData.score - i;
return (
(n.currentDayData.score += o),
n.currentRunData.powerupFillValue > t.POWERUP_FILL_MIN &&
((n.currentRunData.currentMeterStreak += 1),
(n.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX - n.currentRunData.currentMeterStreak * (t.POWERUP_FILL_MAX / 200)),
n.currentRunData.powerupFillValue <= t.POWERUP_FILL_MIN &&
((n.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), r.EventHandler.instance.fireEvent(r.EventID.OnMeterFull), (n.currentRunData.powerupFillGlow = "fill-glow"))),
e == s.MovementState.CartRiding
? ((n.currentRunData.coinsCollectedInMineCart += 1), (n.currentDayData.coinsCollectedInMineCart += 1))
: e == s.MovementState.WaterSliding && ((n.currentRunData.coinsCollectedInWaterSlide += 1), (n.currentDayData.coinsCollectedInWaterSlide += 1)),
n
);
});
},
updateDistance: (e, t) => {
T((n) => {
n.currentRunData.distance = n.currentRunData.distance + t;
const i = n.currentRunData.score;
if (((n.currentRunData.score = 10 * (n.currentRunData.coins + n.currentRunData.distance)), !u.GameController.instance.tutorial.isEnabled)) {
n.currentDayData.distance = n.currentDayData.distance + t;
const r = n.currentRunData.score - i;
(n.currentDayData.score += r),
e == s.MovementState.CartRiding
? ((n.currentRunData.distanceCoveredInMineCart += t), (n.currentDayData.distanceCoveredInMineCart += t))
: e == s.MovementState.WaterSliding && ((n.currentRunData.distanceCoveredInWaterSlide += t), (n.currentDayData.distanceCoveredInWaterSlide += t));
}
return (
n.currentRunData.distance > n.currentRunData.nextDistanceToastThreshold &&
(r.EventHandler.instance.fireEvent(r.EventID.OnShowDistanceToast, n.currentRunData.nextDistanceToastThreshold),
(n.currentRunData.nextDistanceToastThreshold += 250 == n.currentRunData.nextDistanceToastThreshold ? 250 : 500)),
n.statsData.highestScore > 100 &&
n.currentRunData.score > n.statsData.highestScore &&
!n.currentRunData.highScoreToastMessageDone &&
((n.currentRunData.highScoreToastMessageDone = !0),
r.EventHandler.instance.fireEvent(r.EventID.OnHudToastMessage, "High Score!"),
r.EventHandler.instance.fireEvent(r.EventID.PlaySFX, a.SoundID.Woohoo)),
n
);
});
},
forceUpdateDistance: (e) => {
T((t) => ((t.currentRunData.distance = e), (t.currentRunData.score = 10 * (t.currentRunData.coins + t.currentRunData.distance)), t));
},
}
);
})());
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.EndsWith = function (e, t) {
return -1 !== e.indexOf(t, e.length - t.length);
}),
(e.StartsWith = function (e, t) {
return 0 === e.indexOf(t);
}),
(e.Decode = function (e) {
if ("undefined" != typeof TextDecoder) return new TextDecoder().decode(e);
for (var t = "", n = 0; n < e.byteLength; n++) t += String.fromCharCode(e[n]);
return t;
}),
(e.EncodeArrayBufferToBase64 = function (e) {
for (
var t, n, i, r, o, a, s, c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", l = "", u = 0, h = ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength) : new Uint8Array(e);
u < h.length;
)
(r = (t = h[u++]) >> 2),
(o = ((3 & t) << 4) | ((n = u < h.length ? h[u++] : Number.NaN) >> 4)),
(a = ((15 & n) << 2) | ((i = u < h.length ? h[u++] : Number.NaN) >> 6)),
(s = 63 & i),
isNaN(n) ? (a = s = 64) : isNaN(i) && (s = 64),
(l += c.charAt(r) + c.charAt(o) + c.charAt(a) + c.charAt(s));
return l;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this.rootNodes = new Array()),
(this.cameras = new Array()),
(this.lights = new Array()),
(this.meshes = new Array()),
(this.skeletons = new Array()),
(this.particleSystems = new Array()),
(this.animations = []),
(this.animationGroups = new Array()),
(this.multiMaterials = new Array()),
(this.materials = new Array()),
(this.morphTargetManagers = new Array()),
(this.geometries = new Array()),
(this.transformNodes = new Array()),
(this.actionManagers = new Array()),
(this.textures = new Array()),
(this.environmentTexture = null);
}
return (
(e.AddParser = function (e, t) {
this._BabylonFileParsers[e] = t;
}),
(e.GetParser = function (e) {
return this._BabylonFileParsers[e] ? this._BabylonFileParsers[e] : null;
}),
(e.AddIndividualParser = function (e, t) {
this._IndividualBabylonFileParsers[e] = t;
}),
(e.GetIndividualParser = function (e) {
return this._IndividualBabylonFileParsers[e] ? this._IndividualBabylonFileParsers[e] : null;
}),
(e.Parse = function (e, t, n, i) {
for (var r in this._BabylonFileParsers) this._BabylonFileParsers.hasOwnProperty(r) && this._BabylonFileParsers[r](e, t, n, i);
}),
(e.prototype.getNodes = function () {
var e = new Array();
return (
(e = (e = (e = (e = e.concat(this.meshes)).concat(this.lights)).concat(this.cameras)).concat(this.transformNodes)),
this.skeletons.forEach(function (t) {
return (e = e.concat(t.bones));
}),
e
);
}),
(e._BabylonFileParsers = {}),
(e._IndividualBabylonFileParsers = {}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return u;
});
var i = n(18),
r = n(6),
o = n(20),
a = n(25),
s = n(96),
c = n(1),
l = n(5),
u = (function () {
function e(e, t) {
var n = this;
void 0 === t && (t = !0),
(this.originalScene = e),
(this._pointerCaptures = {}),
(this._lastPointerEvents = {}),
(this._sharedGizmoLight = null),
(this._renderCamera = null),
(this.pickUtilitySceneFirst = !0),
(this.shouldRender = !0),
(this.onlyCheckPointerDownEvents = !0),
(this.processAllEvents = !1),
(this.onPointerOutObservable = new r.c()),
(this.utilityLayerScene = new i.a(e.getEngine(), { virtual: !0 })),
(this.utilityLayerScene.useRightHandedSystem = e.useRightHandedSystem),
(this.utilityLayerScene._allowPostProcessClearColor = !1),
this.utilityLayerScene.detachControl(),
t &&
((this._originalPointerObserver = e.onPrePointerObservable.add(function (t, i) {
if (n.utilityLayerScene.activeCamera && (n.processAllEvents || t.type === o.a.POINTERMOVE || t.type === o.a.POINTERUP || t.type === o.a.POINTERDOWN)) {
(n.utilityLayerScene.pointerX = e.pointerX), (n.utilityLayerScene.pointerY = e.pointerY);
var r = t.event;
if (e.isPointerCaptured(r.pointerId)) n._pointerCaptures[r.pointerId] = !1;
else {
var a = t.ray ? n.utilityLayerScene.pickWithRay(t.ray) : n.utilityLayerScene.pick(e.pointerX, e.pointerY);
if ((!t.ray && a && (t.ray = a.ray), n.utilityLayerScene.onPrePointerObservable.notifyObservers(t), n.onlyCheckPointerDownEvents && t.type != o.a.POINTERDOWN))
return (
t.skipOnPointerObservable || n.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(t.type, t.event, a)),
void (t.type === o.a.POINTERUP && n._pointerCaptures[r.pointerId] && (n._pointerCaptures[r.pointerId] = !1))
);
if (n.utilityLayerScene.autoClearDepthAndStencil || n.pickUtilitySceneFirst)
a && a.hit && (t.skipOnPointerObservable || n.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(t.type, t.event, a)), (t.skipOnPointerObservable = !0));
else {
var s = t.ray ? e.pickWithRay(t.ray) : e.pick(e.pointerX, e.pointerY),
c = t.event;
s &&
a &&
(0 === a.distance && s.pickedMesh
? n.mainSceneTrackerPredicate && n.mainSceneTrackerPredicate(s.pickedMesh)
? (n._notifyObservers(t, s, c), (t.skipOnPointerObservable = !0))
: t.type === o.a.POINTERDOWN
? (n._pointerCaptures[c.pointerId] = !0)
: n._lastPointerEvents[c.pointerId] && (n.onPointerOutObservable.notifyObservers(c.pointerId), delete n._lastPointerEvents[c.pointerId])
: !n._pointerCaptures[c.pointerId] && (a.distance < s.distance || 0 === s.distance)
? (n._notifyObservers(t, a, c), t.skipOnPointerObservable || (t.skipOnPointerObservable = a.distance > 0))
: !n._pointerCaptures[c.pointerId] &&
a.distance > s.distance &&
(n.mainSceneTrackerPredicate && n.mainSceneTrackerPredicate(s.pickedMesh)
? (n._notifyObservers(t, s, c), (t.skipOnPointerObservable = !0))
: n._lastPointerEvents[c.pointerId] && (n.onPointerOutObservable.notifyObservers(c.pointerId), delete n._lastPointerEvents[c.pointerId])),
t.type === o.a.POINTERUP && n._pointerCaptures[c.pointerId] && (n._pointerCaptures[c.pointerId] = !1));
}
}
}
})),
this._originalPointerObserver && e.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)),
(this.utilityLayerScene.autoClear = !1),
(this._afterRenderObserver = this.originalScene.onAfterCameraRenderObservable.add(function (e) {
n.shouldRender && e == n.getRenderCamera() && n.render();
})),
(this._sceneDisposeObserver = this.originalScene.onDisposeObservable.add(function () {
n.dispose();
})),
this._updateCamera();
}
return (
(e.prototype.getRenderCamera = function (e) {
if (this._renderCamera) return this._renderCamera;
var t = void 0;
return (t = this.originalScene.activeCameras.length > 1 ? this.originalScene.activeCameras[this.originalScene.activeCameras.length - 1] : this.originalScene.activeCamera), e && t && t.isRigCamera ? t.rigParent : t;
}),
(e.prototype.setRenderCamera = function (e) {
this._renderCamera = e;
}),
(e.prototype._getSharedGizmoLight = function () {
return (
this._sharedGizmoLight ||
((this._sharedGizmoLight = new s.a("shared gizmo light", new c.e(0, 1, 0), this.utilityLayerScene)), (this._sharedGizmoLight.intensity = 2), (this._sharedGizmoLight.groundColor = l.a.Gray())),
this._sharedGizmoLight
);
}),
Object.defineProperty(e, "DefaultUtilityLayer", {
get: function () {
return (
null == e._DefaultUtilityLayer &&
((e._DefaultUtilityLayer = new e(a.a.LastCreatedScene)),
e._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce(function () {
e._DefaultUtilityLayer = null;
})),
e._DefaultUtilityLayer
);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "DefaultKeepDepthUtilityLayer", {
get: function () {
return (
null == e._DefaultKeepDepthUtilityLayer &&
((e._DefaultKeepDepthUtilityLayer = new e(a.a.LastCreatedScene)),
(e._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil = !1),
e._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce(function () {
e._DefaultKeepDepthUtilityLayer = null;
})),
e._DefaultKeepDepthUtilityLayer
);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._notifyObservers = function (e, t, n) {
e.skipOnPointerObservable || (this.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(e.type, e.event, t)), (this._lastPointerEvents[n.pointerId] = !0));
}),
(e.prototype.render = function () {
if ((this._updateCamera(), this.utilityLayerScene.activeCamera)) {
var e = this.utilityLayerScene.activeCamera.getScene(),
t = this.utilityLayerScene.activeCamera;
(t._scene = this.utilityLayerScene),
t.leftCamera && (t.leftCamera._scene = this.utilityLayerScene),
t.rightCamera && (t.rightCamera._scene = this.utilityLayerScene),
this.utilityLayerScene.render(!1),
(t._scene = e),
t.leftCamera && (t.leftCamera._scene = e),
t.rightCamera && (t.rightCamera._scene = e);
}
}),
(e.prototype.dispose = function () {
this.onPointerOutObservable.clear(),
this._afterRenderObserver && this.originalScene.onAfterCameraRenderObservable.remove(this._afterRenderObserver),
this._sceneDisposeObserver && this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver),
this._originalPointerObserver && this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver),
this.utilityLayerScene.dispose();
}),
(e.prototype._updateCamera = function () {
(this.utilityLayerScene.cameraToUseForPointers = this.getRenderCamera()), (this.utilityLayerScene.activeCamera = this.getRenderCamera());
}),
(e._DefaultUtilityLayer = null),
(e._DefaultKeepDepthUtilityLayer = null),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.IsWindowObjectExist = function () {
return "undefined" != typeof window;
}),
(e.IsNavigatorAvailable = function () {
return "undefined" != typeof navigator;
}),
(e.GetDOMTextContent = function (e) {
for (var t = "", n = e.firstChild; n; ) 3 === n.nodeType && (t += n.textContent), (n = n.nextSibling);
return t;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return u;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(5),
s = n(35),
c = n(124),
l = n(13),
u = (function (e) {
function t(n, i) {
var r = e.call(this, n, i) || this;
return (
(r.diffuse = new a.a(1, 1, 1)),
(r.specular = new a.a(1, 1, 1)),
(r.falloffType = t.FALLOFF_DEFAULT),
(r.intensity = 1),
(r._range = Number.MAX_VALUE),
(r._inverseSquaredRange = 0),
(r._photometricScale = 1),
(r._intensityMode = t.INTENSITYMODE_AUTOMATIC),
(r._radius = 1e-5),
(r.renderPriority = 0),
(r._shadowEnabled = !0),
(r._excludeWithLayerMask = 0),
(r._includeOnlyWithLayerMask = 0),
(r._lightmapMode = 0),
(r._excludedMeshesIds = new Array()),
(r._includedOnlyMeshesIds = new Array()),
(r._isLight = !0),
r.getScene().addLight(r),
(r._uniformBuffer = new c.a(r.getScene().getEngine())),
r._buildUniformLayout(),
(r.includedOnlyMeshes = new Array()),
(r.excludedMeshes = new Array()),
r._resyncMeshes(),
r
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "range", {
get: function () {
return this._range;
},
set: function (e) {
(this._range = e), (this._inverseSquaredRange = 1 / (this.range * this.range));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "intensityMode", {
get: function () {
return this._intensityMode;
},
set: function (e) {
(this._intensityMode = e), this._computePhotometricScale();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "radius", {
get: function () {
return this._radius;
},
set: function (e) {
(this._radius = e), this._computePhotometricScale();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadowEnabled", {
get: function () {
return this._shadowEnabled;
},
set: function (e) {
this._shadowEnabled !== e && ((this._shadowEnabled = e), this._markMeshesAsLightDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "includedOnlyMeshes", {
get: function () {
return this._includedOnlyMeshes;
},
set: function (e) {
(this._includedOnlyMeshes = e), this._hookArrayForIncludedOnly(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "excludedMeshes", {
get: function () {
return this._excludedMeshes;
},
set: function (e) {
(this._excludedMeshes = e), this._hookArrayForExcluded(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "excludeWithLayerMask", {
get: function () {
return this._excludeWithLayerMask;
},
set: function (e) {
(this._excludeWithLayerMask = e), this._resyncMeshes();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "includeOnlyWithLayerMask", {
get: function () {
return this._includeOnlyWithLayerMask;
},
set: function (e) {
(this._includeOnlyWithLayerMask = e), this._resyncMeshes();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "lightmapMode", {
get: function () {
return this._lightmapMode;
},
set: function (e) {
this._lightmapMode !== e && ((this._lightmapMode = e), this._markMeshesAsLightDirty());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.transferTexturesToEffect = function (e, t) {
return this;
}),
(t.prototype._bindLight = function (e, t, n, i, r) {
void 0 === r && (r = !1);
var o = e.toString(),
s = !1;
if (!r || !this._uniformBuffer._alreadyBound) {
if ((this._uniformBuffer.bindToEffect(n, "Light" + o), this._renderId !== t.getRenderId() || !this._uniformBuffer.useUbo)) {
this._renderId = t.getRenderId();
var c = this.getScaledIntensity();
this.transferToEffect(n, o),
this.diffuse.scaleToRef(c, a.c.Color3[0]),
this._uniformBuffer.updateColor4("vLightDiffuse", a.c.Color3[0], this.range, o),
i && (this.specular.scaleToRef(c, a.c.Color3[1]), this._uniformBuffer.updateColor4("vLightSpecular", a.c.Color3[1], this.radius, o)),
(s = !0);
}
if ((this.transferTexturesToEffect(n, o), t.shadowsEnabled && this.shadowEnabled)) {
var l = this.getShadowGenerator();
l && (l.bindShadowLight(o, n), (s = !0));
}
s && this._uniformBuffer.update();
}
}),
(t.prototype.getClassName = function () {
return "Light";
}),
(t.prototype.toString = function (e) {
var t = "Name: " + this.name;
if (((t += ", type: " + ["Point", "Directional", "Spot", "Hemispheric"][this.getTypeID()]), this.animations)) for (var n = 0; n < this.animations.length; n++) t += ", animation[0]: " + this.animations[n].toString(e);
return t;
}),
(t.prototype._syncParentEnabledState = function () {
e.prototype._syncParentEnabledState.call(this), this.isDisposed() || this._resyncMeshes();
}),
(t.prototype.setEnabled = function (t) {
e.prototype.setEnabled.call(this, t), this._resyncMeshes();
}),
(t.prototype.getShadowGenerator = function () {
return this._shadowGenerator;
}),
(t.prototype.getAbsolutePosition = function () {
return o.e.Zero();
}),
(t.prototype.canAffectMesh = function (e) {
return (
!e ||
(!(this.includedOnlyMeshes && this.includedOnlyMeshes.length > 0 && -1 === this.includedOnlyMeshes.indexOf(e)) &&
!(this.excludedMeshes && this.excludedMeshes.length > 0 && -1 !== this.excludedMeshes.indexOf(e)) &&
(0 === this.includeOnlyWithLayerMask || 0 != (this.includeOnlyWithLayerMask & e.layerMask)) &&
!(0 !== this.excludeWithLayerMask && this.excludeWithLayerMask & e.layerMask))
);
}),
(t.CompareLightsPriority = function (e, t) {
return e.shadowEnabled !== t.shadowEnabled ? (t.shadowEnabled ? 1 : 0) - (e.shadowEnabled ? 1 : 0) : t.renderPriority - e.renderPriority;
}),
(t.prototype.dispose = function (t, n) {
void 0 === n && (n = !1), this._shadowGenerator && (this._shadowGenerator.dispose(), (this._shadowGenerator = null)), this.getScene().stopAnimation(this);
for (var i = 0, r = this.getScene().meshes; i < r.length; i++) {
r[i]._removeLightSource(this, !0);
}
this._uniformBuffer.dispose(), this.getScene().removeLight(this), e.prototype.dispose.call(this, t, n);
}),
(t.prototype.getTypeID = function () {
return 0;
}),
(t.prototype.getScaledIntensity = function () {
return this._photometricScale * this.intensity;
}),
(t.prototype.clone = function (e) {
var n = t.GetConstructorFromName(this.getTypeID(), e, this.getScene());
return n ? r.a.Clone(n, this) : null;
}),
(t.prototype.serialize = function () {
var e = r.a.Serialize(this);
return (
(e.type = this.getTypeID()),
this.parent && (e.parentId = this.parent.id),
this.excludedMeshes.length > 0 &&
((e.excludedMeshesIds = []),
this.excludedMeshes.forEach(function (t) {
e.excludedMeshesIds.push(t.id);
})),
this.includedOnlyMeshes.length > 0 &&
((e.includedOnlyMeshesIds = []),
this.includedOnlyMeshes.forEach(function (t) {
e.includedOnlyMeshesIds.push(t.id);
})),
r.a.AppendSerializedAnimations(this, e),
(e.ranges = this.serializeAnimationRanges()),
e
);
}),
(t.GetConstructorFromName = function (e, t, n) {
var i = s.a.Construct("Light_Type_" + e, t, n);
return i || null;
}),
(t.Parse = function (e, n) {
var i = t.GetConstructorFromName(e.type, e.name, n);
if (!i) return null;
var o = r.a.Parse(i, e, n);
if (
(e.excludedMeshesIds && (o._excludedMeshesIds = e.excludedMeshesIds),
e.includedOnlyMeshesIds && (o._includedOnlyMeshesIds = e.includedOnlyMeshesIds),
e.parentId && (o._waitingParentId = e.parentId),
void 0 !== e.falloffType && (o.falloffType = e.falloffType),
void 0 !== e.lightmapMode && (o.lightmapMode = e.lightmapMode),
e.animations)
) {
for (var a = 0; a < e.animations.length; a++) {
var c = e.animations[a],
u = l.a.GetClass("BABYLON.Animation");
u && o.animations.push(u.Parse(c));
}
s.a.ParseAnimationRanges(o, e, n);
}
return e.autoAnimate && n.beginAnimation(o, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), o;
}),
(t.prototype._hookArrayForExcluded = function (e) {
var t = this,
n = e.push;
e.push = function () {
for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r];
for (var o = n.apply(e, i), a = 0, s = i; a < s.length; a++) {
var c = s[a];
c._resyncLightSource(t);
}
return o;
};
var i = e.splice;
e.splice = function (n, r) {
for (var o = i.apply(e, [n, r]), a = 0, s = o; a < s.length; a++) {
s[a]._resyncLightSource(t);
}
return o;
};
for (var r = 0, o = e; r < o.length; r++) {
o[r]._resyncLightSource(this);
}
}),
(t.prototype._hookArrayForIncludedOnly = function (e) {
var t = this,
n = e.push;
e.push = function () {
for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r];
var o = n.apply(e, i);
return t._resyncMeshes(), o;
};
var i = e.splice;
(e.splice = function (n, r) {
var o = i.apply(e, [n, r]);
return t._resyncMeshes(), o;
}),
this._resyncMeshes();
}),
(t.prototype._resyncMeshes = function () {
for (var e = 0, t = this.getScene().meshes; e < t.length; e++) {
t[e]._resyncLightSource(this);
}
}),
(t.prototype._markMeshesAsLightDirty = function () {
for (var e = 0, t = this.getScene().meshes; e < t.length; e++) {
var n = t[e];
-1 !== n.lightSources.indexOf(this) && n._markSubMeshesAsLightDirty();
}
}),
(t.prototype._computePhotometricScale = function () {
(this._photometricScale = this._getPhotometricScale()), this.getScene().resetCachedMaterial();
}),
(t.prototype._getPhotometricScale = function () {
var e = 0,
n = this.getTypeID(),
i = this.intensityMode;
switch ((i === t.INTENSITYMODE_AUTOMATIC && (i = n === t.LIGHTTYPEID_DIRECTIONALLIGHT ? t.INTENSITYMODE_ILLUMINANCE : t.INTENSITYMODE_LUMINOUSINTENSITY), n)) {
case t.LIGHTTYPEID_POINTLIGHT:
case t.LIGHTTYPEID_SPOTLIGHT:
switch (i) {
case t.INTENSITYMODE_LUMINOUSPOWER:
e = 1 / (4 * Math.PI);
break;
case t.INTENSITYMODE_LUMINOUSINTENSITY:
e = 1;
break;
case t.INTENSITYMODE_LUMINANCE:
e = this.radius * this.radius;
}
break;
case t.LIGHTTYPEID_DIRECTIONALLIGHT:
switch (i) {
case t.INTENSITYMODE_ILLUMINANCE:
e = 1;
break;
case t.INTENSITYMODE_LUMINANCE:
var r = this.radius;
(r = Math.max(r, 0.001)), (e = 2 * Math.PI * (1 - Math.cos(r)));
}
break;
case t.LIGHTTYPEID_HEMISPHERICLIGHT:
e = 1;
}
return e;
}),
(t.prototype._reorderLightsInScene = function () {
var e = this.getScene();
0 != this._renderPriority && (e.requireLightSorting = !0), this.getScene().sortLightsByPriority();
}),
(t.FALLOFF_DEFAULT = 0),
(t.FALLOFF_PHYSICAL = 1),
(t.FALLOFF_GLTF = 2),
(t.FALLOFF_STANDARD = 3),
(t.LIGHTMAP_DEFAULT = 0),
(t.LIGHTMAP_SPECULAR = 1),
(t.LIGHTMAP_SHADOWSONLY = 2),
(t.INTENSITYMODE_AUTOMATIC = 0),
(t.INTENSITYMODE_LUMINOUSPOWER = 1),
(t.INTENSITYMODE_LUMINOUSINTENSITY = 2),
(t.INTENSITYMODE_ILLUMINANCE = 3),
(t.INTENSITYMODE_LUMINANCE = 4),
(t.LIGHTTYPEID_POINTLIGHT = 0),
(t.LIGHTTYPEID_DIRECTIONALLIGHT = 1),
(t.LIGHTTYPEID_SPOTLIGHT = 2),
(t.LIGHTTYPEID_HEMISPHERICLIGHT = 3),
Object(i.c)([Object(r.e)()], t.prototype, "diffuse", void 0),
Object(i.c)([Object(r.e)()], t.prototype, "specular", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "falloffType", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "intensity", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "range", null),
Object(i.c)([Object(r.c)()], t.prototype, "intensityMode", null),
Object(i.c)([Object(r.c)()], t.prototype, "radius", null),
Object(i.c)([Object(r.c)()], t.prototype, "_renderPriority", void 0),
Object(i.c)([Object(r.b)("_reorderLightsInScene")], t.prototype, "renderPriority", void 0),
Object(i.c)([Object(r.c)("shadowEnabled")], t.prototype, "_shadowEnabled", void 0),
Object(i.c)([Object(r.c)("excludeWithLayerMask")], t.prototype, "_excludeWithLayerMask", void 0),
Object(i.c)([Object(r.c)("includeOnlyWithLayerMask")], t.prototype, "_includeOnlyWithLayerMask", void 0),
Object(i.c)([Object(r.c)("lightmapMode")], t.prototype, "_lightmapMode", void 0),
t
);
})(s.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.BuildArray = function (e, t) {
for (var n = [], i = 0; i < e; ++i) n.push(t());
return n;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "helperFunctions",
r =
"const float PI=3.1415926535897932384626433832795;\nconst float LinearEncodePowerApprox=2.2;\nconst float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;\nconst vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);\nconst float Epsilon=0.0000001;\n#define saturate(x) clamp(x,0.0,1.0)\n#define absEps(x) abs(x)+Epsilon\n#define maxEps(x) max(x,Epsilon)\n#define saturateEps(x) clamp(x,Epsilon,1.0)\nmat3 transposeMat3(mat3 inMatrix) {\nvec3 i0=inMatrix[0];\nvec3 i1=inMatrix[1];\nvec3 i2=inMatrix[2];\nmat3 outMatrix=mat3(\nvec3(i0.x,i1.x,i2.x),\nvec3(i0.y,i1.y,i2.y),\nvec3(i0.z,i1.z,i2.z)\n);\nreturn outMatrix;\n}\n\nmat3 inverseMat3(mat3 inMatrix) {\nfloat a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];\nfloat a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];\nfloat a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];\nfloat b01=a22*a11-a12*a21;\nfloat b11=-a22*a10+a12*a20;\nfloat b21=a21*a10-a11*a20;\nfloat det=a00*b01+a01*b11+a02*b21;\nreturn mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\nb11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\nb21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;\n}\nvec3 toLinearSpace(vec3 color)\n{\nreturn pow(color,vec3(LinearEncodePowerApprox));\n}\nvec3 toGammaSpace(vec3 color)\n{\nreturn pow(color,vec3(GammaEncodePowerApprox));\n}\nfloat toGammaSpace(float color)\n{\nreturn pow(color,GammaEncodePowerApprox);\n}\nfloat square(float value)\n{\nreturn value*value;\n}\nfloat pow5(float value) {\nfloat sq=value*value;\nreturn sq*sq*value;\n}\nfloat getLuminance(vec3 color)\n{\nreturn clamp(dot(color,LuminanceEncodeApprox),0.,1.);\n}\n\nfloat getRand(vec2 seed) {\nreturn fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);\n}\nfloat dither(vec2 seed,float varianceAmount) {\nfloat rand=getRand(seed);\nfloat dither=mix(-varianceAmount/255.0,varianceAmount/255.0,rand);\nreturn dither;\n}\n\nconst float rgbdMaxRange=255.0;\nvec4 toRGBD(vec3 color) {\nfloat maxRGB=maxEps(max(color.r,max(color.g,color.b)));\nfloat D=max(rgbdMaxRange/maxRGB,1.);\nD=clamp(floor(D)/255.0,0.,1.);\n\nvec3 rgb=color.rgb*D;\n\nrgb=toGammaSpace(rgb);\nreturn vec4(rgb,D);\n}\nvec3 fromRGBD(vec4 rgbd) {\n\nrgbd.rgb=toLinearSpace(rgbd.rgb);\n\nreturn rgbd.rgb/rgbd.a;\n}\n";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "lightFragmentDeclaration",
r =
"#ifdef LIGHT{X}\nuniform vec4 vLightData{X};\nuniform vec4 vLightDiffuse{X};\n#ifdef SPECULARTERM\nuniform vec4 vLightSpecular{X};\n#else\nvec4 vLightSpecular{X}=vec4(0.);\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float cascadeBlendFactor{X};\nvarying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying vec4 vPositionFromCamera{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\nuniform highp sampler2DArray depthSampler{X};\nuniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float penumbraDarkness{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\n#else\nuniform highp sampler2DArray shadowSampler{X};\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\n(\nvec3 ( 1.5,0.0,0.0 ),\nvec3 ( 0.0,1.5,0.0 ),\nvec3 ( 0.0,0.0,5.5 ),\nvec3 ( 1.5,0.0,5.5 ),\nvec3 ( 1.5,1.5,0.0 ),\nvec3 ( 1.0,1.0,1.0 ),\nvec3 ( 0.0,1.0,5.5 ),\nvec3 ( 0.5,3.5,0.75 )\n);\nvec3 shadowDebug{X};\n#endif\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nint index{X}=-1;\n#else\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nfloat diff{X}=0.;\n#elif defined(SHADOWCUBE{X})\nuniform samplerCube shadowSampler{X};\n#else\nvarying vec4 vPositionFromLight{X};\nvarying float vDepthMetric{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DShadow shadowSampler{X};\nuniform highp sampler2D depthSampler{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DShadow shadowSampler{X};\n#else\nuniform sampler2D shadowSampler{X};\n#endif\nuniform mat4 lightMatrix{X};\n#endif\nuniform vec4 shadowsInfo{X};\nuniform vec2 depthValues{X};\n#endif\n#ifdef SPOTLIGHT{X}\nuniform vec4 vLightDirection{X};\nuniform vec4 vLightFalloff{X};\n#elif defined(POINTLIGHT{X})\nuniform vec4 vLightFalloff{X};\n#elif defined(HEMILIGHT{X})\nuniform vec3 vLightGround{X};\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform mat4 textureProjectionMatrix{X};\nuniform sampler2D projectionLightSampler{X};\n#endif\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "lightUboDeclaration",
r =
"#ifdef LIGHT{X}\nuniform Light{X}\n{\nvec4 vLightData;\nvec4 vLightDiffuse;\nvec4 vLightSpecular;\n#ifdef SPOTLIGHT{X}\nvec4 vLightDirection;\nvec4 vLightFalloff;\n#elif defined(POINTLIGHT{X})\nvec4 vLightFalloff;\n#elif defined(HEMILIGHT{X})\nvec3 vLightGround;\n#endif\nvec4 shadowsInfo;\nvec2 depthValues;\n} light{X};\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform mat4 textureProjectionMatrix{X};\nuniform sampler2D projectionLightSampler{X};\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float cascadeBlendFactor{X};\nvarying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying vec4 vPositionFromCamera{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\nuniform highp sampler2DArray depthSampler{X};\nuniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float penumbraDarkness{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\n#else\nuniform highp sampler2DArray shadowSampler{X};\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\n(\nvec3 ( 1.5,0.0,0.0 ),\nvec3 ( 0.0,1.5,0.0 ),\nvec3 ( 0.0,0.0,5.5 ),\nvec3 ( 1.5,0.0,5.5 ),\nvec3 ( 1.5,1.5,0.0 ),\nvec3 ( 1.0,1.0,1.0 ),\nvec3 ( 0.0,1.0,5.5 ),\nvec3 ( 0.5,3.5,0.75 )\n);\nvec3 shadowDebug{X};\n#endif\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nint index{X}=-1;\n#else\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nfloat diff{X}=0.;\n#elif defined(SHADOWCUBE{X})\nuniform samplerCube shadowSampler{X};\n#else\nvarying vec4 vPositionFromLight{X};\nvarying float vDepthMetric{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DShadow shadowSampler{X};\nuniform highp sampler2D depthSampler{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DShadow shadowSampler{X};\n#else\nuniform sampler2D shadowSampler{X};\n#endif\nuniform mat4 lightMatrix{X};\n#endif\n#endif\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "AbstractScene", function () {
return i.a;
}),
n.d(t, "AbstractActionManager", function () {
return r.a;
}),
n.d(t, "Action", function () {
return l;
}),
n.d(t, "ActionEvent", function () {
return u.a;
}),
n.d(t, "ActionManager", function () {
return A;
}),
n.d(t, "Condition", function () {
return d;
}),
n.d(t, "ValueCondition", function () {
return p;
}),
n.d(t, "PredicateCondition", function () {
return f;
}),
n.d(t, "StateCondition", function () {
return m;
}),
n.d(t, "SwitchBooleanAction", function () {
return b;
}),
n.d(t, "SetStateAction", function () {
return _;
}),
n.d(t, "SetValueAction", function () {
return v;
}),
n.d(t, "IncrementValueAction", function () {
return y;
}),
n.d(t, "PlayAnimationAction", function () {
return C;
}),
n.d(t, "StopAnimationAction", function () {
return P;
}),
n.d(t, "DoNothingAction", function () {
return x;
}),
n.d(t, "CombineAction", function () {
return T;
}),
n.d(t, "ExecuteCodeAction", function () {
return S;
}),
n.d(t, "SetParentAction", function () {
return O;
}),
n.d(t, "PlaySoundAction", function () {
return I;
}),
n.d(t, "StopSoundAction", function () {
return D;
}),
n.d(t, "InterpolateValueAction", function () {
return w;
}),
n.d(t, "Animatable", function () {
return F.a;
}),
n.d(t, "_IAnimationState", function () {
return R.b;
}),
n.d(t, "Animation", function () {
return R.a;
}),
n.d(t, "TargetedAnimation", function () {
return N.b;
}),
n.d(t, "AnimationGroup", function () {
return N.a;
}),
n.d(t, "AnimationPropertiesOverride", function () {
return k;
}),
n.d(t, "EasingFunction", function () {
return X;
}),
n.d(t, "CircleEase", function () {
return Y;
}),
n.d(t, "BackEase", function () {
return K;
}),
n.d(t, "BounceEase", function () {
return Z;
}),
n.d(t, "CubicEase", function () {
return q;
}),
n.d(t, "ElasticEase", function () {
return Q;
}),
n.d(t, "ExponentialEase", function () {
return J;
}),
n.d(t, "PowerEase", function () {
return $;
}),
n.d(t, "QuadraticEase", function () {
return ee;
}),
n.d(t, "QuarticEase", function () {
return te;
}),
n.d(t, "QuinticEase", function () {
return ne;
}),
n.d(t, "SineEase", function () {
return ie;
}),
n.d(t, "BezierCurveEase", function () {
return re;
}),
n.d(t, "RuntimeAnimation", function () {
return oe.a;
}),
n.d(t, "AnimationEvent", function () {
return ae.a;
}),
n.d(t, "AnimationKeyInterpolation", function () {
return se.a;
}),
n.d(t, "AnimationRange", function () {
return ce.a;
}),
n.d(t, "KeepAssets", function () {
return le.c;
}),
n.d(t, "InstantiatedEntries", function () {
return le.b;
}),
n.d(t, "AssetContainer", function () {
return le.a;
}),
n.d(t, "Analyser", function () {
return he;
}),
n.d(t, "AudioEngine", function () {
return de;
}),
n.d(t, "AudioSceneComponent", function () {
return _e;
}),
n.d(t, "Sound", function () {
return pe.a;
}),
n.d(t, "SoundTrack", function () {
return fe;
}),
n.d(t, "WeightedSound", function () {
return ve.a;
}),
n.d(t, "AutoRotationBehavior", function () {
return Ce;
}),
n.d(t, "BouncingBehavior", function () {
return Pe;
}),
n.d(t, "FramingBehavior", function () {
return xe;
}),
n.d(t, "AttachToBoxBehavior", function () {
return Se;
}),
n.d(t, "FadeInOutBehavior", function () {
return Oe.a;
}),
n.d(t, "MultiPointerScaleBehavior", function () {
return Ne;
}),
n.d(t, "PointerDragBehavior", function () {
return Fe;
}),
n.d(t, "SixDofDragBehavior", function () {
return ze;
}),
n.d(t, "Bone", function () {
return je.a;
}),
n.d(t, "BoneIKController", function () {
return Ve;
}),
n.d(t, "BoneLookController", function () {
return Ge;
}),
n.d(t, "Skeleton", function () {
return Ue.a;
}),
n.d(t, "ArcRotateCameraGamepadInput", function () {
return Ze;
}),
n.d(t, "ArcRotateCameraKeyboardMoveInput", function () {
return Qe;
}),
n.d(t, "ArcRotateCameraMouseWheelInput", function () {
return Je;
}),
n.d(t, "ArcRotateCameraPointersInput", function () {
return tt;
}),
n.d(t, "ArcRotateCameraVRDeviceOrientationInput", function () {
return it;
}),
n.d(t, "FlyCameraKeyboardInput", function () {
return rt;
}),
n.d(t, "FlyCameraMouseInput", function () {
return ot;
}),
n.d(t, "FollowCameraKeyboardMoveInput", function () {
return at;
}),
n.d(t, "FollowCameraMouseWheelInput", function () {
return st;
}),
n.d(t, "FollowCameraPointersInput", function () {
return ct;
}),
n.d(t, "FreeCameraDeviceOrientationInput", function () {
return ut;
}),
n.d(t, "FreeCameraGamepadInput", function () {
return ht;
}),
n.d(t, "FreeCameraKeyboardMoveInput", function () {
return pt.a;
}),
n.d(t, "FreeCameraMouseInput", function () {
return ft.a;
}),
n.d(t, "FreeCameraTouchInput", function () {
return mt.a;
}),
n.d(t, "FreeCameraVirtualJoystickInput", function () {
return _t;
}),
n.d(t, "CameraInputTypes", function () {
return We.a;
}),
n.d(t, "CameraInputsManager", function () {
return We.b;
}),
n.d(t, "Camera", function () {
return De.a;
}),
n.d(t, "TargetCamera", function () {
return vt.a;
}),
n.d(t, "FreeCamera", function () {
return yt.a;
}),
n.d(t, "FreeCameraInputsManager", function () {
return lt.a;
}),
n.d(t, "TouchCamera", function () {
return Pt;
}),
n.d(t, "ArcRotateCamera", function () {
return xt;
}),
n.d(t, "ArcRotateCameraInputsManager", function () {
return nt;
}),
n.d(t, "DeviceOrientationCamera", function () {
return Tt;
}),
n.d(t, "FlyCamera", function () {
return Ot;
}),
n.d(t, "FlyCameraInputsManager", function () {
return St;
}),
n.d(t, "FollowCamera", function () {
return At;
}),
n.d(t, "ArcFollowCamera", function () {
return It;
}),
n.d(t, "FollowCameraInputsManager", function () {
return Et;
}),
n.d(t, "GamepadCamera", function () {
return Ut;
}),
n.d(t, "AnaglyphArcRotateCamera", function () {
return Zt;
}),
n.d(t, "AnaglyphFreeCamera", function () {
return qt;
}),
n.d(t, "AnaglyphGamepadCamera", function () {
return Qt;
}),
n.d(t, "AnaglyphUniversalCamera", function () {
return Jt;
}),
n.d(t, "StereoscopicArcRotateCamera", function () {
return nn;
}),
n.d(t, "StereoscopicFreeCamera", function () {
return rn;
}),
n.d(t, "StereoscopicGamepadCamera", function () {
return on;
}),
n.d(t, "StereoscopicUniversalCamera", function () {
return an;
}),
n.d(t, "UniversalCamera", function () {
return Gt;
}),
n.d(t, "VirtualJoysticksCamera", function () {
return sn;
}),
n.d(t, "VRCameraMetrics", function () {
return cn;
}),
n.d(t, "VRDeviceOrientationArcRotateCamera", function () {
return yn;
}),
n.d(t, "VRDeviceOrientationFreeCamera", function () {
return Cn;
}),
n.d(t, "VRDeviceOrientationGamepadCamera", function () {
return Pn;
}),
n.d(t, "OnAfterEnteringVRObservableEvent", function () {
return Yn;
}),
n.d(t, "VRExperienceHelper", function () {
return Kn;
}),
n.d(t, "WebVRFreeCamera", function () {
return Sn;
}),
n.d(t, "Collider", function () {
return Qn;
}),
n.d(t, "DefaultCollisionCoordinator", function () {
return Jn;
}),
n.d(t, "PickingInfo", function () {
return Ae.a;
}),
n.d(t, "IntersectionInfo", function () {
return Ie.a;
}),
n.d(t, "_MeshCollisionData", function () {
return $n.a;
}),
n.d(t, "BoundingBox", function () {
return ei.a;
}),
n.d(t, "BoundingInfo", function () {
return ti.a;
}),
n.d(t, "BoundingSphere", function () {
return ni.a;
}),
n.d(t, "Octree", function () {
return oi;
}),
n.d(t, "OctreeBlock", function () {
return ri;
}),
n.d(t, "OctreeSceneComponent", function () {
return ai;
}),
n.d(t, "Ray", function () {
return Re;
}),
n.d(t, "AxesViewer", function () {
return hi;
}),
n.d(t, "BoneAxesViewer", function () {
return di;
}),
n.d(t, "DebugLayerTab", function () {
return pi.DebugLayerTab;
}),
n.d(t, "DebugLayer", function () {
return pi.DebugLayer;
}),
n.d(t, "PhysicsViewer", function () {
return Pi;
}),
n.d(t, "RayHelper", function () {
return Si;
}),
n.d(t, "SkeletonViewer", function () {
return Oi;
}),
n.d(t, "Constants", function () {
return Ei.a;
}),
n.d(t, "ThinEngine", function () {
return Mi.a;
}),
n.d(t, "Engine", function () {
return ue.a;
}),
n.d(t, "EngineStore", function () {
return E.a;
}),
n.d(t, "NullEngineOptions", function () {
return Ai.b;
}),
n.d(t, "NullEngine", function () {
return Ai.a;
}),
n.d(t, "_OcclusionDataStorage", function () {
return Di;
}),
n.d(t, "_forceTransformFeedbackToBundle", function () {
return Ri;
}),
n.d(t, "EngineView", function () {
return wi;
}),
n.d(t, "WebGLPipelineContext", function () {
return Ni.a;
}),
n.d(t, "WebGL2ShaderProcessor", function () {
return ki.a;
}),
n.d(t, "NativeEngine", function () {
return Qi;
}),
n.d(t, "KeyboardEventTypes", function () {
return qe.a;
}),
n.d(t, "KeyboardInfo", function () {
return qe.b;
}),
n.d(t, "KeyboardInfoPre", function () {
return qe.c;
}),
n.d(t, "PointerEventTypes", function () {
return ye.a;
}),
n.d(t, "PointerInfoBase", function () {
return ye.c;
}),
n.d(t, "PointerInfoPre", function () {
return ye.d;
}),
n.d(t, "PointerInfo", function () {
return ye.b;
}),
n.d(t, "ClipboardEventTypes", function () {
return Ji.a;
}),
n.d(t, "ClipboardInfo", function () {
return Ji.b;
}),
n.d(t, "DaydreamController", function () {
return er;
}),
n.d(t, "GearVRController", function () {
return tr;
}),
n.d(t, "GenericController", function () {
return nr;
}),
n.d(t, "OculusTouchController", function () {
return ir;
}),
n.d(t, "PoseEnabledControllerType", function () {
return Mt;
}),
n.d(t, "PoseEnabledControllerHelper", function () {
return Lt;
}),
n.d(t, "PoseEnabledController", function () {
return Ft;
}),
n.d(t, "ViveController", function () {
return rr;
}),
n.d(t, "WebVRController", function () {
return On;
}),
n.d(t, "WindowsMotionController", function () {
return ar;
}),
n.d(t, "XRWindowsMotionController", function () {
return sr;
}),
n.d(t, "StickValues", function () {
return Xe;
}),
n.d(t, "Gamepad", function () {
return Ye;
}),
n.d(t, "GenericPad", function () {
return Ke;
}),
n.d(t, "GamepadManager", function () {
return Bt;
}),
n.d(t, "GamepadSystemSceneComponent", function () {
return Vt;
}),
n.d(t, "Xbox360Button", function () {
return Rt;
}),
n.d(t, "Xbox360Dpad", function () {
return wt;
}),
n.d(t, "Xbox360Pad", function () {
return zt;
}),
n.d(t, "DualShockButton", function () {
return Nt;
}),
n.d(t, "DualShockDpad", function () {
return kt;
}),
n.d(t, "DualShockPad", function () {
return jt;
}),
n.d(t, "AxisDragGizmo", function () {
return ui;
}),
n.d(t, "AxisScaleGizmo", function () {
return cr;
}),
n.d(t, "BoundingBoxGizmo", function () {
return lr;
}),
n.d(t, "Gizmo", function () {
return li;
}),
n.d(t, "GizmoManager", function () {
return gr;
}),
n.d(t, "PlaneRotationGizmo", function () {
return ur;
}),
n.d(t, "PositionGizmo", function () {
return pr;
}),
n.d(t, "RotationGizmo", function () {
return hr;
}),
n.d(t, "ScaleGizmo", function () {
return mr;
}),
n.d(t, "LightGizmo", function () {
return yr;
}),
n.d(t, "PlaneDragGizmo", function () {
return dr;
}),
n.d(t, "EnvironmentHelper", function () {
return Gr;
}),
n.d(t, "PhotoDome", function () {
return Ur;
}),
n.d(t, "_forceSceneHelpersToBundle", function () {
return Eo;
}),
n.d(t, "VideoDome", function () {
return Do;
}),
n.d(t, "EngineInstrumentation", function () {
return wo;
}),
n.d(t, "SceneInstrumentation", function () {
return Lo;
}),
n.d(t, "_TimeToken", function () {
return Ii;
}),
n.d(t, "EffectLayer", function () {
return jo;
}),
n.d(t, "EffectLayerSceneComponent", function () {
return Bo;
}),
n.d(t, "GlowLayer", function () {
return Uo;
}),
n.d(t, "HighlightLayer", function () {
return Xo;
}),
n.d(t, "Layer", function () {
return Yo.a;
}),
n.d(t, "LayerSceneComponent", function () {
return Ko.a;
}),
n.d(t, "LensFlare", function () {
return Zo;
}),
n.d(t, "LensFlareSystem", function () {
return Jo;
}),
n.d(t, "LensFlareSystemSceneComponent", function () {
return $o;
}),
n.d(t, "Light", function () {
return ea.a;
}),
n.d(t, "ShadowLight", function () {
return ta.a;
}),
n.d(t, "ShadowGenerator", function () {
return aa;
}),
n.d(t, "CascadedShadowGenerator", function () {
return va;
}),
n.d(t, "ShadowGeneratorSceneComponent", function () {
return ya;
}),
n.d(t, "DirectionalLight", function () {
return br.a;
}),
n.d(t, "HemisphericLight", function () {
return xn.a;
}),
n.d(t, "PointLight", function () {
return Ca.a;
}),
n.d(t, "SpotLight", function () {
return vr.a;
}),
n.d(t, "DefaultLoadingScreen", function () {
return Pa;
}),
n.d(t, "_BabylonLoaderRegistered", function () {
return ka;
}),
n.d(t, "BabylonFileLoaderConfiguration", function () {
return za;
}),
n.d(t, "SceneLoaderProgressEvent", function () {
return $i.c;
}),
n.d(t, "SceneLoaderAnimationGroupLoadingMode", function () {
return $i.b;
}),
n.d(t, "SceneLoader", function () {
return $i.a;
}),
n.d(t, "SceneLoaderFlags", function () {
return Ha.a;
}),
n.d(t, "BackgroundMaterial", function () {
return Vr;
}),
n.d(t, "ColorCurves", function () {
return Wa.a;
}),
n.d(t, "EffectFallbacks", function () {
return jr.a;
}),
n.d(t, "Effect", function () {
return Xt.a;
}),
n.d(t, "FresnelParameters", function () {
return Xa;
}),
n.d(t, "ImageProcessingConfigurationDefines", function () {
return En.b;
}),
n.d(t, "ImageProcessingConfiguration", function () {
return En.a;
}),
n.d(t, "Material", function () {
return Fo.a;
}),
n.d(t, "MaterialDefines", function () {
return Dr.a;
}),
n.d(t, "MaterialHelper", function () {
return Ir.a;
}),
n.d(t, "MultiMaterial", function () {
return Ta.a;
}),
n.d(t, "PBRMaterialDefines", function () {
return Ya.b;
}),
n.d(t, "PBRBaseMaterial", function () {
return Ya.a;
}),
n.d(t, "PBRBaseSimpleMaterial", function () {
return Ka.a;
}),
n.d(t, "PBRMaterial", function () {
return Hr.a;
}),
n.d(t, "PBRMetallicRoughnessMaterial", function () {
return Za.a;
}),
n.d(t, "PBRSpecularGlossinessMaterial", function () {
return qa;
}),
n.d(t, "PushMaterial", function () {
return Rr.a;
}),
n.d(t, "ShaderMaterial", function () {
return Qa.a;
}),
n.d(t, "StandardMaterialDefines", function () {
return Mn.b;
}),
n.d(t, "StandardMaterial", function () {
return Mn.a;
}),
n.d(t, "BaseTexture", function () {
return Cr.a;
}),
n.d(t, "ColorGradingTexture", function () {
return Ja;
}),
n.d(t, "CubeTexture", function () {
return Ar.a;
}),
n.d(t, "DynamicTexture", function () {
return An.a;
}),
n.d(t, "EquiRectangularCubeTexture", function () {
return $a;
}),
n.d(t, "HDRCubeTexture", function () {
return Ea;
}),
n.d(t, "InternalTextureSource", function () {
return pn.b;
}),
n.d(t, "InternalTexture", function () {
return pn.a;
}),
n.d(t, "_DDSTextureLoader", function () {
return eo;
}),
n.d(t, "_ENVTextureLoader", function () {
return to;
}),
n.d(t, "_KTXTextureLoader", function () {
return ro;
}),
n.d(t, "_TGATextureLoader", function () {
return ts;
}),
n.d(t, "_BasisTextureLoader", function () {
return as;
}),
n.d(t, "MirrorTexture", function () {
return Mr;
}),
n.d(t, "MultiRenderTarget", function () {
return ss;
}),
n.d(t, "CustomProceduralTexture", function () {
return us;
}),
n.d(t, "NoiseProceduralTexture", function () {
return ds;
}),
n.d(t, "ProceduralTexture", function () {
return cs.a;
}),
n.d(t, "ProceduralTextureSceneComponent", function () {
return vs.a;
}),
n.d(t, "RawCubeTexture", function () {
return ys.a;
}),
n.d(t, "RawTexture", function () {
return Cs.a;
}),
n.d(t, "RawTexture3D", function () {
return Ps;
}),
n.d(t, "RawTexture2DArray", function () {
return xs;
}),
n.d(t, "RefractionTexture", function () {
return Ts;
}),
n.d(t, "RenderTargetTexture", function () {
return mn.a;
}),
n.d(t, "Texture", function () {
return ln.a;
}),
n.d(t, "VideoTexture", function () {
return Mo;
}),
n.d(t, "HtmlElementTexture", function () {
return Ss;
}),
n.d(t, "TexturePacker", function () {
return Es;
}),
n.d(t, "TexturePackerFrame", function () {
return Os;
}),
n.d(t, "UniformBuffer", function () {
return fn.a;
}),
n.d(t, "MaterialFlags", function () {
return wr.a;
}),
n.d(t, "NodeMaterialBlockTargets", function () {
return ps;
}),
n.d(t, "NodeMaterialBlockConnectionPointTypes", function () {
return fs;
}),
n.d(t, "NodeMaterialBlockConnectionPointMode", function () {
return ms;
}),
n.d(t, "NodeMaterialSystemValues", function () {
return gs;
}),
n.d(t, "NodeMaterialConnectionPointCompatibilityStates", function () {
return bs;
}),
n.d(t, "NodeMaterialConnectionPointDirection", function () {
return _s;
}),
n.d(t, "NodeMaterialConnectionPoint", function () {
return Ms;
}),
n.d(t, "NodeMaterialBlock", function () {
return Is;
}),
n.d(t, "NodeMaterialDefines", function () {
return zs;
}),
n.d(t, "NodeMaterial", function () {
return js;
}),
n.d(t, "VertexOutputBlock", function () {
return Ls;
}),
n.d(t, "BonesBlock", function () {
return Bs;
}),
n.d(t, "InstancesBlock", function () {
return Vs;
}),
n.d(t, "MorphTargetsBlock", function () {
return Gs;
}),
n.d(t, "LightInformationBlock", function () {
return Us;
}),
n.d(t, "FragmentOutputBlock", function () {
return Ns;
}),
n.d(t, "ImageProcessingBlock", function () {
return Hs;
}),
n.d(t, "PerturbNormalBlock", function () {
return Ws;
}),
n.d(t, "DiscardBlock", function () {
return Xs;
}),
n.d(t, "FrontFacingBlock", function () {
return Ys;
}),
n.d(t, "DerivativeBlock", function () {
return Ks;
}),
n.d(t, "FogBlock", function () {
return Zs;
}),
n.d(t, "LightBlock", function () {
return qs;
}),
n.d(t, "TextureBlock", function () {
return Qs;
}),
n.d(t, "ReflectionTextureBlock", function () {
return Js;
}),
n.d(t, "InputBlock", function () {
return ks;
}),
n.d(t, "AnimatedInputBlockTypes", function () {
return Fs;
}),
n.d(t, "MultiplyBlock", function () {
return $s;
}),
n.d(t, "AddBlock", function () {
return ec;
}),
n.d(t, "ScaleBlock", function () {
return tc;
}),
n.d(t, "ClampBlock", function () {
return nc;
}),
n.d(t, "CrossBlock", function () {
return ic;
}),
n.d(t, "DotBlock", function () {
return rc;
}),
n.d(t, "TransformBlock", function () {
return ws;
}),
n.d(t, "RemapBlock", function () {
return oc;
}),
n.d(t, "NormalizeBlock", function () {
return sc;
}),
n.d(t, "TrigonometryBlockOperations", function () {
return ac;
}),
n.d(t, "TrigonometryBlock", function () {
return cc;
}),
n.d(t, "ColorMergerBlock", function () {
return lc;
}),
n.d(t, "VectorMergerBlock", function () {
return uc;
}),
n.d(t, "ColorSplitterBlock", function () {
return hc;
}),
n.d(t, "VectorSplitterBlock", function () {
return dc;
}),
n.d(t, "LerpBlock", function () {
return pc;
}),
n.d(t, "DivideBlock", function () {
return fc;
}),
n.d(t, "SubtractBlock", function () {
return mc;
}),
n.d(t, "StepBlock", function () {
return gc;
}),
n.d(t, "OneMinusBlock", function () {
return bc;
}),
n.d(t, "ViewDirectionBlock", function () {
return _c;
}),
n.d(t, "FresnelBlock", function () {
return vc;
}),
n.d(t, "MaxBlock", function () {
return yc;
}),
n.d(t, "MinBlock", function () {
return Cc;
}),
n.d(t, "DistanceBlock", function () {
return Pc;
}),
n.d(t, "LengthBlock", function () {
return xc;
}),
n.d(t, "NegateBlock", function () {
return Tc;
}),
n.d(t, "PowBlock", function () {
return Sc;
}),
n.d(t, "RandomNumberBlock", function () {
return Oc;
}),
n.d(t, "ArcTan2Block", function () {
return Ec;
}),
n.d(t, "SmoothStepBlock", function () {
return Mc;
}),
n.d(t, "ReciprocalBlock", function () {
return Ac;
}),
n.d(t, "ReplaceColorBlock", function () {
return Ic;
}),
n.d(t, "PosterizeBlock", function () {
return Rc;
}),
n.d(t, "WaveBlockKind", function () {
return Dc;
}),
n.d(t, "WaveBlock", function () {
return wc;
}),
n.d(t, "GradientBlockColorStep", function () {
return Lc;
}),
n.d(t, "GradientBlock", function () {
return Fc;
}),
n.d(t, "NLerpBlock", function () {
return Nc;
}),
n.d(t, "WorleyNoise3DBlock", function () {
return kc;
}),
n.d(t, "SimplexPerlin3DBlock", function () {
return zc;
}),
n.d(t, "NormalBlendBlock", function () {
return jc;
}),
n.d(t, "Rotate2dBlock", function () {
return Bc;
}),
n.d(t, "ReflectBlock", function () {
return Vc;
}),
n.d(t, "RefractBlock", function () {
return Gc;
}),
n.d(t, "DesaturateBlock", function () {
return Uc;
}),
n.d(t, "NodeMaterialOptimizer", function () {
return Hc;
}),
n.d(t, "EffectRenderer", function () {
return Wc;
}),
n.d(t, "EffectWrapper", function () {
return Xc;
}),
n.d(t, "Scalar", function () {
return z.a;
}),
n.d(t, "Space", function () {
return Be.b;
}),
n.d(t, "Axis", function () {
return Be.a;
}),
n.d(t, "Color3", function () {
return s.a;
}),
n.d(t, "Color4", function () {
return s.b;
}),
n.d(t, "TmpColors", function () {
return s.c;
}),
n.d(t, "ToGammaSpace", function () {
return j.b;
}),
n.d(t, "ToLinearSpace", function () {
return j.c;
}),
n.d(t, "Epsilon", function () {
return j.a;
}),
n.d(t, "Frustum", function () {
return bn.a;
}),
n.d(t, "Orientation", function () {
return L;
}),
n.d(t, "BezierCurve", function () {
return B;
}),
n.d(t, "Angle", function () {
return V;
}),
n.d(t, "Arc2", function () {
return G;
}),
n.d(t, "Path2", function () {
return U;
}),
n.d(t, "Path3D", function () {
return H;
}),
n.d(t, "Curve3", function () {
return W;
}),
n.d(t, "Plane", function () {
return Zn.a;
}),
n.d(t, "Size", function () {
return Tn.a;
}),
n.d(t, "Vector2", function () {
return a.d;
}),
n.d(t, "Vector3", function () {
return a.e;
}),
n.d(t, "Vector4", function () {
return a.f;
}),
n.d(t, "Quaternion", function () {
return a.b;
}),
n.d(t, "Matrix", function () {
return a.a;
}),
n.d(t, "TmpVectors", function () {
return a.c;
}),
n.d(t, "PositionNormalVertex", function () {
return Ao;
}),
n.d(t, "PositionNormalTextureVertex", function () {
return Io;
}),
n.d(t, "Viewport", function () {
return vn.a;
}),
n.d(t, "SphericalHarmonics", function () {
return Wr.a;
}),
n.d(t, "SphericalPolynomial", function () {
return Wr.b;
}),
n.d(t, "AbstractMesh", function () {
return ke.a;
}),
n.d(t, "Buffer", function () {
return wn.a;
}),
n.d(t, "VertexBuffer", function () {
return wn.b;
}),
n.d(t, "DracoCompression", function () {
return Yc.a;
}),
n.d(t, "CSG", function () {
return el;
}),
n.d(t, "Geometry", function () {
return xa.a;
}),
n.d(t, "GroundMesh", function () {
return Ln;
}),
n.d(t, "TrailMesh", function () {
return tl;
}),
n.d(t, "InstancedMesh", function () {
return nl.a;
}),
n.d(t, "LinesMesh", function () {
return xi.b;
}),
n.d(t, "InstancedLinesMesh", function () {
return xi.a;
}),
n.d(t, "_CreationDataStorage", function () {
return Ee.b;
}),
n.d(t, "_InstancesBatch", function () {
return Ee.c;
}),
n.d(t, "Mesh", function () {
return Ee.a;
}),
n.d(t, "VertexData", function () {
return Rn.a;
}),
n.d(t, "MeshBuilder", function () {
return bl;
}),
n.d(t, "SimplificationSettings", function () {
return _l;
}),
n.d(t, "SimplificationQueue", function () {
return vl;
}),
n.d(t, "SimplificationType", function () {
return ml;
}),
n.d(t, "SimplicationQueueSceneComponent", function () {
return Sl;
}),
n.d(t, "Polygon", function () {
return cl;
}),
n.d(t, "PolygonMeshBuilder", function () {
return ll;
}),
n.d(t, "BaseSubMesh", function () {
return Kc.a;
}),
n.d(t, "SubMesh", function () {
return Kc.b;
}),
n.d(t, "MeshLODLevel", function () {
return Ol.a;
}),
n.d(t, "TransformNode", function () {
return si.a;
}),
n.d(t, "BoxBuilder", function () {
return fi.a;
}),
n.d(t, "TiledBoxBuilder", function () {
return rl;
}),
n.d(t, "DiscBuilder", function () {
return il;
}),
n.d(t, "RibbonBuilder", function () {
return wa;
}),
n.d(t, "SphereBuilder", function () {
return mi;
}),
n.d(t, "HemisphereBuilder", function () {
return _r;
}),
n.d(t, "CylinderBuilder", function () {
return jn;
}),
n.d(t, "TorusBuilder", function () {
return kn;
}),
n.d(t, "TorusKnotBuilder", function () {
return ol;
}),
n.d(t, "LinesBuilder", function () {
return Ti;
}),
n.d(t, "PolygonBuilder", function () {
return ul;
}),
n.d(t, "ShapeBuilder", function () {
return La;
}),
n.d(t, "LatheBuilder", function () {
return hl;
}),
n.d(t, "PlaneBuilder", function () {
return Le.a;
}),
n.d(t, "TiledPlaneBuilder", function () {
return dl;
}),
n.d(t, "GroundBuilder", function () {
return Nn;
}),
n.d(t, "TubeBuilder", function () {
return pl;
}),
n.d(t, "PolyhedronBuilder", function () {
return fr;
}),
n.d(t, "IcoSphereBuilder", function () {
return fl;
}),
n.d(t, "DecalBuilder", function () {
return gl;
}),
n.d(t, "DataBuffer", function () {
return zi.a;
}),
n.d(t, "WebGLDataBuffer", function () {
return El.a;
}),
n.d(t, "MorphTarget", function () {
return Ml.a;
}),
n.d(t, "MorphTargetManager", function () {
return Ma.a;
}),
n.d(t, "RecastJSPlugin", function () {
return Al;
}),
n.d(t, "RecastJSCrowd", function () {
return Il;
}),
n.d(t, "Node", function () {
return Ct.a;
}),
n.d(t, "Database", function () {
return Rl;
}),
n.d(t, "BaseParticleSystem", function () {
return Ul;
}),
n.d(t, "BoxParticleEmitter", function () {
return wl;
}),
n.d(t, "ConeParticleEmitter", function () {
return Ll;
}),
n.d(t, "CylinderParticleEmitter", function () {
return Fl;
}),
n.d(t, "CylinderDirectedParticleEmitter", function () {
return Nl;
}),
n.d(t, "HemisphericParticleEmitter", function () {
return kl;
}),
n.d(t, "PointParticleEmitter", function () {
return zl;
}),
n.d(t, "SphereParticleEmitter", function () {
return jl;
}),
n.d(t, "SphereDirectedParticleEmitter", function () {
return Bl;
}),
n.d(t, "CustomParticleEmitter", function () {
return Vl;
}),
n.d(t, "MeshParticleEmitter", function () {
return Gl;
}),
n.d(t, "GPUParticleSystem", function () {
return ru;
}),
n.d(t, "Particle", function () {
return Kl;
}),
n.d(t, "ParticleHelper", function () {
return au;
}),
n.d(t, "ParticleSystem", function () {
return Jl;
}),
n.d(t, "_IDoNeedToBeInTheBuild", function () {
return cu;
}),
n.d(t, "ParticleSystemSet", function () {
return ou;
}),
n.d(t, "SolidParticle", function () {
return lu;
}),
n.d(t, "ModelShape", function () {
return uu;
}),
n.d(t, "DepthSortedParticle", function () {
return hu;
}),
n.d(t, "SolidParticleSystem", function () {
return du;
}),
n.d(t, "CloudPoint", function () {
return pu;
}),
n.d(t, "PointsGroup", function () {
return fu;
}),
n.d(t, "PointColor", function () {
return su;
}),
n.d(t, "PointsCloudSystem", function () {
return mu;
}),
n.d(t, "SubEmitterType", function () {
return Dl;
}),
n.d(t, "SubEmitter", function () {
return Zl;
}),
n.d(t, "PhysicsEngine", function () {
return Aa;
}),
n.d(t, "PhysicsEngineSceneComponent", function () {
return _u;
}),
n.d(t, "PhysicsHelper", function () {
return vu;
}),
n.d(t, "PhysicsRadialExplosionEventOptions", function () {
return Tu;
}),
n.d(t, "PhysicsUpdraftEventOptions", function () {
return Su;
}),
n.d(t, "PhysicsVortexEventOptions", function () {
return Ou;
}),
n.d(t, "PhysicsRadialImpulseFalloff", function () {
return gu;
}),
n.d(t, "PhysicsUpdraftMode", function () {
return bu;
}),
n.d(t, "PhysicsImpostor", function () {
return Ci;
}),
n.d(t, "PhysicsJoint", function () {
return gi;
}),
n.d(t, "DistanceJoint", function () {
return bi;
}),
n.d(t, "MotorEnabledJoint", function () {
return _i;
}),
n.d(t, "HingeJoint", function () {
return vi;
}),
n.d(t, "Hinge2Joint", function () {
return yi;
}),
n.d(t, "CannonJSPlugin", function () {
return Da;
}),
n.d(t, "AmmoJSPlugin", function () {
return Fa;
}),
n.d(t, "OimoJSPlugin", function () {
return Ra;
}),
n.d(t, "AnaglyphPostProcess", function () {
return Kt;
}),
n.d(t, "BlackAndWhitePostProcess", function () {
return Mu;
}),
n.d(t, "BloomEffect", function () {
return Lu;
}),
n.d(t, "BloomMergePostProcess", function () {
return wu;
}),
n.d(t, "BlurPostProcess", function () {
return Er;
}),
n.d(t, "ChromaticAberrationPostProcess", function () {
return Nu;
}),
n.d(t, "CircleOfConfusionPostProcess", function () {
return zu;
}),
n.d(t, "ColorCorrectionPostProcess", function () {
return Bu;
}),
n.d(t, "ConvolutionPostProcess", function () {
return Gu;
}),
n.d(t, "DepthOfFieldBlurPostProcess", function () {
return Uu;
}),
n.d(t, "DepthOfFieldEffectBlurLevel", function () {
return Wu;
}),
n.d(t, "DepthOfFieldEffect", function () {
return Ku;
}),
n.d(t, "DepthOfFieldMergePostProcessOptions", function () {
return Xu;
}),
n.d(t, "DepthOfFieldMergePostProcess", function () {
return Yu;
}),
n.d(t, "DisplayPassPostProcess", function () {
return qu;
}),
n.d(t, "ExtractHighlightsPostProcess", function () {
return Du;
}),
n.d(t, "FilterPostProcess", function () {
return Ju;
}),
n.d(t, "FxaaPostProcess", function () {
return th;
}),
n.d(t, "GrainPostProcess", function () {
return ih;
}),
n.d(t, "HighlightsPostProcess", function () {
return oh;
}),
n.d(t, "ImageProcessingPostProcess", function () {
return Dn;
}),
n.d(t, "MotionBlurPostProcess", function () {
return hh;
}),
n.d(t, "PassPostProcess", function () {
return Ht.b;
}),
n.d(t, "PassCubePostProcess", function () {
return Ht.a;
}),
n.d(t, "PostProcess", function () {
return Wt.a;
}),
n.d(t, "PostProcessManager", function () {
return ua.a;
}),
n.d(t, "RefractionPostProcess", function () {
return ph;
}),
n.d(t, "DefaultRenderingPipeline", function () {
return vh;
}),
n.d(t, "LensRenderingPipeline", function () {
return Ph;
}),
n.d(t, "SSAO2RenderingPipeline", function () {
return Sh;
}),
n.d(t, "SSAORenderingPipeline", function () {
return Eh;
}),
n.d(t, "StandardRenderingPipeline", function () {
return Dh;
}),
n.d(t, "PostProcessRenderEffect", function () {
return Au;
}),
n.d(t, "PostProcessRenderPipeline", function () {
return gh;
}),
n.d(t, "PostProcessRenderPipelineManager", function () {
return bh;
}),
n.d(t, "PostProcessRenderPipelineManagerSceneComponent", function () {
return _h;
}),
n.d(t, "SharpenPostProcess", function () {
return mh;
}),
n.d(t, "StereoscopicInterlacePostProcessI", function () {
return en;
}),
n.d(t, "StereoscopicInterlacePostProcess", function () {
return tn;
}),
n.d(t, "TonemappingOperator", function () {
return wh;
}),
n.d(t, "TonemapPostProcess", function () {
return Lh;
}),
n.d(t, "VolumetricLightScatteringPostProcess", function () {
return zh;
}),
n.d(t, "VRDistortionCorrectionPostProcess", function () {
return hn;
}),
n.d(t, "VRMultiviewToSingleviewPostProcess", function () {
return _n;
}),
n.d(t, "ScreenSpaceReflectionPostProcess", function () {
return Ah;
}),
n.d(t, "ReflectionProbe", function () {
return Na;
}),
n.d(t, "BoundingBoxRenderer", function () {
return jh;
}),
n.d(t, "DepthRenderer", function () {
return la;
}),
n.d(t, "DepthRendererSceneComponent", function () {
return Bh;
}),
n.d(t, "EdgesRenderer", function () {
return Uh;
}),
n.d(t, "LineEdgesRenderer", function () {
return Hh;
}),
n.d(t, "GeometryBufferRenderer", function () {
return ch;
}),
n.d(t, "GeometryBufferRendererSceneComponent", function () {
return lh;
}),
n.d(t, "OutlineRenderer", function () {
return Yh;
}),
n.d(t, "RenderingGroup", function () {
return Kh.a;
}),
n.d(t, "RenderingGroupInfo", function () {
return oa.a;
}),
n.d(t, "RenderingManager", function () {
return oa.b;
}),
n.d(t, "UtilityLayerRenderer", function () {
return ci.a;
}),
n.d(t, "Scene", function () {
return ge.a;
}),
n.d(t, "SceneComponentConstants", function () {
return me.a;
}),
n.d(t, "Stage", function () {
return me.b;
}),
n.d(t, "Sprite", function () {
return Zh;
}),
n.d(t, "SpriteManager", function () {
return $h;
}),
n.d(t, "SpriteMap", function () {
return id;
}),
n.d(t, "SpritePackedManager", function () {
return rd;
}),
n.d(t, "SpriteSceneComponent", function () {
return qh;
}),
n.d(t, "AlphaState", function () {
return od.a;
}),
n.d(t, "DepthCullingState", function () {
return ad.a;
}),
n.d(t, "StencilState", function () {
return sd.a;
}),
n.d(t, "AndOrNotEvaluator", function () {
return cd.a;
}),
n.d(t, "AssetTaskState", function () {
return nd;
}),
n.d(t, "AbstractAssetTask", function () {
return ud;
}),
n.d(t, "AssetsProgressEvent", function () {
return hd;
}),
n.d(t, "MeshAssetTask", function () {
return dd;
}),
n.d(t, "TextFileAssetTask", function () {
return pd;
}),
n.d(t, "BinaryFileAssetTask", function () {
return fd;
}),
n.d(t, "ImageAssetTask", function () {
return md;
}),
n.d(t, "TextureAssetTask", function () {
return gd;
}),
n.d(t, "CubeTextureAssetTask", function () {
return bd;
}),
n.d(t, "HDRCubeTextureAssetTask", function () {
return _d;
}),
n.d(t, "EquiRectangularCubeTextureAssetTask", function () {
return vd;
}),
n.d(t, "AssetsManager", function () {
return yd;
}),
n.d(t, "BasisTranscodeConfiguration", function () {
return is;
}),
n.d(t, "BasisTools", function () {
return rs;
}),
n.d(t, "DDSTools", function () {
return Jr;
}),
n.d(t, "expandToProperty", function () {
return He.b;
}),
n.d(t, "serialize", function () {
return He.c;
}),
n.d(t, "serializeAsTexture", function () {
return He.m;
}),
n.d(t, "serializeAsColor3", function () {
return He.e;
}),
n.d(t, "serializeAsFresnelParameters", function () {
return He.h;
}),
n.d(t, "serializeAsVector2", function () {
return He.n;
}),
n.d(t, "serializeAsVector3", function () {
return He.o;
}),
n.d(t, "serializeAsMeshReference", function () {
return He.k;
}),
n.d(t, "serializeAsColorCurves", function () {
return He.g;
}),
n.d(t, "serializeAsColor4", function () {
return He.f;
}),
n.d(t, "serializeAsImageProcessingConfiguration", function () {
return He.i;
}),
n.d(t, "serializeAsQuaternion", function () {
return He.l;
}),
n.d(t, "serializeAsMatrix", function () {
return He.j;
}),
n.d(t, "serializeAsCameraReference", function () {
return He.d;
}),
n.d(t, "SerializationHelper", function () {
return He.a;
}),
n.d(t, "Deferred", function () {
return Cd.a;
}),
n.d(t, "EnvironmentTextureTools", function () {
return ji.a;
}),
n.d(t, "MeshExploder", function () {
return Pd;
}),
n.d(t, "FilesInput", function () {
return Td;
}),
n.d(t, "CubeMapToSphericalPolynomialTools", function () {
return Xr.a;
}),
n.d(t, "HDRTools", function () {
return Oa;
}),
n.d(t, "PanoramaToCubeMapTools", function () {
return Sa;
}),
n.d(t, "KhronosTextureContainer", function () {
return no;
}),
n.d(t, "EventState", function () {
return o.a;
}),
n.d(t, "Observer", function () {
return o.d;
}),
n.d(t, "MultiObserver", function () {
return o.b;
}),
n.d(t, "Observable", function () {
return o.c;
}),
n.d(t, "PerformanceMonitor", function () {
return Sd.a;
}),
n.d(t, "RollingAverage", function () {
return Sd.b;
}),
n.d(t, "PromisePolyfill", function () {
return Od.a;
}),
n.d(t, "SceneOptimization", function () {
return Ed;
}),
n.d(t, "TextureOptimization", function () {
return Md;
}),
n.d(t, "HardwareScalingOptimization", function () {
return Ad;
}),
n.d(t, "ShadowsOptimization", function () {
return Id;
}),
n.d(t, "PostProcessesOptimization", function () {
return Dd;
}),
n.d(t, "LensFlaresOptimization", function () {
return Rd;
}),
n.d(t, "CustomOptimization", function () {
return wd;
}),
n.d(t, "ParticlesOptimization", function () {
return Ld;
}),
n.d(t, "RenderTargetsOptimization", function () {
return Fd;
}),
n.d(t, "MergeMeshesOptimization", function () {
return Nd;
}),
n.d(t, "SceneOptimizerOptions", function () {
return kd;
}),
n.d(t, "SceneOptimizer", function () {
return zd;
}),
n.d(t, "SceneSerializer", function () {
return Gd;
}),
n.d(t, "SmartArray", function () {
return ii.a;
}),
n.d(t, "SmartArrayNoDuplicate", function () {
return ii.b;
}),
n.d(t, "StringDictionary", function () {
return gt.a;
}),
n.d(t, "Tags", function () {
return Ud.a;
}),
n.d(t, "TextureTools", function () {
return Hd.a;
}),
n.d(t, "TGATools", function () {
return es;
}),
n.d(t, "Tools", function () {
return $e.b;
}),
n.d(t, "className", function () {
return $e.c;
}),
n.d(t, "AsyncLoop", function () {
return $e.a;
}),
n.d(t, "VideoRecorder", function () {
return Wd;
}),
n.d(t, "JoystickAxis", function () {
return dt;
}),
n.d(t, "VirtualJoystick", function () {
return bt;
}),
n.d(t, "WorkerPool", function () {
return Xd.a;
}),
n.d(t, "Logger", function () {
return g.a;
}),
n.d(t, "_TypeStore", function () {
return c.a;
}),
n.d(t, "FilesInputStore", function () {
return xd.a;
}),
n.d(t, "DeepCopier", function () {
return M.a;
}),
n.d(t, "PivotTools", function () {
return we;
}),
n.d(t, "PrecisionDate", function () {
return be.a;
}),
n.d(t, "ScreenshotTools", function () {
return Yd;
}),
n.d(t, "WebRequest", function () {
return ls.a;
}),
n.d(t, "InspectableType", function () {
return ld;
}),
n.d(t, "BRDFTextureTools", function () {
return Kd.a;
}),
n.d(t, "RGBDTextureTools", function () {
return Zd.a;
}),
n.d(t, "ColorGradient", function () {
return Hl;
}),
n.d(t, "Color3Gradient", function () {
return Wl;
}),
n.d(t, "FactorGradient", function () {
return Xl;
}),
n.d(t, "GradientHelper", function () {
return Yl;
}),
n.d(t, "PerfCounter", function () {
return Ro.a;
}),
n.d(t, "RetryStrategy", function () {
return qd.a;
}),
n.d(t, "CanvasGenerator", function () {
return Fn.a;
}),
n.d(t, "LoadFileError", function () {
return Qd.b;
}),
n.d(t, "RequestFileError", function () {
return Qd.d;
}),
n.d(t, "ReadFileError", function () {
return Qd.c;
}),
n.d(t, "FileTools", function () {
return Qd.a;
}),
n.d(t, "StringTools", function () {
return $r.a;
}),
n.d(t, "DataReader", function () {
return Jd.a;
}),
n.d(t, "MinMaxReducer", function () {
return da;
}),
n.d(t, "DepthReducer", function () {
return pa;
}),
n.d(t, "WebXRCamera", function () {
return oo;
}),
n.d(t, "WebXREnterExitUIButton", function () {
return Co;
}),
n.d(t, "WebXREnterExitUIOptions", function () {
return Po;
}),
n.d(t, "WebXREnterExitUI", function () {
return xo;
}),
n.d(t, "WebXRExperienceHelper", function () {
return co;
}),
n.d(t, "WebXRInput", function () {
return _o;
}),
n.d(t, "WebXRInputSource", function () {
return bo;
}),
n.d(t, "WebXRManagedOutputCanvasOptions", function () {
return Bn;
}),
n.d(t, "WebXRManagedOutputCanvas", function () {
return Vn;
}),
n.d(t, "WebXRState", function () {
return zn;
}),
n.d(t, "WebXRSessionManager", function () {
return Gn;
}),
n.d(t, "WebXRDefaultExperienceOptions", function () {
return So;
}),
n.d(t, "WebXRDefaultExperience", function () {
return Oo;
}),
n.d(t, "WebXRFeatureName", function () {
return ao;
}),
n.d(t, "WebXRFeaturesManager", function () {
return so;
}),
n.d(t, "WebXRHitTestLegacy", function () {
return $d;
}),
n.d(t, "WebXRAnchorSystem", function () {
return tp;
}),
n.d(t, "WebXRPlaneDetector", function () {
return ip;
}),
n.d(t, "WebXRBackgroundRemover", function () {
return rp;
}),
n.d(t, "WebXRMotionControllerTeleportation", function () {
return To;
}),
n.d(t, "WebXRControllerPointerSelection", function () {
return yo;
}),
n.d(t, "IWebXRControllerPhysicsOptions", function () {
return op;
}),
n.d(t, "WebXRControllerPhysics", function () {
return ap;
}),
n.d(t, "WebXRAbstractMotionController", function () {
return uo;
}),
n.d(t, "WebXRControllerComponent", function () {
return lo;
}),
n.d(t, "WebXRGenericTriggerMotionController", function () {
return ho;
}),
n.d(t, "WebXRMicrosoftMixedRealityController", function () {
return sp;
}),
n.d(t, "WebXRMotionControllerManager", function () {
return mo;
}),
n.d(t, "WebXROculusTouchMotionController", function () {
return lp;
}),
n.d(t, "WebXRHTCViveMotionController", function () {
return hp;
}),
n.d(t, "WebXRProfiledMotionController", function () {
return fo;
});
var i = n(54),
r = n(130),
o = n(6),
a = n(1),
s = n(5),
c = n(13),
l = (function () {
function e(e, t) {
(this.triggerOptions = e),
(this.onBeforeExecuteObservable = new o.c()),
e.parameter ? ((this.trigger = e.trigger), (this._triggerParameter = e.parameter)) : e.trigger ? (this.trigger = e.trigger) : (this.trigger = e),
(this._nextActiveAction = this),
(this._condition = t);
}
return (
(e.prototype._prepare = function () {}),
(e.prototype.getTriggerParameter = function () {
return this._triggerParameter;
}),
(e.prototype._executeCurrent = function (e) {
if (this._nextActiveAction._condition) {
var t = this._nextActiveAction._condition,
n = this._actionManager.getScene().getRenderId();
if (t._evaluationId === n) {
if (!t._currentResult) return;
} else {
if (((t._evaluationId = n), !t.isValid())) return void (t._currentResult = !1);
t._currentResult = !0;
}
}
this.onBeforeExecuteObservable.notifyObservers(this), this._nextActiveAction.execute(e), this.skipToNextActiveAction();
}),
(e.prototype.execute = function (e) {}),
(e.prototype.skipToNextActiveAction = function () {
this._nextActiveAction._child
? (this._nextActiveAction._child._actionManager || (this._nextActiveAction._child._actionManager = this._actionManager), (this._nextActiveAction = this._nextActiveAction._child))
: (this._nextActiveAction = this);
}),
(e.prototype.then = function (e) {
return (this._child = e), (e._actionManager = this._actionManager), e._prepare(), e;
}),
(e.prototype._getProperty = function (e) {
return this._actionManager._getProperty(e);
}),
(e.prototype._getEffectiveTarget = function (e, t) {
return this._actionManager._getEffectiveTarget(e, t);
}),
(e.prototype.serialize = function (e) {}),
(e.prototype._serialize = function (e, t) {
var n = { type: 1, children: [], name: e.name, properties: e.properties || [] };
if ((this._child && this._child.serialize(n), this._condition)) {
var i = this._condition.serialize();
return i.children.push(n), t && t.children.push(i), i;
}
return t && t.children.push(n), n;
}),
(e._SerializeValueAsString = function (e) {
return "number" == typeof e
? e.toString()
: "boolean" == typeof e
? e
? "true"
: "false"
: e instanceof a.d
? e.x + ", " + e.y
: e instanceof a.e
? e.x + ", " + e.y + ", " + e.z
: e instanceof s.a
? e.r + ", " + e.g + ", " + e.b
: e instanceof s.b
? e.r + ", " + e.g + ", " + e.b + ", " + e.a
: e;
}),
(e._GetTargetProperty = function (e) {
return { name: "target", targetType: e._isMesh ? "MeshProperties" : e._isLight ? "LightProperties" : e._isCamera ? "CameraProperties" : "SceneProperties", value: e._isScene ? "Scene" : e.name };
}),
e
);
})();
c.a.RegisteredTypes["BABYLON.Action"] = l;
var u = n(64),
h = n(2),
d = (function () {
function e(e) {
this._actionManager = e;
}
return (
(e.prototype.isValid = function () {
return !0;
}),
(e.prototype._getProperty = function (e) {
return this._actionManager._getProperty(e);
}),
(e.prototype._getEffectiveTarget = function (e, t) {
return this._actionManager._getEffectiveTarget(e, t);
}),
(e.prototype.serialize = function () {}),
(e.prototype._serialize = function (e) {
return { type: 2, children: [], name: e.name, properties: e.properties };
}),
e
);
})(),
p = (function (e) {
function t(n, i, r, o, a) {
void 0 === a && (a = t.IsEqual);
var s = e.call(this, n) || this;
return (s.propertyPath = r), (s.value = o), (s.operator = a), (s._target = i), (s._effectiveTarget = s._getEffectiveTarget(i, s.propertyPath)), (s._property = s._getProperty(s.propertyPath)), s;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t, "IsEqual", {
get: function () {
return t._IsEqual;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "IsDifferent", {
get: function () {
return t._IsDifferent;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "IsGreater", {
get: function () {
return t._IsGreater;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t, "IsLesser", {
get: function () {
return t._IsLesser;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.isValid = function () {
switch (this.operator) {
case t.IsGreater:
return this._effectiveTarget[this._property] > this.value;
case t.IsLesser:
return this._effectiveTarget[this._property] < this.value;
case t.IsEqual:
case t.IsDifferent:
var e;
return (e = this.value.equals ? this.value.equals(this._effectiveTarget[this._property]) : this.value === this._effectiveTarget[this._property]), this.operator === t.IsEqual ? e : !e;
}
return !1;
}),
(t.prototype.serialize = function () {
return this._serialize({
name: "ValueCondition",
properties: [
l._GetTargetProperty(this._target),
{ name: "propertyPath", value: this.propertyPath },
{ name: "value", value: l._SerializeValueAsString(this.value) },
{ name: "operator", value: t.GetOperatorName(this.operator) },
],
});
}),
(t.GetOperatorName = function (e) {
switch (e) {
case t._IsEqual:
return "IsEqual";
case t._IsDifferent:
return "IsDifferent";
case t._IsGreater:
return "IsGreater";
case t._IsLesser:
return "IsLesser";
default:
return "";
}
}),
(t._IsEqual = 0),
(t._IsDifferent = 1),
(t._IsGreater = 2),
(t._IsLesser = 3),
t
);
})(d),
f = (function (e) {
function t(t, n) {
var i = e.call(this, t) || this;
return (i.predicate = n), i;
}
return (
Object(h.d)(t, e),
(t.prototype.isValid = function () {
return this.predicate();
}),
t
);
})(d),
m = (function (e) {
function t(t, n, i) {
var r = e.call(this, t) || this;
return (r.value = i), (r._target = n), r;
}
return (
Object(h.d)(t, e),
(t.prototype.isValid = function () {
return this._target.state === this.value;
}),
(t.prototype.serialize = function () {
return this._serialize({ name: "StateCondition", properties: [l._GetTargetProperty(this._target), { name: "value", value: this.value }] });
}),
t
);
})(d);
(c.a.RegisteredTypes["BABYLON.ValueCondition"] = p), (c.a.RegisteredTypes["BABYLON.PredicateCondition"] = f), (c.a.RegisteredTypes["BABYLON.StateCondition"] = m);
var g = n(10),
b = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, r) || this;
return (o.propertyPath = i), (o._target = o._effectiveTarget = n), o;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {
(this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath));
}),
(t.prototype.execute = function () {
this._effectiveTarget[this._property] = !this._effectiveTarget[this._property];
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "SwitchBooleanAction", properties: [l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }] }, t);
}),
t
);
})(l),
_ = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, r) || this;
return (o.value = i), (o._target = n), o;
}
return (
Object(h.d)(t, e),
(t.prototype.execute = function () {
this._target.state = this.value;
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "SetStateAction", properties: [l._GetTargetProperty(this._target), { name: "value", value: this.value }] }, t);
}),
t
);
})(l),
v = (function (e) {
function t(t, n, i, r, o) {
var a = e.call(this, t, o) || this;
return (a.propertyPath = i), (a.value = r), (a._target = a._effectiveTarget = n), a;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {
(this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath));
}),
(t.prototype.execute = function () {
(this._effectiveTarget[this._property] = this.value), this._target.markAsDirty && this._target.markAsDirty(this._property);
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(
this,
{ name: "SetValueAction", properties: [l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }, { name: "value", value: l._SerializeValueAsString(this.value) }] },
t
);
}),
t
);
})(l),
y = (function (e) {
function t(t, n, i, r, o) {
var a = e.call(this, t, o) || this;
return (a.propertyPath = i), (a.value = r), (a._target = a._effectiveTarget = n), a;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {
(this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)),
(this._property = this._getProperty(this.propertyPath)),
"number" != typeof this._effectiveTarget[this._property] && g.a.Warn("Warning: IncrementValueAction can only be used with number values");
}),
(t.prototype.execute = function () {
(this._effectiveTarget[this._property] += this.value), this._target.markAsDirty && this._target.markAsDirty(this._property);
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(
this,
{ name: "IncrementValueAction", properties: [l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }, { name: "value", value: l._SerializeValueAsString(this.value) }] },
t
);
}),
t
);
})(l),
C = (function (e) {
function t(t, n, i, r, o, a) {
var s = e.call(this, t, a) || this;
return (s.from = i), (s.to = r), (s.loop = o), (s._target = n), s;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {}),
(t.prototype.execute = function () {
this._actionManager.getScene().beginAnimation(this._target, this.from, this.to, this.loop);
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(
this,
{
name: "PlayAnimationAction",
properties: [l._GetTargetProperty(this._target), { name: "from", value: String(this.from) }, { name: "to", value: String(this.to) }, { name: "loop", value: l._SerializeValueAsString(this.loop) || !1 }],
},
t
);
}),
t
);
})(l),
P = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r._target = n), r;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {}),
(t.prototype.execute = function () {
this._actionManager.getScene().stopAnimation(this._target);
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "StopAnimationAction", properties: [l._GetTargetProperty(this._target)] }, t);
}),
t
);
})(l),
x = (function (e) {
function t(t, n) {
return void 0 === t && (t = 0), e.call(this, t, n) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.execute = function () {}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "DoNothingAction", properties: [] }, t);
}),
t
);
})(l),
T = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r.children = n), r;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {
for (var e = 0; e < this.children.length; e++) (this.children[e]._actionManager = this._actionManager), this.children[e]._prepare();
}),
(t.prototype.execute = function (e) {
for (var t = 0; t < this.children.length; t++) this.children[t].execute(e);
}),
(t.prototype.serialize = function (t) {
for (var n = e.prototype._serialize.call(this, { name: "CombineAction", properties: [], combine: [] }, t), i = 0; i < this.children.length; i++) n.combine.push(this.children[i].serialize(null));
return n;
}),
t
);
})(l),
S = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r.func = n), r;
}
return (
Object(h.d)(t, e),
(t.prototype.execute = function (e) {
this.func(e);
}),
t
);
})(l),
O = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, r) || this;
return (o._target = n), (o._parent = i), o;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {}),
(t.prototype.execute = function () {
if (this._target.parent !== this._parent) {
var e = this._parent.getWorldMatrix().clone();
e.invert(), (this._target.position = a.e.TransformCoordinates(this._target.position, e)), (this._target.parent = this._parent);
}
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "SetParentAction", properties: [l._GetTargetProperty(this._target), l._GetTargetProperty(this._parent)] }, t);
}),
t
);
})(l);
(c.a.RegisteredTypes["BABYLON.SetParentAction"] = O),
(c.a.RegisteredTypes["BABYLON.ExecuteCodeAction"] = S),
(c.a.RegisteredTypes["BABYLON.DoNothingAction"] = x),
(c.a.RegisteredTypes["BABYLON.StopAnimationAction"] = P),
(c.a.RegisteredTypes["BABYLON.PlayAnimationAction"] = C),
(c.a.RegisteredTypes["BABYLON.IncrementValueAction"] = y),
(c.a.RegisteredTypes["BABYLON.SetValueAction"] = v),
(c.a.RegisteredTypes["BABYLON.SetStateAction"] = _),
(c.a.RegisteredTypes["BABYLON.SetParentAction"] = O);
var E = n(25),
M = n(51),
A = (function (e) {
function t(t) {
var n = e.call(this) || this;
return (n._scene = t || E.a.LastCreatedScene), t.actionManagers.push(n), n;
}
return (
Object(h.d)(t, e),
(t.prototype.dispose = function () {
for (var e = this._scene.actionManagers.indexOf(this), n = 0; n < this.actions.length; n++) {
var i = this.actions[n];
t.Triggers[i.trigger]--, 0 === t.Triggers[i.trigger] && delete t.Triggers[i.trigger];
}
e > -1 && this._scene.actionManagers.splice(e, 1);
}),
(t.prototype.getScene = function () {
return this._scene;
}),
(t.prototype.hasSpecificTriggers = function (e) {
for (var t = 0; t < this.actions.length; t++) {
var n = this.actions[t];
if (e.indexOf(n.trigger) > -1) return !0;
}
return !1;
}),
(t.prototype.hasSpecificTriggers2 = function (e, t) {
for (var n = 0; n < this.actions.length; n++) {
var i = this.actions[n];
if (e == i.trigger || t == i.trigger) return !0;
}
return !1;
}),
(t.prototype.hasSpecificTrigger = function (e, t) {
for (var n = 0; n < this.actions.length; n++) {
var i = this.actions[n];
if (i.trigger === e) {
if (!t) return !0;
if (t(i.getTriggerParameter())) return !0;
}
}
return !1;
}),
Object.defineProperty(t.prototype, "hasPointerTriggers", {
get: function () {
for (var e = 0; e < this.actions.length; e++) {
var n = this.actions[e];
if (n.trigger >= t.OnPickTrigger && n.trigger <= t.OnPointerOutTrigger) return !0;
}
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hasPickTriggers", {
get: function () {
for (var e = 0; e < this.actions.length; e++) {
var n = this.actions[e];
if (n.trigger >= t.OnPickTrigger && n.trigger <= t.OnPickUpTrigger) return !0;
}
return !1;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.registerAction = function (e) {
return e.trigger === t.OnEveryFrameTrigger && this.getScene().actionManager !== this
? (g.a.Warn("OnEveryFrameTrigger can only be used with scene.actionManager"), null)
: (this.actions.push(e), t.Triggers[e.trigger] ? t.Triggers[e.trigger]++ : (t.Triggers[e.trigger] = 1), (e._actionManager = this), e._prepare(), e);
}),
(t.prototype.unregisterAction = function (e) {
var n = this.actions.indexOf(e);
return -1 !== n && (this.actions.splice(n, 1), (t.Triggers[e.trigger] -= 1), 0 === t.Triggers[e.trigger] && delete t.Triggers[e.trigger], delete e._actionManager, !0);
}),
(t.prototype.processTrigger = function (e, n) {
for (var i = 0; i < this.actions.length; i++) {
var r = this.actions[i];
if (r.trigger === e) {
if (n && (e === t.OnKeyUpTrigger || e === t.OnKeyDownTrigger)) {
var o = r.getTriggerParameter();
if (o && o !== n.sourceEvent.keyCode) {
if (!o.toLowerCase) continue;
var a = o.toLowerCase();
if (a !== n.sourceEvent.key) {
var s = n.sourceEvent.charCode ? n.sourceEvent.charCode : n.sourceEvent.keyCode;
if (String.fromCharCode(s).toLowerCase() !== a) continue;
}
}
}
r._executeCurrent(n);
}
}
}),
(t.prototype._getEffectiveTarget = function (e, t) {
for (var n = t.split("."), i = 0; i < n.length - 1; i++) e = e[n[i]];
return e;
}),
(t.prototype._getProperty = function (e) {
var t = e.split(".");
return t[t.length - 1];
}),
(t.prototype.serialize = function (e) {
for (var n = { children: new Array(), name: e, type: 3, properties: new Array() }, i = 0; i < this.actions.length; i++) {
var r = { type: 0, children: new Array(), name: t.GetTriggerName(this.actions[i].trigger), properties: new Array() },
o = this.actions[i].triggerOptions;
if (o && "number" != typeof o)
if (o.parameter instanceof Node) r.properties.push(l._GetTargetProperty(o.parameter));
else {
var a = {};
M.a.DeepCopy(o.parameter, a, ["mesh"]), o.parameter && o.parameter.mesh && (a._meshId = o.parameter.mesh.id), r.properties.push({ name: "parameter", targetType: null, value: a });
}
this.actions[i].serialize(r), n.children.push(r);
}
return n;
}),
(t.Parse = function (e, n, i) {
var r = new t(i);
null === n ? (i.actionManager = r) : (n.actionManager = r);
for (
var o = function (e, t, n, i) {
if (null === i) {
var r = parseFloat(t);
return "true" === t || "false" === t ? "true" === t : isNaN(r) ? t : r;
}
for (var o = i.split("."), c = t.split(","), l = 0; l < o.length; l++) n = n[o[l]];
if ("boolean" == typeof n) return "true" === c[0];
if ("string" == typeof n) return c[0];
var u = new Array();
for (l = 0; l < c.length; l++) u.push(parseFloat(c[l]));
return n instanceof a.e ? a.e.FromArray(u) : n instanceof a.f ? a.f.FromArray(u) : n instanceof s.a ? s.a.FromArray(u) : n instanceof s.b ? s.b.FromArray(u) : parseFloat(c[0]);
},
l = function (e, n, a, s, u) {
if ((void 0 === u && (u = null), !e.detached)) {
var h = new Array(),
f = null,
m = null,
g = e.combine && e.combine.length > 0;
if ((2 === e.type ? h.push(r) : h.push(n), g)) {
for (var b = new Array(), _ = 0; _ < e.combine.length; _++) l(e.combine[_], t.NothingTrigger, a, s, b);
h.push(b);
} else
for (var v = 0; v < e.properties.length; v++) {
var y = e.properties[v].value,
C = e.properties[v].name,
P = e.properties[v].targetType;
"target" === C
? (y = f = null !== P && "SceneProperties" === P ? i : i.getNodeByName(y))
: "parent" === C
? (y = i.getNodeByName(y))
: "sound" === C
? i.getSoundByName && (y = i.getSoundByName(y))
: "propertyPath" !== C
? (y = 2 === e.type && "operator" === C ? p[y] : o(0, y, f, "value" === C ? m : null))
: (m = y),
h.push(y);
}
if ((null === u ? h.push(a) : h.push(null), "InterpolateValueAction" === e.name)) {
var T = h[h.length - 2];
(h[h.length - 1] = T), (h[h.length - 2] = a);
}
var S = (function (e, t) {
var n = c.a.GetClass("BABYLON." + e);
if (n) {
var i = Object.create(n.prototype);
return i.constructor.apply(i, t), i;
}
})(e.name, h);
if (S instanceof d && null !== a) {
var O = new x(n, a);
s ? s.then(O) : r.registerAction(O), (s = O);
}
null === u ? (S instanceof d ? ((a = S), (S = s)) : ((a = null), s ? s.then(S) : r.registerAction(S))) : u.push(S);
for (v = 0; v < e.children.length; v++) l(e.children[v], n, a, S, null);
}
},
u = 0;
u < e.children.length;
u++
) {
var h,
f = e.children[u];
if (f.properties.length > 0) {
var m = f.properties[0].value,
g = null === f.properties[0].targetType ? m : i.getMeshByName(m);
g._meshId && (g.mesh = i.getMeshByID(g._meshId)), (h = { trigger: t[f.name], parameter: g });
} else h = t[f.name];
for (var b = 0; b < f.children.length; b++) f.detached || l(f.children[b], h, null, null);
}
}),
(t.GetTriggerName = function (e) {
switch (e) {
case 0:
return "NothingTrigger";
case 1:
return "OnPickTrigger";
case 2:
return "OnLeftPickTrigger";
case 3:
return "OnRightPickTrigger";
case 4:
return "OnCenterPickTrigger";
case 5:
return "OnPickDownTrigger";
case 6:
return "OnPickUpTrigger";
case 7:
return "OnLongPressTrigger";
case 8:
return "OnPointerOverTrigger";
case 9:
return "OnPointerOutTrigger";
case 10:
return "OnEveryFrameTrigger";
case 11:
return "OnIntersectionEnterTrigger";
case 12:
return "OnIntersectionExitTrigger";
case 13:
return "OnKeyDownTrigger";
case 14:
return "OnKeyUpTrigger";
case 15:
return "OnPickOutTrigger";
default:
return "";
}
}),
(t.NothingTrigger = 0),
(t.OnPickTrigger = 1),
(t.OnLeftPickTrigger = 2),
(t.OnRightPickTrigger = 3),
(t.OnCenterPickTrigger = 4),
(t.OnPickDownTrigger = 5),
(t.OnDoublePickTrigger = 6),
(t.OnPickUpTrigger = 7),
(t.OnPickOutTrigger = 16),
(t.OnLongPressTrigger = 8),
(t.OnPointerOverTrigger = 9),
(t.OnPointerOutTrigger = 10),
(t.OnEveryFrameTrigger = 11),
(t.OnIntersectionEnterTrigger = 12),
(t.OnIntersectionExitTrigger = 13),
(t.OnKeyDownTrigger = 14),
(t.OnKeyUpTrigger = 15),
t
);
})(r.a),
I = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r._sound = n), r;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {}),
(t.prototype.execute = function () {
void 0 !== this._sound && this._sound.play();
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "PlaySoundAction", properties: [{ name: "sound", value: this._sound.name }] }, t);
}),
t
);
})(l),
D = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r._sound = n), r;
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {}),
(t.prototype.execute = function () {
void 0 !== this._sound && this._sound.stop();
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(this, { name: "StopSoundAction", properties: [{ name: "sound", value: this._sound.name }] }, t);
}),
t
);
})(l);
(c.a.RegisteredTypes["BABYLON.PlaySoundAction"] = D), (c.a.RegisteredTypes["BABYLON.StopSoundAction"] = D);
var R = n(27),
w = (function (e) {
function t(t, n, i, r, a, s, c, l) {
void 0 === a && (a = 1e3);
var u = e.call(this, t, s) || this;
return (
(u.duration = 1e3),
(u.onInterpolationDoneObservable = new o.c()),
(u.propertyPath = i),
(u.value = r),
(u.duration = a),
(u.stopOtherAnimations = c),
(u.onInterpolationDone = l),
(u._target = u._effectiveTarget = n),
u
);
}
return (
Object(h.d)(t, e),
(t.prototype._prepare = function () {
(this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath));
}),
(t.prototype.execute = function () {
var e,
t = this,
n = this._actionManager.getScene(),
i = [
{ frame: 0, value: this._effectiveTarget[this._property] },
{ frame: 100, value: this.value },
];
if ("number" == typeof this.value) e = R.a.ANIMATIONTYPE_FLOAT;
else if (this.value instanceof s.a) e = R.a.ANIMATIONTYPE_COLOR3;
else if (this.value instanceof a.e) e = R.a.ANIMATIONTYPE_VECTOR3;
else if (this.value instanceof a.a) e = R.a.ANIMATIONTYPE_MATRIX;
else {
if (!(this.value instanceof a.b)) return void g.a.Warn("InterpolateValueAction: Unsupported type (" + typeof this.value + ")");
e = R.a.ANIMATIONTYPE_QUATERNION;
}
var r = new R.a("InterpolateValueAction", this._property, (1e3 / this.duration) * 100, e, R.a.ANIMATIONLOOPMODE_CONSTANT);
r.setKeys(i), this.stopOtherAnimations && n.stopAnimation(this._effectiveTarget);
n.beginDirectAnimation(this._effectiveTarget, [r], 0, 100, !1, 1, function () {
t.onInterpolationDoneObservable.notifyObservers(t), t.onInterpolationDone && t.onInterpolationDone();
});
}),
(t.prototype.serialize = function (t) {
return e.prototype._serialize.call(
this,
{
name: "InterpolateValueAction",
properties: [
l._GetTargetProperty(this._target),
{ name: "propertyPath", value: this.propertyPath },
{ name: "value", value: l._SerializeValueAsString(this.value) },
{ name: "duration", value: l._SerializeValueAsString(this.duration) },
{ name: "stopOtherAnimations", value: l._SerializeValueAsString(this.stopOtherAnimations) || !1 },
],
},
t
);
}),
t
);
})(l);
c.a.RegisteredTypes["BABYLON.InterpolateValueAction"] = w;
var L,
F = n(165),
N = n(144),
k = function () {
(this.enableBlending = !1), (this.blendingSpeed = 0.01), (this.loopMode = R.a.ANIMATIONLOOPMODE_CYCLE);
},
z = n(15),
j = n(34);
!(function (e) {
(e[(e.CW = 0)] = "CW"), (e[(e.CCW = 1)] = "CCW");
})(L || (L = {}));
var B = (function () {
function e() {}
return (
(e.Interpolate = function (e, t, n, i, r) {
for (var o = 1 - 3 * i + 3 * t, a = 3 * i - 6 * t, s = 3 * t, c = e, l = 0; l < 5; l++) {
var u = c * c;
(c -= (o * (u * c) + a * u + s * c - e) * (1 / (3 * o * u + 2 * a * c + s))), (c = Math.min(1, Math.max(0, c)));
}
return 3 * Math.pow(1 - c, 2) * c * n + 3 * (1 - c) * Math.pow(c, 2) * r + Math.pow(c, 3);
}),
e
);
})(),
V = (function () {
function e(e) {
(this._radians = e), this._radians < 0 && (this._radians += 2 * Math.PI);
}
return (
(e.prototype.degrees = function () {
return (180 * this._radians) / Math.PI;
}),
(e.prototype.radians = function () {
return this._radians;
}),
(e.BetweenTwoPoints = function (t, n) {
var i = n.subtract(t);
return new e(Math.atan2(i.y, i.x));
}),
(e.FromRadians = function (t) {
return new e(t);
}),
(e.FromDegrees = function (t) {
return new e((t * Math.PI) / 180);
}),
e
);
})(),
G = function (e, t, n) {
(this.startPoint = e), (this.midPoint = t), (this.endPoint = n);
var i = Math.pow(t.x, 2) + Math.pow(t.y, 2),
r = (Math.pow(e.x, 2) + Math.pow(e.y, 2) - i) / 2,
o = (i - Math.pow(n.x, 2) - Math.pow(n.y, 2)) / 2,
s = (e.x - t.x) * (t.y - n.y) - (t.x - n.x) * (e.y - t.y);
(this.centerPoint = new a.d((r * (t.y - n.y) - o * (e.y - t.y)) / s, ((e.x - t.x) * o - (t.x - n.x) * r) / s)),
(this.radius = this.centerPoint.subtract(this.startPoint).length()),
(this.startAngle = V.BetweenTwoPoints(this.centerPoint, this.startPoint));
var c = this.startAngle.degrees(),
l = V.BetweenTwoPoints(this.centerPoint, this.midPoint).degrees(),
u = V.BetweenTwoPoints(this.centerPoint, this.endPoint).degrees();
l - c > 180 && (l -= 360),
l - c < -180 && (l += 360),
u - l > 180 && (u -= 360),
u - l < -180 && (u += 360),
(this.orientation = l - c < 0 ? L.CW : L.CCW),
(this.angle = V.FromDegrees(this.orientation === L.CW ? c - u : u - c));
},
U = (function () {
function e(e, t) {
(this._points = new Array()), (this._length = 0), (this.closed = !1), this._points.push(new a.d(e, t));
}
return (
(e.prototype.addLineTo = function (e, t) {
if (this.closed) return this;
var n = new a.d(e, t),
i = this._points[this._points.length - 1];
return this._points.push(n), (this._length += n.subtract(i).length()), this;
}),
(e.prototype.addArcTo = function (e, t, n, i, r) {
if ((void 0 === r && (r = 36), this.closed)) return this;
var o = this._points[this._points.length - 1],
s = new a.d(e, t),
c = new a.d(n, i),
l = new G(o, s, c),
u = l.angle.radians() / r;
l.orientation === L.CW && (u *= -1);
for (var h = l.startAngle.radians() + u, d = 0; d < r; d++) {
var p = Math.cos(h) * l.radius + l.centerPoint.x,
f = Math.sin(h) * l.radius + l.centerPoint.y;
this.addLineTo(p, f), (h += u);
}
return this;
}),
(e.prototype.close = function () {
return (this.closed = !0), this;
}),
(e.prototype.length = function () {
var e = this._length;
if (this.closed) {
var t = this._points[this._points.length - 1];
e += this._points[0].subtract(t).length();
}
return e;
}),
(e.prototype.getPoints = function () {
return this._points;
}),
(e.prototype.getPointAtLengthPosition = function (e) {
if (e < 0 || e > 1) return a.d.Zero();
for (var t = e * this.length(), n = 0, i = 0; i < this._points.length; i++) {
var r = (i + 1) % this._points.length,
o = this._points[i],
s = this._points[r].subtract(o),
c = s.length() + n;
if (t >= n && t <= c) {
var l = s.normalize(),
u = t - n;
return new a.d(o.x + l.x * u, o.y + l.y * u);
}
n = c;
}
return a.d.Zero();
}),
(e.StartingAt = function (t, n) {
return new e(t, n);
}),
e
);
})(),
H = (function () {
function e(e, t, n, i) {
void 0 === t && (t = null),
void 0 === i && (i = !1),
(this.path = e),
(this._curve = new Array()),
(this._distances = new Array()),
(this._tangents = new Array()),
(this._normals = new Array()),
(this._binormals = new Array()),
(this._pointAtData = { id: 0, point: a.e.Zero(), previousPointArrayIndex: 0, position: 0, subPosition: 0, interpolateReady: !1, interpolationMatrix: a.a.Identity() });
for (var r = 0; r < e.length; r++) this._curve[r] = e[r].clone();
(this._raw = n || !1), (this._alignTangentsWithPath = i), this._compute(t, i);
}
return (
(e.prototype.getCurve = function () {
return this._curve;
}),
(e.prototype.getPoints = function () {
return this._curve;
}),
(e.prototype.length = function () {
return this._distances[this._distances.length - 1];
}),
(e.prototype.getTangents = function () {
return this._tangents;
}),
(e.prototype.getNormals = function () {
return this._normals;
}),
(e.prototype.getBinormals = function () {
return this._binormals;
}),
(e.prototype.getDistances = function () {
return this._distances;
}),
(e.prototype.getPointAt = function (e) {
return this._updatePointAtData(e).point;
}),
(e.prototype.getTangentAt = function (e, t) {
return void 0 === t && (t = !1), this._updatePointAtData(e, t), t ? a.e.TransformCoordinates(a.e.Forward(), this._pointAtData.interpolationMatrix) : this._tangents[this._pointAtData.previousPointArrayIndex];
}),
(e.prototype.getNormalAt = function (e, t) {
return void 0 === t && (t = !1), this._updatePointAtData(e, t), t ? a.e.TransformCoordinates(a.e.Right(), this._pointAtData.interpolationMatrix) : this._normals[this._pointAtData.previousPointArrayIndex];
}),
(e.prototype.getBinormalAt = function (e, t) {
return void 0 === t && (t = !1), this._updatePointAtData(e, t), t ? a.e.TransformCoordinates(a.e.UpReadOnly, this._pointAtData.interpolationMatrix) : this._binormals[this._pointAtData.previousPointArrayIndex];
}),
(e.prototype.getDistanceAt = function (e) {
return this.length() * e;
}),
(e.prototype.getPreviousPointIndexAt = function (e) {
return this._updatePointAtData(e), this._pointAtData.previousPointArrayIndex;
}),
(e.prototype.getSubPositionAt = function (e) {
return this._updatePointAtData(e), this._pointAtData.subPosition;
}),
(e.prototype.getClosestPositionTo = function (e) {
for (var t = Number.MAX_VALUE, n = 0, i = 0; i < this._curve.length - 1; i++) {
var r = this._curve[i + 0],
o = this._curve[i + 1].subtract(r).normalize(),
s = this._distances[i + 1] - this._distances[i + 0],
c = Math.min((Math.max(a.e.Dot(o, e.subtract(r).normalize()), 0) * a.e.Distance(r, e)) / s, 1),
l = a.e.Distance(r.add(o.scale(c * s)), e);
l < t && ((t = l), (n = (this._distances[i + 0] + s * c) / this.length()));
}
return n;
}),
(e.prototype.slice = function (t, n) {
if ((void 0 === t && (t = 0), void 0 === n && (n = 1), t < 0 && (t = 1 - ((-1 * t) % 1)), n < 0 && (n = 1 - ((-1 * n) % 1)), t > n)) {
var i = t;
(t = n), (n = i);
}
var r = this.getCurve(),
o = this.getPointAt(t),
a = this.getPreviousPointIndexAt(t),
s = this.getPointAt(n),
c = this.getPreviousPointIndexAt(n) + 1,
l = [];
return 0 !== t && (a++, l.push(o)), l.push.apply(l, r.slice(a, c)), (1 === n && 1 !== t) || l.push(s), new e(l, this.getNormalAt(t), this._raw, this._alignTangentsWithPath);
}),
(e.prototype.update = function (e, t, n) {
void 0 === t && (t = null), void 0 === n && (n = !1);
for (var i = 0; i < e.length; i++) (this._curve[i].x = e[i].x), (this._curve[i].y = e[i].y), (this._curve[i].z = e[i].z);
return this._compute(t, n), this;
}),
(e.prototype._compute = function (e, t) {
void 0 === t && (t = !1);
var n = this._curve.length;
(this._tangents[0] = this._getFirstNonNullVector(0)),
this._raw || this._tangents[0].normalize(),
(this._tangents[n - 1] = this._curve[n - 1].subtract(this._curve[n - 2])),
this._raw || this._tangents[n - 1].normalize();
var i,
r,
o,
s,
c,
l = this._tangents[0],
u = this._normalVector(l, e);
(this._normals[0] = u), this._raw || this._normals[0].normalize(), (this._binormals[0] = a.e.Cross(l, this._normals[0])), this._raw || this._binormals[0].normalize(), (this._distances[0] = 0);
for (var h = 1; h < n; h++)
(i = this._getLastNonNullVector(h)),
h < n - 1 && ((r = this._getFirstNonNullVector(h)), (this._tangents[h] = t ? r : i.add(r)), this._tangents[h].normalize()),
(this._distances[h] = this._distances[h - 1] + i.length()),
(o = this._tangents[h]),
(c = this._binormals[h - 1]),
(this._normals[h] = a.e.Cross(c, o)),
this._raw || (0 === this._normals[h].length() ? ((s = this._normals[h - 1]), (this._normals[h] = s.clone())) : this._normals[h].normalize()),
(this._binormals[h] = a.e.Cross(o, this._normals[h])),
this._raw || this._binormals[h].normalize();
this._pointAtData.id = NaN;
}),
(e.prototype._getFirstNonNullVector = function (e) {
for (var t = 1, n = this._curve[e + t].subtract(this._curve[e]); 0 === n.length() && e + t + 1 < this._curve.length; ) t++, (n = this._curve[e + t].subtract(this._curve[e]));
return n;
}),
(e.prototype._getLastNonNullVector = function (e) {
for (var t = 1, n = this._curve[e].subtract(this._curve[e - t]); 0 === n.length() && e > t + 1; ) t++, (n = this._curve[e].subtract(this._curve[e - t]));
return n;
}),
(e.prototype._normalVector = function (e, t) {
var n,
i,
r = e.length();
(0 === r && (r = 1), null == t)
? ((i = z.a.WithinEpsilon(Math.abs(e.y) / r, 1, j.a)
? z.a.WithinEpsilon(Math.abs(e.x) / r, 1, j.a)
? z.a.WithinEpsilon(Math.abs(e.z) / r, 1, j.a)
? a.e.Zero()
: new a.e(0, 0, 1)
: new a.e(1, 0, 0)
: new a.e(0, -1, 0)),
(n = a.e.Cross(e, i)))
: ((n = a.e.Cross(e, t)), a.e.CrossToRef(n, e, n));
return n.normalize(), n;
}),
(e.prototype._updatePointAtData = function (e, t) {
if ((void 0 === t && (t = !1), this._pointAtData.id === e)) return this._pointAtData.interpolateReady || this._updateInterpolationMatrix(), this._pointAtData;
this._pointAtData.id = e;
var n = this.getPoints();
if (e <= 0) return this._setPointAtData(0, 0, n[0], 0, t);
if (e >= 1) return this._setPointAtData(1, 1, n[n.length - 1], n.length - 1, t);
for (var i, r = n[0], o = 0, s = e * this.length(), c = 1; c < n.length; c++) {
i = n[c];
var l = a.e.Distance(r, i);
if ((o += l) === s) return this._setPointAtData(e, 1, i, c, t);
if (o > s) {
var u = (o - s) / l,
h = r.subtract(i),
d = i.add(h.scaleInPlace(u));
return this._setPointAtData(e, 1 - u, d, c - 1, t);
}
r = i;
}
return this._pointAtData;
}),
(e.prototype._setPointAtData = function (e, t, n, i, r) {
return (
(this._pointAtData.point = n),
(this._pointAtData.position = e),
(this._pointAtData.subPosition = t),
(this._pointAtData.previousPointArrayIndex = i),
(this._pointAtData.interpolateReady = r),
r && this._updateInterpolationMatrix(),
this._pointAtData
);
}),
(e.prototype._updateInterpolationMatrix = function () {
this._pointAtData.interpolationMatrix = a.a.Identity();
var e = this._pointAtData.previousPointArrayIndex;
if (e !== this._tangents.length - 1) {
var t = e + 1,
n = this._tangents[e].clone(),
i = this._normals[e].clone(),
r = this._binormals[e].clone(),
o = this._tangents[t].clone(),
s = this._normals[t].clone(),
c = this._binormals[t].clone(),
l = a.b.RotationQuaternionFromAxis(i, r, n),
u = a.b.RotationQuaternionFromAxis(s, c, o);
a.b.Slerp(l, u, this._pointAtData.subPosition).toRotationMatrix(this._pointAtData.interpolationMatrix);
}
}),
e
);
})(),
W = (function () {
function e(e) {
(this._length = 0), (this._points = e), (this._length = this._computeLength(e));
}
return (
(e.CreateQuadraticBezier = function (t, n, i, r) {
r = r > 2 ? r : 3;
for (
var o = new Array(),
s = function (e, t, n, i) {
return (1 - e) * (1 - e) * t + 2 * e * (1 - e) * n + e * e * i;
},
c = 0;
c <= r;
c++
)
o.push(new a.e(s(c / r, t.x, n.x, i.x), s(c / r, t.y, n.y, i.y), s(c / r, t.z, n.z, i.z)));
return new e(o);
}),
(e.CreateCubicBezier = function (t, n, i, r, o) {
o = o > 3 ? o : 4;
for (
var s = new Array(),
c = function (e, t, n, i, r) {
return (1 - e) * (1 - e) * (1 - e) * t + 3 * e * (1 - e) * (1 - e) * n + 3 * e * e * (1 - e) * i + e * e * e * r;
},
l = 0;
l <= o;
l++
)
s.push(new a.e(c(l / o, t.x, n.x, i.x, r.x), c(l / o, t.y, n.y, i.y, r.y), c(l / o, t.z, n.z, i.z, r.z)));
return new e(s);
}),
(e.CreateHermiteSpline = function (t, n, i, r, o) {
for (var s = new Array(), c = 1 / o, l = 0; l <= o; l++) s.push(a.e.Hermite(t, n, i, r, l * c));
return new e(s);
}),
(e.CreateCatmullRomSpline = function (t, n, i) {
var r = new Array(),
o = 1 / n,
s = 0;
if (i) {
for (var c = t.length, l = 0; l < c; l++) {
s = 0;
for (var u = 0; u < n; u++) r.push(a.e.CatmullRom(t[l % c], t[(l + 1) % c], t[(l + 2) % c], t[(l + 3) % c], s)), (s += o);
}
r.push(r[0]);
} else {
var h = new Array();
h.push(t[0].clone()), Array.prototype.push.apply(h, t), h.push(t[t.length - 1].clone());
for (l = 0; l < h.length - 3; l++) {
s = 0;
for (u = 0; u < n; u++) r.push(a.e.CatmullRom(h[l], h[l + 1], h[l + 2], h[l + 3], s)), (s += o);
}
l--, r.push(a.e.CatmullRom(h[l], h[l + 1], h[l + 2], h[l + 3], s));
}
return new e(r);
}),
(e.prototype.getPoints = function () {
return this._points;
}),
(e.prototype.length = function () {
return this._length;
}),
(e.prototype.continue = function (t) {
for (var n = this._points[this._points.length - 1], i = this._points.slice(), r = t.getPoints(), o = 1; o < r.length; o++) i.push(r[o].subtract(r[0]).add(n));
return new e(i);
}),
(e.prototype._computeLength = function (e) {
for (var t = 0, n = 1; n < e.length; n++) t += e[n].subtract(e[n - 1]).length();
return t;
}),
e
);
})(),
X = (function () {
function e() {
this._easingMode = e.EASINGMODE_EASEIN;
}
return (
(e.prototype.setEasingMode = function (e) {
var t = Math.min(Math.max(e, 0), 2);
this._easingMode = t;
}),
(e.prototype.getEasingMode = function () {
return this._easingMode;
}),
(e.prototype.easeInCore = function (e) {
throw new Error("You must implement this method");
}),
(e.prototype.ease = function (t) {
switch (this._easingMode) {
case e.EASINGMODE_EASEIN:
return this.easeInCore(t);
case e.EASINGMODE_EASEOUT:
return 1 - this.easeInCore(1 - t);
}
return t >= 0.5 ? 0.5 * (1 - this.easeInCore(2 * (1 - t))) + 0.5 : 0.5 * this.easeInCore(2 * t);
}),
(e.EASINGMODE_EASEIN = 0),
(e.EASINGMODE_EASEOUT = 1),
(e.EASINGMODE_EASEINOUT = 2),
e
);
})(),
Y = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return (e = Math.max(0, Math.min(1, e))), 1 - Math.sqrt(1 - e * e);
}),
t
);
})(X),
K = (function (e) {
function t(t) {
void 0 === t && (t = 1);
var n = e.call(this) || this;
return (n.amplitude = t), n;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
var t = Math.max(0, this.amplitude);
return Math.pow(e, 3) - e * t * Math.sin(3.141592653589793 * e);
}),
t
);
})(X),
Z = (function (e) {
function t(t, n) {
void 0 === t && (t = 3), void 0 === n && (n = 2);
var i = e.call(this) || this;
return (i.bounces = t), (i.bounciness = n), i;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
var t = Math.max(0, this.bounces),
n = this.bounciness;
n <= 1 && (n = 1.001);
var i = Math.pow(n, t),
r = 1 - n,
o = (1 - i) / r + 0.5 * i,
a = e * o,
s = Math.log(-a * (1 - n) + 1) / Math.log(n),
c = Math.floor(s),
l = c + 1,
u = (1 - Math.pow(n, c)) / (r * o),
h = 0.5 * (u + (1 - Math.pow(n, l)) / (r * o)),
d = e - h,
p = h - u;
return (-Math.pow(1 / n, t - c) / (p * p)) * (d - p) * (d + p);
}),
t
);
})(X),
q = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return e * e * e;
}),
t
);
})(X),
Q = (function (e) {
function t(t, n) {
void 0 === t && (t = 3), void 0 === n && (n = 3);
var i = e.call(this) || this;
return (i.oscillations = t), (i.springiness = n), i;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
var t = Math.max(0, this.oscillations),
n = Math.max(0, this.springiness);
return (0 == n ? e : (Math.exp(n * e) - 1) / (Math.exp(n) - 1)) * Math.sin((6.283185307179586 * t + 1.5707963267948966) * e);
}),
t
);
})(X),
J = (function (e) {
function t(t) {
void 0 === t && (t = 2);
var n = e.call(this) || this;
return (n.exponent = t), n;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return this.exponent <= 0 ? e : (Math.exp(this.exponent * e) - 1) / (Math.exp(this.exponent) - 1);
}),
t
);
})(X),
$ = (function (e) {
function t(t) {
void 0 === t && (t = 2);
var n = e.call(this) || this;
return (n.power = t), n;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
var t = Math.max(0, this.power);
return Math.pow(e, t);
}),
t
);
})(X),
ee = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return e * e;
}),
t
);
})(X),
te = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return e * e * e * e;
}),
t
);
})(X),
ne = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return e * e * e * e * e;
}),
t
);
})(X),
ie = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return 1 - Math.sin(1.5707963267948966 * (1 - e));
}),
t
);
})(X),
re = (function (e) {
function t(t, n, i, r) {
void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 1), void 0 === r && (r = 1);
var o = e.call(this) || this;
return (o.x1 = t), (o.y1 = n), (o.x2 = i), (o.y2 = r), o;
}
return (
Object(h.d)(t, e),
(t.prototype.easeInCore = function (e) {
return B.Interpolate(e, this.x1, this.y1, this.x2, this.y2);
}),
t
);
})(X),
oe = n(180),
ae = n(190),
se = n(134),
ce = n(146),
le = n(119),
ue = n(14),
he = (function () {
function e(e) {
(this.SMOOTHING = 0.75),
(this.FFT_SIZE = 512),
(this.BARGRAPHAMPLITUDE = 256),
(this.DEBUGCANVASPOS = { x: 20, y: 20 }),
(this.DEBUGCANVASSIZE = { width: 320, height: 200 }),
(this._scene = e),
(this._audioEngine = ue.a.audioEngine),
this._audioEngine.canUseWebAudio &&
this._audioEngine.audioContext &&
((this._webAudioAnalyser = this._audioEngine.audioContext.createAnalyser()),
(this._webAudioAnalyser.minDecibels = -140),
(this._webAudioAnalyser.maxDecibels = 0),
(this._byteFreqs = new Uint8Array(this._webAudioAnalyser.frequencyBinCount)),
(this._byteTime = new Uint8Array(this._webAudioAnalyser.frequencyBinCount)),
(this._floatFreqs = new Float32Array(this._webAudioAnalyser.frequencyBinCount)));
}
return (
(e.prototype.getFrequencyBinCount = function () {
return this._audioEngine.canUseWebAudio ? this._webAudioAnalyser.frequencyBinCount : 0;
}),
(e.prototype.getByteFrequencyData = function () {
return (
this._audioEngine.canUseWebAudio &&
((this._webAudioAnalyser.smoothingTimeConstant = this.SMOOTHING), (this._webAudioAnalyser.fftSize = this.FFT_SIZE), this._webAudioAnalyser.getByteFrequencyData(this._byteFreqs)),
this._byteFreqs
);
}),
(e.prototype.getByteTimeDomainData = function () {
return (
this._audioEngine.canUseWebAudio &&
((this._webAudioAnalyser.smoothingTimeConstant = this.SMOOTHING), (this._webAudioAnalyser.fftSize = this.FFT_SIZE), this._webAudioAnalyser.getByteTimeDomainData(this._byteTime)),
this._byteTime
);
}),
(e.prototype.getFloatFrequencyData = function () {
return (
this._audioEngine.canUseWebAudio &&
((this._webAudioAnalyser.smoothingTimeConstant = this.SMOOTHING), (this._webAudioAnalyser.fftSize = this.FFT_SIZE), this._webAudioAnalyser.getFloatFrequencyData(this._floatFreqs)),
this._floatFreqs
);
}),
(e.prototype.drawDebugCanvas = function () {
var e = this;
if (
this._audioEngine.canUseWebAudio &&
(this._debugCanvas ||
((this._debugCanvas = document.createElement("canvas")),
(this._debugCanvas.width = this.DEBUGCANVASSIZE.width),
(this._debugCanvas.height = this.DEBUGCANVASSIZE.height),
(this._debugCanvas.style.position = "absolute"),
(this._debugCanvas.style.top = this.DEBUGCANVASPOS.y + "px"),
(this._debugCanvas.style.left = this.DEBUGCANVASPOS.x + "px"),
(this._debugCanvasContext = this._debugCanvas.getContext("2d")),
document.body.appendChild(this._debugCanvas),
(this._registerFunc = function () {
e.drawDebugCanvas();
}),
this._scene.registerBeforeRender(this._registerFunc)),
this._registerFunc && this._debugCanvasContext)
) {
var t = this.getByteFrequencyData();
(this._debugCanvasContext.fillStyle = "rgb(0, 0, 0)"), this._debugCanvasContext.fillRect(0, 0, this.DEBUGCANVASSIZE.width, this.DEBUGCANVASSIZE.height);
for (var n = 0; n < this.getFrequencyBinCount(); n++) {
var i = t[n] / this.BARGRAPHAMPLITUDE,
r = this.DEBUGCANVASSIZE.height * i,
o = this.DEBUGCANVASSIZE.height - r - 1,
a = this.DEBUGCANVASSIZE.width / this.getFrequencyBinCount(),
s = (n / this.getFrequencyBinCount()) * 360;
(this._debugCanvasContext.fillStyle = "hsl(" + s + ", 100%, 50%)"), this._debugCanvasContext.fillRect(n * a, o, a, r);
}
}
}),
(e.prototype.stopDebugCanvas = function () {
this._debugCanvas &&
(this._registerFunc && (this._scene.unregisterBeforeRender(this._registerFunc), (this._registerFunc = null)),
document.body.removeChild(this._debugCanvas),
(this._debugCanvas = null),
(this._debugCanvasContext = null));
}),
(e.prototype.connectAudioNodes = function (e, t) {
this._audioEngine.canUseWebAudio && (e.connect(this._webAudioAnalyser), this._webAudioAnalyser.connect(t));
}),
(e.prototype.dispose = function () {
this._audioEngine.canUseWebAudio && this._webAudioAnalyser.disconnect();
}),
e
);
})();
ue.a.AudioEngineFactory = function (e) {
return new de(e);
};
var de = (function () {
function e(e) {
var t = this;
void 0 === e && (e = null),
(this._audioContext = null),
(this._audioContextInitialized = !1),
(this._muteButton = null),
(this.canUseWebAudio = !1),
(this.WarnedWebAudioUnsupported = !1),
(this.isMP3supported = !1),
(this.isOGGsupported = !1),
(this.unlocked = !0),
(this.useCustomUnlockedButton = !1),
(this.onAudioUnlockedObservable = new o.c()),
(this.onAudioLockedObservable = new o.c()),
(this._tryToRun = !1),
(this._onResize = function () {
t._moveButtonToTopLeft();
}),
(void 0 === window.AudioContext && void 0 === window.webkitAudioContext) || ((window.AudioContext = window.AudioContext || window.webkitAudioContext), (this.canUseWebAudio = !0));
var n = document.createElement("audio");
this._hostElement = e;
try {
n && n.canPlayType && n.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/, "") && (this.isMP3supported = !0);
} catch (e) {}
try {
n && n.canPlayType && n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "") && (this.isOGGsupported = !0);
} catch (e) {}
}
return (
Object.defineProperty(e.prototype, "audioContext", {
get: function () {
return this._audioContextInitialized ? this.unlocked || this._muteButton || this._displayMuteButton() : this._initializeAudioContext(), this._audioContext;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.lock = function () {
this._triggerSuspendedState();
}),
(e.prototype.unlock = function () {
this._triggerRunningState();
}),
(e.prototype._resumeAudioContext = function () {
var e;
return this._audioContext.resume && (e = this._audioContext.resume()), e || Promise.resolve();
}),
(e.prototype._initializeAudioContext = function () {
try {
this.canUseWebAudio &&
((this._audioContext = new AudioContext()),
(this.masterGain = this._audioContext.createGain()),
(this.masterGain.gain.value = 1),
this.masterGain.connect(this._audioContext.destination),
(this._audioContextInitialized = !0),
"running" === this._audioContext.state && this._triggerRunningState());
} catch (e) {
(this.canUseWebAudio = !1), g.a.Error("Web Audio: " + e.message);
}
}),
(e.prototype._triggerRunningState = function () {
var e = this;
this._tryToRun ||
((this._tryToRun = !0),
this._resumeAudioContext()
.then(function () {
(e._tryToRun = !1), e._muteButton && e._hideMuteButton();
})
.catch(function () {
(e._tryToRun = !1), (e.unlocked = !1);
}),
(this.unlocked = !0),
this.onAudioUnlockedObservable.notifyObservers(this));
}),
(e.prototype._triggerSuspendedState = function () {
(this.unlocked = !1), this.onAudioLockedObservable.notifyObservers(this), this._displayMuteButton();
}),
(e.prototype._displayMuteButton = function () {
var e = this;
if (!this.useCustomUnlockedButton && !this._muteButton) {
(this._muteButton = document.createElement("BUTTON")), (this._muteButton.className = "babylonUnmuteIcon"), (this._muteButton.id = "babylonUnmuteIconBtn"), (this._muteButton.title = "Unmute");
var t =
".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(" +
(window.SVGSVGElement
? "data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E"
: "https://cdn.babylonjs.com/Assets/audio.png") +
"); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }",
n = document.createElement("style");
n.appendChild(document.createTextNode(t)),
document.getElementsByTagName("head")[0].appendChild(n),
document.body.appendChild(this._muteButton),
this._moveButtonToTopLeft(),
this._muteButton.addEventListener(
"touchend",
function () {
e._triggerRunningState();
},
!0
),
this._muteButton.addEventListener(
"click",
function () {
e._triggerRunningState();
},
!0
),
window.addEventListener("resize", this._onResize);
}
}),
(e.prototype._moveButtonToTopLeft = function () {
this._hostElement && this._muteButton && ((this._muteButton.style.top = this._hostElement.offsetTop + 20 + "px"), (this._muteButton.style.left = this._hostElement.offsetLeft + 20 + "px"));
}),
(e.prototype._hideMuteButton = function () {
this._muteButton && (document.body.removeChild(this._muteButton), (this._muteButton = null));
}),
(e.prototype.dispose = function () {
this.canUseWebAudio &&
this._audioContextInitialized &&
(this._connectedAnalyser &&
this._audioContext &&
(this._connectedAnalyser.stopDebugCanvas(), this._connectedAnalyser.dispose(), this.masterGain.disconnect(), this.masterGain.connect(this._audioContext.destination), (this._connectedAnalyser = null)),
(this.masterGain.gain.value = 1)),
(this.WarnedWebAudioUnsupported = !1),
this._hideMuteButton(),
window.removeEventListener("resize", this._onResize),
this.onAudioUnlockedObservable.clear(),
this.onAudioLockedObservable.clear();
}),
(e.prototype.getGlobalVolume = function () {
return this.canUseWebAudio && this._audioContextInitialized ? this.masterGain.gain.value : -1;
}),
(e.prototype.setGlobalVolume = function (e) {
this.canUseWebAudio && this._audioContextInitialized && (this.masterGain.gain.value = e);
}),
(e.prototype.connectToAnalyser = function (e) {
this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(),
this.canUseWebAudio &&
this._audioContextInitialized &&
this._audioContext &&
((this._connectedAnalyser = e), this.masterGain.disconnect(), this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination));
}),
e
);
})(),
pe = n(137),
fe = (function () {
function e(e, t) {
void 0 === t && (t = {}),
(this.id = -1),
(this._isInitialized = !1),
(this._scene = e),
(this.soundCollection = new Array()),
(this._options = t),
!this._options.mainTrack && this._scene.soundTracks && (this._scene.soundTracks.push(this), (this.id = this._scene.soundTracks.length - 1));
}
return (
(e.prototype._initializeSoundTrackAudioGraph = function () {
ue.a.audioEngine.canUseWebAudio &&
ue.a.audioEngine.audioContext &&
((this._outputAudioNode = ue.a.audioEngine.audioContext.createGain()),
this._outputAudioNode.connect(ue.a.audioEngine.masterGain),
this._options && this._options.volume && (this._outputAudioNode.gain.value = this._options.volume),
(this._isInitialized = !0));
}),
(e.prototype.dispose = function () {
if (ue.a.audioEngine && ue.a.audioEngine.canUseWebAudio) {
for (this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(); this.soundCollection.length; ) this.soundCollection[0].dispose();
this._outputAudioNode && this._outputAudioNode.disconnect(), (this._outputAudioNode = null);
}
}),
(e.prototype.AddSound = function (e) {
this._isInitialized || this._initializeSoundTrackAudioGraph(),
ue.a.audioEngine.canUseWebAudio && this._outputAudioNode && e.connectToSoundTrackAudioNode(this._outputAudioNode),
e.soundTrackId && (-1 === e.soundTrackId ? this._scene.mainSoundTrack.RemoveSound(e) : this._scene.soundTracks && this._scene.soundTracks[e.soundTrackId].RemoveSound(e)),
this.soundCollection.push(e),
(e.soundTrackId = this.id);
}),
(e.prototype.RemoveSound = function (e) {
var t = this.soundCollection.indexOf(e);
-1 !== t && this.soundCollection.splice(t, 1);
}),
(e.prototype.setVolume = function (e) {
ue.a.audioEngine.canUseWebAudio && this._outputAudioNode && (this._outputAudioNode.gain.value = e);
}),
(e.prototype.switchPanningModelToHRTF = function () {
if (ue.a.audioEngine.canUseWebAudio) for (var e = 0; e < this.soundCollection.length; e++) this.soundCollection[e].switchPanningModelToHRTF();
}),
(e.prototype.switchPanningModelToEqualPower = function () {
if (ue.a.audioEngine.canUseWebAudio) for (var e = 0; e < this.soundCollection.length; e++) this.soundCollection[e].switchPanningModelToEqualPower();
}),
(e.prototype.connectToAnalyser = function (e) {
this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(),
(this._connectedAnalyser = e),
ue.a.audioEngine.canUseWebAudio && this._outputAudioNode && (this._outputAudioNode.disconnect(), this._connectedAnalyser.connectAudioNodes(this._outputAudioNode, ue.a.audioEngine.masterGain));
}),
e
);
})(),
me = n(21),
ge = n(18),
be = n(76);
i.a.AddParser(me.a.NAME_AUDIO, function (e, t, n, i) {
var r,
o = [];
if (((n.sounds = n.sounds || []), void 0 !== e.sounds && null !== e.sounds))
for (var a = 0, s = e.sounds.length; a < s; a++) {
var c = e.sounds[a];
ue.a.audioEngine.canUseWebAudio
? (c.url || (c.url = c.name), o[c.url] ? n.sounds.push(pe.a.Parse(c, t, i, o[c.url])) : ((r = pe.a.Parse(c, t, i)), (o[c.url] = r), n.sounds.push(r)))
: n.sounds.push(new pe.a(c.name, null, t));
}
o = [];
}),
Object.defineProperty(ge.a.prototype, "mainSoundTrack", {
get: function () {
var e = this._getComponent(me.a.NAME_AUDIO);
return e || ((e = new _e(this)), this._addComponent(e)), this._mainSoundTrack || (this._mainSoundTrack = new fe(this, { mainTrack: !0 })), this._mainSoundTrack;
},
enumerable: !0,
configurable: !0,
}),
(ge.a.prototype.getSoundByName = function (e) {
var t;
for (t = 0; t < this.mainSoundTrack.soundCollection.length; t++) if (this.mainSoundTrack.soundCollection[t].name === e) return this.mainSoundTrack.soundCollection[t];
if (this.soundTracks)
for (var n = 0; n < this.soundTracks.length; n++) for (t = 0; t < this.soundTracks[n].soundCollection.length; t++) if (this.soundTracks[n].soundCollection[t].name === e) return this.soundTracks[n].soundCollection[t];
return null;
}),
Object.defineProperty(ge.a.prototype, "audioEnabled", {
get: function () {
var e = this._getComponent(me.a.NAME_AUDIO);
return e || ((e = new _e(this)), this._addComponent(e)), e.audioEnabled;
},
set: function (e) {
var t = this._getComponent(me.a.NAME_AUDIO);
t || ((t = new _e(this)), this._addComponent(t)), e ? t.enableAudio() : t.disableAudio();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(ge.a.prototype, "headphone", {
get: function () {
var e = this._getComponent(me.a.NAME_AUDIO);
return e || ((e = new _e(this)), this._addComponent(e)), e.headphone;
},
set: function (e) {
var t = this._getComponent(me.a.NAME_AUDIO);
t || ((t = new _e(this)), this._addComponent(t)), e ? t.switchAudioModeForHeadphones() : t.switchAudioModeForNormalSpeakers();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(ge.a.prototype, "audioListenerPositionProvider", {
get: function () {
var e = this._getComponent(me.a.NAME_AUDIO);
return e || ((e = new _e(this)), this._addComponent(e)), e.audioListenerPositionProvider;
},
set: function (e) {
var t = this._getComponent(me.a.NAME_AUDIO);
if ((t || ((t = new _e(this)), this._addComponent(t)), "function" != typeof e)) throw new Error("The value passed to [Scene.audioListenerPositionProvider] must be a function that returns a Vector3");
t.audioListenerPositionProvider = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(ge.a.prototype, "audioPositioningRefreshRate", {
get: function () {
var e = this._getComponent(me.a.NAME_AUDIO);
return e || ((e = new _e(this)), this._addComponent(e)), e.audioPositioningRefreshRate;
},
set: function (e) {
var t = this._getComponent(me.a.NAME_AUDIO);
t || ((t = new _e(this)), this._addComponent(t)), (t.audioPositioningRefreshRate = e);
},
enumerable: !0,
configurable: !0,
});
var _e = (function () {
function e(e) {
(this.name = me.a.NAME_AUDIO),
(this._audioEnabled = !0),
(this._headphone = !1),
(this.audioPositioningRefreshRate = 500),
(this._audioListenerPositionProvider = null),
(this._cachedCameraDirection = new a.e()),
(this._cachedCameraPosition = new a.e()),
(this._lastCheck = 0),
(this.scene = e),
(e.soundTracks = new Array()),
(e.sounds = new Array());
}
return (
Object.defineProperty(e.prototype, "audioEnabled", {
get: function () {
return this._audioEnabled;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "headphone", {
get: function () {
return this._headphone;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "audioListenerPositionProvider", {
get: function () {
return this._audioListenerPositionProvider;
},
set: function (e) {
this._audioListenerPositionProvider = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.register = function () {
this.scene._afterRenderStage.registerStep(me.a.STEP_AFTERRENDER_AUDIO, this, this._afterRender);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.serialize = function (e) {
if (((e.sounds = []), this.scene.soundTracks))
for (var t = 0; t < this.scene.soundTracks.length; t++) for (var n = this.scene.soundTracks[t], i = 0; i < n.soundCollection.length; i++) e.sounds.push(n.soundCollection[i].serialize());
}),
(e.prototype.addFromContainer = function (e) {
var t = this;
e.sounds &&
e.sounds.forEach(function (e) {
e.play(), (e.autoplay = !0), t.scene.mainSoundTrack.AddSound(e);
});
}),
(e.prototype.removeFromContainer = function (e, t) {
var n = this;
void 0 === t && (t = !1),
e.sounds &&
e.sounds.forEach(function (e) {
e.stop(), (e.autoplay = !1), n.scene.mainSoundTrack.RemoveSound(e), t && e.dispose();
});
}),
(e.prototype.dispose = function () {
var e = this.scene;
if ((e._mainSoundTrack && e.mainSoundTrack.dispose(), e.soundTracks)) for (var t = 0; t < e.soundTracks.length; t++) e.soundTracks[t].dispose();
}),
(e.prototype.disableAudio = function () {
var e,
t = this.scene;
for (this._audioEnabled = !1, ue.a.audioEngine && ue.a.audioEngine.audioContext && ue.a.audioEngine.audioContext.suspend(), e = 0; e < t.mainSoundTrack.soundCollection.length; e++)
t.mainSoundTrack.soundCollection[e].pause();
if (t.soundTracks) for (e = 0; e < t.soundTracks.length; e++) for (var n = 0; n < t.soundTracks[e].soundCollection.length; n++) t.soundTracks[e].soundCollection[n].pause();
}),
(e.prototype.enableAudio = function () {
var e,
t = this.scene;
for (this._audioEnabled = !0, ue.a.audioEngine && ue.a.audioEngine.audioContext && ue.a.audioEngine.audioContext.resume(), e = 0; e < t.mainSoundTrack.soundCollection.length; e++)
t.mainSoundTrack.soundCollection[e].isPaused && t.mainSoundTrack.soundCollection[e].play();
if (t.soundTracks) for (e = 0; e < t.soundTracks.length; e++) for (var n = 0; n < t.soundTracks[e].soundCollection.length; n++) t.soundTracks[e].soundCollection[n].isPaused && t.soundTracks[e].soundCollection[n].play();
}),
(e.prototype.switchAudioModeForHeadphones = function () {
var e = this.scene;
if (((this._headphone = !0), e.mainSoundTrack.switchPanningModelToHRTF(), e.soundTracks)) for (var t = 0; t < e.soundTracks.length; t++) e.soundTracks[t].switchPanningModelToHRTF();
}),
(e.prototype.switchAudioModeForNormalSpeakers = function () {
var e = this.scene;
if (((this._headphone = !1), e.mainSoundTrack.switchPanningModelToEqualPower(), e.soundTracks)) for (var t = 0; t < e.soundTracks.length; t++) e.soundTracks[t].switchPanningModelToEqualPower();
}),
(e.prototype._afterRender = function () {
var e = be.a.Now;
if (!(this._lastCheck && e - this._lastCheck < this.audioPositioningRefreshRate)) {
this._lastCheck = e;
var t = this.scene;
if (this._audioEnabled && t._mainSoundTrack && t.soundTracks && (0 !== t._mainSoundTrack.soundCollection.length || 1 !== t.soundTracks.length)) {
var n = ue.a.audioEngine;
if (n.audioContext) {
if (this._audioListenerPositionProvider) {
var i = this._audioListenerPositionProvider();
(i.x = i.x || 0), (i.y = i.y || 0), (i.z = i.z || 0), n.audioContext.listener.setPosition(i.x, i.y, i.z);
} else {
var r;
if ((r = t.activeCameras.length > 0 ? t.activeCameras[0] : t.activeCamera)) {
this._cachedCameraPosition.equals(r.globalPosition) ||
(this._cachedCameraPosition.copyFrom(r.globalPosition), n.audioContext.listener.setPosition(r.globalPosition.x, r.globalPosition.y, r.globalPosition.z)),
r.rigCameras && r.rigCameras.length > 0 && (r = r.rigCameras[0]);
var o = a.a.Invert(r.getViewMatrix()),
s = a.e.TransformNormal(new a.e(0, 0, -1), o);
s.normalize(),
isNaN(s.x) || isNaN(s.y) || isNaN(s.z) || this._cachedCameraDirection.equals(s) || (this._cachedCameraDirection.copyFrom(s), n.audioContext.listener.setOrientation(s.x, s.y, s.z, 0, 1, 0));
} else n.audioContext.listener.setPosition(0, 0, 0);
}
var c;
for (c = 0; c < t.mainSoundTrack.soundCollection.length; c++) {
var l = t.mainSoundTrack.soundCollection[c];
l.useCustomAttenuation && l.updateDistanceFromListener();
}
if (t.soundTracks)
for (c = 0; c < t.soundTracks.length; c++)
for (var u = 0; u < t.soundTracks[c].soundCollection.length; u++) (l = t.soundTracks[c].soundCollection[u]).useCustomAttenuation && l.updateDistanceFromListener();
}
}
}
}),
e
);
})();
pe.a._SceneComponentInitialization = function (e) {
var t = e._getComponent(me.a.NAME_AUDIO);
t || ((t = new _e(e)), e._addComponent(t));
};
var ve = n(192),
ye = n(20),
Ce = (function () {
function e() {
(this._zoomStopsAnimation = !1),
(this._idleRotationSpeed = 0.05),
(this._idleRotationWaitTime = 2e3),
(this._idleRotationSpinupTime = 2e3),
(this._isPointerDown = !1),
(this._lastFrameTime = null),
(this._lastInteractionTime = -1 / 0),
(this._cameraRotationSpeed = 0),
(this._lastFrameRadius = 0);
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return "AutoRotation";
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "zoomStopsAnimation", {
get: function () {
return this._zoomStopsAnimation;
},
set: function (e) {
this._zoomStopsAnimation = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "idleRotationSpeed", {
get: function () {
return this._idleRotationSpeed;
},
set: function (e) {
this._idleRotationSpeed = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "idleRotationWaitTime", {
get: function () {
return this._idleRotationWaitTime;
},
set: function (e) {
this._idleRotationWaitTime = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "idleRotationSpinupTime", {
get: function () {
return this._idleRotationSpinupTime;
},
set: function (e) {
this._idleRotationSpinupTime = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rotationInProgress", {
get: function () {
return Math.abs(this._cameraRotationSpeed) > 0;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
(e.prototype.attach = function (e) {
var t = this;
this._attachedCamera = e;
var n = this._attachedCamera.getScene();
(this._onPrePointerObservableObserver = n.onPrePointerObservable.add(function (e) {
e.type !== ye.a.POINTERDOWN ? e.type === ye.a.POINTERUP && (t._isPointerDown = !1) : (t._isPointerDown = !0);
})),
(this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(function () {
var e = be.a.Now,
n = 0;
null != t._lastFrameTime && (n = e - t._lastFrameTime), (t._lastFrameTime = e), t._applyUserInteraction();
var i = e - t._lastInteractionTime - t._idleRotationWaitTime,
r = Math.max(Math.min(i / t._idleRotationSpinupTime, 1), 0);
(t._cameraRotationSpeed = t._idleRotationSpeed * r), t._attachedCamera && (t._attachedCamera.alpha -= t._cameraRotationSpeed * (n / 1e3));
}));
}),
(e.prototype.detach = function () {
if (this._attachedCamera) {
var e = this._attachedCamera.getScene();
this._onPrePointerObservableObserver && e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),
this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),
(this._attachedCamera = null);
}
}),
(e.prototype._userIsZooming = function () {
return !!this._attachedCamera && 0 !== this._attachedCamera.inertialRadiusOffset;
}),
(e.prototype._shouldAnimationStopForInteraction = function () {
if (!this._attachedCamera) return !1;
var e = !1;
return (
this._lastFrameRadius === this._attachedCamera.radius && 0 !== this._attachedCamera.inertialRadiusOffset && (e = !0),
(this._lastFrameRadius = this._attachedCamera.radius),
this._zoomStopsAnimation ? e : this._userIsZooming()
);
}),
(e.prototype._applyUserInteraction = function () {
this._userIsMoving() && !this._shouldAnimationStopForInteraction() && (this._lastInteractionTime = be.a.Now);
}),
(e.prototype._userIsMoving = function () {
return (
!!this._attachedCamera &&
(0 !== this._attachedCamera.inertialAlphaOffset ||
0 !== this._attachedCamera.inertialBetaOffset ||
0 !== this._attachedCamera.inertialRadiusOffset ||
0 !== this._attachedCamera.inertialPanningX ||
0 !== this._attachedCamera.inertialPanningY ||
this._isPointerDown)
);
}),
e
);
})(),
Pe = (function () {
function e() {
(this.transitionDuration = 450),
(this.lowerRadiusTransitionRange = 2),
(this.upperRadiusTransitionRange = -2),
(this._autoTransitionRange = !1),
(this._radiusIsAnimating = !1),
(this._radiusBounceTransition = null),
(this._animatables = new Array());
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return "Bouncing";
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "autoTransitionRange", {
get: function () {
return this._autoTransitionRange;
},
set: function (e) {
var t = this;
if (this._autoTransitionRange !== e) {
this._autoTransitionRange = e;
var n = this._attachedCamera;
n &&
(e
? (this._onMeshTargetChangedObserver = n.onMeshTargetChangedObservable.add(function (e) {
if (e) {
e.computeWorldMatrix(!0);
var n = e.getBoundingInfo().diagonalLength;
(t.lowerRadiusTransitionRange = 0.05 * n), (t.upperRadiusTransitionRange = 0.05 * n);
}
}))
: this._onMeshTargetChangedObserver && n.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver));
}
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
(e.prototype.attach = function (e) {
var t = this;
(this._attachedCamera = e),
(this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(function () {
t._attachedCamera &&
(t._isRadiusAtLimit(t._attachedCamera.lowerRadiusLimit) && t._applyBoundRadiusAnimation(t.lowerRadiusTransitionRange),
t._isRadiusAtLimit(t._attachedCamera.upperRadiusLimit) && t._applyBoundRadiusAnimation(t.upperRadiusTransitionRange));
}));
}),
(e.prototype.detach = function () {
this._attachedCamera &&
(this._onAfterCheckInputsObserver && this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),
this._onMeshTargetChangedObserver && this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),
(this._attachedCamera = null));
}),
(e.prototype._isRadiusAtLimit = function (e) {
return !!this._attachedCamera && this._attachedCamera.radius === e && !this._radiusIsAnimating;
}),
(e.prototype._applyBoundRadiusAnimation = function (t) {
var n = this;
if (this._attachedCamera) {
this._radiusBounceTransition || (e.EasingFunction.setEasingMode(e.EasingMode), (this._radiusBounceTransition = R.a.CreateAnimation("radius", R.a.ANIMATIONTYPE_FLOAT, 60, e.EasingFunction))),
(this._cachedWheelPrecision = this._attachedCamera.wheelPrecision),
(this._attachedCamera.wheelPrecision = 1 / 0),
(this._attachedCamera.inertialRadiusOffset = 0),
this.stopAllAnimations(),
(this._radiusIsAnimating = !0);
var i = R.a.TransitionTo("radius", this._attachedCamera.radius + t, this._attachedCamera, this._attachedCamera.getScene(), 60, this._radiusBounceTransition, this.transitionDuration, function () {
return n._clearAnimationLocks();
});
i && this._animatables.push(i);
}
}),
(e.prototype._clearAnimationLocks = function () {
(this._radiusIsAnimating = !1), this._attachedCamera && (this._attachedCamera.wheelPrecision = this._cachedWheelPrecision);
}),
(e.prototype.stopAllAnimations = function () {
for (this._attachedCamera && (this._attachedCamera.animations = []); this._animatables.length; ) (this._animatables[0].onAnimationEnd = null), this._animatables[0].stop(), this._animatables.shift();
}),
(e.EasingFunction = new K(0.3)),
(e.EasingMode = X.EASINGMODE_EASEOUT),
e
);
})(),
xe = (function () {
function e() {
(this._mode = e.FitFrustumSidesMode),
(this._radiusScale = 1),
(this._positionScale = 0.5),
(this._defaultElevation = 0.3),
(this._elevationReturnTime = 1500),
(this._elevationReturnWaitTime = 1e3),
(this._zoomStopsAnimation = !1),
(this._framingTime = 1500),
(this.autoCorrectCameraLimitsAndSensibility = !0),
(this._isPointerDown = !1),
(this._lastInteractionTime = -1 / 0),
(this._animatables = new Array()),
(this._betaIsAnimating = !1);
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return "Framing";
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "mode", {
get: function () {
return this._mode;
},
set: function (e) {
this._mode = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "radiusScale", {
get: function () {
return this._radiusScale;
},
set: function (e) {
this._radiusScale = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "positionScale", {
get: function () {
return this._positionScale;
},
set: function (e) {
this._positionScale = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "defaultElevation", {
get: function () {
return this._defaultElevation;
},
set: function (e) {
this._defaultElevation = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "elevationReturnTime", {
get: function () {
return this._elevationReturnTime;
},
set: function (e) {
this._elevationReturnTime = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "elevationReturnWaitTime", {
get: function () {
return this._elevationReturnWaitTime;
},
set: function (e) {
this._elevationReturnWaitTime = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "zoomStopsAnimation", {
get: function () {
return this._zoomStopsAnimation;
},
set: function (e) {
this._zoomStopsAnimation = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "framingTime", {
get: function () {
return this._framingTime;
},
set: function (e) {
this._framingTime = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
(e.prototype.attach = function (t) {
var n = this;
this._attachedCamera = t;
var i = this._attachedCamera.getScene();
e.EasingFunction.setEasingMode(e.EasingMode),
(this._onPrePointerObservableObserver = i.onPrePointerObservable.add(function (e) {
e.type !== ye.a.POINTERDOWN ? e.type === ye.a.POINTERUP && (n._isPointerDown = !1) : (n._isPointerDown = !0);
})),
(this._onMeshTargetChangedObserver = t.onMeshTargetChangedObservable.add(function (e) {
e && n.zoomOnMesh(e);
})),
(this._onAfterCheckInputsObserver = t.onAfterCheckInputsObservable.add(function () {
n._applyUserInteraction(), n._maintainCameraAboveGround();
}));
}),
(e.prototype.detach = function () {
if (this._attachedCamera) {
var e = this._attachedCamera.getScene();
this._onPrePointerObservableObserver && e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),
this._onAfterCheckInputsObserver && this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),
this._onMeshTargetChangedObserver && this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),
(this._attachedCamera = null);
}
}),
(e.prototype.zoomOnMesh = function (e, t, n) {
void 0 === t && (t = !1), void 0 === n && (n = null), e.computeWorldMatrix(!0);
var i = e.getBoundingInfo().boundingBox;
this.zoomOnBoundingInfo(i.minimumWorld, i.maximumWorld, t, n);
}),
(e.prototype.zoomOnMeshHierarchy = function (e, t, n) {
void 0 === t && (t = !1), void 0 === n && (n = null), e.computeWorldMatrix(!0);
var i = e.getHierarchyBoundingVectors(!0);
this.zoomOnBoundingInfo(i.min, i.max, t, n);
}),
(e.prototype.zoomOnMeshesHierarchy = function (e, t, n) {
void 0 === t && (t = !1), void 0 === n && (n = null);
for (var i = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), r = new a.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), o = 0; o < e.length; o++) {
var s = e[o].getHierarchyBoundingVectors(!0);
a.e.CheckExtends(s.min, i, r), a.e.CheckExtends(s.max, i, r);
}
this.zoomOnBoundingInfo(i, r, t, n);
}),
(e.prototype.zoomOnBoundingInfo = function (t, n, i, r) {
var o,
s = this;
if ((void 0 === i && (i = !1), void 0 === r && (r = null), this._attachedCamera)) {
var c = t.y,
l = c + (n.y - c) * this._positionScale,
u = n.subtract(t).scale(0.5);
if (i) o = new a.e(0, l, 0);
else {
var h = t.add(u);
o = new a.e(h.x, l, h.z);
}
this._vectorTransition || (this._vectorTransition = R.a.CreateAnimation("target", R.a.ANIMATIONTYPE_VECTOR3, 60, e.EasingFunction)), (this._betaIsAnimating = !0);
var d = R.a.TransitionTo("target", o, this._attachedCamera, this._attachedCamera.getScene(), 60, this._vectorTransition, this._framingTime);
d && this._animatables.push(d);
var p = 0;
if (this._mode === e.FitFrustumSidesMode) {
var f = this._calculateLowerRadiusFromModelBoundingSphere(t, n);
this.autoCorrectCameraLimitsAndSensibility && (this._attachedCamera.lowerRadiusLimit = u.length() + this._attachedCamera.minZ), (p = f);
} else
this._mode === e.IgnoreBoundsSizeMode &&
((p = this._calculateLowerRadiusFromModelBoundingSphere(t, n)),
this.autoCorrectCameraLimitsAndSensibility && null === this._attachedCamera.lowerRadiusLimit && (this._attachedCamera.lowerRadiusLimit = this._attachedCamera.minZ));
if (this.autoCorrectCameraLimitsAndSensibility) {
var m = n.subtract(t).length();
(this._attachedCamera.panningSensibility = 5e3 / m), (this._attachedCamera.wheelPrecision = 100 / p);
}
this._radiusTransition || (this._radiusTransition = R.a.CreateAnimation("radius", R.a.ANIMATIONTYPE_FLOAT, 60, e.EasingFunction)),
(d = R.a.TransitionTo("radius", p, this._attachedCamera, this._attachedCamera.getScene(), 60, this._radiusTransition, this._framingTime, function () {
s.stopAllAnimations(), r && r(), s._attachedCamera && s._attachedCamera.useInputToRestoreState && s._attachedCamera.storeState();
})) && this._animatables.push(d);
}
}),
(e.prototype._calculateLowerRadiusFromModelBoundingSphere = function (t, n) {
var i = n.subtract(t).length(),
r = this._getFrustumSlope(),
o = 0.5 * i * this._radiusScale,
a = o * Math.sqrt(1 + 1 / (r.x * r.x)),
s = o * Math.sqrt(1 + 1 / (r.y * r.y)),
c = Math.max(a, s),
l = this._attachedCamera;
return l ? (l.lowerRadiusLimit && this._mode === e.IgnoreBoundsSizeMode && (c = c < l.lowerRadiusLimit ? l.lowerRadiusLimit : c), l.upperRadiusLimit && (c = c > l.upperRadiusLimit ? l.upperRadiusLimit : c), c) : 0;
}),
(e.prototype._maintainCameraAboveGround = function () {
var t = this;
if (!(this._elevationReturnTime < 0)) {
var n = be.a.Now - this._lastInteractionTime,
i = 0.5 * Math.PI - this._defaultElevation,
r = 0.5 * Math.PI;
if (this._attachedCamera && !this._betaIsAnimating && this._attachedCamera.beta > r && n >= this._elevationReturnWaitTime) {
(this._betaIsAnimating = !0), this.stopAllAnimations(), this._betaTransition || (this._betaTransition = R.a.CreateAnimation("beta", R.a.ANIMATIONTYPE_FLOAT, 60, e.EasingFunction));
var o = R.a.TransitionTo("beta", i, this._attachedCamera, this._attachedCamera.getScene(), 60, this._betaTransition, this._elevationReturnTime, function () {
t._clearAnimationLocks(), t.stopAllAnimations();
});
o && this._animatables.push(o);
}
}
}),
(e.prototype._getFrustumSlope = function () {
var e = this._attachedCamera;
if (!e) return a.d.Zero();
var t = e.getScene().getEngine().getAspectRatio(e),
n = Math.tan(e.fov / 2),
i = n * t;
return new a.d(i, n);
}),
(e.prototype._clearAnimationLocks = function () {
this._betaIsAnimating = !1;
}),
(e.prototype._applyUserInteraction = function () {
this.isUserIsMoving && ((this._lastInteractionTime = be.a.Now), this.stopAllAnimations(), this._clearAnimationLocks());
}),
(e.prototype.stopAllAnimations = function () {
for (this._attachedCamera && (this._attachedCamera.animations = []); this._animatables.length; )
this._animatables[0] && ((this._animatables[0].onAnimationEnd = null), this._animatables[0].stop()), this._animatables.shift();
}),
Object.defineProperty(e.prototype, "isUserIsMoving", {
get: function () {
return (
!!this._attachedCamera &&
(0 !== this._attachedCamera.inertialAlphaOffset ||
0 !== this._attachedCamera.inertialBetaOffset ||
0 !== this._attachedCamera.inertialRadiusOffset ||
0 !== this._attachedCamera.inertialPanningX ||
0 !== this._attachedCamera.inertialPanningY ||
this._isPointerDown)
);
},
enumerable: !0,
configurable: !0,
}),
(e.EasingFunction = new J()),
(e.EasingMode = X.EASINGMODE_EASEINOUT),
(e.IgnoreBoundsSizeMode = 0),
(e.FitFrustumSidesMode = 1),
e
);
})(),
Te = function (e, t, n, i) {
void 0 === t && (t = new a.e()), void 0 === n && (n = 0), void 0 === i && (i = !1), (this.direction = e), (this.rotatedDirection = t), (this.diff = n), (this.ignore = i);
},
Se = (function () {
function e(e) {
(this.ui = e),
(this.name = "AttachToBoxBehavior"),
(this.distanceAwayFromFace = 0.15),
(this.distanceAwayFromBottomOfFace = 0.15),
(this._faceVectors = [new Te(a.e.Up()), new Te(a.e.Down()), new Te(a.e.Left()), new Te(a.e.Right()), new Te(a.e.Forward()), new Te(a.e.Forward().scaleInPlace(-1))]),
(this._tmpMatrix = new a.a()),
(this._tmpVector = new a.e()),
(this._zeroVector = a.e.Zero()),
(this._lookAtTmpMatrix = new a.a());
}
return (
(e.prototype.init = function () {}),
(e.prototype._closestFace = function (e) {
var t = this;
return (
this._faceVectors.forEach(function (n) {
t._target.rotationQuaternion || (t._target.rotationQuaternion = a.b.RotationYawPitchRoll(t._target.rotation.y, t._target.rotation.x, t._target.rotation.z)),
t._target.rotationQuaternion.toRotationMatrix(t._tmpMatrix),
a.e.TransformCoordinatesToRef(n.direction, t._tmpMatrix, n.rotatedDirection),
(n.diff = a.e.GetAngleBetweenVectors(n.rotatedDirection, e, a.e.Cross(n.rotatedDirection, e)));
}),
this._faceVectors.reduce(function (e, t) {
return e.ignore ? t : t.ignore || e.diff < t.diff ? e : t;
}, this._faceVectors[0])
);
}),
(e.prototype._lookAtToRef = function (e, t, n) {
void 0 === t && (t = new a.e(0, 1, 0)), a.a.LookAtLHToRef(this._zeroVector, e, t, this._lookAtTmpMatrix), this._lookAtTmpMatrix.invert(), a.b.FromRotationMatrixToRef(this._lookAtTmpMatrix, n);
}),
(e.prototype.attach = function (e) {
var t = this;
(this._target = e),
(this._scene = this._target.getScene()),
(this._onRenderObserver = this._scene.onBeforeRenderObservable.add(function () {
if (t._scene.activeCamera) {
var n = t._scene.activeCamera.position;
t._scene.activeCamera.devicePosition && (n = t._scene.activeCamera.devicePosition);
var i = t._closestFace(n.subtract(e.position));
t._scene.activeCamera.leftCamera
? t._scene.activeCamera.leftCamera.computeWorldMatrix().getRotationMatrixToRef(t._tmpMatrix)
: t._scene.activeCamera.computeWorldMatrix().getRotationMatrixToRef(t._tmpMatrix),
a.e.TransformCoordinatesToRef(a.e.Up(), t._tmpMatrix, t._tmpVector),
t._faceVectors.forEach(function (e) {
i.direction.x && e.direction.x && (e.ignore = !0), i.direction.y && e.direction.y && (e.ignore = !0), i.direction.z && e.direction.z && (e.ignore = !0);
});
var r = t._closestFace(t._tmpVector);
t._faceVectors.forEach(function (e) {
e.ignore = !1;
}),
t.ui.position.copyFrom(e.position),
i.direction.x && (i.rotatedDirection.scaleToRef(e.scaling.x / 2 + t.distanceAwayFromFace, t._tmpVector), t.ui.position.addInPlace(t._tmpVector)),
i.direction.y && (i.rotatedDirection.scaleToRef(e.scaling.y / 2 + t.distanceAwayFromFace, t._tmpVector), t.ui.position.addInPlace(t._tmpVector)),
i.direction.z && (i.rotatedDirection.scaleToRef(e.scaling.z / 2 + t.distanceAwayFromFace, t._tmpVector), t.ui.position.addInPlace(t._tmpVector)),
t.ui.rotationQuaternion || (t.ui.rotationQuaternion = a.b.RotationYawPitchRoll(t.ui.rotation.y, t.ui.rotation.x, t.ui.rotation.z)),
i.rotatedDirection.scaleToRef(-1, t._tmpVector),
t._lookAtToRef(t._tmpVector, r.rotatedDirection, t.ui.rotationQuaternion),
r.direction.x && t.ui.up.scaleToRef(t.distanceAwayFromBottomOfFace - e.scaling.x / 2, t._tmpVector),
r.direction.y && t.ui.up.scaleToRef(t.distanceAwayFromBottomOfFace - e.scaling.y / 2, t._tmpVector),
r.direction.z && t.ui.up.scaleToRef(t.distanceAwayFromBottomOfFace - e.scaling.z / 2, t._tmpVector),
t.ui.position.addInPlace(t._tmpVector);
}
}));
}),
(e.prototype.detach = function () {
this._scene.onBeforeRenderObservable.remove(this._onRenderObserver);
}),
e
);
})(),
Oe = n(193),
Ee = n(9),
Me = n(58),
Ae = n(81),
Ie = n(153),
De = n(26),
Re = (function () {
function e(e, t, n) {
void 0 === n && (n = Number.MAX_VALUE), (this.origin = e), (this.direction = t), (this.length = n);
}
return (
(e.prototype.intersectsBoxMinMax = function (t, n, i) {
void 0 === i && (i = 0);
var r,
o,
a,
s,
c = e.TmpVector3[0].copyFromFloats(t.x - i, t.y - i, t.z - i),
l = e.TmpVector3[1].copyFromFloats(n.x + i, n.y + i, n.z + i),
u = 0,
h = Number.MAX_VALUE;
if (Math.abs(this.direction.x) < 1e-7) {
if (this.origin.x < c.x || this.origin.x > l.x) return !1;
} else if (((r = 1 / this.direction.x), (o = (c.x - this.origin.x) * r), (a = (l.x - this.origin.x) * r) === -1 / 0 && (a = 1 / 0), o > a && ((s = o), (o = a), (a = s)), (u = Math.max(o, u)) > (h = Math.min(a, h))))
return !1;
if (Math.abs(this.direction.y) < 1e-7) {
if (this.origin.y < c.y || this.origin.y > l.y) return !1;
} else if (((r = 1 / this.direction.y), (o = (c.y - this.origin.y) * r), (a = (l.y - this.origin.y) * r) === -1 / 0 && (a = 1 / 0), o > a && ((s = o), (o = a), (a = s)), (u = Math.max(o, u)) > (h = Math.min(a, h))))
return !1;
if (Math.abs(this.direction.z) < 1e-7) {
if (this.origin.z < c.z || this.origin.z > l.z) return !1;
} else if (((r = 1 / this.direction.z), (o = (c.z - this.origin.z) * r), (a = (l.z - this.origin.z) * r) === -1 / 0 && (a = 1 / 0), o > a && ((s = o), (o = a), (a = s)), (u = Math.max(o, u)) > (h = Math.min(a, h))))
return !1;
return !0;
}),
(e.prototype.intersectsBox = function (e, t) {
return void 0 === t && (t = 0), this.intersectsBoxMinMax(e.minimum, e.maximum, t);
}),
(e.prototype.intersectsSphere = function (e, t) {
void 0 === t && (t = 0);
var n = e.center.x - this.origin.x,
i = e.center.y - this.origin.y,
r = e.center.z - this.origin.z,
o = n * n + i * i + r * r,
a = e.radius + t,
s = a * a;
if (o <= s) return !0;
var c = n * this.direction.x + i * this.direction.y + r * this.direction.z;
return !(c < 0) && o - c * c <= s;
}),
(e.prototype.intersectsTriangle = function (t, n, i) {
var r = e.TmpVector3[0],
o = e.TmpVector3[1],
s = e.TmpVector3[2],
c = e.TmpVector3[3],
l = e.TmpVector3[4];
n.subtractToRef(t, r), i.subtractToRef(t, o), a.e.CrossToRef(this.direction, o, s);
var u = a.e.Dot(r, s);
if (0 === u) return null;
var h = 1 / u;
this.origin.subtractToRef(t, c);
var d = a.e.Dot(c, s) * h;
if (d < 0 || d > 1) return null;
a.e.CrossToRef(c, r, l);
var p = a.e.Dot(this.direction, l) * h;
if (p < 0 || d + p > 1) return null;
var f = a.e.Dot(o, l) * h;
return f > this.length ? null : new Ie.a(1 - d - p, d, f);
}),
(e.prototype.intersectsPlane = function (e) {
var t,
n = a.e.Dot(e.normal, this.direction);
if (Math.abs(n) < 9.99999997475243e-7) return null;
var i = a.e.Dot(e.normal, this.origin);
return (t = (-e.d - i) / n) < 0 ? (t < -9.99999997475243e-7 ? null : 0) : t;
}),
(e.prototype.intersectsAxis = function (e, t) {
switch ((void 0 === t && (t = 0), e)) {
case "y":
return (n = (this.origin.y - t) / this.direction.y) > 0 ? null : new a.e(this.origin.x + this.direction.x * -n, t, this.origin.z + this.direction.z * -n);
case "x":
return (n = (this.origin.x - t) / this.direction.x) > 0 ? null : new a.e(t, this.origin.y + this.direction.y * -n, this.origin.z + this.direction.z * -n);
case "z":
var n;
return (n = (this.origin.z - t) / this.direction.z) > 0 ? null : new a.e(this.origin.x + this.direction.x * -n, this.origin.y + this.direction.y * -n, t);
default:
return null;
}
}),
(e.prototype.intersectsMesh = function (t, n) {
var i = a.c.Matrix[0];
return t.getWorldMatrix().invertToRef(i), this._tmpRay ? e.TransformToRef(this, i, this._tmpRay) : (this._tmpRay = e.Transform(this, i)), t.intersects(this._tmpRay, n);
}),
(e.prototype.intersectsMeshes = function (e, t, n) {
n ? (n.length = 0) : (n = []);
for (var i = 0; i < e.length; i++) {
var r = this.intersectsMesh(e[i], t);
r.hit && n.push(r);
}
return n.sort(this._comparePickingInfo), n;
}),
(e.prototype._comparePickingInfo = function (e, t) {
return e.distance < t.distance ? -1 : e.distance > t.distance ? 1 : 0;
}),
(e.prototype.intersectionSegment = function (t, n, i) {
var r = this.origin,
o = a.c.Vector3[0],
s = a.c.Vector3[1],
c = a.c.Vector3[2],
l = a.c.Vector3[3];
n.subtractToRef(t, o), this.direction.scaleToRef(e.rayl, c), r.addToRef(c, s), t.subtractToRef(r, l);
var u,
h,
d,
p,
f = a.e.Dot(o, o),
m = a.e.Dot(o, c),
g = a.e.Dot(c, c),
b = a.e.Dot(o, l),
_ = a.e.Dot(c, l),
v = f * g - m * m,
y = v,
C = v;
v < e.smallnum ? ((h = 0), (y = 1), (p = _), (C = g)) : ((p = f * _ - m * b), (h = m * _ - g * b) < 0 ? ((h = 0), (p = _), (C = g)) : h > y && ((h = y), (p = _ + m), (C = g))),
p < 0 ? ((p = 0), -b < 0 ? (h = 0) : -b > f ? (h = y) : ((h = -b), (y = f))) : p > C && ((p = C), -b + m < 0 ? (h = 0) : -b + m > f ? (h = y) : ((h = -b + m), (y = f))),
(u = Math.abs(h) < e.smallnum ? 0 : h / y),
(d = Math.abs(p) < e.smallnum ? 0 : p / C);
var P = a.c.Vector3[4];
c.scaleToRef(d, P);
var x = a.c.Vector3[5];
o.scaleToRef(u, x), x.addInPlace(l);
var T = a.c.Vector3[6];
return x.subtractToRef(P, T), d > 0 && d <= this.length && T.lengthSquared() < i * i ? x.length() : -1;
}),
(e.prototype.update = function (e, t, n, i, r, o, a) {
return this.unprojectRayToRef(e, t, n, i, r, o, a), this;
}),
(e.Zero = function () {
return new e(a.e.Zero(), a.e.Zero());
}),
(e.CreateNew = function (t, n, i, r, o, a, s) {
return e.Zero().update(t, n, i, r, o, a, s);
}),
(e.CreateNewFromTo = function (t, n, i) {
void 0 === i && (i = a.a.IdentityReadOnly);
var r = n.subtract(t),
o = Math.sqrt(r.x * r.x + r.y * r.y + r.z * r.z);
return r.normalize(), e.Transform(new e(t, r, o), i);
}),
(e.Transform = function (t, n) {
var i = new e(new a.e(0, 0, 0), new a.e(0, 0, 0));
return e.TransformToRef(t, n, i), i;
}),
(e.TransformToRef = function (e, t, n) {
a.e.TransformCoordinatesToRef(e.origin, t, n.origin), a.e.TransformNormalToRef(e.direction, t, n.direction), (n.length = e.length);
var i = n.direction,
r = i.length();
if (0 !== r && 1 !== r) {
var o = 1 / r;
(i.x *= o), (i.y *= o), (i.z *= o), (n.length *= r);
}
}),
(e.prototype.unprojectRayToRef = function (e, t, n, i, r, o, s) {
var c = a.c.Matrix[0];
r.multiplyToRef(o, c), c.multiplyToRef(s, c), c.invert();
var l = a.c.Vector3[0];
(l.x = (e / n) * 2 - 1), (l.y = -((t / i) * 2 - 1)), (l.z = -1);
var u = a.c.Vector3[1].copyFromFloats(l.x, l.y, 1),
h = a.c.Vector3[2],
d = a.c.Vector3[3];
a.e._UnprojectFromInvertedMatrixToRef(l, c, h), a.e._UnprojectFromInvertedMatrixToRef(u, c, d), this.origin.copyFrom(h), d.subtractToRef(h, this.direction), this.direction.normalize();
}),
(e.TmpVector3 = Me.a.BuildArray(6, a.e.Zero)),
(e.smallnum = 1e-8),
(e.rayl = 1e9),
e
);
})();
(ge.a.prototype.createPickingRay = function (e, t, n, i, r) {
void 0 === r && (r = !1);
var o = Re.Zero();
return this.createPickingRayToRef(e, t, n, o, i, r), o;
}),
(ge.a.prototype.createPickingRayToRef = function (e, t, n, i, r, o) {
void 0 === o && (o = !1);
var s = this.getEngine();
if (!r) {
if (!this.activeCamera) return this;
r = this.activeCamera;
}
var c = r.viewport.toGlobal(s.getRenderWidth(), s.getRenderHeight());
return (
(e = e / s.getHardwareScalingLevel() - c.x),
(t = t / s.getHardwareScalingLevel() - (s.getRenderHeight() - c.y - c.height)),
i.update(e, t, c.width, c.height, n || a.a.IdentityReadOnly, o ? a.a.IdentityReadOnly : r.getViewMatrix(), r.getProjectionMatrix()),
this
);
}),
(ge.a.prototype.createPickingRayInCameraSpace = function (e, t, n) {
var i = Re.Zero();
return this.createPickingRayInCameraSpaceToRef(e, t, i, n), i;
}),
(ge.a.prototype.createPickingRayInCameraSpaceToRef = function (e, t, n, i) {
if (!Ae.a) return this;
var r = this.getEngine();
if (!i) {
if (!this.activeCamera) throw new Error("Active camera not set");
i = this.activeCamera;
}
var o = i.viewport.toGlobal(r.getRenderWidth(), r.getRenderHeight()),
s = a.a.Identity();
return (e = e / r.getHardwareScalingLevel() - o.x), (t = t / r.getHardwareScalingLevel() - (r.getRenderHeight() - o.y - o.height)), n.update(e, t, o.width, o.height, s, s, i.getProjectionMatrix()), this;
}),
(ge.a.prototype._internalPick = function (e, t, n, i) {
if (!Ae.a) return null;
for (var r = null, o = 0; o < this.meshes.length; o++) {
var a = this.meshes[o];
if (t) {
if (!t(a)) continue;
} else if (!a.isEnabled() || !a.isVisible || !a.isPickable) continue;
var s = e(a.getWorldMatrix()),
c = a.intersects(s, n, i);
if (c && c.hit && (n || null == r || !(c.distance >= r.distance)) && ((r = c), n)) break;
}
return r || new Ae.a();
}),
(ge.a.prototype._internalMultiPick = function (e, t, n) {
if (!Ae.a) return null;
for (var i = new Array(), r = 0; r < this.meshes.length; r++) {
var o = this.meshes[r];
if (t) {
if (!t(o)) continue;
} else if (!o.isEnabled() || !o.isVisible || !o.isPickable) continue;
var a = e(o.getWorldMatrix()),
s = o.intersects(a, !1, n);
s && s.hit && i.push(s);
}
return i;
}),
(ge.a.prototype.pick = function (e, t, n, i, r, o) {
var s = this;
if (!Ae.a) return null;
var c = this._internalPick(
function (n) {
return s._tempPickingRay || (s._tempPickingRay = Re.Zero()), s.createPickingRayToRef(e, t, n, s._tempPickingRay, r || null), s._tempPickingRay;
},
n,
i,
o
);
return c && (c.ray = this.createPickingRay(e, t, a.a.Identity(), r || null)), c;
}),
(ge.a.prototype.pickWithRay = function (e, t, n, i) {
var r = this,
o = this._internalPick(
function (t) {
return (
r._pickWithRayInverseMatrix || (r._pickWithRayInverseMatrix = a.a.Identity()),
t.invertToRef(r._pickWithRayInverseMatrix),
r._cachedRayForTransform || (r._cachedRayForTransform = Re.Zero()),
Re.TransformToRef(e, r._pickWithRayInverseMatrix, r._cachedRayForTransform),
r._cachedRayForTransform
);
},
t,
n,
i
);
return o && (o.ray = e), o;
}),
(ge.a.prototype.multiPick = function (e, t, n, i, r) {
var o = this;
return this._internalMultiPick(
function (n) {
return o.createPickingRay(e, t, n, i || null);
},
n,
r
);
}),
(ge.a.prototype.multiPickWithRay = function (e, t, n) {
var i = this;
return this._internalMultiPick(
function (t) {
return (
i._pickWithRayInverseMatrix || (i._pickWithRayInverseMatrix = a.a.Identity()),
t.invertToRef(i._pickWithRayInverseMatrix),
i._cachedRayForTransform || (i._cachedRayForTransform = Re.Zero()),
Re.TransformToRef(e, i._pickWithRayInverseMatrix, i._cachedRayForTransform),
i._cachedRayForTransform
);
},
t,
n
);
}),
(De.a.prototype.getForwardRay = function (e, t, n) {
void 0 === e && (e = 100), t || (t = this.getWorldMatrix()), n || (n = this.position);
var i = this._scene.useRightHandedSystem ? new a.e(0, 0, -1) : new a.e(0, 0, 1),
r = a.e.TransformNormal(i, t),
o = a.e.Normalize(r);
return new Re(n, o, e);
});
var we = (function () {
function e() {}
return (
(e._RemoveAndStorePivotPoint = function (t) {
t &&
0 === e._PivotCached &&
(t.getPivotPointToRef(e._OldPivotPoint),
e._OldPivotPoint.equalsToFloats(0, 0, 0) ||
(t.setPivotMatrix(a.a.IdentityReadOnly),
e._OldPivotPoint.subtractToRef(t.getPivotPoint(), e._PivotTranslation),
e._PivotTmpVector.copyFromFloats(1, 1, 1),
e._PivotTmpVector.subtractInPlace(t.scaling),
e._PivotTmpVector.multiplyInPlace(e._PivotTranslation),
t.position.addInPlace(e._PivotTmpVector))),
e._PivotCached++;
}),
(e._RestorePivotPoint = function (t) {
t &&
!e._OldPivotPoint.equalsToFloats(0, 0, 0) &&
1 === e._PivotCached &&
(t.setPivotPoint(e._OldPivotPoint),
e._PivotTmpVector.copyFromFloats(1, 1, 1),
e._PivotTmpVector.subtractInPlace(t.scaling),
e._PivotTmpVector.multiplyInPlace(e._PivotTranslation),
t.position.subtractInPlace(e._PivotTmpVector)),
this._PivotCached--;
}),
(e._PivotCached = 0),
(e._OldPivotPoint = new a.e()),
(e._PivotTranslation = new a.e()),
(e._PivotTmpVector = new a.e()),
e
);
})(),
Le = n(111),
Fe = (function () {
function e(e) {
(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed = -1.1),
(this.maxDragAngle = 0),
(this._useAlternatePickedPointAboveMaxDragAngle = !1),
(this.currentDraggingPointerID = -1),
(this.dragging = !1),
(this.dragDeltaRatio = 0.2),
(this.updateDragPlane = !0),
(this._debugMode = !1),
(this._moving = !1),
(this.onDragObservable = new o.c()),
(this.onDragStartObservable = new o.c()),
(this.onDragEndObservable = new o.c()),
(this.moveAttached = !0),
(this.enabled = !0),
(this.startAndReleaseDragOnPointerEvents = !0),
(this.detachCameraControls = !0),
(this.useObjectOrientationForDragging = !0),
(this.validateDrag = function (e) {
return !0;
}),
(this._tmpVector = new a.e(0, 0, 0)),
(this._alternatePickedPoint = new a.e(0, 0, 0)),
(this._worldDragAxis = new a.e(0, 0, 0)),
(this._targetPosition = new a.e(0, 0, 0)),
(this._attachedElement = null),
(this._startDragRay = new Re(new a.e(), new a.e())),
(this._lastPointerRay = {}),
(this._dragDelta = new a.e()),
(this._pointA = new a.e(0, 0, 0)),
(this._pointB = new a.e(0, 0, 0)),
(this._pointC = new a.e(0, 0, 0)),
(this._lineA = new a.e(0, 0, 0)),
(this._lineB = new a.e(0, 0, 0)),
(this._localAxis = new a.e(0, 0, 0)),
(this._lookAt = new a.e(0, 0, 0)),
(this._options = e || {});
var t = 0;
if ((this._options.dragAxis && t++, this._options.dragPlaneNormal && t++, t > 1)) throw "Multiple drag modes specified in dragBehavior options. Only one expected";
}
return (
Object.defineProperty(e.prototype, "options", {
get: function () {
return this._options;
},
set: function (e) {
this._options = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "name", {
get: function () {
return "PointerDrag";
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
(e.prototype.attach = function (t, n) {
var i = this;
(this._scene = t.getScene()),
(this.attachedNode = t),
e._planeScene ||
(this._debugMode
? (e._planeScene = this._scene)
: ((e._planeScene = new ge.a(this._scene.getEngine(), { virtual: !0 })),
e._planeScene.detachControl(),
this._scene.onDisposeObservable.addOnce(function () {
e._planeScene.dispose(), (e._planeScene = null);
}))),
(this._dragPlane = Ee.a.CreatePlane("pointerDragPlane", this._debugMode ? 1 : 1e4, e._planeScene, !1, Ee.a.DOUBLESIDE)),
(this.lastDragPosition = new a.e(0, 0, 0));
var r =
n ||
function (e) {
return i.attachedNode == e || e.isDescendantOf(i.attachedNode);
};
(this._pointerObserver = this._scene.onPointerObservable.add(function (t, n) {
if (i.enabled)
if (t.type == ye.a.POINTERDOWN)
i.startAndReleaseDragOnPointerEvents &&
!i.dragging &&
t.pickInfo &&
t.pickInfo.hit &&
t.pickInfo.pickedMesh &&
t.pickInfo.pickedPoint &&
t.pickInfo.ray &&
r(t.pickInfo.pickedMesh) &&
i._startDrag(t.event.pointerId, t.pickInfo.ray, t.pickInfo.pickedPoint);
else if (t.type == ye.a.POINTERUP) i.startAndReleaseDragOnPointerEvents && i.currentDraggingPointerID == t.event.pointerId && i.releaseDrag();
else if (t.type == ye.a.POINTERMOVE) {
var o = t.event.pointerId;
i.currentDraggingPointerID === e._AnyMouseID &&
o !== e._AnyMouseID &&
"mouse" == t.event.pointerType &&
(i._lastPointerRay[i.currentDraggingPointerID] && ((i._lastPointerRay[o] = i._lastPointerRay[i.currentDraggingPointerID]), delete i._lastPointerRay[i.currentDraggingPointerID]),
(i.currentDraggingPointerID = o)),
i._lastPointerRay[o] || (i._lastPointerRay[o] = new Re(new a.e(), new a.e())),
t.pickInfo &&
t.pickInfo.ray &&
(i._lastPointerRay[o].origin.copyFrom(t.pickInfo.ray.origin),
i._lastPointerRay[o].direction.copyFrom(t.pickInfo.ray.direction),
i.currentDraggingPointerID == o && i.dragging && i._moveDrag(t.pickInfo.ray));
}
})),
(this._beforeRenderObserver = this._scene.onBeforeRenderObservable.add(function () {
i._moving &&
i.moveAttached &&
(we._RemoveAndStorePivotPoint(i.attachedNode),
i._targetPosition.subtractToRef(i.attachedNode.absolutePosition, i._tmpVector),
i._tmpVector.scaleInPlace(i.dragDeltaRatio),
i.attachedNode.getAbsolutePosition().addToRef(i._tmpVector, i._tmpVector),
i.validateDrag(i._tmpVector) && i.attachedNode.setAbsolutePosition(i._tmpVector),
we._RestorePivotPoint(i.attachedNode));
}));
}),
(e.prototype.releaseDrag = function () {
this.dragging && (this.onDragEndObservable.notifyObservers({ dragPlanePoint: this.lastDragPosition, pointerId: this.currentDraggingPointerID }), (this.dragging = !1)),
(this.currentDraggingPointerID = -1),
(this._moving = !1),
this.detachCameraControls &&
this._attachedElement &&
this._scene.activeCamera &&
!this._scene.activeCamera.leftCamera &&
this._scene.activeCamera.attachControl(this._attachedElement, !this._scene.activeCamera.inputs || this._scene.activeCamera.inputs.noPreventDefault);
}),
(e.prototype.startDrag = function (t, n, i) {
void 0 === t && (t = e._AnyMouseID), this._startDrag(t, n, i);
var r = this._lastPointerRay[t];
t === e._AnyMouseID && (r = this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]), r && this._moveDrag(r);
}),
(e.prototype._startDrag = function (e, t, n) {
if (this._scene.activeCamera && !this.dragging && this.attachedNode) {
we._RemoveAndStorePivotPoint(this.attachedNode),
t
? (this._startDragRay.direction.copyFrom(t.direction), this._startDragRay.origin.copyFrom(t.origin))
: (this._startDragRay.origin.copyFrom(this._scene.activeCamera.position),
this.attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector),
this._tmpVector.subtractToRef(this._scene.activeCamera.position, this._startDragRay.direction)),
this._updateDragPlanePosition(this._startDragRay, n || this._tmpVector);
var i = this._pickWithRayOnDragPlane(this._startDragRay);
i &&
((this.dragging = !0),
(this.currentDraggingPointerID = e),
this.lastDragPosition.copyFrom(i),
this.onDragStartObservable.notifyObservers({ dragPlanePoint: i, pointerId: this.currentDraggingPointerID }),
this._targetPosition.copyFrom(this.attachedNode.absolutePosition),
this.detachCameraControls &&
this._scene.activeCamera &&
this._scene.activeCamera.inputs &&
!this._scene.activeCamera.leftCamera &&
(this._scene.activeCamera.inputs.attachedElement
? ((this._attachedElement = this._scene.activeCamera.inputs.attachedElement), this._scene.activeCamera.detachControl(this._scene.activeCamera.inputs.attachedElement))
: (this._attachedElement = null))),
we._RestorePivotPoint(this.attachedNode);
}
}),
(e.prototype._moveDrag = function (e) {
this._moving = !0;
var t = this._pickWithRayOnDragPlane(e);
if (t) {
this.updateDragPlane && this._updateDragPlanePosition(e, t);
var n = 0;
this._options.dragAxis
? (this.useObjectOrientationForDragging
? a.e.TransformCoordinatesToRef(this._options.dragAxis, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._worldDragAxis)
: this._worldDragAxis.copyFrom(this._options.dragAxis),
t.subtractToRef(this.lastDragPosition, this._tmpVector),
(n = a.e.Dot(this._tmpVector, this._worldDragAxis)),
this._worldDragAxis.scaleToRef(n, this._dragDelta))
: ((n = this._dragDelta.length()), t.subtractToRef(this.lastDragPosition, this._dragDelta)),
this._targetPosition.addInPlace(this._dragDelta),
this.onDragObservable.notifyObservers({ dragDistance: n, delta: this._dragDelta, dragPlanePoint: t, dragPlaneNormal: this._dragPlane.forward, pointerId: this.currentDraggingPointerID }),
this.lastDragPosition.copyFrom(t);
}
}),
(e.prototype._pickWithRayOnDragPlane = function (t) {
var n = this;
if (!t) return null;
var i = Math.acos(a.e.Dot(this._dragPlane.forward, t.direction));
if ((i > Math.PI / 2 && (i = Math.PI - i), this.maxDragAngle > 0 && i > this.maxDragAngle)) {
if (this._useAlternatePickedPointAboveMaxDragAngle) {
this._tmpVector.copyFrom(t.direction),
this.attachedNode.absolutePosition.subtractToRef(t.origin, this._alternatePickedPoint),
this._alternatePickedPoint.normalize(),
this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed * a.e.Dot(this._alternatePickedPoint, this._tmpVector)),
this._tmpVector.addInPlace(this._alternatePickedPoint);
var r = a.e.Dot(this._dragPlane.forward, this._tmpVector);
return (
this._dragPlane.forward.scaleToRef(-r, this._alternatePickedPoint),
this._alternatePickedPoint.addInPlace(this._tmpVector),
this._alternatePickedPoint.addInPlace(this.attachedNode.absolutePosition),
this._alternatePickedPoint
);
}
return null;
}
var o = e._planeScene.pickWithRay(t, function (e) {
return e == n._dragPlane;
});
return o && o.hit && o.pickedMesh && o.pickedPoint ? o.pickedPoint : null;
}),
(e.prototype._updateDragPlanePosition = function (e, t) {
this._pointA.copyFrom(t),
this._options.dragAxis
? (this.useObjectOrientationForDragging
? a.e.TransformCoordinatesToRef(this._options.dragAxis, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._localAxis)
: this._localAxis.copyFrom(this._options.dragAxis),
this._pointA.addToRef(this._localAxis, this._pointB),
e.origin.subtractToRef(this._pointA, this._pointC),
this._pointA.addToRef(this._pointC.normalize(), this._pointC),
this._pointB.subtractToRef(this._pointA, this._lineA),
this._pointC.subtractToRef(this._pointA, this._lineB),
a.e.CrossToRef(this._lineA, this._lineB, this._lookAt),
a.e.CrossToRef(this._lineA, this._lookAt, this._lookAt),
this._lookAt.normalize(),
this._dragPlane.position.copyFrom(this._pointA),
this._pointA.addToRef(this._lookAt, this._lookAt),
this._dragPlane.lookAt(this._lookAt))
: this._options.dragPlaneNormal
? (this.useObjectOrientationForDragging
? a.e.TransformCoordinatesToRef(this._options.dragPlaneNormal, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._localAxis)
: this._localAxis.copyFrom(this._options.dragPlaneNormal),
this._dragPlane.position.copyFrom(this._pointA),
this._pointA.addToRef(this._localAxis, this._lookAt),
this._dragPlane.lookAt(this._lookAt))
: (this._dragPlane.position.copyFrom(this._pointA), this._dragPlane.lookAt(e.origin)),
this._dragPlane.position.copyFrom(this.attachedNode.absolutePosition),
this._dragPlane.computeWorldMatrix(!0);
}),
(e.prototype.detach = function () {
this._pointerObserver && this._scene.onPointerObservable.remove(this._pointerObserver), this._beforeRenderObserver && this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver), this.releaseDrag();
}),
(e._AnyMouseID = -2),
e
);
})(),
Ne = (function () {
function e() {
(this._startDistance = 0),
(this._initialScale = new a.e(0, 0, 0)),
(this._targetScale = new a.e(0, 0, 0)),
(this._sceneRenderObserver = null),
(this._dragBehaviorA = new Fe({})),
(this._dragBehaviorA.moveAttached = !1),
(this._dragBehaviorB = new Fe({})),
(this._dragBehaviorB.moveAttached = !1);
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return "MultiPointerScale";
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
(e.prototype._getCurrentDistance = function () {
return this._dragBehaviorA.lastDragPosition.subtract(this._dragBehaviorB.lastDragPosition).length();
}),
(e.prototype.attach = function (e) {
var t = this;
(this._ownerNode = e),
this._dragBehaviorA.onDragStartObservable.add(function (n) {
t._dragBehaviorA.dragging &&
t._dragBehaviorB.dragging &&
(t._dragBehaviorA.currentDraggingPointerID == t._dragBehaviorB.currentDraggingPointerID
? t._dragBehaviorA.releaseDrag()
: (t._initialScale.copyFrom(e.scaling), (t._startDistance = t._getCurrentDistance())));
}),
this._dragBehaviorB.onDragStartObservable.add(function (n) {
t._dragBehaviorA.dragging &&
t._dragBehaviorB.dragging &&
(t._dragBehaviorA.currentDraggingPointerID == t._dragBehaviorB.currentDraggingPointerID
? t._dragBehaviorB.releaseDrag()
: (t._initialScale.copyFrom(e.scaling), (t._startDistance = t._getCurrentDistance())));
}),
[this._dragBehaviorA, this._dragBehaviorB].forEach(function (e) {
e.onDragObservable.add(function () {
if (t._dragBehaviorA.dragging && t._dragBehaviorB.dragging) {
var e = t._getCurrentDistance() / t._startDistance;
t._initialScale.scaleToRef(e, t._targetScale);
}
});
}),
e.addBehavior(this._dragBehaviorA),
e.addBehavior(this._dragBehaviorB),
(this._sceneRenderObserver = e.getScene().onBeforeRenderObservable.add(function () {
if (t._dragBehaviorA.dragging && t._dragBehaviorB.dragging) {
var n = t._targetScale.subtract(e.scaling).scaleInPlace(0.1);
n.length() > 0.01 && e.scaling.addInPlace(n);
}
}));
}),
(e.prototype.detach = function () {
var e = this;
this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),
[this._dragBehaviorA, this._dragBehaviorB].forEach(function (t) {
t.onDragStartObservable.clear(), t.onDragObservable.clear(), e._ownerNode.removeBehavior(t);
});
}),
e
);
})(),
ke = n(31),
ze = (function () {
function e() {
(this._sceneRenderObserver = null),
(this._targetPosition = new a.e(0, 0, 0)),
(this._moving = !1),
(this._startingOrientation = new a.b()),
(this.zDragFactor = 3),
(this.rotateDraggedObject = !0),
(this.dragging = !1),
(this.dragDeltaRatio = 0.2),
(this.currentDraggingPointerID = -1),
(this.detachCameraControls = !0),
(this.onDragStartObservable = new o.c()),
(this.onDragEndObservable = new o.c());
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return "SixDofDrag";
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
Object.defineProperty(e.prototype, "_pointerCamera", {
get: function () {
return this._scene.cameraToUseForPointers ? this._scene.cameraToUseForPointers : this._scene.activeCamera;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attach = function (t) {
var n = this;
(this._ownerNode = t), (this._scene = this._ownerNode.getScene()), e._virtualScene || ((e._virtualScene = new ge.a(this._scene.getEngine())), e._virtualScene.detachControl(), this._scene.getEngine().scenes.pop());
var i = null,
r = new a.e(0, 0, 0);
(this._virtualOriginMesh = new ke.a("", e._virtualScene)),
(this._virtualOriginMesh.rotationQuaternion = new a.b()),
(this._virtualDragMesh = new ke.a("", e._virtualScene)),
(this._virtualDragMesh.rotationQuaternion = new a.b());
var o = null;
this._pointerObserver = this._scene.onPointerObservable.add(function (e, t) {
if (e.type == ye.a.POINTERDOWN) {
if (!n.dragging && e.pickInfo && e.pickInfo.hit && e.pickInfo.pickedMesh && e.pickInfo.ray && ((h = e.pickInfo.pickedMesh), n._ownerNode == h || h.isDescendantOf(n._ownerNode))) {
n._pointerCamera && n._pointerCamera.cameraRigMode == De.a.RIG_MODE_NONE && e.pickInfo.ray.origin.copyFrom(n._pointerCamera.globalPosition),
(i = n._ownerNode),
we._RemoveAndStorePivotPoint(i),
r.copyFrom(e.pickInfo.ray.origin),
n._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin),
n._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)),
n._virtualOriginMesh.removeChild(n._virtualDragMesh),
i.computeWorldMatrix(),
n._virtualDragMesh.position.copyFrom(i.absolutePosition),
i.rotationQuaternion || (i.rotationQuaternion = a.b.RotationYawPitchRoll(i.rotation.y, i.rotation.x, i.rotation.z));
var s = i.parent;
i.setParent(null),
n._virtualDragMesh.rotationQuaternion.copyFrom(i.rotationQuaternion),
i.setParent(s),
n._virtualOriginMesh.addChild(n._virtualDragMesh),
n._targetPosition.copyFrom(n._virtualDragMesh.absolutePosition),
(n.dragging = !0),
(n.currentDraggingPointerID = e.event.pointerId),
n.detachCameraControls &&
n._pointerCamera &&
!n._pointerCamera.leftCamera &&
(n._pointerCamera.inputs.attachedElement ? ((o = n._pointerCamera.inputs.attachedElement), n._pointerCamera.detachControl(n._pointerCamera.inputs.attachedElement)) : (o = null)),
we._RestorePivotPoint(i),
n.onDragStartObservable.notifyObservers({});
}
} else if (e.type == ye.a.POINTERUP)
n.currentDraggingPointerID == e.event.pointerId &&
((n.dragging = !1),
(n._moving = !1),
(n.currentDraggingPointerID = -1),
(i = null),
n._virtualOriginMesh.removeChild(n._virtualDragMesh),
n.detachCameraControls && o && n._pointerCamera && !n._pointerCamera.leftCamera && n._pointerCamera.attachControl(o, !0),
n.onDragEndObservable.notifyObservers({}));
else if (e.type == ye.a.POINTERMOVE && n.currentDraggingPointerID == e.event.pointerId && n.dragging && e.pickInfo && e.pickInfo.ray && i) {
var c = n.zDragFactor;
n._pointerCamera && n._pointerCamera.cameraRigMode == De.a.RIG_MODE_NONE && (e.pickInfo.ray.origin.copyFrom(n._pointerCamera.globalPosition), (c = 0));
var l = e.pickInfo.ray.origin.subtract(r);
r.copyFrom(e.pickInfo.ray.origin);
var u = -a.e.Dot(l, e.pickInfo.ray.direction);
n._virtualOriginMesh.addChild(n._virtualDragMesh),
(n._virtualDragMesh.position.z -= n._virtualDragMesh.position.z < 1 ? u * n.zDragFactor : u * c * n._virtualDragMesh.position.z),
n._virtualDragMesh.position.z < 0 && (n._virtualDragMesh.position.z = 0),
n._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin),
n._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)),
n._virtualOriginMesh.removeChild(n._virtualDragMesh),
n._targetPosition.copyFrom(n._virtualDragMesh.absolutePosition),
i.parent && a.e.TransformCoordinatesToRef(n._targetPosition, a.a.Invert(i.parent.getWorldMatrix()), n._targetPosition),
n._moving || n._startingOrientation.copyFrom(n._virtualDragMesh.rotationQuaternion),
(n._moving = !0);
}
var h;
});
var s = new a.b();
this._sceneRenderObserver = t.getScene().onBeforeRenderObservable.add(function () {
if (n.dragging && n._moving && i) {
if ((we._RemoveAndStorePivotPoint(i), i.position.addInPlace(n._targetPosition.subtract(i.position).scale(n.dragDeltaRatio)), n.rotateDraggedObject)) {
s.copyFrom(n._startingOrientation),
(s.x = -s.x),
(s.y = -s.y),
(s.z = -s.z),
n._virtualDragMesh.rotationQuaternion.multiplyToRef(s, s),
a.b.RotationYawPitchRollToRef(s.toEulerAngles("xyz").y, 0, 0, s),
s.multiplyToRef(n._startingOrientation, s);
var e = i.parent;
(!e || (e.scaling && !e.scaling.isNonUniformWithinEpsilon(0.001))) && (i.setParent(null), a.b.SlerpToRef(i.rotationQuaternion, s, n.dragDeltaRatio, i.rotationQuaternion), i.setParent(e));
}
we._RestorePivotPoint(i);
}
});
}),
(e.prototype.detach = function () {
this._scene && this._scene.onPointerObservable.remove(this._pointerObserver),
this._ownerNode && this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),
this._virtualOriginMesh && this._virtualOriginMesh.dispose(),
this._virtualDragMesh && this._virtualDragMesh.dispose(),
this.onDragEndObservable.clear(),
this.onDragStartObservable.clear();
}),
e
);
})(),
je = n(110),
Be = n(23),
Ve = (function () {
function e(e, t, n) {
if (
((this.targetPosition = a.e.Zero()),
(this.poleTargetPosition = a.e.Zero()),
(this.poleTargetLocalOffset = a.e.Zero()),
(this.poleAngle = 0),
(this.slerpAmount = 1),
(this._bone1Quat = a.b.Identity()),
(this._bone1Mat = a.a.Identity()),
(this._bone2Ang = Math.PI),
(this._maxAngle = Math.PI),
(this._rightHandedSystem = !1),
(this._bendAxis = a.e.Right()),
(this._slerping = !1),
(this._adjustRoll = 0),
(this._bone2 = t),
(this._bone1 = t.getParent()),
this._bone1)
) {
this.mesh = e;
var i = t.getPosition();
if (
(t.getAbsoluteTransform().determinant() > 0 &&
((this._rightHandedSystem = !0), (this._bendAxis.x = 0), (this._bendAxis.y = 0), (this._bendAxis.z = -1), i.x > i.y && i.x > i.z && ((this._adjustRoll = 0.5 * Math.PI), (this._bendAxis.z = 1))),
this._bone1.length)
) {
var r = this._bone1.getScale(),
o = this._bone2.getScale();
(this._bone1Length = this._bone1.length * r.y * this.mesh.scaling.y), (this._bone2Length = this._bone2.length * o.y * this.mesh.scaling.y);
} else if (this._bone1.children[0]) {
e.computeWorldMatrix(!0);
var s = this._bone2.children[0].getAbsolutePosition(e),
c = this._bone2.getAbsolutePosition(e),
l = this._bone1.getAbsolutePosition(e);
(this._bone1Length = a.e.Distance(s, c)), (this._bone2Length = a.e.Distance(c, l));
}
this._bone1.getRotationMatrixToRef(Be.b.WORLD, e, this._bone1Mat),
(this.maxAngle = Math.PI),
n &&
(n.targetMesh && ((this.targetMesh = n.targetMesh), this.targetMesh.computeWorldMatrix(!0)),
n.poleTargetMesh
? ((this.poleTargetMesh = n.poleTargetMesh), this.poleTargetMesh.computeWorldMatrix(!0))
: n.poleTargetBone
? (this.poleTargetBone = n.poleTargetBone)
: this._bone1.getParent() && (this.poleTargetBone = this._bone1.getParent()),
n.poleTargetLocalOffset && this.poleTargetLocalOffset.copyFrom(n.poleTargetLocalOffset),
n.poleAngle && (this.poleAngle = n.poleAngle),
n.bendAxis && this._bendAxis.copyFrom(n.bendAxis),
n.maxAngle && (this.maxAngle = n.maxAngle),
n.slerpAmount && (this.slerpAmount = n.slerpAmount));
}
}
return (
Object.defineProperty(e.prototype, "maxAngle", {
get: function () {
return this._maxAngle;
},
set: function (e) {
this._setMaxAngle(e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._setMaxAngle = function (e) {
e < 0 && (e = 0), (e > Math.PI || null == e) && (e = Math.PI), (this._maxAngle = e);
var t = this._bone1Length,
n = this._bone2Length;
this._maxReach = Math.sqrt(t * t + n * n - 2 * t * n * Math.cos(e));
}),
(e.prototype.update = function () {
var t = this._bone1;
if (t) {
var n = this.targetPosition,
i = this.poleTargetPosition,
r = e._tmpMats[0],
o = e._tmpMats[1];
this.targetMesh && n.copyFrom(this.targetMesh.getAbsolutePosition()),
this.poleTargetBone
? this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset, this.mesh, i)
: this.poleTargetMesh && a.e.TransformCoordinatesToRef(this.poleTargetLocalOffset, this.poleTargetMesh.getWorldMatrix(), i);
var s = e._tmpVecs[0],
c = e._tmpVecs[1],
l = e._tmpVecs[2],
u = e._tmpVecs[3],
h = e._tmpVecs[4],
d = e._tmpQuat;
t.getAbsolutePositionToRef(this.mesh, s),
i.subtractToRef(s, h),
0 == h.x && 0 == h.y && 0 == h.z ? (h.y = 1) : h.normalize(),
n.subtractToRef(s, u),
u.normalize(),
a.e.CrossToRef(u, h, c),
c.normalize(),
a.e.CrossToRef(u, c, l),
l.normalize(),
a.a.FromXYZAxesToRef(l, u, c, r);
var p = this._bone1Length,
f = this._bone2Length,
m = a.e.Distance(s, n);
this._maxReach > 0 && (m = Math.min(this._maxReach, m));
var g = (f * f + m * m - p * p) / (2 * f * m),
b = (m * m + p * p - f * f) / (2 * m * p);
g > 1 && (g = 1), b > 1 && (b = 1), g < -1 && (g = -1), b < -1 && (b = -1);
var _ = Math.acos(g),
v = Math.acos(b),
y = -_ - v;
if (this._rightHandedSystem) a.a.RotationYawPitchRollToRef(0, 0, this._adjustRoll, o), o.multiplyToRef(r, r), a.a.RotationAxisToRef(this._bendAxis, v, o), o.multiplyToRef(r, r);
else {
var C = e._tmpVecs[5];
C.copyFrom(this._bendAxis), (C.x *= -1), a.a.RotationAxisToRef(C, -v, o), o.multiplyToRef(r, r);
}
this.poleAngle && (a.a.RotationAxisToRef(u, this.poleAngle, o), r.multiplyToRef(o, r)),
this._bone1 &&
(this.slerpAmount < 1
? (this._slerping || a.b.FromRotationMatrixToRef(this._bone1Mat, this._bone1Quat),
a.b.FromRotationMatrixToRef(r, d),
a.b.SlerpToRef(this._bone1Quat, d, this.slerpAmount, this._bone1Quat),
(y = this._bone2Ang * (1 - this.slerpAmount) + y * this.slerpAmount),
this._bone1.setRotationQuaternion(this._bone1Quat, Be.b.WORLD, this.mesh),
(this._slerping = !0))
: (this._bone1.setRotationMatrix(r, Be.b.WORLD, this.mesh), this._bone1Mat.copyFrom(r), (this._slerping = !1))),
this._bone2.setAxisAngle(this._bendAxis, y, Be.b.LOCAL),
(this._bone2Ang = y);
}
}),
(e._tmpVecs = [a.e.Zero(), a.e.Zero(), a.e.Zero(), a.e.Zero(), a.e.Zero(), a.e.Zero()]),
(e._tmpQuat = a.b.Identity()),
(e._tmpMats = [a.a.Identity(), a.a.Identity()]),
e
);
})(),
Ge = (function () {
function e(e, t, n, i) {
if (
((this.upAxis = a.e.Up()),
(this.upAxisSpace = Be.b.LOCAL),
(this.adjustYaw = 0),
(this.adjustPitch = 0),
(this.adjustRoll = 0),
(this.slerpAmount = 1),
(this._boneQuat = a.b.Identity()),
(this._slerping = !1),
(this._firstFrameSkipped = !1),
(this._fowardAxis = a.e.Forward()),
(this.mesh = e),
(this.bone = t),
(this.target = n),
i &&
(i.adjustYaw && (this.adjustYaw = i.adjustYaw),
i.adjustPitch && (this.adjustPitch = i.adjustPitch),
i.adjustRoll && (this.adjustRoll = i.adjustRoll),
null != i.maxYaw ? (this.maxYaw = i.maxYaw) : (this.maxYaw = Math.PI),
null != i.minYaw ? (this.minYaw = i.minYaw) : (this.minYaw = -Math.PI),
null != i.maxPitch ? (this.maxPitch = i.maxPitch) : (this.maxPitch = Math.PI),
null != i.minPitch ? (this.minPitch = i.minPitch) : (this.minPitch = -Math.PI),
null != i.slerpAmount && (this.slerpAmount = i.slerpAmount),
null != i.upAxis && (this.upAxis = i.upAxis),
null != i.upAxisSpace && (this.upAxisSpace = i.upAxisSpace),
null != i.yawAxis || null != i.pitchAxis))
) {
var r = Be.a.Y,
o = Be.a.X;
null != i.yawAxis && (r = i.yawAxis.clone()).normalize(), null != i.pitchAxis && (o = i.pitchAxis.clone()).normalize();
var s = a.e.Cross(o, r);
(this._transformYawPitch = a.a.Identity()), a.a.FromXYZAxesToRef(o, r, s, this._transformYawPitch), (this._transformYawPitchInv = this._transformYawPitch.clone()), this._transformYawPitch.invert();
}
t.getParent() || this.upAxisSpace != Be.b.BONE || (this.upAxisSpace = Be.b.LOCAL);
}
return (
Object.defineProperty(e.prototype, "minYaw", {
get: function () {
return this._minYaw;
},
set: function (e) {
(this._minYaw = e),
(this._minYawSin = Math.sin(e)),
(this._minYawCos = Math.cos(e)),
null != this._maxYaw && ((this._midYawConstraint = 0.5 * this._getAngleDiff(this._minYaw, this._maxYaw) + this._minYaw), (this._yawRange = this._maxYaw - this._minYaw));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "maxYaw", {
get: function () {
return this._maxYaw;
},
set: function (e) {
(this._maxYaw = e),
(this._maxYawSin = Math.sin(e)),
(this._maxYawCos = Math.cos(e)),
null != this._minYaw && ((this._midYawConstraint = 0.5 * this._getAngleDiff(this._minYaw, this._maxYaw) + this._minYaw), (this._yawRange = this._maxYaw - this._minYaw));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "minPitch", {
get: function () {
return this._minPitch;
},
set: function (e) {
(this._minPitch = e), (this._minPitchTan = Math.tan(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "maxPitch", {
get: function () {
return this._maxPitch;
},
set: function (e) {
(this._maxPitch = e), (this._maxPitchTan = Math.tan(e));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.update = function () {
if (this.slerpAmount < 1 && !this._firstFrameSkipped) this._firstFrameSkipped = !0;
else {
var t = this.bone,
n = e._tmpVecs[0];
t.getAbsolutePositionToRef(this.mesh, n);
var i = this.target,
r = e._tmpMats[0],
o = e._tmpMats[1],
s = this.mesh,
c = t.getParent(),
l = e._tmpVecs[1];
l.copyFrom(this.upAxis),
this.upAxisSpace == Be.b.BONE && c
? (this._transformYawPitch && a.e.TransformCoordinatesToRef(l, this._transformYawPitchInv, l), c.getDirectionToRef(l, this.mesh, l))
: this.upAxisSpace == Be.b.LOCAL && (s.getDirectionToRef(l, l), (1 == s.scaling.x && 1 == s.scaling.y && 1 == s.scaling.z) || l.normalize());
var u = !1,
h = !1;
if (((this._maxYaw == Math.PI && this._minYaw == -Math.PI) || (u = !0), (this._maxPitch == Math.PI && this._minPitch == -Math.PI) || (h = !0), u || h)) {
var d = e._tmpMats[2],
p = e._tmpMats[3];
if (this.upAxisSpace == Be.b.BONE && 1 == l.y && c) c.getRotationMatrixToRef(Be.b.WORLD, this.mesh, d);
else if (this.upAxisSpace != Be.b.LOCAL || 1 != l.y || c) {
(m = e._tmpVecs[2]).copyFrom(this._fowardAxis),
this._transformYawPitch && a.e.TransformCoordinatesToRef(m, this._transformYawPitchInv, m),
c ? c.getDirectionToRef(m, this.mesh, m) : s.getDirectionToRef(m, m);
var f = a.e.Cross(l, m);
f.normalize();
var m = a.e.Cross(f, l);
a.a.FromXYZAxesToRef(f, l, m, d);
} else d.copyFrom(s.getWorldMatrix());
d.invertToRef(p);
var g = null;
if (h) {
var b = e._tmpVecs[3];
i.subtractToRef(n, b), a.e.TransformCoordinatesToRef(b, p, b), (g = Math.sqrt(b.x * b.x + b.z * b.z));
var _ = Math.atan2(b.y, g),
v = _;
_ > this._maxPitch ? ((b.y = this._maxPitchTan * g), (v = this._maxPitch)) : _ < this._minPitch && ((b.y = this._minPitchTan * g), (v = this._minPitch)),
_ != v && (a.e.TransformCoordinatesToRef(b, d, b), b.addInPlace(n), (i = b));
}
if (u) {
b = e._tmpVecs[4];
i.subtractToRef(n, b), a.e.TransformCoordinatesToRef(b, p, b);
var y = Math.atan2(b.x, b.z),
C = y;
if (
((y > this._maxYaw || y < this._minYaw) &&
(null == g && (g = Math.sqrt(b.x * b.x + b.z * b.z)),
this._yawRange > Math.PI
? this._isAngleBetween(y, this._maxYaw, this._midYawConstraint)
? ((b.z = this._maxYawCos * g), (b.x = this._maxYawSin * g), (C = this._maxYaw))
: this._isAngleBetween(y, this._midYawConstraint, this._minYaw) && ((b.z = this._minYawCos * g), (b.x = this._minYawSin * g), (C = this._minYaw))
: y > this._maxYaw
? ((b.z = this._maxYawCos * g), (b.x = this._maxYawSin * g), (C = this._maxYaw))
: y < this._minYaw && ((b.z = this._minYawCos * g), (b.x = this._minYawSin * g), (C = this._minYaw))),
this._slerping && this._yawRange > Math.PI)
) {
var P = e._tmpVecs[8];
P.copyFrom(Be.a.Z), this._transformYawPitch && a.e.TransformCoordinatesToRef(P, this._transformYawPitchInv, P);
var x = e._tmpMats[4];
this._boneQuat.toRotationMatrix(x), this.mesh.getWorldMatrix().multiplyToRef(x, x), a.e.TransformCoordinatesToRef(P, x, P), a.e.TransformCoordinatesToRef(P, p, P);
var T = Math.atan2(P.x, P.z);
if (this._getAngleBetween(T, y) > this._getAngleBetween(T, this._midYawConstraint)) {
null == g && (g = Math.sqrt(b.x * b.x + b.z * b.z));
var S = this._getAngleBetween(T, this._maxYaw);
this._getAngleBetween(T, this._minYaw) < S
? ((C = T + 0.75 * Math.PI), (b.z = Math.cos(C) * g), (b.x = Math.sin(C) * g))
: ((C = T - 0.75 * Math.PI), (b.z = Math.cos(C) * g), (b.x = Math.sin(C) * g));
}
}
y != C && (a.e.TransformCoordinatesToRef(b, d, b), b.addInPlace(n), (i = b));
}
}
var O = e._tmpVecs[5],
E = e._tmpVecs[6],
M = e._tmpVecs[7],
A = e._tmpQuat;
i.subtractToRef(n, O),
O.normalize(),
a.e.CrossToRef(l, O, E),
E.normalize(),
a.e.CrossToRef(O, E, M),
M.normalize(),
a.a.FromXYZAxesToRef(E, M, O, r),
(0 === E.x && 0 === E.y && 0 === E.z) ||
(0 === M.x && 0 === M.y && 0 === M.z) ||
(0 === O.x && 0 === O.y && 0 === O.z) ||
((this.adjustYaw || this.adjustPitch || this.adjustRoll) && (a.a.RotationYawPitchRollToRef(this.adjustYaw, this.adjustPitch, this.adjustRoll, o), o.multiplyToRef(r, r)),
this.slerpAmount < 1
? (this._slerping || this.bone.getRotationQuaternionToRef(Be.b.WORLD, this.mesh, this._boneQuat),
this._transformYawPitch && this._transformYawPitch.multiplyToRef(r, r),
a.b.FromRotationMatrixToRef(r, A),
a.b.SlerpToRef(this._boneQuat, A, this.slerpAmount, this._boneQuat),
this.bone.setRotationQuaternion(this._boneQuat, Be.b.WORLD, this.mesh),
(this._slerping = !0))
: (this._transformYawPitch && this._transformYawPitch.multiplyToRef(r, r), this.bone.setRotationMatrix(r, Be.b.WORLD, this.mesh), (this._slerping = !1)));
}
}),
(e.prototype._getAngleDiff = function (e, t) {
var n = t - e;
return (n %= 2 * Math.PI) > Math.PI ? (n -= 2 * Math.PI) : n < -Math.PI && (n += 2 * Math.PI), n;
}),
(e.prototype._getAngleBetween = function (e, t) {
var n = 0;
return (n = (e = (e %= 2 * Math.PI) < 0 ? e + 2 * Math.PI : e) < (t = (t %= 2 * Math.PI) < 0 ? t + 2 * Math.PI : t) ? t - e : e - t) > Math.PI && (n = 2 * Math.PI - n), n;
}),
(e.prototype._isAngleBetween = function (e, t, n) {
if (((e = (e %= 2 * Math.PI) < 0 ? e + 2 * Math.PI : e), (t = (t %= 2 * Math.PI) < 0 ? t + 2 * Math.PI : t) < (n = (n %= 2 * Math.PI) < 0 ? n + 2 * Math.PI : n))) {
if (e > t && e < n) return !0;
} else if (e > n && e < t) return !0;
return !1;
}),
(e._tmpVecs = Me.a.BuildArray(10, a.e.Zero)),
(e._tmpQuat = a.b.Identity()),
(e._tmpMats = Me.a.BuildArray(5, a.a.Identity)),
e
);
})(),
Ue = n(129),
He = n(3),
We = n(42),
Xe = function (e, t) {
(this.x = e), (this.y = t);
},
Ye = (function () {
function e(t, n, i, r, o, a, s) {
void 0 === r && (r = 0),
void 0 === o && (o = 1),
void 0 === a && (a = 2),
void 0 === s && (s = 3),
(this.id = t),
(this.index = n),
(this.browserGamepad = i),
(this._leftStick = { x: 0, y: 0 }),
(this._rightStick = { x: 0, y: 0 }),
(this._isConnected = !0),
(this._invertLeftStickY = !1),
(this.type = e.GAMEPAD),
(this._leftStickAxisX = r),
(this._leftStickAxisY = o),
(this._rightStickAxisX = a),
(this._rightStickAxisY = s),
this.browserGamepad.axes.length >= 2 && (this._leftStick = { x: this.browserGamepad.axes[this._leftStickAxisX], y: this.browserGamepad.axes[this._leftStickAxisY] }),
this.browserGamepad.axes.length >= 4 && (this._rightStick = { x: this.browserGamepad.axes[this._rightStickAxisX], y: this.browserGamepad.axes[this._rightStickAxisY] });
}
return (
Object.defineProperty(e.prototype, "isConnected", {
get: function () {
return this._isConnected;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.onleftstickchanged = function (e) {
this._onleftstickchanged = e;
}),
(e.prototype.onrightstickchanged = function (e) {
this._onrightstickchanged = e;
}),
Object.defineProperty(e.prototype, "leftStick", {
get: function () {
return this._leftStick;
},
set: function (e) {
!this._onleftstickchanged || (this._leftStick.x === e.x && this._leftStick.y === e.y) || this._onleftstickchanged(e), (this._leftStick = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rightStick", {
get: function () {
return this._rightStick;
},
set: function (e) {
!this._onrightstickchanged || (this._rightStick.x === e.x && this._rightStick.y === e.y) || this._onrightstickchanged(e), (this._rightStick = e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.update = function () {
this._leftStick && ((this.leftStick = { x: this.browserGamepad.axes[this._leftStickAxisX], y: this.browserGamepad.axes[this._leftStickAxisY] }), this._invertLeftStickY && (this.leftStick.y *= -1)),
this._rightStick && (this.rightStick = { x: this.browserGamepad.axes[this._rightStickAxisX], y: this.browserGamepad.axes[this._rightStickAxisY] });
}),
(e.prototype.dispose = function () {}),
(e.GAMEPAD = 0),
(e.GENERIC = 1),
(e.XBOX = 2),
(e.POSE_ENABLED = 3),
(e.DUALSHOCK = 4),
e
);
})(),
Ke = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n, i) || this;
return (r.onButtonDownObservable = new o.c()), (r.onButtonUpObservable = new o.c()), (r.type = Ye.GENERIC), (r._buttons = new Array(i.buttons.length)), r;
}
return (
Object(h.d)(t, e),
(t.prototype.onbuttondown = function (e) {
this._onbuttondown = e;
}),
(t.prototype.onbuttonup = function (e) {
this._onbuttonup = e;
}),
(t.prototype._setButtonValue = function (e, t, n) {
return (
e !== t &&
(1 === e && (this._onbuttondown && this._onbuttondown(n), this.onButtonDownObservable.notifyObservers(n)), 0 === e && (this._onbuttonup && this._onbuttonup(n), this.onButtonUpObservable.notifyObservers(n))),
e
);
}),
(t.prototype.update = function () {
e.prototype.update.call(this);
for (var t = 0; t < this._buttons.length; t++) this._buttons[t] = this._setButtonValue(this.browserGamepad.buttons[t].value, this._buttons[t], t);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear();
}),
t
);
})(Ye),
Ze = (function () {
function e() {
(this.gamepadRotationSensibility = 80), (this.gamepadMoveSensibility = 40), (this._yAxisScale = 1);
}
return (
Object.defineProperty(e.prototype, "invertYAxis", {
get: function () {
return 1 !== this._yAxisScale;
},
set: function (e) {
this._yAxisScale = e ? -1 : 1;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attachControl = function (e, t) {
var n = this,
i = this.camera.getScene().gamepadManager;
(this._onGamepadConnectedObserver = i.onGamepadConnectedObservable.add(function (e) {
e.type !== Ye.POSE_ENABLED && ((n.gamepad && e.type !== Ye.XBOX) || (n.gamepad = e));
})),
(this._onGamepadDisconnectedObserver = i.onGamepadDisconnectedObservable.add(function (e) {
n.gamepad === e && (n.gamepad = null);
})),
(this.gamepad = i.getGamepadByType(Ye.XBOX));
}),
(e.prototype.detachControl = function (e) {
this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),
this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),
(this.gamepad = null);
}),
(e.prototype.checkInputs = function () {
if (this.gamepad) {
var e = this.camera,
t = this.gamepad.rightStick;
if (t) {
if (0 != t.x) {
var n = t.x / this.gamepadRotationSensibility;
0 != n && Math.abs(n) > 0.005 && (e.inertialAlphaOffset += n);
}
if (0 != t.y) {
var i = (t.y / this.gamepadRotationSensibility) * this._yAxisScale;
0 != i && Math.abs(i) > 0.005 && (e.inertialBetaOffset += i);
}
}
var r = this.gamepad.leftStick;
if (r && 0 != r.y) {
var o = r.y / this.gamepadMoveSensibility;
0 != o && Math.abs(o) > 0.005 && (this.camera.inertialRadiusOffset -= o);
}
}
}),
(e.prototype.getClassName = function () {
return "ArcRotateCameraGamepadInput";
}),
(e.prototype.getSimpleName = function () {
return "gamepad";
}),
Object(h.c)([Object(He.c)()], e.prototype, "gamepadRotationSensibility", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "gamepadMoveSensibility", void 0),
e
);
})();
We.a.ArcRotateCameraGamepadInput = Ze;
var qe = n(89),
Qe = (function () {
function e() {
(this.keysUp = [38]),
(this.keysDown = [40]),
(this.keysLeft = [37]),
(this.keysRight = [39]),
(this.keysReset = [220]),
(this.panningSensibility = 50),
(this.zoomingSensibility = 25),
(this.useAltToZoom = !0),
(this.angularSpeed = 0.01),
(this._keys = new Array());
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
this._onCanvasBlurObserver ||
((this._scene = this.camera.getScene()),
(this._engine = this._scene.getEngine()),
(this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () {
n._keys = [];
})),
(this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) {
var i,
r = e.event;
r.metaKey ||
(e.type === qe.a.KEYDOWN
? ((n._ctrlPressed = r.ctrlKey),
(n._altPressed = r.altKey),
(-1 !== n.keysUp.indexOf(r.keyCode) ||
-1 !== n.keysDown.indexOf(r.keyCode) ||
-1 !== n.keysLeft.indexOf(r.keyCode) ||
-1 !== n.keysRight.indexOf(r.keyCode) ||
-1 !== n.keysReset.indexOf(r.keyCode)) &&
(-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), r.preventDefault && (t || r.preventDefault())))
: (-1 === n.keysUp.indexOf(r.keyCode) &&
-1 === n.keysDown.indexOf(r.keyCode) &&
-1 === n.keysLeft.indexOf(r.keyCode) &&
-1 === n.keysRight.indexOf(r.keyCode) &&
-1 === n.keysReset.indexOf(r.keyCode)) ||
((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), r.preventDefault && (t || r.preventDefault())));
})));
}),
(e.prototype.detachControl = function (e) {
this._scene &&
(this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),
this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),
(this._onKeyboardObserver = null),
(this._onCanvasBlurObserver = null)),
(this._keys = []);
}),
(e.prototype.checkInputs = function () {
if (this._onKeyboardObserver)
for (var e = this.camera, t = 0; t < this._keys.length; t++) {
var n = this._keys[t];
-1 !== this.keysLeft.indexOf(n)
? this._ctrlPressed && this.camera._useCtrlForPanning
? (e.inertialPanningX -= 1 / this.panningSensibility)
: (e.inertialAlphaOffset -= this.angularSpeed)
: -1 !== this.keysUp.indexOf(n)
? this._ctrlPressed && this.camera._useCtrlForPanning
? (e.inertialPanningY += 1 / this.panningSensibility)
: this._altPressed && this.useAltToZoom
? (e.inertialRadiusOffset += 1 / this.zoomingSensibility)
: (e.inertialBetaOffset -= this.angularSpeed)
: -1 !== this.keysRight.indexOf(n)
? this._ctrlPressed && this.camera._useCtrlForPanning
? (e.inertialPanningX += 1 / this.panningSensibility)
: (e.inertialAlphaOffset += this.angularSpeed)
: -1 !== this.keysDown.indexOf(n)
? this._ctrlPressed && this.camera._useCtrlForPanning
? (e.inertialPanningY -= 1 / this.panningSensibility)
: this._altPressed && this.useAltToZoom
? (e.inertialRadiusOffset -= 1 / this.zoomingSensibility)
: (e.inertialBetaOffset += this.angularSpeed)
: -1 !== this.keysReset.indexOf(n) && e.useInputToRestoreState && e.restoreState();
}
}),
(e.prototype.getClassName = function () {
return "ArcRotateCameraKeyboardMoveInput";
}),
(e.prototype.getSimpleName = function () {
return "keyboard";
}),
Object(h.c)([Object(He.c)()], e.prototype, "keysUp", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysDown", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysLeft", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRight", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysReset", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "panningSensibility", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "zoomingSensibility", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "useAltToZoom", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "angularSpeed", void 0),
e
);
})();
We.a.ArcRotateCameraKeyboardMoveInput = Qe;
var Je = (function () {
function e() {
(this.wheelPrecision = 3), (this.wheelDeltaPercentage = 0);
}
return (
(e.prototype.computeDeltaFromMouseWheelLegacyEvent = function (e, t) {
var n = 0.01 * e * this.wheelDeltaPercentage * t;
return e > 0 ? n / (1 + this.wheelDeltaPercentage) : n * (1 + this.wheelDeltaPercentage);
}),
(e.prototype.attachControl = function (e, t) {
var n = this;
(this._wheel = function (e, i) {
if (e.type === ye.a.POINTERWHEEL) {
var r = e.event,
o = 0,
a = r,
s = 0;
if (((s = a.wheelDelta ? a.wheelDelta : 60 * -(r.deltaY || r.detail)), n.wheelDeltaPercentage)) {
if ((o = n.computeDeltaFromMouseWheelLegacyEvent(s, n.camera.radius)) > 0) {
for (var c = n.camera.radius, l = n.camera.inertialRadiusOffset + o, u = 0; u < 20 && Math.abs(l) > 0.001; u++) (c -= l), (l *= n.camera.inertia);
(c = z.a.Clamp(c, 0, Number.MAX_VALUE)), (o = n.computeDeltaFromMouseWheelLegacyEvent(s, c));
}
} else o = s / (40 * n.wheelPrecision);
o && (n.camera.inertialRadiusOffset += o), r.preventDefault && (t || r.preventDefault());
}
}),
(this._observer = this.camera.getScene().onPointerObservable.add(this._wheel, ye.a.POINTERWHEEL));
}),
(e.prototype.detachControl = function (e) {
this._observer && e && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null), (this._wheel = null));
}),
(e.prototype.getClassName = function () {
return "ArcRotateCameraMouseWheelInput";
}),
(e.prototype.getSimpleName = function () {
return "mousewheel";
}),
Object(h.c)([Object(He.c)()], e.prototype, "wheelPrecision", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "wheelDeltaPercentage", void 0),
e
);
})();
We.a.ArcRotateCameraMouseWheelInput = Je;
var $e = n(12),
et = (function () {
function e() {
this.buttons = [0, 1, 2];
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this,
i = this.camera.getEngine(),
r = 0,
o = null;
(this.pointA = null),
(this.pointB = null),
(this._altKey = !1),
(this._ctrlKey = !1),
(this._metaKey = !1),
(this._shiftKey = !1),
(this._buttonsPressed = 0),
(this._pointerInput = function (a, s) {
var c = a.event,
l = "touch" === c.pointerType;
if (!i.isInVRExclusivePointerMode && (a.type === ye.a.POINTERMOVE || -1 !== n.buttons.indexOf(c.button))) {
var u = c.srcElement || c.target;
if (((n._altKey = c.altKey), (n._ctrlKey = c.ctrlKey), (n._metaKey = c.metaKey), (n._shiftKey = c.shiftKey), (n._buttonsPressed = c.buttons), i.isPointerLock)) {
var h = c.movementX || c.mozMovementX || c.webkitMovementX || c.msMovementX || 0,
d = c.movementY || c.mozMovementY || c.webkitMovementY || c.msMovementY || 0;
n.onTouch(null, h, d), (n.pointA = null), (n.pointB = null);
} else if (a.type === ye.a.POINTERDOWN && u) {
try {
u.setPointerCapture(c.pointerId);
} catch (e) {}
null === n.pointA
? (n.pointA = { x: c.clientX, y: c.clientY, pointerId: c.pointerId, type: c.pointerType })
: null === n.pointB && (n.pointB = { x: c.clientX, y: c.clientY, pointerId: c.pointerId, type: c.pointerType }),
n.onButtonDown(c),
t || (c.preventDefault(), e.focus());
} else if (a.type === ye.a.POINTERDOUBLETAP) n.onDoubleTap(c.pointerType);
else if (a.type === ye.a.POINTERUP && u) {
try {
u.releasePointerCapture(c.pointerId);
} catch (e) {}
l || (n.pointB = null),
i._badOS
? (n.pointA = n.pointB = null)
: n.pointB && n.pointA && n.pointA.pointerId == c.pointerId
? ((n.pointA = n.pointB), (n.pointB = null))
: n.pointA && n.pointB && n.pointB.pointerId == c.pointerId
? (n.pointB = null)
: (n.pointA = n.pointB = null),
(0 !== r || o) && (n.onMultiTouch(n.pointA, n.pointB, r, 0, o, null), (r = 0), (o = null)),
n.onButtonUp(c),
t || c.preventDefault();
} else if (a.type === ye.a.POINTERMOVE)
if ((t || c.preventDefault(), n.pointA && null === n.pointB)) {
(h = c.clientX - n.pointA.x), (d = c.clientY - n.pointA.y);
n.onTouch(n.pointA, h, d), (n.pointA.x = c.clientX), (n.pointA.y = c.clientY);
} else if (n.pointA && n.pointB) {
var p = n.pointA.pointerId === c.pointerId ? n.pointA : n.pointB;
(p.x = c.clientX), (p.y = c.clientY);
var f = n.pointA.x - n.pointB.x,
m = n.pointA.y - n.pointB.y,
g = f * f + m * m,
b = { x: (n.pointA.x + n.pointB.x) / 2, y: (n.pointA.y + n.pointB.y) / 2, pointerId: c.pointerId, type: a.type };
n.onMultiTouch(n.pointA, n.pointB, r, g, o, b), (o = b), (r = g);
}
}
}),
(this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, ye.a.POINTERDOWN | ye.a.POINTERUP | ye.a.POINTERMOVE)),
(this._onLostFocus = function () {
(n.pointA = n.pointB = null), (r = 0), (o = null), n.onLostFocus();
}),
e.addEventListener("contextmenu", this.onContextMenu.bind(this), !1);
var a = this.camera.getScene().getEngine().getHostWindow();
a && $e.b.RegisterTopRootEvents(a, [{ name: "blur", handler: this._onLostFocus }]);
}),
(e.prototype.detachControl = function (e) {
if (this._onLostFocus) {
var t = this.camera.getScene().getEngine().getHostWindow();
t && $e.b.UnregisterTopRootEvents(t, [{ name: "blur", handler: this._onLostFocus }]);
}
e &&
this._observer &&
(this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null), this.onContextMenu && e.removeEventListener("contextmenu", this.onContextMenu), (this._onLostFocus = null)),
(this._altKey = !1),
(this._ctrlKey = !1),
(this._metaKey = !1),
(this._shiftKey = !1),
(this._buttonsPressed = 0);
}),
(e.prototype.getClassName = function () {
return "BaseCameraPointersInput";
}),
(e.prototype.getSimpleName = function () {
return "pointers";
}),
(e.prototype.onDoubleTap = function (e) {}),
(e.prototype.onTouch = function (e, t, n) {}),
(e.prototype.onMultiTouch = function (e, t, n, i, r, o) {}),
(e.prototype.onContextMenu = function (e) {
e.preventDefault();
}),
(e.prototype.onButtonDown = function (e) {}),
(e.prototype.onButtonUp = function (e) {}),
(e.prototype.onLostFocus = function () {}),
Object(h.c)([Object(He.c)()], e.prototype, "buttons", void 0),
e
);
})(),
tt = (function (e) {
function t() {
var t = (null !== e && e.apply(this, arguments)) || this;
return (
(t.buttons = [0, 1, 2]),
(t.angularSensibilityX = 1e3),
(t.angularSensibilityY = 1e3),
(t.pinchPrecision = 12),
(t.pinchDeltaPercentage = 0),
(t.useNaturalPinchZoom = !1),
(t.panningSensibility = 1e3),
(t.multiTouchPanning = !0),
(t.multiTouchPanAndZoom = !0),
(t.pinchInwards = !0),
(t._isPanClick = !1),
(t._twoFingerActivityCount = 0),
(t._isPinching = !1),
t
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ArcRotateCameraPointersInput";
}),
(t.prototype.onTouch = function (e, t, n) {
0 !== this.panningSensibility && ((this._ctrlKey && this.camera._useCtrlForPanning) || this._isPanClick)
? ((this.camera.inertialPanningX += -t / this.panningSensibility), (this.camera.inertialPanningY += n / this.panningSensibility))
: ((this.camera.inertialAlphaOffset -= t / this.angularSensibilityX), (this.camera.inertialBetaOffset -= n / this.angularSensibilityY));
}),
(t.prototype.onDoubleTap = function (e) {
this.camera.useInputToRestoreState && this.camera.restoreState();
}),
(t.prototype.onMultiTouch = function (e, t, n, i, r, o) {
if (!((0 === n && null === r) || (0 === i && null === o))) {
var a = this.pinchInwards ? 1 : -1;
if (this.multiTouchPanAndZoom) {
if (
(this.useNaturalPinchZoom
? (this.camera.radius = (this.camera.radius * Math.sqrt(n)) / Math.sqrt(i))
: this.pinchDeltaPercentage
? (this.camera.inertialRadiusOffset += 0.001 * (i - n) * this.camera.radius * this.pinchDeltaPercentage)
: (this.camera.inertialRadiusOffset += (i - n) / ((this.pinchPrecision * a * (this.angularSensibilityX + this.angularSensibilityY)) / 2)),
0 !== this.panningSensibility && r && o)
) {
var s = o.x - r.x,
c = o.y - r.y;
(this.camera.inertialPanningX += -s / this.panningSensibility), (this.camera.inertialPanningY += c / this.panningSensibility);
}
} else {
this._twoFingerActivityCount++;
var l = Math.sqrt(n),
u = Math.sqrt(i);
if (this._isPinching || (this._twoFingerActivityCount < 20 && Math.abs(u - l) > this.camera.pinchToPanMaxDistance))
this.pinchDeltaPercentage
? (this.camera.inertialRadiusOffset += 0.001 * (i - n) * this.camera.radius * this.pinchDeltaPercentage)
: (this.camera.inertialRadiusOffset += (i - n) / ((this.pinchPrecision * a * (this.angularSensibilityX + this.angularSensibilityY)) / 2)),
(this._isPinching = !0);
else if (0 !== this.panningSensibility && this.multiTouchPanning && o && r) {
(s = o.x - r.x), (c = o.y - r.y);
(this.camera.inertialPanningX += -s / this.panningSensibility), (this.camera.inertialPanningY += c / this.panningSensibility);
}
}
}
}),
(t.prototype.onButtonDown = function (e) {
this._isPanClick = e.button === this.camera._panningMouseButton;
}),
(t.prototype.onButtonUp = function (e) {
(this._twoFingerActivityCount = 0), (this._isPinching = !1);
}),
(t.prototype.onLostFocus = function () {
(this._isPanClick = !1), (this._twoFingerActivityCount = 0), (this._isPinching = !1);
}),
Object(h.c)([Object(He.c)()], t.prototype, "buttons", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityX", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityY", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "pinchPrecision", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "pinchDeltaPercentage", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "useNaturalPinchZoom", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "panningSensibility", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "multiTouchPanning", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "multiTouchPanAndZoom", void 0),
t
);
})(et);
We.a.ArcRotateCameraPointersInput = tt;
var nt = (function (e) {
function t(t) {
return e.call(this, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.addMouseWheel = function () {
return this.add(new Je()), this;
}),
(t.prototype.addPointers = function () {
return this.add(new tt()), this;
}),
(t.prototype.addKeyboard = function () {
return this.add(new Qe()), this;
}),
t
);
})(We.b);
nt.prototype.addVRDeviceOrientation = function () {
return this.add(new it()), this;
};
var it = (function () {
function e() {
(this.alphaCorrection = 1), (this.gammaCorrection = 1), (this._alpha = 0), (this._gamma = 0), (this._dirty = !1), (this._deviceOrientationHandler = this._onOrientationEvent.bind(this));
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
this.camera.attachControl(e, t);
var i = this.camera.getScene().getEngine().getHostWindow();
i &&
("undefined" != typeof DeviceOrientationEvent && "function" == typeof DeviceOrientationEvent.requestPermission
? DeviceOrientationEvent.requestPermission()
.then(function (e) {
"granted" === e ? i.addEventListener("deviceorientation", n._deviceOrientationHandler) : $e.b.Warn("Permission not granted.");
})
.catch(function (e) {
$e.b.Error(e);
})
: i.addEventListener("deviceorientation", this._deviceOrientationHandler));
}),
(e.prototype._onOrientationEvent = function (e) {
null !== e.alpha && (this._alpha = (0 | +e.alpha) * this.alphaCorrection), null !== e.gamma && (this._gamma = (0 | +e.gamma) * this.gammaCorrection), (this._dirty = !0);
}),
(e.prototype.checkInputs = function () {
this._dirty && ((this._dirty = !1), this._gamma < 0 && (this._gamma = 180 + this._gamma), (this.camera.alpha = (((-this._alpha / 180) * Math.PI) % Math.PI) * 2), (this.camera.beta = (this._gamma / 180) * Math.PI));
}),
(e.prototype.detachControl = function (e) {
window.removeEventListener("deviceorientation", this._deviceOrientationHandler);
}),
(e.prototype.getClassName = function () {
return "ArcRotateCameraVRDeviceOrientationInput";
}),
(e.prototype.getSimpleName = function () {
return "VRDeviceOrientation";
}),
e
);
})();
We.a.ArcRotateCameraVRDeviceOrientationInput = it;
var rt = (function () {
function e() {
(this.keysForward = [87]), (this.keysBackward = [83]), (this.keysUp = [69]), (this.keysDown = [81]), (this.keysRight = [68]), (this.keysLeft = [65]), (this._keys = new Array());
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
this._onCanvasBlurObserver ||
((this._scene = this.camera.getScene()),
(this._engine = this._scene.getEngine()),
(this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () {
n._keys = [];
})),
(this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) {
var i,
r = e.event;
e.type === qe.a.KEYDOWN
? (-1 === n.keysForward.indexOf(r.keyCode) &&
-1 === n.keysBackward.indexOf(r.keyCode) &&
-1 === n.keysUp.indexOf(r.keyCode) &&
-1 === n.keysDown.indexOf(r.keyCode) &&
-1 === n.keysLeft.indexOf(r.keyCode) &&
-1 === n.keysRight.indexOf(r.keyCode)) ||
(-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), t || r.preventDefault())
: (-1 === n.keysForward.indexOf(r.keyCode) &&
-1 === n.keysBackward.indexOf(r.keyCode) &&
-1 === n.keysUp.indexOf(r.keyCode) &&
-1 === n.keysDown.indexOf(r.keyCode) &&
-1 === n.keysLeft.indexOf(r.keyCode) &&
-1 === n.keysRight.indexOf(r.keyCode)) ||
((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), t || r.preventDefault());
})));
}),
(e.prototype.detachControl = function (e) {
this._scene &&
(this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),
this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),
(this._onKeyboardObserver = null),
(this._onCanvasBlurObserver = null)),
(this._keys = []);
}),
(e.prototype.getClassName = function () {
return "FlyCameraKeyboardInput";
}),
(e.prototype._onLostFocus = function (e) {
this._keys = [];
}),
(e.prototype.getSimpleName = function () {
return "keyboard";
}),
(e.prototype.checkInputs = function () {
if (this._onKeyboardObserver)
for (var e = this.camera, t = 0; t < this._keys.length; t++) {
var n = this._keys[t],
i = e._computeLocalCameraSpeed();
-1 !== this.keysForward.indexOf(n)
? e._localDirection.copyFromFloats(0, 0, i)
: -1 !== this.keysBackward.indexOf(n)
? e._localDirection.copyFromFloats(0, 0, -i)
: -1 !== this.keysUp.indexOf(n)
? e._localDirection.copyFromFloats(0, i, 0)
: -1 !== this.keysDown.indexOf(n)
? e._localDirection.copyFromFloats(0, -i, 0)
: -1 !== this.keysRight.indexOf(n)
? e._localDirection.copyFromFloats(i, 0, 0)
: -1 !== this.keysLeft.indexOf(n) && e._localDirection.copyFromFloats(-i, 0, 0),
e.getScene().useRightHandedSystem && (e._localDirection.z *= -1),
e.getViewMatrix().invertToRef(e._cameraTransformMatrix),
a.e.TransformNormalToRef(e._localDirection, e._cameraTransformMatrix, e._transformedDirection),
e.cameraDirection.addInPlace(e._transformedDirection);
}
}),
Object(h.c)([Object(He.c)()], e.prototype, "keysForward", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysBackward", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysUp", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysDown", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRight", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysLeft", void 0),
e
);
})();
We.a.FlyCameraKeyboardInput = rt;
var ot = (function () {
function e(e) {
void 0 === e && (e = !0),
(this.buttons = [0, 1, 2]),
(this.buttonsYaw = [-1, 0, 1]),
(this.buttonsPitch = [-1, 0, 1]),
(this.buttonsRoll = [2]),
(this.activeButton = -1),
(this.angularSensibility = 1e3),
(this.previousPosition = null);
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
(this.element = e),
(this.noPreventDefault = t),
(this._observer = this.camera.getScene().onPointerObservable.add(function (e, t) {
n._pointerInput(e, t);
}, ye.a.POINTERDOWN | ye.a.POINTERUP | ye.a.POINTERMOVE)),
(this._rollObserver = this.camera.getScene().onBeforeRenderObservable.add(function () {
n.camera.rollCorrect && n.camera.restoreRoll(n.camera.rollCorrect);
})),
(this._mousemoveCallback = function (e) {
n._onMouseMove(e);
}),
e.addEventListener("mousemove", this._mousemoveCallback, !1);
}),
(e.prototype.detachControl = function (e) {
this._observer &&
e &&
(this.camera.getScene().onPointerObservable.remove(this._observer),
this.camera.getScene().onBeforeRenderObservable.remove(this._rollObserver),
this._mousemoveCallback && e.removeEventListener("mousemove", this._mousemoveCallback),
(this._observer = null),
(this._rollObserver = null),
(this.previousPosition = null),
(this.noPreventDefault = void 0));
}),
(e.prototype.getClassName = function () {
return "FlyCameraMouseInput";
}),
(e.prototype.getSimpleName = function () {
return "mouse";
}),
(e.prototype._pointerInput = function (e, t) {
var n = e.event,
i = this.camera.getEngine();
if (!i.isInVRExclusivePointerMode && (this.touchEnabled || "touch" !== n.pointerType) && (e.type === ye.a.POINTERMOVE || -1 !== this.buttons.indexOf(n.button))) {
var r = n.srcElement || n.target;
if (e.type === ye.a.POINTERDOWN && r) {
try {
r.setPointerCapture(n.pointerId);
} catch (n) {}
(this.previousPosition = { x: n.clientX, y: n.clientY }), (this.activeButton = n.button), this.noPreventDefault || (n.preventDefault(), this.element.focus());
} else if (e.type === ye.a.POINTERUP && r) {
try {
r.releasePointerCapture(n.pointerId);
} catch (n) {}
(this.activeButton = -1), (this.previousPosition = null), this.noPreventDefault || n.preventDefault();
} else if (e.type === ye.a.POINTERMOVE) {
if (!this.previousPosition || i.isPointerLock) return;
var o = n.clientX - this.previousPosition.x,
a = n.clientY - this.previousPosition.y;
this.rotateCamera(o, a), (this.previousPosition = { x: n.clientX, y: n.clientY }), this.noPreventDefault || n.preventDefault();
}
}
}),
(e.prototype._onMouseMove = function (e) {
var t = this.camera.getEngine();
if (t.isPointerLock && !t.isInVRExclusivePointerMode) {
var n = e.movementX || e.mozMovementX || e.webkitMovementX || e.msMovementX || 0,
i = e.movementY || e.mozMovementY || e.webkitMovementY || e.msMovementY || 0;
this.rotateCamera(n, i), (this.previousPosition = null), this.noPreventDefault || e.preventDefault();
}
}),
(e.prototype.rotateCamera = function (e, t) {
var n = this,
i = this.camera;
this.camera.getScene().useRightHandedSystem && (e *= -1), i.parent && i.parent._getWorldMatrixDeterminant() < 0 && (e *= -1);
var r,
o = e / this.angularSensibility,
s = t / this.angularSensibility,
c = a.b.RotationYawPitchRoll(i.rotation.y, i.rotation.x, i.rotation.z);
if (
(this.buttonsPitch.some(function (e) {
return e === n.activeButton;
}) && ((r = a.b.RotationAxis(Be.a.X, s)), c.multiplyInPlace(r)),
this.buttonsYaw.some(function (e) {
return e === n.activeButton;
}))
) {
(r = a.b.RotationAxis(Be.a.Y, o)), c.multiplyInPlace(r);
var l = i.bankedTurnLimit + i._trackRoll;
if (i.bankedTurn && -l < i.rotation.z && i.rotation.z < l) {
var u = i.bankedTurnMultiplier * -o;
(r = a.b.RotationAxis(Be.a.Z, u)), c.multiplyInPlace(r);
}
}
this.buttonsRoll.some(function (e) {
return e === n.activeButton;
}) && ((r = a.b.RotationAxis(Be.a.Z, -o)), (i._trackRoll -= o), c.multiplyInPlace(r)),
c.toEulerAnglesToRef(i.rotation);
}),
Object(h.c)([Object(He.c)()], e.prototype, "buttons", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "angularSensibility", void 0),
e
);
})();
We.a.FlyCameraMouseInput = ot;
var at = (function () {
function e() {
(this.keysHeightOffsetIncr = [38]),
(this.keysHeightOffsetDecr = [40]),
(this.keysHeightOffsetModifierAlt = !1),
(this.keysHeightOffsetModifierCtrl = !1),
(this.keysHeightOffsetModifierShift = !1),
(this.keysRotationOffsetIncr = [37]),
(this.keysRotationOffsetDecr = [39]),
(this.keysRotationOffsetModifierAlt = !1),
(this.keysRotationOffsetModifierCtrl = !1),
(this.keysRotationOffsetModifierShift = !1),
(this.keysRadiusIncr = [40]),
(this.keysRadiusDecr = [38]),
(this.keysRadiusModifierAlt = !0),
(this.keysRadiusModifierCtrl = !1),
(this.keysRadiusModifierShift = !1),
(this.heightSensibility = 1),
(this.rotationSensibility = 1),
(this.radiusSensibility = 1),
(this._keys = new Array());
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
this._onCanvasBlurObserver ||
((this._scene = this.camera.getScene()),
(this._engine = this._scene.getEngine()),
(this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () {
n._keys = [];
})),
(this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) {
var i,
r = e.event;
r.metaKey ||
(e.type === qe.a.KEYDOWN
? ((n._ctrlPressed = r.ctrlKey),
(n._altPressed = r.altKey),
(n._shiftPressed = r.shiftKey),
(-1 !== n.keysHeightOffsetIncr.indexOf(r.keyCode) ||
-1 !== n.keysHeightOffsetDecr.indexOf(r.keyCode) ||
-1 !== n.keysRotationOffsetIncr.indexOf(r.keyCode) ||
-1 !== n.keysRotationOffsetDecr.indexOf(r.keyCode) ||
-1 !== n.keysRadiusIncr.indexOf(r.keyCode) ||
-1 !== n.keysRadiusDecr.indexOf(r.keyCode)) &&
(-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), r.preventDefault && (t || r.preventDefault())))
: (-1 === n.keysHeightOffsetIncr.indexOf(r.keyCode) &&
-1 === n.keysHeightOffsetDecr.indexOf(r.keyCode) &&
-1 === n.keysRotationOffsetIncr.indexOf(r.keyCode) &&
-1 === n.keysRotationOffsetDecr.indexOf(r.keyCode) &&
-1 === n.keysRadiusIncr.indexOf(r.keyCode) &&
-1 === n.keysRadiusDecr.indexOf(r.keyCode)) ||
((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), r.preventDefault && (t || r.preventDefault())));
})));
}),
(e.prototype.detachControl = function (e) {
this._scene &&
(this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),
this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),
(this._onKeyboardObserver = null),
(this._onCanvasBlurObserver = null)),
(this._keys = []);
}),
(e.prototype.checkInputs = function () {
var e = this;
this._onKeyboardObserver &&
this._keys.forEach(function (t) {
-1 !== e.keysHeightOffsetIncr.indexOf(t) && e._modifierHeightOffset()
? (e.camera.heightOffset += e.heightSensibility)
: -1 !== e.keysHeightOffsetDecr.indexOf(t) && e._modifierHeightOffset()
? (e.camera.heightOffset -= e.heightSensibility)
: -1 !== e.keysRotationOffsetIncr.indexOf(t) && e._modifierRotationOffset()
? ((e.camera.rotationOffset += e.rotationSensibility), (e.camera.rotationOffset %= 360))
: -1 !== e.keysRotationOffsetDecr.indexOf(t) && e._modifierRotationOffset()
? ((e.camera.rotationOffset -= e.rotationSensibility), (e.camera.rotationOffset %= 360))
: -1 !== e.keysRadiusIncr.indexOf(t) && e._modifierRadius()
? (e.camera.radius += e.radiusSensibility)
: -1 !== e.keysRadiusDecr.indexOf(t) && e._modifierRadius() && (e.camera.radius -= e.radiusSensibility);
});
}),
(e.prototype.getClassName = function () {
return "FollowCameraKeyboardMoveInput";
}),
(e.prototype.getSimpleName = function () {
return "keyboard";
}),
(e.prototype._modifierHeightOffset = function () {
return this.keysHeightOffsetModifierAlt === this._altPressed && this.keysHeightOffsetModifierCtrl === this._ctrlPressed && this.keysHeightOffsetModifierShift === this._shiftPressed;
}),
(e.prototype._modifierRotationOffset = function () {
return this.keysRotationOffsetModifierAlt === this._altPressed && this.keysRotationOffsetModifierCtrl === this._ctrlPressed && this.keysRotationOffsetModifierShift === this._shiftPressed;
}),
(e.prototype._modifierRadius = function () {
return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed;
}),
Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetIncr", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetDecr", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetModifierAlt", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetModifierCtrl", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetModifierShift", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetIncr", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetDecr", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetModifierAlt", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetModifierCtrl", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetModifierShift", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusIncr", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusDecr", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusModifierAlt", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusModifierCtrl", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusModifierShift", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "heightSensibility", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "rotationSensibility", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "radiusSensibility", void 0),
e
);
})();
We.a.FollowCameraKeyboardMoveInput = at;
var st = (function () {
function e() {
(this.axisControlRadius = !0), (this.axisControlHeight = !1), (this.axisControlRotation = !1), (this.wheelPrecision = 3), (this.wheelDeltaPercentage = 0);
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
(this._wheel = function (e, i) {
if (e.type === ye.a.POINTERWHEEL) {
var r = e.event,
o = 0,
a = Math.max(-1, Math.min(1, r.deltaY || r.wheelDelta || -r.detail));
n.wheelDeltaPercentage
? n.axisControlRadius
? (o = 0.01 * a * n.wheelDeltaPercentage * n.camera.radius)
: n.axisControlHeight
? (o = 0.01 * a * n.wheelDeltaPercentage * n.camera.heightOffset)
: n.axisControlRotation && (o = 0.01 * a * n.wheelDeltaPercentage * n.camera.rotationOffset)
: (o = a * n.wheelPrecision),
o && (n.axisControlRadius ? (n.camera.radius += o) : n.axisControlHeight ? (n.camera.heightOffset -= o) : n.axisControlRotation && (n.camera.rotationOffset -= o)),
r.preventDefault && (t || r.preventDefault());
}
}),
(this._observer = this.camera.getScene().onPointerObservable.add(this._wheel, ye.a.POINTERWHEEL));
}),
(e.prototype.detachControl = function (e) {
this._observer && e && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null), (this._wheel = null));
}),
(e.prototype.getClassName = function () {
return "ArcRotateCameraMouseWheelInput";
}),
(e.prototype.getSimpleName = function () {
return "mousewheel";
}),
Object(h.c)([Object(He.c)()], e.prototype, "axisControlRadius", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "axisControlHeight", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "axisControlRotation", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "wheelPrecision", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "wheelDeltaPercentage", void 0),
e
);
})();
We.a.FollowCameraMouseWheelInput = st;
var ct = (function (e) {
function t() {
var t = (null !== e && e.apply(this, arguments)) || this;
return (
(t.angularSensibilityX = 1),
(t.angularSensibilityY = 1),
(t.pinchPrecision = 1e4),
(t.pinchDeltaPercentage = 0),
(t.axisXControlRadius = !1),
(t.axisXControlHeight = !1),
(t.axisXControlRotation = !0),
(t.axisYControlRadius = !1),
(t.axisYControlHeight = !0),
(t.axisYControlRotation = !1),
(t.axisPinchControlRadius = !0),
(t.axisPinchControlHeight = !1),
(t.axisPinchControlRotation = !1),
(t.warningEnable = !0),
(t._warningCounter = 0),
t
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "FollowCameraPointersInput";
}),
(t.prototype.onTouch = function (e, t, n) {
this._warning(),
this.axisXControlRotation ? (this.camera.rotationOffset += t / this.angularSensibilityX) : this.axisYControlRotation && (this.camera.rotationOffset += n / this.angularSensibilityX),
this.axisXControlHeight ? (this.camera.heightOffset += t / this.angularSensibilityY) : this.axisYControlHeight && (this.camera.heightOffset += n / this.angularSensibilityY),
this.axisXControlRadius ? (this.camera.radius -= t / this.angularSensibilityY) : this.axisYControlRadius && (this.camera.radius -= n / this.angularSensibilityY);
}),
(t.prototype.onMultiTouch = function (e, t, n, i, r, o) {
if (!((0 === n && null === r) || (0 === i && null === o))) {
var a = (i - n) / ((this.pinchPrecision * (this.angularSensibilityX + this.angularSensibilityY)) / 2);
this.pinchDeltaPercentage
? ((a *= 0.01 * this.pinchDeltaPercentage),
this.axisPinchControlRotation && (this.camera.rotationOffset += a * this.camera.rotationOffset),
this.axisPinchControlHeight && (this.camera.heightOffset += a * this.camera.heightOffset),
this.axisPinchControlRadius && (this.camera.radius -= a * this.camera.radius))
: (this.axisPinchControlRotation && (this.camera.rotationOffset += a), this.axisPinchControlHeight && (this.camera.heightOffset += a), this.axisPinchControlRadius && (this.camera.radius -= a));
}
}),
(t.prototype._warning = function () {
if (this.warningEnable && this._warningCounter++ % 100 == 0);
}),
Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityX", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityY", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "pinchPrecision", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "pinchDeltaPercentage", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisXControlRadius", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisXControlHeight", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisXControlRotation", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisYControlRadius", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisYControlHeight", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisYControlRotation", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisPinchControlRadius", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisPinchControlHeight", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "axisPinchControlRotation", void 0),
t
);
})(et);
We.a.FollowCameraPointersInput = ct;
var lt = n(120);
lt.a.prototype.addDeviceOrientation = function () {
return this._deviceOrientationInput || ((this._deviceOrientationInput = new ut()), this.add(this._deviceOrientationInput)), this;
};
var ut = (function () {
function e() {
var e = this;
(this._screenOrientationAngle = 0),
(this._screenQuaternion = new a.b()),
(this._alpha = 0),
(this._beta = 0),
(this._gamma = 0),
(this._onDeviceOrientationChangedObservable = new o.c()),
(this._orientationChanged = function () {
(e._screenOrientationAngle = void 0 !== window.orientation ? +window.orientation : window.screen.orientation && window.screen.orientation.angle ? window.screen.orientation.angle : 0),
(e._screenOrientationAngle = -$e.b.ToRadians(e._screenOrientationAngle / 2)),
e._screenQuaternion.copyFromFloats(0, Math.sin(e._screenOrientationAngle), 0, Math.cos(e._screenOrientationAngle));
}),
(this._deviceOrientation = function (t) {
(e._alpha = null !== t.alpha ? t.alpha : 0), (e._beta = null !== t.beta ? t.beta : 0), (e._gamma = null !== t.gamma ? t.gamma : 0), null !== t.alpha && e._onDeviceOrientationChangedObservable.notifyObservers();
}),
(this._constantTranform = new a.b(-Math.sqrt(0.5), 0, 0, Math.sqrt(0.5))),
this._orientationChanged();
}
return (
(e.WaitForOrientationChangeAsync = function (e) {
return new Promise(function (t, n) {
var i = !1,
r = function () {
window.removeEventListener("deviceorientation", r), (i = !0), t();
};
e &&
setTimeout(function () {
i || (window.removeEventListener("deviceorientation", r), n("WaitForOrientationChangeAsync timed out"));
}, e),
"undefined" != typeof DeviceOrientationEvent && "function" == typeof DeviceOrientationEvent.requestPermission
? DeviceOrientationEvent.requestPermission()
.then(function (e) {
"granted" == e ? window.addEventListener("deviceorientation", r) : $e.b.Warn("Permission not granted.");
})
.catch(function (e) {
$e.b.Error(e);
})
: window.addEventListener("deviceorientation", r);
});
}),
Object.defineProperty(e.prototype, "camera", {
get: function () {
return this._camera;
},
set: function (e) {
var t = this;
(this._camera = e),
null == this._camera || this._camera.rotationQuaternion || (this._camera.rotationQuaternion = new a.b()),
this._camera &&
this._camera.onDisposeObservable.add(function () {
t._onDeviceOrientationChangedObservable.clear();
});
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attachControl = function (e, t) {
var n = this,
i = this.camera.getScene().getEngine().getHostWindow();
if (i) {
var r = function () {
i.addEventListener("orientationchange", n._orientationChanged), i.addEventListener("deviceorientation", n._deviceOrientation), n._orientationChanged();
};
"undefined" != typeof DeviceOrientationEvent && "function" == typeof DeviceOrientationEvent.requestPermission
? DeviceOrientationEvent.requestPermission()
.then(function (e) {
"granted" === e ? r() : $e.b.Warn("Permission not granted.");
})
.catch(function (e) {
$e.b.Error(e);
})
: r();
}
}),
(e.prototype.detachControl = function (e) {
window.removeEventListener("orientationchange", this._orientationChanged), window.removeEventListener("deviceorientation", this._deviceOrientation), (this._alpha = 0);
}),
(e.prototype.checkInputs = function () {
this._alpha &&
(a.b.RotationYawPitchRollToRef($e.b.ToRadians(this._alpha), $e.b.ToRadians(this._beta), -$e.b.ToRadians(this._gamma), this.camera.rotationQuaternion),
this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion),
this._camera.rotationQuaternion.multiplyInPlace(this._constantTranform),
(this._camera.rotationQuaternion.z *= -1),
(this._camera.rotationQuaternion.w *= -1));
}),
(e.prototype.getClassName = function () {
return "FreeCameraDeviceOrientationInput";
}),
(e.prototype.getSimpleName = function () {
return "deviceOrientation";
}),
e
);
})();
We.a.FreeCameraDeviceOrientationInput = ut;
var ht = (function () {
function e() {
(this.gamepadAngularSensibility = 200),
(this.gamepadMoveSensibility = 40),
(this._yAxisScale = 1),
(this._cameraTransform = a.a.Identity()),
(this._deltaTransform = a.e.Zero()),
(this._vector3 = a.e.Zero()),
(this._vector2 = a.d.Zero());
}
return (
Object.defineProperty(e.prototype, "invertYAxis", {
get: function () {
return 1 !== this._yAxisScale;
},
set: function (e) {
this._yAxisScale = e ? -1 : 1;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attachControl = function (e, t) {
var n = this,
i = this.camera.getScene().gamepadManager;
(this._onGamepadConnectedObserver = i.onGamepadConnectedObservable.add(function (e) {
e.type !== Ye.POSE_ENABLED && ((n.gamepad && e.type !== Ye.XBOX) || (n.gamepad = e));
})),
(this._onGamepadDisconnectedObserver = i.onGamepadDisconnectedObservable.add(function (e) {
n.gamepad === e && (n.gamepad = null);
})),
(this.gamepad = i.getGamepadByType(Ye.XBOX));
}),
(e.prototype.detachControl = function (e) {
this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),
this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),
(this.gamepad = null);
}),
(e.prototype.checkInputs = function () {
if (this.gamepad && this.gamepad.leftStick) {
var e = this.camera,
t = this.gamepad.leftStick,
n = t.x / this.gamepadMoveSensibility,
i = t.y / this.gamepadMoveSensibility;
(t.x = Math.abs(n) > 0.005 ? 0 + n : 0), (t.y = Math.abs(i) > 0.005 ? 0 + i : 0);
var r = this.gamepad.rightStick;
if (r) {
var o = r.x / this.gamepadAngularSensibility,
s = (r.y / this.gamepadAngularSensibility) * this._yAxisScale;
(r.x = Math.abs(o) > 0.001 ? 0 + o : 0), (r.y = Math.abs(s) > 0.001 ? 0 + s : 0);
} else r = { x: 0, y: 0 };
e.rotationQuaternion ? e.rotationQuaternion.toRotationMatrix(this._cameraTransform) : a.a.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, 0, this._cameraTransform);
var c = 50 * e._computeLocalCameraSpeed();
this._vector3.copyFromFloats(t.x * c, 0, -t.y * c),
a.e.TransformCoordinatesToRef(this._vector3, this._cameraTransform, this._deltaTransform),
e.cameraDirection.addInPlace(this._deltaTransform),
this._vector2.copyFromFloats(r.y, r.x),
e.cameraRotation.addInPlace(this._vector2);
}
}),
(e.prototype.getClassName = function () {
return "FreeCameraGamepadInput";
}),
(e.prototype.getSimpleName = function () {
return "gamepad";
}),
Object(h.c)([Object(He.c)()], e.prototype, "gamepadAngularSensibility", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "gamepadMoveSensibility", void 0),
e
);
})();
We.a.FreeCameraGamepadInput = ht;
var dt,
pt = n(194),
ft = n(195),
mt = n(196),
gt = n(151);
!(function (e) {
(e[(e.X = 0)] = "X"), (e[(e.Y = 1)] = "Y"), (e[(e.Z = 2)] = "Z");
})(dt || (dt = {}));
var bt = (function () {
function e(t) {
var n = this;
if (
((this._leftJoystick = !!t),
e._globalJoystickIndex++,
(this._axisTargetedByLeftAndRight = dt.X),
(this._axisTargetedByUpAndDown = dt.Y),
(this.reverseLeftRight = !1),
(this.reverseUpDown = !1),
(this._touches = new gt.a()),
(this.deltaPosition = a.e.Zero()),
(this._joystickSensibility = 25),
(this._inversedSensibility = 1 / (this._joystickSensibility / 1e3)),
(this._onResize = function (t) {
(e.vjCanvasWidth = window.innerWidth), (e.vjCanvasHeight = window.innerHeight), e.Canvas && ((e.Canvas.width = e.vjCanvasWidth), (e.Canvas.height = e.vjCanvasHeight)), (e.halfWidth = e.vjCanvasWidth / 2);
}),
!e.Canvas)
) {
window.addEventListener("resize", this._onResize, !1),
(e.Canvas = document.createElement("canvas")),
(e.vjCanvasWidth = window.innerWidth),
(e.vjCanvasHeight = window.innerHeight),
(e.Canvas.width = window.innerWidth),
(e.Canvas.height = window.innerHeight),
(e.Canvas.style.width = "100%"),
(e.Canvas.style.height = "100%"),
(e.Canvas.style.position = "absolute"),
(e.Canvas.style.backgroundColor = "transparent"),
(e.Canvas.style.top = "0px"),
(e.Canvas.style.left = "0px"),
(e.Canvas.style.zIndex = "5"),
(e.Canvas.style.msTouchAction = "none"),
e.Canvas.setAttribute("touch-action", "none");
var i = e.Canvas.getContext("2d");
if (!i) throw new Error("Unable to create canvas for virtual joystick");
(e.vjCanvasContext = i), (e.vjCanvasContext.strokeStyle = "#ffffff"), (e.vjCanvasContext.lineWidth = 2), document.body.appendChild(e.Canvas);
}
(e.halfWidth = e.Canvas.width / 2),
(this.pressed = !1),
(this._joystickColor = "cyan"),
(this._joystickPointerID = -1),
(this._joystickPointerPos = new a.d(0, 0)),
(this._joystickPreviousPointerPos = new a.d(0, 0)),
(this._joystickPointerStartPos = new a.d(0, 0)),
(this._deltaJoystickVector = new a.d(0, 0)),
(this._onPointerDownHandlerRef = function (e) {
n._onPointerDown(e);
}),
(this._onPointerMoveHandlerRef = function (e) {
n._onPointerMove(e);
}),
(this._onPointerUpHandlerRef = function (e) {
n._onPointerUp(e);
}),
e.Canvas.addEventListener("pointerdown", this._onPointerDownHandlerRef, !1),
e.Canvas.addEventListener("pointermove", this._onPointerMoveHandlerRef, !1),
e.Canvas.addEventListener("pointerup", this._onPointerUpHandlerRef, !1),
e.Canvas.addEventListener("pointerout", this._onPointerUpHandlerRef, !1),
e.Canvas.addEventListener(
"contextmenu",
function (e) {
e.preventDefault();
},
!1
),
requestAnimationFrame(function () {
n._drawVirtualJoystick();
});
}
return (
(e.prototype.setJoystickSensibility = function (e) {
(this._joystickSensibility = e), (this._inversedSensibility = 1 / (this._joystickSensibility / 1e3));
}),
(e.prototype._onPointerDown = function (t) {
t.preventDefault(),
(!0 === this._leftJoystick ? t.clientX < e.halfWidth : t.clientX > e.halfWidth) && this._joystickPointerID < 0
? ((this._joystickPointerID = t.pointerId),
(this._joystickPointerStartPos.x = t.clientX),
(this._joystickPointerStartPos.y = t.clientY),
(this._joystickPointerPos = this._joystickPointerStartPos.clone()),
(this._joystickPreviousPointerPos = this._joystickPointerStartPos.clone()),
(this._deltaJoystickVector.x = 0),
(this._deltaJoystickVector.y = 0),
(this.pressed = !0),
this._touches.add(t.pointerId.toString(), t))
: e._globalJoystickIndex < 2 && this._action && (this._action(), this._touches.add(t.pointerId.toString(), { x: t.clientX, y: t.clientY, prevX: t.clientX, prevY: t.clientY }));
}),
(e.prototype._onPointerMove = function (e) {
if (this._joystickPointerID == e.pointerId) {
(this._joystickPointerPos.x = e.clientX),
(this._joystickPointerPos.y = e.clientY),
(this._deltaJoystickVector = this._joystickPointerPos.clone()),
(this._deltaJoystickVector = this._deltaJoystickVector.subtract(this._joystickPointerStartPos));
var t = ((this.reverseLeftRight ? -1 : 1) * this._deltaJoystickVector.x) / this._inversedSensibility;
switch (this._axisTargetedByLeftAndRight) {
case dt.X:
this.deltaPosition.x = Math.min(1, Math.max(-1, t));
break;
case dt.Y:
this.deltaPosition.y = Math.min(1, Math.max(-1, t));
break;
case dt.Z:
this.deltaPosition.z = Math.min(1, Math.max(-1, t));
}
var n = ((this.reverseUpDown ? 1 : -1) * this._deltaJoystickVector.y) / this._inversedSensibility;
switch (this._axisTargetedByUpAndDown) {
case dt.X:
this.deltaPosition.x = Math.min(1, Math.max(-1, n));
break;
case dt.Y:
this.deltaPosition.y = Math.min(1, Math.max(-1, n));
break;
case dt.Z:
this.deltaPosition.z = Math.min(1, Math.max(-1, n));
}
} else {
var i = this._touches.get(e.pointerId.toString());
i && ((i.x = e.clientX), (i.y = e.clientY));
}
}),
(e.prototype._onPointerUp = function (t) {
if (this._joystickPointerID == t.pointerId)
e.vjCanvasContext.clearRect(this._joystickPointerStartPos.x - 64, this._joystickPointerStartPos.y - 64, 128, 128),
e.vjCanvasContext.clearRect(this._joystickPreviousPointerPos.x - 42, this._joystickPreviousPointerPos.y - 42, 84, 84),
(this._joystickPointerID = -1),
(this.pressed = !1);
else {
var n = this._touches.get(t.pointerId.toString());
n && e.vjCanvasContext.clearRect(n.prevX - 44, n.prevY - 44, 88, 88);
}
(this._deltaJoystickVector.x = 0), (this._deltaJoystickVector.y = 0), this._touches.remove(t.pointerId.toString());
}),
(e.prototype.setJoystickColor = function (e) {
this._joystickColor = e;
}),
(e.prototype.setActionOnTouch = function (e) {
this._action = e;
}),
(e.prototype.setAxisForLeftRight = function (e) {
switch (e) {
case dt.X:
case dt.Y:
case dt.Z:
this._axisTargetedByLeftAndRight = e;
break;
default:
this._axisTargetedByLeftAndRight = dt.X;
}
}),
(e.prototype.setAxisForUpDown = function (e) {
switch (e) {
case dt.X:
case dt.Y:
case dt.Z:
this._axisTargetedByUpAndDown = e;
break;
default:
this._axisTargetedByUpAndDown = dt.Y;
}
}),
(e.prototype._drawVirtualJoystick = function () {
var t = this;
this.pressed &&
this._touches.forEach(function (n, i) {
i.pointerId === t._joystickPointerID
? (e.vjCanvasContext.clearRect(t._joystickPointerStartPos.x - 64, t._joystickPointerStartPos.y - 64, 128, 128),
e.vjCanvasContext.clearRect(t._joystickPreviousPointerPos.x - 42, t._joystickPreviousPointerPos.y - 42, 84, 84),
e.vjCanvasContext.beginPath(),
(e.vjCanvasContext.lineWidth = 6),
(e.vjCanvasContext.strokeStyle = t._joystickColor),
e.vjCanvasContext.arc(t._joystickPointerStartPos.x, t._joystickPointerStartPos.y, 40, 0, 2 * Math.PI, !0),
e.vjCanvasContext.stroke(),
e.vjCanvasContext.closePath(),
e.vjCanvasContext.beginPath(),
(e.vjCanvasContext.strokeStyle = t._joystickColor),
(e.vjCanvasContext.lineWidth = 2),
e.vjCanvasContext.arc(t._joystickPointerStartPos.x, t._joystickPointerStartPos.y, 60, 0, 2 * Math.PI, !0),
e.vjCanvasContext.stroke(),
e.vjCanvasContext.closePath(),
e.vjCanvasContext.beginPath(),
(e.vjCanvasContext.strokeStyle = t._joystickColor),
e.vjCanvasContext.arc(t._joystickPointerPos.x, t._joystickPointerPos.y, 40, 0, 2 * Math.PI, !0),
e.vjCanvasContext.stroke(),
e.vjCanvasContext.closePath(),
(t._joystickPreviousPointerPos = t._joystickPointerPos.clone()))
: (e.vjCanvasContext.clearRect(i.prevX - 44, i.prevY - 44, 88, 88),
e.vjCanvasContext.beginPath(),
(e.vjCanvasContext.fillStyle = "white"),
e.vjCanvasContext.beginPath(),
(e.vjCanvasContext.strokeStyle = "red"),
(e.vjCanvasContext.lineWidth = 6),
e.vjCanvasContext.arc(i.x, i.y, 40, 0, 2 * Math.PI, !0),
e.vjCanvasContext.stroke(),
e.vjCanvasContext.closePath(),
(i.prevX = i.x),
(i.prevY = i.y));
}),
requestAnimationFrame(function () {
t._drawVirtualJoystick();
});
}),
(e.prototype.releaseCanvas = function () {
e.Canvas &&
(e.Canvas.removeEventListener("pointerdown", this._onPointerDownHandlerRef),
e.Canvas.removeEventListener("pointermove", this._onPointerMoveHandlerRef),
e.Canvas.removeEventListener("pointerup", this._onPointerUpHandlerRef),
e.Canvas.removeEventListener("pointerout", this._onPointerUpHandlerRef),
window.removeEventListener("resize", this._onResize),
document.body.removeChild(e.Canvas),
(e.Canvas = null));
}),
(e._globalJoystickIndex = 0),
e
);
})();
lt.a.prototype.addVirtualJoystick = function () {
return this.add(new _t()), this;
};
var _t = (function () {
function e() {}
return (
(e.prototype.getLeftJoystick = function () {
return this._leftjoystick;
}),
(e.prototype.getRightJoystick = function () {
return this._rightjoystick;
}),
(e.prototype.checkInputs = function () {
if (this._leftjoystick) {
var e = this.camera,
t = 50 * e._computeLocalCameraSpeed(),
n = a.a.RotationYawPitchRoll(e.rotation.y, e.rotation.x, 0),
i = a.e.TransformCoordinates(new a.e(this._leftjoystick.deltaPosition.x * t, this._leftjoystick.deltaPosition.y * t, this._leftjoystick.deltaPosition.z * t), n);
(e.cameraDirection = e.cameraDirection.add(i)),
(e.cameraRotation = e.cameraRotation.addVector3(this._rightjoystick.deltaPosition)),
this._leftjoystick.pressed || (this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9)),
this._rightjoystick.pressed || (this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9));
}
}),
(e.prototype.attachControl = function (e, t) {
(this._leftjoystick = new bt(!0)),
this._leftjoystick.setAxisForUpDown(dt.Z),
this._leftjoystick.setAxisForLeftRight(dt.X),
this._leftjoystick.setJoystickSensibility(0.15),
(this._rightjoystick = new bt(!1)),
this._rightjoystick.setAxisForUpDown(dt.X),
this._rightjoystick.setAxisForLeftRight(dt.Y),
(this._rightjoystick.reverseUpDown = !0),
this._rightjoystick.setJoystickSensibility(0.05),
this._rightjoystick.setJoystickColor("yellow");
}),
(e.prototype.detachControl = function (e) {
this._leftjoystick.releaseCanvas(), this._rightjoystick.releaseCanvas();
}),
(e.prototype.getClassName = function () {
return "FreeCameraVirtualJoystickInput";
}),
(e.prototype.getSimpleName = function () {
return "virtualJoystick";
}),
e
);
})();
We.a.FreeCameraVirtualJoystickInput = _t;
var vt = n(102),
yt = n(67),
Ct = n(35);
Ct.a.AddNodeConstructor("TouchCamera", function (e, t) {
return function () {
return new Pt(e, a.e.Zero(), t);
};
});
var Pt = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n, i) || this;
return r.inputs.addTouch(), r._setupInputs(), r;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "touchAngularSensibility", {
get: function () {
var e = this.inputs.attached.touch;
return e ? e.touchAngularSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.touch;
t && (t.touchAngularSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "touchMoveSensibility", {
get: function () {
var e = this.inputs.attached.touch;
return e ? e.touchMoveSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.touch;
t && (t.touchMoveSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "TouchCamera";
}),
(t.prototype._setupInputs = function () {
var e = this.inputs.attached.mouse;
e && (e.touchEnabled = !1);
}),
t
);
})(yt.a);
Ct.a.AddNodeConstructor("ArcRotateCamera", function (e, t) {
return function () {
return new xt(e, 0, 0, 1, a.e.Zero(), t);
};
});
var xt = (function (e) {
function t(t, n, i, r, s, c, l) {
void 0 === l && (l = !0);
var u = e.call(this, t, a.e.Zero(), c, l) || this;
return (
(u._upVector = a.e.Up()),
(u.inertialAlphaOffset = 0),
(u.inertialBetaOffset = 0),
(u.inertialRadiusOffset = 0),
(u.lowerAlphaLimit = null),
(u.upperAlphaLimit = null),
(u.lowerBetaLimit = 0.01),
(u.upperBetaLimit = Math.PI - 0.01),
(u.lowerRadiusLimit = null),
(u.upperRadiusLimit = null),
(u.inertialPanningX = 0),
(u.inertialPanningY = 0),
(u.pinchToPanMaxDistance = 20),
(u.panningDistanceLimit = null),
(u.panningOriginTarget = a.e.Zero()),
(u.panningInertia = 0.9),
(u.zoomOnFactor = 1),
(u.targetScreenOffset = a.d.Zero()),
(u.allowUpsideDown = !0),
(u.useInputToRestoreState = !0),
(u._viewMatrix = new a.a()),
(u.panningAxis = new a.e(1, 1, 0)),
(u.onMeshTargetChangedObservable = new o.c()),
(u.checkCollisions = !1),
(u.collisionRadius = new a.e(0.5, 0.5, 0.5)),
(u._previousPosition = a.e.Zero()),
(u._collisionVelocity = a.e.Zero()),
(u._newPosition = a.e.Zero()),
(u._computationVector = a.e.Zero()),
(u._onCollisionPositionChange = function (e, t, n) {
void 0 === n && (n = null), n ? (u.setPosition(t), u.onCollide && u.onCollide(n)) : u._previousPosition.copyFrom(u._position);
var i = Math.cos(u.alpha),
r = Math.sin(u.alpha),
o = Math.cos(u.beta),
a = Math.sin(u.beta);
0 === a && (a = 1e-4);
var s = u._getTargetPosition();
u._computationVector.copyFromFloats(u.radius * i * a, u.radius * o, u.radius * r * a), s.addToRef(u._computationVector, u._newPosition), u._position.copyFrom(u._newPosition);
var c = u.upVector;
u.allowUpsideDown && u.beta < 0 && (c = (c = c.clone()).negate()),
u._computeViewMatrix(u._position, s, c),
u._viewMatrix.addAtIndex(12, u.targetScreenOffset.x),
u._viewMatrix.addAtIndex(13, u.targetScreenOffset.y),
(u._collisionTriggered = !1);
}),
(u._target = a.e.Zero()),
s && u.setTarget(s),
(u.alpha = n),
(u.beta = i),
(u.radius = r),
u.getViewMatrix(),
(u.inputs = new nt(u)),
u.inputs.addKeyboard().addMouseWheel().addPointers(),
u
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "target", {
get: function () {
return this._target;
},
set: function (e) {
this.setTarget(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._position;
},
set: function (e) {
this.setPosition(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "upVector", {
get: function () {
return this._upVector;
},
set: function (e) {
this._upToYMatrix || ((this._YToUpMatrix = new a.a()), (this._upToYMatrix = new a.a()), (this._upVector = a.e.Zero())), e.normalize(), this._upVector.copyFrom(e), this.setMatUp();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setMatUp = function () {
a.a.RotationAlignToRef(a.e.UpReadOnly, this._upVector, this._YToUpMatrix), a.a.RotationAlignToRef(this._upVector, a.e.UpReadOnly, this._upToYMatrix);
}),
Object.defineProperty(t.prototype, "angularSensibilityX", {
get: function () {
var e = this.inputs.attached.pointers;
return e ? e.angularSensibilityX : 0;
},
set: function (e) {
var t = this.inputs.attached.pointers;
t && (t.angularSensibilityX = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "angularSensibilityY", {
get: function () {
var e = this.inputs.attached.pointers;
return e ? e.angularSensibilityY : 0;
},
set: function (e) {
var t = this.inputs.attached.pointers;
t && (t.angularSensibilityY = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "pinchPrecision", {
get: function () {
var e = this.inputs.attached.pointers;
return e ? e.pinchPrecision : 0;
},
set: function (e) {
var t = this.inputs.attached.pointers;
t && (t.pinchPrecision = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "pinchDeltaPercentage", {
get: function () {
var e = this.inputs.attached.pointers;
return e ? e.pinchDeltaPercentage : 0;
},
set: function (e) {
var t = this.inputs.attached.pointers;
t && (t.pinchDeltaPercentage = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useNaturalPinchZoom", {
get: function () {
var e = this.inputs.attached.pointers;
return !!e && e.useNaturalPinchZoom;
},
set: function (e) {
var t = this.inputs.attached.pointers;
t && (t.useNaturalPinchZoom = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "panningSensibility", {
get: function () {
var e = this.inputs.attached.pointers;
return e ? e.panningSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.pointers;
t && (t.panningSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysUp", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysUp : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysUp = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysDown", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysDown : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysDown = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysLeft", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysLeft : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysLeft = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysRight", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysRight : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysRight = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "wheelPrecision", {
get: function () {
var e = this.inputs.attached.mousewheel;
return e ? e.wheelPrecision : 0;
},
set: function (e) {
var t = this.inputs.attached.mousewheel;
t && (t.wheelPrecision = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "wheelDeltaPercentage", {
get: function () {
var e = this.inputs.attached.mousewheel;
return e ? e.wheelDeltaPercentage : 0;
},
set: function (e) {
var t = this.inputs.attached.mousewheel;
t && (t.wheelDeltaPercentage = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bouncingBehavior", {
get: function () {
return this._bouncingBehavior;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useBouncingBehavior", {
get: function () {
return null != this._bouncingBehavior;
},
set: function (e) {
e !== this.useBouncingBehavior &&
(e ? ((this._bouncingBehavior = new Pe()), this.addBehavior(this._bouncingBehavior)) : this._bouncingBehavior && (this.removeBehavior(this._bouncingBehavior), (this._bouncingBehavior = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "framingBehavior", {
get: function () {
return this._framingBehavior;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useFramingBehavior", {
get: function () {
return null != this._framingBehavior;
},
set: function (e) {
e !== this.useFramingBehavior &&
(e ? ((this._framingBehavior = new xe()), this.addBehavior(this._framingBehavior)) : this._framingBehavior && (this.removeBehavior(this._framingBehavior), (this._framingBehavior = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "autoRotationBehavior", {
get: function () {
return this._autoRotationBehavior;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useAutoRotationBehavior", {
get: function () {
return null != this._autoRotationBehavior;
},
set: function (e) {
e !== this.useAutoRotationBehavior &&
(e
? ((this._autoRotationBehavior = new Ce()), this.addBehavior(this._autoRotationBehavior))
: this._autoRotationBehavior && (this.removeBehavior(this._autoRotationBehavior), (this._autoRotationBehavior = null)));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._initCache = function () {
e.prototype._initCache.call(this),
(this._cache._target = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)),
(this._cache.alpha = void 0),
(this._cache.beta = void 0),
(this._cache.radius = void 0),
(this._cache.targetScreenOffset = a.d.Zero());
}),
(t.prototype._updateCache = function (t) {
t || e.prototype._updateCache.call(this),
this._cache._target.copyFrom(this._getTargetPosition()),
(this._cache.alpha = this.alpha),
(this._cache.beta = this.beta),
(this._cache.radius = this.radius),
this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset);
}),
(t.prototype._getTargetPosition = function () {
if (this._targetHost && this._targetHost.getAbsolutePosition) {
var e = this._targetHost.absolutePosition;
this._targetBoundingCenter ? e.addToRef(this._targetBoundingCenter, this._target) : this._target.copyFrom(e);
}
var t = this._getLockedTargetPosition();
return t || this._target;
}),
(t.prototype.storeState = function () {
return (
(this._storedAlpha = this.alpha),
(this._storedBeta = this.beta),
(this._storedRadius = this.radius),
(this._storedTarget = this._getTargetPosition().clone()),
(this._storedTargetScreenOffset = this.targetScreenOffset.clone()),
e.prototype.storeState.call(this)
);
}),
(t.prototype._restoreStateValues = function () {
return (
!!e.prototype._restoreStateValues.call(this) &&
(this.setTarget(this._storedTarget.clone()),
(this.alpha = this._storedAlpha),
(this.beta = this._storedBeta),
(this.radius = this._storedRadius),
(this.targetScreenOffset = this._storedTargetScreenOffset.clone()),
(this.inertialAlphaOffset = 0),
(this.inertialBetaOffset = 0),
(this.inertialRadiusOffset = 0),
(this.inertialPanningX = 0),
(this.inertialPanningY = 0),
!0)
);
}),
(t.prototype._isSynchronizedViewMatrix = function () {
return (
!!e.prototype._isSynchronizedViewMatrix.call(this) &&
this._cache._target.equals(this._getTargetPosition()) &&
this._cache.alpha === this.alpha &&
this._cache.beta === this.beta &&
this._cache.radius === this.radius &&
this._cache.targetScreenOffset.equals(this.targetScreenOffset)
);
}),
(t.prototype.attachControl = function (e, t, n, i) {
var r = this;
void 0 === n && (n = !0),
void 0 === i && (i = 2),
(this._useCtrlForPanning = n),
(this._panningMouseButton = i),
this.inputs.attachElement(e, t),
(this._reset = function () {
(r.inertialAlphaOffset = 0), (r.inertialBetaOffset = 0), (r.inertialRadiusOffset = 0), (r.inertialPanningX = 0), (r.inertialPanningY = 0);
});
}),
(t.prototype.detachControl = function (e) {
this.inputs.detachElement(e), this._reset && this._reset();
}),
(t.prototype._checkInputs = function () {
if (!this._collisionTriggered) {
if ((this.inputs.checkInputs(), 0 !== this.inertialAlphaOffset || 0 !== this.inertialBetaOffset || 0 !== this.inertialRadiusOffset)) {
var t = this.inertialAlphaOffset;
this.beta <= 0 && (t *= -1),
this.getScene().useRightHandedSystem && (t *= -1),
this.parent && this.parent._getWorldMatrixDeterminant() < 0 && (t *= -1),
(this.alpha += t),
(this.beta += this.inertialBetaOffset),
(this.radius -= this.inertialRadiusOffset),
(this.inertialAlphaOffset *= this.inertia),
(this.inertialBetaOffset *= this.inertia),
(this.inertialRadiusOffset *= this.inertia),
Math.abs(this.inertialAlphaOffset) < j.a && (this.inertialAlphaOffset = 0),
Math.abs(this.inertialBetaOffset) < j.a && (this.inertialBetaOffset = 0),
Math.abs(this.inertialRadiusOffset) < this.speed * j.a && (this.inertialRadiusOffset = 0);
}
if (0 !== this.inertialPanningX || 0 !== this.inertialPanningY) {
if (
(this._localDirection || ((this._localDirection = a.e.Zero()), (this._transformedDirection = a.e.Zero())),
this._localDirection.copyFromFloats(this.inertialPanningX, this.inertialPanningY, this.inertialPanningY),
this._localDirection.multiplyInPlace(this.panningAxis),
this._viewMatrix.invertToRef(this._cameraTransformMatrix),
a.e.TransformNormalToRef(this._localDirection, this._cameraTransformMatrix, this._transformedDirection),
this.panningAxis.y || (this._transformedDirection.y = 0),
!this._targetHost)
)
if (this.panningDistanceLimit)
this._transformedDirection.addInPlace(this._target),
a.e.DistanceSquared(this._transformedDirection, this.panningOriginTarget) <= this.panningDistanceLimit * this.panningDistanceLimit && this._target.copyFrom(this._transformedDirection);
else this._target.addInPlace(this._transformedDirection);
(this.inertialPanningX *= this.panningInertia),
(this.inertialPanningY *= this.panningInertia),
Math.abs(this.inertialPanningX) < this.speed * j.a && (this.inertialPanningX = 0),
Math.abs(this.inertialPanningY) < this.speed * j.a && (this.inertialPanningY = 0);
}
this._checkLimits(), e.prototype._checkInputs.call(this);
}
}),
(t.prototype._checkLimits = function () {
null === this.lowerBetaLimit || void 0 === this.lowerBetaLimit
? this.allowUpsideDown && this.beta > Math.PI && (this.beta = this.beta - 2 * Math.PI)
: this.beta < this.lowerBetaLimit && (this.beta = this.lowerBetaLimit),
null === this.upperBetaLimit || void 0 === this.upperBetaLimit
? this.allowUpsideDown && this.beta < -Math.PI && (this.beta = this.beta + 2 * Math.PI)
: this.beta > this.upperBetaLimit && (this.beta = this.upperBetaLimit),
null !== this.lowerAlphaLimit && this.alpha < this.lowerAlphaLimit && (this.alpha = this.lowerAlphaLimit),
null !== this.upperAlphaLimit && this.alpha > this.upperAlphaLimit && (this.alpha = this.upperAlphaLimit),
null !== this.lowerRadiusLimit && this.radius < this.lowerRadiusLimit && ((this.radius = this.lowerRadiusLimit), (this.inertialRadiusOffset = 0)),
null !== this.upperRadiusLimit && this.radius > this.upperRadiusLimit && ((this.radius = this.upperRadiusLimit), (this.inertialRadiusOffset = 0));
}),
(t.prototype.rebuildAnglesAndRadius = function () {
this._position.subtractToRef(this._getTargetPosition(), this._computationVector),
(0 === this._upVector.x && 1 === this._upVector.y && 0 === this._upVector.z) || a.e.TransformCoordinatesToRef(this._computationVector, this._upToYMatrix, this._computationVector),
(this.radius = this._computationVector.length()),
0 === this.radius && (this.radius = 1e-4),
0 === this._computationVector.x && 0 === this._computationVector.z
? (this.alpha = Math.PI / 2)
: (this.alpha = Math.acos(this._computationVector.x / Math.sqrt(Math.pow(this._computationVector.x, 2) + Math.pow(this._computationVector.z, 2)))),
this._computationVector.z < 0 && (this.alpha = 2 * Math.PI - this.alpha),
(this.beta = Math.acos(this._computationVector.y / this.radius)),
this._checkLimits();
}),
(t.prototype.setPosition = function (e) {
this._position.equals(e) || (this._position.copyFrom(e), this.rebuildAnglesAndRadius());
}),
(t.prototype.setTarget = function (e, t, n) {
if ((void 0 === t && (t = !1), void 0 === n && (n = !1), e.getBoundingInfo))
(this._targetBoundingCenter = t ? e.getBoundingInfo().boundingBox.centerWorld.clone() : null),
e.computeWorldMatrix(),
(this._targetHost = e),
(this._target = this._getTargetPosition()),
this.onMeshTargetChangedObservable.notifyObservers(this._targetHost);
else {
var i = e,
r = this._getTargetPosition();
if (r && !n && r.equals(i)) return;
(this._targetHost = null), (this._target = i), (this._targetBoundingCenter = null), this.onMeshTargetChangedObservable.notifyObservers(null);
}
this.rebuildAnglesAndRadius();
}),
(t.prototype._getViewMatrix = function () {
var e = Math.cos(this.alpha),
t = Math.sin(this.alpha),
n = Math.cos(this.beta),
i = Math.sin(this.beta);
0 === i && (i = 1e-4);
var r = this._getTargetPosition();
if (
(this._computationVector.copyFromFloats(this.radius * e * i, this.radius * n, this.radius * t * i),
(0 === this._upVector.x && 1 === this._upVector.y && 0 === this._upVector.z) || a.e.TransformCoordinatesToRef(this._computationVector, this._YToUpMatrix, this._computationVector),
r.addToRef(this._computationVector, this._newPosition),
this.getScene().collisionsEnabled && this.checkCollisions)
) {
var o = this.getScene().collisionCoordinator;
this._collider || (this._collider = o.createCollider()),
(this._collider._radius = this.collisionRadius),
this._newPosition.subtractToRef(this._position, this._collisionVelocity),
(this._collisionTriggered = !0),
o.getNewPosition(this._position, this._collisionVelocity, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);
} else {
this._position.copyFrom(this._newPosition);
var s = this.upVector;
this.allowUpsideDown && i < 0 && (s = s.negate()),
this._computeViewMatrix(this._position, r, s),
this._viewMatrix.addAtIndex(12, this.targetScreenOffset.x),
this._viewMatrix.addAtIndex(13, this.targetScreenOffset.y);
}
return (this._currentTarget = r), this._viewMatrix;
}),
(t.prototype.zoomOn = function (e, t) {
void 0 === t && (t = !1), (e = e || this.getScene().meshes);
var n = Ee.a.MinMax(e),
i = a.e.Distance(n.min, n.max);
(this.radius = i * this.zoomOnFactor), this.focusOn({ min: n.min, max: n.max, distance: i }, t);
}),
(t.prototype.focusOn = function (e, t) {
var n, i;
if ((void 0 === t && (t = !1), void 0 === e.min)) {
var r = e || this.getScene().meshes;
(n = Ee.a.MinMax(r)), (i = a.e.Distance(n.min, n.max));
} else {
(n = e), (i = e.distance);
}
(this._target = Ee.a.Center(n)), t || (this.maxZ = 2 * i);
}),
(t.prototype.createRigCamera = function (e, n) {
var i = 0;
switch (this.cameraRigMode) {
case De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
case De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:
case De.a.RIG_MODE_STEREOSCOPIC_INTERLACED:
case De.a.RIG_MODE_VR:
i = this._cameraRigParams.stereoHalfAngle * (0 === n ? 1 : -1);
break;
case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
i = this._cameraRigParams.stereoHalfAngle * (0 === n ? -1 : 1);
}
var r = new t(e, this.alpha + i, this.beta, this.radius, this._target, this.getScene());
return (r._cameraRigParams = {}), (r.isRigCamera = !0), (r.rigParent = this), r;
}),
(t.prototype._updateRigCameras = function () {
var t = this._rigCameras[0],
n = this._rigCameras[1];
switch (((t.beta = n.beta = this.beta), this.cameraRigMode)) {
case De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
case De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:
case De.a.RIG_MODE_STEREOSCOPIC_INTERLACED:
case De.a.RIG_MODE_VR:
(t.alpha = this.alpha - this._cameraRigParams.stereoHalfAngle), (n.alpha = this.alpha + this._cameraRigParams.stereoHalfAngle);
break;
case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
(t.alpha = this.alpha + this._cameraRigParams.stereoHalfAngle), (n.alpha = this.alpha - this._cameraRigParams.stereoHalfAngle);
}
e.prototype._updateRigCameras.call(this);
}),
(t.prototype.dispose = function () {
this.inputs.clear(), e.prototype.dispose.call(this);
}),
(t.prototype.getClassName = function () {
return "ArcRotateCamera";
}),
Object(h.c)([Object(He.c)()], t.prototype, "alpha", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "beta", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "radius", void 0),
Object(h.c)([Object(He.o)("target")], t.prototype, "_target", void 0),
Object(h.c)([Object(He.o)("upVector")], t.prototype, "_upVector", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "inertialAlphaOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "inertialBetaOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "inertialRadiusOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lowerAlphaLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "upperAlphaLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lowerBetaLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "upperBetaLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lowerRadiusLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "upperRadiusLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "inertialPanningX", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "inertialPanningY", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "pinchToPanMaxDistance", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "panningDistanceLimit", void 0),
Object(h.c)([Object(He.o)()], t.prototype, "panningOriginTarget", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "panningInertia", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "zoomOnFactor", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "targetScreenOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "allowUpsideDown", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "useInputToRestoreState", void 0),
t
);
})(vt.a);
Ct.a.AddNodeConstructor("DeviceOrientationCamera", function (e, t) {
return function () {
return new Tt(e, a.e.Zero(), t);
};
});
var Tt = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n, i) || this;
return (
(r._tmpDragQuaternion = new a.b()),
(r._disablePointerInputWhenUsingDeviceOrientation = !0),
(r._dragFactor = 0),
(r._quaternionCache = new a.b()),
r.inputs.addDeviceOrientation(),
r.inputs._deviceOrientationInput &&
r.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce(function () {
r._disablePointerInputWhenUsingDeviceOrientation &&
r.inputs._mouseInput &&
((r.inputs._mouseInput._allowCameraRotation = !1),
r.inputs._mouseInput.onPointerMovedObservable.add(function (e) {
0 != r._dragFactor &&
(r._initialQuaternion || (r._initialQuaternion = new a.b()),
a.b.FromEulerAnglesToRef(0, e.offsetX * r._dragFactor, 0, r._tmpDragQuaternion),
r._initialQuaternion.multiplyToRef(r._tmpDragQuaternion, r._initialQuaternion));
}));
}),
r
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "disablePointerInputWhenUsingDeviceOrientation", {
get: function () {
return this._disablePointerInputWhenUsingDeviceOrientation;
},
set: function (e) {
this._disablePointerInputWhenUsingDeviceOrientation = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.enableHorizontalDragging = function (e) {
void 0 === e && (e = 1 / 300), (this._dragFactor = e);
}),
(t.prototype.getClassName = function () {
return "DeviceOrientationCamera";
}),
(t.prototype._checkInputs = function () {
e.prototype._checkInputs.call(this), this._quaternionCache.copyFrom(this.rotationQuaternion), this._initialQuaternion && this._initialQuaternion.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion);
}),
(t.prototype.resetToCurrentRotation = function (e) {
var t = this;
void 0 === e && (e = Be.a.Y),
this.rotationQuaternion &&
(this._initialQuaternion || (this._initialQuaternion = new a.b()),
this._initialQuaternion.copyFrom(this._quaternionCache || this.rotationQuaternion),
["x", "y", "z"].forEach(function (n) {
e[n] ? (t._initialQuaternion[n] *= -1) : (t._initialQuaternion[n] = 0);
}),
this._initialQuaternion.normalize(),
this._initialQuaternion.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion));
}),
t
);
})(yt.a),
St = (function (e) {
function t(t) {
return e.call(this, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.addKeyboard = function () {
return this.add(new rt()), this;
}),
(t.prototype.addMouse = function (e) {
return void 0 === e && (e = !0), this.add(new ot(e)), this;
}),
t
);
})(We.b),
Ot = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = !0);
var o = e.call(this, t, n, i, r) || this;
return (
(o.ellipsoid = new a.e(1, 1, 1)),
(o.ellipsoidOffset = new a.e(0, 0, 0)),
(o.checkCollisions = !1),
(o.applyGravity = !1),
(o.cameraDirection = a.e.Zero()),
(o._trackRoll = 0),
(o.rollCorrect = 100),
(o.bankedTurn = !1),
(o.bankedTurnLimit = Math.PI / 2),
(o.bankedTurnMultiplier = 1),
(o._needMoveForGravity = !1),
(o._oldPosition = a.e.Zero()),
(o._diffPosition = a.e.Zero()),
(o._newPosition = a.e.Zero()),
(o._collisionMask = -1),
(o._onCollisionPositionChange = function (e, t, n) {
void 0 === n && (n = null);
var i;
(i = t),
o._newPosition.copyFrom(i),
o._newPosition.subtractToRef(o._oldPosition, o._diffPosition),
o._diffPosition.length() > ue.a.CollisionsEpsilon && (o.position.addInPlace(o._diffPosition), o.onCollide && n && o.onCollide(n));
}),
(o.inputs = new St(o)),
o.inputs.addKeyboard().addMouse(),
o
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "angularSensibility", {
get: function () {
var e = this.inputs.attached.mouse;
return e ? e.angularSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.mouse;
t && (t.angularSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysForward", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysForward : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysForward = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysBackward", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysBackward : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysBackward = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysUp", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysUp : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysUp = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysDown", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysDown : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysDown = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysLeft", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysLeft : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysLeft = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysRight", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysRight : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysRight = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.attachControl = function (e, t) {
this.inputs.attachElement(e, t);
}),
(t.prototype.detachControl = function (e) {
this.inputs.detachElement(e), (this.cameraDirection = new a.e(0, 0, 0));
}),
Object.defineProperty(t.prototype, "collisionMask", {
get: function () {
return this._collisionMask;
},
set: function (e) {
this._collisionMask = isNaN(e) ? -1 : e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._collideWithWorld = function (e) {
(this.parent ? a.e.TransformCoordinates(this.position, this.parent.getWorldMatrix()) : this.position).subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition),
this._oldPosition.addInPlace(this.ellipsoidOffset);
var t = this.getScene().collisionCoordinator;
this._collider || (this._collider = t.createCollider()), (this._collider._radius = this.ellipsoid), (this._collider.collisionMask = this._collisionMask);
var n = e;
this.applyGravity && (n = e.add(this.getScene().gravity)), t.getNewPosition(this._oldPosition, n, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);
}),
(t.prototype._checkInputs = function () {
this._localDirection || ((this._localDirection = a.e.Zero()), (this._transformedDirection = a.e.Zero())), this.inputs.checkInputs(), e.prototype._checkInputs.call(this);
}),
(t.prototype._decideIfNeedsToMove = function () {
return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;
}),
(t.prototype._updatePosition = function () {
this.checkCollisions && this.getScene().collisionsEnabled ? this._collideWithWorld(this.cameraDirection) : e.prototype._updatePosition.call(this);
}),
(t.prototype.restoreRoll = function (e) {
var t = this._trackRoll,
n = t - this.rotation.z;
Math.abs(n) >= 0.001 && ((this.rotation.z += n / e), Math.abs(t - this.rotation.z) <= 0.001 && (this.rotation.z = t));
}),
(t.prototype.dispose = function () {
this.inputs.clear(), e.prototype.dispose.call(this);
}),
(t.prototype.getClassName = function () {
return "FlyCamera";
}),
Object(h.c)([Object(He.o)()], t.prototype, "ellipsoid", void 0),
Object(h.c)([Object(He.o)()], t.prototype, "ellipsoidOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "checkCollisions", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "applyGravity", void 0),
t
);
})(vt.a),
Et = (function (e) {
function t(t) {
return e.call(this, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.addKeyboard = function () {
return this.add(new at()), this;
}),
(t.prototype.addMouseWheel = function () {
return this.add(new st()), this;
}),
(t.prototype.addPointers = function () {
return this.add(new ct()), this;
}),
(t.prototype.addVRDeviceOrientation = function () {
return this;
}),
t
);
})(We.b);
Ct.a.AddNodeConstructor("FollowCamera", function (e, t) {
return function () {
return new At(e, a.e.Zero(), t);
};
}),
Ct.a.AddNodeConstructor("ArcFollowCamera", function (e, t) {
return function () {
return new It(e, 0, 0, 1, null, t);
};
});
var Mt,
At = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = null);
var o = e.call(this, t, n, i) || this;
return (
(o.radius = 12),
(o.lowerRadiusLimit = null),
(o.upperRadiusLimit = null),
(o.rotationOffset = 0),
(o.lowerRotationOffsetLimit = null),
(o.upperRotationOffsetLimit = null),
(o.heightOffset = 4),
(o.lowerHeightOffsetLimit = null),
(o.upperHeightOffsetLimit = null),
(o.cameraAcceleration = 0.05),
(o.maxCameraSpeed = 20),
(o.lockedTarget = r),
(o.inputs = new Et(o)),
o.inputs.addKeyboard().addMouseWheel().addPointers(),
o
);
}
return (
Object(h.d)(t, e),
(t.prototype._follow = function (e) {
if (e) {
var t;
if (e.rotationQuaternion) {
var n = new a.a();
e.rotationQuaternion.toRotationMatrix(n), (t = Math.atan2(n.m[8], n.m[10]));
} else t = e.rotation.y;
var i = $e.b.ToRadians(this.rotationOffset) + t,
r = e.getAbsolutePosition(),
o = r.x + Math.sin(i) * this.radius,
s = r.z + Math.cos(i) * this.radius,
c = o - this.position.x,
l = r.y + this.heightOffset - this.position.y,
u = s - this.position.z,
h = c * this.cameraAcceleration * 2,
d = l * this.cameraAcceleration,
p = u * this.cameraAcceleration * 2;
(h > this.maxCameraSpeed || h < -this.maxCameraSpeed) && (h = h < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed),
(d > this.maxCameraSpeed || d < -this.maxCameraSpeed) && (d = d < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed),
(p > this.maxCameraSpeed || p < -this.maxCameraSpeed) && (p = p < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed),
(this.position = new a.e(this.position.x + h, this.position.y + d, this.position.z + p)),
this.setTarget(r);
}
}),
(t.prototype.attachControl = function (e, t) {
this.inputs.attachElement(e, t), (this._reset = function () {});
}),
(t.prototype.detachControl = function (e) {
this.inputs.detachElement(e), this._reset && this._reset();
}),
(t.prototype._checkInputs = function () {
this.inputs.checkInputs(), this._checkLimits(), e.prototype._checkInputs.call(this), this.lockedTarget && this._follow(this.lockedTarget);
}),
(t.prototype._checkLimits = function () {
null !== this.lowerRadiusLimit && this.radius < this.lowerRadiusLimit && (this.radius = this.lowerRadiusLimit),
null !== this.upperRadiusLimit && this.radius > this.upperRadiusLimit && (this.radius = this.upperRadiusLimit),
null !== this.lowerHeightOffsetLimit && this.heightOffset < this.lowerHeightOffsetLimit && (this.heightOffset = this.lowerHeightOffsetLimit),
null !== this.upperHeightOffsetLimit && this.heightOffset > this.upperHeightOffsetLimit && (this.heightOffset = this.upperHeightOffsetLimit),
null !== this.lowerRotationOffsetLimit && this.rotationOffset < this.lowerRotationOffsetLimit && (this.rotationOffset = this.lowerRotationOffsetLimit),
null !== this.upperRotationOffsetLimit && this.rotationOffset > this.upperRotationOffsetLimit && (this.rotationOffset = this.upperRotationOffsetLimit);
}),
(t.prototype.getClassName = function () {
return "FollowCamera";
}),
Object(h.c)([Object(He.c)()], t.prototype, "radius", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lowerRadiusLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "upperRadiusLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "rotationOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lowerRotationOffsetLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "upperRotationOffsetLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "heightOffset", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lowerHeightOffsetLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "upperHeightOffsetLimit", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "cameraAcceleration", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "maxCameraSpeed", void 0),
Object(h.c)([Object(He.k)("lockedTargetId")], t.prototype, "lockedTarget", void 0),
t
);
})(vt.a),
It = (function (e) {
function t(t, n, i, r, o, s) {
var c = e.call(this, t, a.e.Zero(), s) || this;
return (c.alpha = n), (c.beta = i), (c.radius = r), (c.target = o), (c._cartesianCoordinates = a.e.Zero()), c._follow(), c;
}
return (
Object(h.d)(t, e),
(t.prototype._follow = function () {
if (this.target) {
(this._cartesianCoordinates.x = this.radius * Math.cos(this.alpha) * Math.cos(this.beta)),
(this._cartesianCoordinates.y = this.radius * Math.sin(this.beta)),
(this._cartesianCoordinates.z = this.radius * Math.sin(this.alpha) * Math.cos(this.beta));
var e = this.target.getAbsolutePosition();
(this.position = e.add(this._cartesianCoordinates)), this.setTarget(e);
}
}),
(t.prototype._checkInputs = function () {
e.prototype._checkInputs.call(this), this._follow();
}),
(t.prototype.getClassName = function () {
return "ArcFollowCamera";
}),
t
);
})(vt.a),
Dt = n(56);
!(function (e) {
(e[(e.VIVE = 0)] = "VIVE"), (e[(e.OCULUS = 1)] = "OCULUS"), (e[(e.WINDOWS = 2)] = "WINDOWS"), (e[(e.GEAR_VR = 3)] = "GEAR_VR"), (e[(e.DAYDREAM = 4)] = "DAYDREAM"), (e[(e.GENERIC = 5)] = "GENERIC");
})(Mt || (Mt = {}));
var Rt,
wt,
Lt = (function () {
function e() {}
return (
(e.InitiateController = function (e) {
for (var t = 0, n = this._ControllerFactories; t < n.length; t++) {
var i = n[t];
if (i.canCreate(e)) return i.create(e);
}
if (this._DefaultControllerFactory) return this._DefaultControllerFactory(e);
throw "The type of gamepad you are trying to load needs to be imported first or is not supported.";
}),
(e._ControllerFactories = []),
(e._DefaultControllerFactory = null),
e
);
})(),
Ft = (function (e) {
function t(t) {
var n = e.call(this, t.id, t.index, t) || this;
return (
(n.isXR = !1),
(n._deviceRoomPosition = a.e.Zero()),
(n._deviceRoomRotationQuaternion = new a.b()),
(n.devicePosition = a.e.Zero()),
(n.deviceRotationQuaternion = new a.b()),
(n.deviceScaleFactor = 1),
(n._trackPosition = !0),
(n._maxRotationDistFromHeadset = Math.PI / 5),
(n._draggedRoomRotation = 0),
(n._leftHandSystemQuaternion = new a.b()),
(n._deviceToWorld = a.a.Identity()),
(n._pointingPoseNode = null),
(n._workingMatrix = a.a.Identity()),
(n._meshAttachedObservable = new o.c()),
(n.type = Ye.POSE_ENABLED),
(n.controllerType = Mt.GENERIC),
(n.position = a.e.Zero()),
(n.rotationQuaternion = new a.b()),
(n._calculatedPosition = a.e.Zero()),
(n._calculatedRotation = new a.b()),
a.b.RotationYawPitchRollToRef(Math.PI, 0, 0, n._leftHandSystemQuaternion),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype._disableTrackPosition = function (e) {
this._trackPosition && (this._calculatedPosition.copyFrom(e), (this._trackPosition = !1));
}),
(t.prototype.update = function () {
e.prototype.update.call(this), this._updatePoseAndMesh();
}),
(t.prototype._updatePoseAndMesh = function () {
if (!this.isXR) {
var e = this.browserGamepad.pose;
if ((this.updateFromDevice(e), !this._trackPosition && E.a.LastCreatedScene && E.a.LastCreatedScene.activeCamera && E.a.LastCreatedScene.activeCamera.devicePosition))
if (((t = E.a.LastCreatedScene.activeCamera)._computeDevicePosition(), this._deviceToWorld.setTranslation(t.devicePosition), t.deviceRotationQuaternion)) {
var t;
(t = t)._deviceRoomRotationQuaternion.toEulerAnglesToRef(a.c.Vector3[0]);
var n = Math.atan2(Math.sin(a.c.Vector3[0].y - this._draggedRoomRotation), Math.cos(a.c.Vector3[0].y - this._draggedRoomRotation));
if (Math.abs(n) > this._maxRotationDistFromHeadset) {
var i = n - (n < 0 ? -this._maxRotationDistFromHeadset : this._maxRotationDistFromHeadset);
this._draggedRoomRotation += i;
var r = Math.sin(-i),
o = Math.cos(-i);
(this._calculatedPosition.x = this._calculatedPosition.x * o - this._calculatedPosition.z * r), (this._calculatedPosition.z = this._calculatedPosition.x * r + this._calculatedPosition.z * o);
}
}
a.e.TransformCoordinatesToRef(this._calculatedPosition, this._deviceToWorld, this.devicePosition),
this._deviceToWorld.getRotationMatrixToRef(this._workingMatrix),
a.b.FromRotationMatrixToRef(this._workingMatrix, this.deviceRotationQuaternion),
this.deviceRotationQuaternion.multiplyInPlace(this._calculatedRotation),
this._mesh && (this._mesh.position.copyFrom(this.devicePosition), this._mesh.rotationQuaternion && this._mesh.rotationQuaternion.copyFrom(this.deviceRotationQuaternion));
}
}),
(t.prototype.updateFromDevice = function (e) {
if (!this.isXR && e) {
(this.rawPose = e),
e.position &&
(this._deviceRoomPosition.copyFromFloats(e.position[0], e.position[1], -e.position[2]),
this._mesh && this._mesh.getScene().useRightHandedSystem && (this._deviceRoomPosition.z *= -1),
this._trackPosition && this._deviceRoomPosition.scaleToRef(this.deviceScaleFactor, this._calculatedPosition),
this._calculatedPosition.addInPlace(this.position));
var t = this.rawPose;
e.orientation &&
t.orientation &&
4 === t.orientation.length &&
(this._deviceRoomRotationQuaternion.copyFromFloats(t.orientation[0], t.orientation[1], -t.orientation[2], -t.orientation[3]),
this._mesh &&
(this._mesh.getScene().useRightHandedSystem
? ((this._deviceRoomRotationQuaternion.z *= -1), (this._deviceRoomRotationQuaternion.w *= -1))
: this._deviceRoomRotationQuaternion.multiplyToRef(this._leftHandSystemQuaternion, this._deviceRoomRotationQuaternion)),
this._deviceRoomRotationQuaternion.multiplyToRef(this.rotationQuaternion, this._calculatedRotation));
}
}),
(t.prototype.attachToMesh = function (e) {
if (
(this._mesh && (this._mesh.parent = null),
(this._mesh = e),
this._poseControlledCamera && (this._mesh.parent = this._poseControlledCamera),
this._mesh.rotationQuaternion || (this._mesh.rotationQuaternion = new a.b()),
!this.isXR && (this._updatePoseAndMesh(), this._pointingPoseNode))
) {
for (var t = [], n = this._pointingPoseNode; n.parent; ) t.push(n.parent), (n = n.parent);
t.reverse().forEach(function (e) {
e.computeWorldMatrix(!0);
});
}
this._meshAttachedObservable.notifyObservers(e);
}),
(t.prototype.attachToPoseControlledCamera = function (e) {
(this._poseControlledCamera = e), this._mesh && (this._mesh.parent = this._poseControlledCamera);
}),
(t.prototype.dispose = function () {
this._mesh && this._mesh.dispose(), (this._mesh = null), e.prototype.dispose.call(this);
}),
Object.defineProperty(t.prototype, "mesh", {
get: function () {
return this._mesh;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getForwardRay = function (e) {
if ((void 0 === e && (e = 100), !this.mesh)) return new Re(a.e.Zero(), new a.e(0, 0, 1), e);
var t = this._pointingPoseNode ? this._pointingPoseNode.getWorldMatrix() : this.mesh.getWorldMatrix(),
n = t.getTranslation(),
i = new a.e(0, 0, -1),
r = a.e.TransformNormal(i, t),
o = a.e.Normalize(r);
return new Re(n, o, e);
}),
(t.POINTING_POSE = "POINTING_POSE"),
t
);
})(Ye);
!(function (e) {
(e[(e.A = 0)] = "A"),
(e[(e.B = 1)] = "B"),
(e[(e.X = 2)] = "X"),
(e[(e.Y = 3)] = "Y"),
(e[(e.LB = 4)] = "LB"),
(e[(e.RB = 5)] = "RB"),
(e[(e.Back = 8)] = "Back"),
(e[(e.Start = 9)] = "Start"),
(e[(e.LeftStick = 10)] = "LeftStick"),
(e[(e.RightStick = 11)] = "RightStick");
})(Rt || (Rt = {})),
(function (e) {
(e[(e.Up = 12)] = "Up"), (e[(e.Down = 13)] = "Down"), (e[(e.Left = 14)] = "Left"), (e[(e.Right = 15)] = "Right");
})(wt || (wt = {}));
var Nt,
kt,
zt = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = !1);
var a = e.call(this, t, n, i, 0, 1, 2, 3) || this;
return (
(a._leftTrigger = 0),
(a._rightTrigger = 0),
(a.onButtonDownObservable = new o.c()),
(a.onButtonUpObservable = new o.c()),
(a.onPadDownObservable = new o.c()),
(a.onPadUpObservable = new o.c()),
(a._buttonA = 0),
(a._buttonB = 0),
(a._buttonX = 0),
(a._buttonY = 0),
(a._buttonBack = 0),
(a._buttonStart = 0),
(a._buttonLB = 0),
(a._buttonRB = 0),
(a._buttonLeftStick = 0),
(a._buttonRightStick = 0),
(a._dPadUp = 0),
(a._dPadDown = 0),
(a._dPadLeft = 0),
(a._dPadRight = 0),
(a._isXboxOnePad = !1),
(a.type = Ye.XBOX),
(a._isXboxOnePad = r),
a
);
}
return (
Object(h.d)(t, e),
(t.prototype.onlefttriggerchanged = function (e) {
this._onlefttriggerchanged = e;
}),
(t.prototype.onrighttriggerchanged = function (e) {
this._onrighttriggerchanged = e;
}),
Object.defineProperty(t.prototype, "leftTrigger", {
get: function () {
return this._leftTrigger;
},
set: function (e) {
this._onlefttriggerchanged && this._leftTrigger !== e && this._onlefttriggerchanged(e), (this._leftTrigger = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rightTrigger", {
get: function () {
return this._rightTrigger;
},
set: function (e) {
this._onrighttriggerchanged && this._rightTrigger !== e && this._onrighttriggerchanged(e), (this._rightTrigger = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.onbuttondown = function (e) {
this._onbuttondown = e;
}),
(t.prototype.onbuttonup = function (e) {
this._onbuttonup = e;
}),
(t.prototype.ondpaddown = function (e) {
this._ondpaddown = e;
}),
(t.prototype.ondpadup = function (e) {
this._ondpadup = e;
}),
(t.prototype._setButtonValue = function (e, t, n) {
return (
e !== t &&
(1 === e && (this._onbuttondown && this._onbuttondown(n), this.onButtonDownObservable.notifyObservers(n)), 0 === e && (this._onbuttonup && this._onbuttonup(n), this.onButtonUpObservable.notifyObservers(n))),
e
);
}),
(t.prototype._setDPadValue = function (e, t, n) {
return e !== t && (1 === e && (this._ondpaddown && this._ondpaddown(n), this.onPadDownObservable.notifyObservers(n)), 0 === e && (this._ondpadup && this._ondpadup(n), this.onPadUpObservable.notifyObservers(n))), e;
}),
Object.defineProperty(t.prototype, "buttonA", {
get: function () {
return this._buttonA;
},
set: function (e) {
this._buttonA = this._setButtonValue(e, this._buttonA, Rt.A);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonB", {
get: function () {
return this._buttonB;
},
set: function (e) {
this._buttonB = this._setButtonValue(e, this._buttonB, Rt.B);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonX", {
get: function () {
return this._buttonX;
},
set: function (e) {
this._buttonX = this._setButtonValue(e, this._buttonX, Rt.X);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonY", {
get: function () {
return this._buttonY;
},
set: function (e) {
this._buttonY = this._setButtonValue(e, this._buttonY, Rt.Y);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonStart", {
get: function () {
return this._buttonStart;
},
set: function (e) {
this._buttonStart = this._setButtonValue(e, this._buttonStart, Rt.Start);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonBack", {
get: function () {
return this._buttonBack;
},
set: function (e) {
this._buttonBack = this._setButtonValue(e, this._buttonBack, Rt.Back);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonLB", {
get: function () {
return this._buttonLB;
},
set: function (e) {
this._buttonLB = this._setButtonValue(e, this._buttonLB, Rt.LB);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonRB", {
get: function () {
return this._buttonRB;
},
set: function (e) {
this._buttonRB = this._setButtonValue(e, this._buttonRB, Rt.RB);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonLeftStick", {
get: function () {
return this._buttonLeftStick;
},
set: function (e) {
this._buttonLeftStick = this._setButtonValue(e, this._buttonLeftStick, Rt.LeftStick);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonRightStick", {
get: function () {
return this._buttonRightStick;
},
set: function (e) {
this._buttonRightStick = this._setButtonValue(e, this._buttonRightStick, Rt.RightStick);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadUp", {
get: function () {
return this._dPadUp;
},
set: function (e) {
this._dPadUp = this._setDPadValue(e, this._dPadUp, wt.Up);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadDown", {
get: function () {
return this._dPadDown;
},
set: function (e) {
this._dPadDown = this._setDPadValue(e, this._dPadDown, wt.Down);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadLeft", {
get: function () {
return this._dPadLeft;
},
set: function (e) {
this._dPadLeft = this._setDPadValue(e, this._dPadLeft, wt.Left);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadRight", {
get: function () {
return this._dPadRight;
},
set: function (e) {
this._dPadRight = this._setDPadValue(e, this._dPadRight, wt.Right);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.update = function () {
e.prototype.update.call(this),
this._isXboxOnePad,
(this.buttonA = this.browserGamepad.buttons[0].value),
(this.buttonB = this.browserGamepad.buttons[1].value),
(this.buttonX = this.browserGamepad.buttons[2].value),
(this.buttonY = this.browserGamepad.buttons[3].value),
(this.buttonLB = this.browserGamepad.buttons[4].value),
(this.buttonRB = this.browserGamepad.buttons[5].value),
(this.leftTrigger = this.browserGamepad.buttons[6].value),
(this.rightTrigger = this.browserGamepad.buttons[7].value),
(this.buttonBack = this.browserGamepad.buttons[8].value),
(this.buttonStart = this.browserGamepad.buttons[9].value),
(this.buttonLeftStick = this.browserGamepad.buttons[10].value),
(this.buttonRightStick = this.browserGamepad.buttons[11].value),
(this.dPadUp = this.browserGamepad.buttons[12].value),
(this.dPadDown = this.browserGamepad.buttons[13].value),
(this.dPadLeft = this.browserGamepad.buttons[14].value),
(this.dPadRight = this.browserGamepad.buttons[15].value);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(), this.onPadDownObservable.clear(), this.onPadUpObservable.clear();
}),
t
);
})(Ye);
!(function (e) {
(e[(e.Cross = 0)] = "Cross"),
(e[(e.Circle = 1)] = "Circle"),
(e[(e.Square = 2)] = "Square"),
(e[(e.Triangle = 3)] = "Triangle"),
(e[(e.L1 = 4)] = "L1"),
(e[(e.R1 = 5)] = "R1"),
(e[(e.Share = 8)] = "Share"),
(e[(e.Options = 9)] = "Options"),
(e[(e.LeftStick = 10)] = "LeftStick"),
(e[(e.RightStick = 11)] = "RightStick");
})(Nt || (Nt = {})),
(function (e) {
(e[(e.Up = 12)] = "Up"), (e[(e.Down = 13)] = "Down"), (e[(e.Left = 14)] = "Left"), (e[(e.Right = 15)] = "Right");
})(kt || (kt = {}));
var jt = (function (e) {
function t(t, n, i) {
var r = e.call(this, t.replace("STANDARD GAMEPAD", "SONY PLAYSTATION DUALSHOCK"), n, i, 0, 1, 2, 3) || this;
return (
(r._leftTrigger = 0),
(r._rightTrigger = 0),
(r.onButtonDownObservable = new o.c()),
(r.onButtonUpObservable = new o.c()),
(r.onPadDownObservable = new o.c()),
(r.onPadUpObservable = new o.c()),
(r._buttonCross = 0),
(r._buttonCircle = 0),
(r._buttonSquare = 0),
(r._buttonTriangle = 0),
(r._buttonShare = 0),
(r._buttonOptions = 0),
(r._buttonL1 = 0),
(r._buttonR1 = 0),
(r._buttonLeftStick = 0),
(r._buttonRightStick = 0),
(r._dPadUp = 0),
(r._dPadDown = 0),
(r._dPadLeft = 0),
(r._dPadRight = 0),
(r.type = Ye.DUALSHOCK),
r
);
}
return (
Object(h.d)(t, e),
(t.prototype.onlefttriggerchanged = function (e) {
this._onlefttriggerchanged = e;
}),
(t.prototype.onrighttriggerchanged = function (e) {
this._onrighttriggerchanged = e;
}),
Object.defineProperty(t.prototype, "leftTrigger", {
get: function () {
return this._leftTrigger;
},
set: function (e) {
this._onlefttriggerchanged && this._leftTrigger !== e && this._onlefttriggerchanged(e), (this._leftTrigger = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rightTrigger", {
get: function () {
return this._rightTrigger;
},
set: function (e) {
this._onrighttriggerchanged && this._rightTrigger !== e && this._onrighttriggerchanged(e), (this._rightTrigger = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.onbuttondown = function (e) {
this._onbuttondown = e;
}),
(t.prototype.onbuttonup = function (e) {
this._onbuttonup = e;
}),
(t.prototype.ondpaddown = function (e) {
this._ondpaddown = e;
}),
(t.prototype.ondpadup = function (e) {
this._ondpadup = e;
}),
(t.prototype._setButtonValue = function (e, t, n) {
return (
e !== t &&
(1 === e && (this._onbuttondown && this._onbuttondown(n), this.onButtonDownObservable.notifyObservers(n)), 0 === e && (this._onbuttonup && this._onbuttonup(n), this.onButtonUpObservable.notifyObservers(n))),
e
);
}),
(t.prototype._setDPadValue = function (e, t, n) {
return e !== t && (1 === e && (this._ondpaddown && this._ondpaddown(n), this.onPadDownObservable.notifyObservers(n)), 0 === e && (this._ondpadup && this._ondpadup(n), this.onPadUpObservable.notifyObservers(n))), e;
}),
Object.defineProperty(t.prototype, "buttonCross", {
get: function () {
return this._buttonCross;
},
set: function (e) {
this._buttonCross = this._setButtonValue(e, this._buttonCross, Nt.Cross);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonCircle", {
get: function () {
return this._buttonCircle;
},
set: function (e) {
this._buttonCircle = this._setButtonValue(e, this._buttonCircle, Nt.Circle);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonSquare", {
get: function () {
return this._buttonSquare;
},
set: function (e) {
this._buttonSquare = this._setButtonValue(e, this._buttonSquare, Nt.Square);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonTriangle", {
get: function () {
return this._buttonTriangle;
},
set: function (e) {
this._buttonTriangle = this._setButtonValue(e, this._buttonTriangle, Nt.Triangle);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonOptions", {
get: function () {
return this._buttonOptions;
},
set: function (e) {
this._buttonOptions = this._setButtonValue(e, this._buttonOptions, Nt.Options);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonShare", {
get: function () {
return this._buttonShare;
},
set: function (e) {
this._buttonShare = this._setButtonValue(e, this._buttonShare, Nt.Share);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonL1", {
get: function () {
return this._buttonL1;
},
set: function (e) {
this._buttonL1 = this._setButtonValue(e, this._buttonL1, Nt.L1);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonR1", {
get: function () {
return this._buttonR1;
},
set: function (e) {
this._buttonR1 = this._setButtonValue(e, this._buttonR1, Nt.R1);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonLeftStick", {
get: function () {
return this._buttonLeftStick;
},
set: function (e) {
this._buttonLeftStick = this._setButtonValue(e, this._buttonLeftStick, Nt.LeftStick);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "buttonRightStick", {
get: function () {
return this._buttonRightStick;
},
set: function (e) {
this._buttonRightStick = this._setButtonValue(e, this._buttonRightStick, Nt.RightStick);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadUp", {
get: function () {
return this._dPadUp;
},
set: function (e) {
this._dPadUp = this._setDPadValue(e, this._dPadUp, kt.Up);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadDown", {
get: function () {
return this._dPadDown;
},
set: function (e) {
this._dPadDown = this._setDPadValue(e, this._dPadDown, kt.Down);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadLeft", {
get: function () {
return this._dPadLeft;
},
set: function (e) {
this._dPadLeft = this._setDPadValue(e, this._dPadLeft, kt.Left);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dPadRight", {
get: function () {
return this._dPadRight;
},
set: function (e) {
this._dPadRight = this._setDPadValue(e, this._dPadRight, kt.Right);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.update = function () {
e.prototype.update.call(this),
(this.buttonCross = this.browserGamepad.buttons[0].value),
(this.buttonCircle = this.browserGamepad.buttons[1].value),
(this.buttonSquare = this.browserGamepad.buttons[2].value),
(this.buttonTriangle = this.browserGamepad.buttons[3].value),
(this.buttonL1 = this.browserGamepad.buttons[4].value),
(this.buttonR1 = this.browserGamepad.buttons[5].value),
(this.leftTrigger = this.browserGamepad.buttons[6].value),
(this.rightTrigger = this.browserGamepad.buttons[7].value),
(this.buttonShare = this.browserGamepad.buttons[8].value),
(this.buttonOptions = this.browserGamepad.buttons[9].value),
(this.buttonLeftStick = this.browserGamepad.buttons[10].value),
(this.buttonRightStick = this.browserGamepad.buttons[11].value),
(this.dPadUp = this.browserGamepad.buttons[12].value),
(this.dPadDown = this.browserGamepad.buttons[13].value),
(this.dPadLeft = this.browserGamepad.buttons[14].value),
(this.dPadRight = this.browserGamepad.buttons[15].value);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(), this.onPadDownObservable.clear(), this.onPadUpObservable.clear();
}),
t
);
})(Ye),
Bt = (function () {
function e(e) {
var t = this;
if (
((this._scene = e),
(this._babylonGamepads = []),
(this._oneGamepadConnected = !1),
(this._isMonitoring = !1),
(this.onGamepadDisconnectedObservable = new o.c()),
Dt.a.IsWindowObjectExist()
? ((this._gamepadEventSupported = "GamepadEvent" in window), (this._gamepadSupport = navigator.getGamepads || navigator.webkitGetGamepads || navigator.msGetGamepads || navigator.webkitGamepads))
: (this._gamepadEventSupported = !1),
(this.onGamepadConnectedObservable = new o.c(function (e) {
for (var n in t._babylonGamepads) {
var i = t._babylonGamepads[n];
i && i._isConnected && t.onGamepadConnectedObservable.notifyObserver(e, i);
}
})),
(this._onGamepadConnectedEvent = function (e) {
var n,
i = e.gamepad;
(i.index in t._babylonGamepads && t._babylonGamepads[i.index].isConnected) ||
(t._babylonGamepads[i.index] ? (((n = t._babylonGamepads[i.index]).browserGamepad = i), (n._isConnected = !0)) : (n = t._addNewGamepad(i)),
t.onGamepadConnectedObservable.notifyObservers(n),
t._startMonitoringGamepads());
}),
(this._onGamepadDisconnectedEvent = function (e) {
var n = e.gamepad;
for (var i in t._babylonGamepads)
if (t._babylonGamepads[i].index === n.index) {
var r = t._babylonGamepads[i];
(r._isConnected = !1), t.onGamepadDisconnectedObservable.notifyObservers(r), r.dispose && r.dispose();
break;
}
}),
this._gamepadSupport)
)
if ((this._updateGamepadObjects(), this._babylonGamepads.length && this._startMonitoringGamepads(), this._gamepadEventSupported)) {
var n = this._scene ? this._scene.getEngine().getHostWindow() : window;
n && (n.addEventListener("gamepadconnected", this._onGamepadConnectedEvent, !1), n.addEventListener("gamepaddisconnected", this._onGamepadDisconnectedEvent, !1));
} else this._startMonitoringGamepads();
}
return (
Object.defineProperty(e.prototype, "gamepads", {
get: function () {
return this._babylonGamepads;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getGamepadByType = function (e) {
void 0 === e && (e = Ye.XBOX);
for (var t = 0, n = this._babylonGamepads; t < n.length; t++) {
var i = n[t];
if (i && i.type === e) return i;
}
return null;
}),
(e.prototype.dispose = function () {
this._gamepadEventSupported &&
(this._onGamepadConnectedEvent && window.removeEventListener("gamepadconnected", this._onGamepadConnectedEvent),
this._onGamepadDisconnectedEvent && window.removeEventListener("gamepaddisconnected", this._onGamepadDisconnectedEvent),
(this._onGamepadConnectedEvent = null),
(this._onGamepadDisconnectedEvent = null)),
this._babylonGamepads.forEach(function (e) {
e.dispose();
}),
this.onGamepadConnectedObservable.clear(),
this.onGamepadDisconnectedObservable.clear(),
(this._oneGamepadConnected = !1),
this._stopMonitoringGamepads(),
(this._babylonGamepads = []);
}),
(e.prototype._addNewGamepad = function (e) {
var t;
this._oneGamepadConnected || (this._oneGamepadConnected = !0);
var n = -1 !== e.id.search("054c"),
i = -1 !== e.id.search("Xbox One");
return (
(t = i || -1 !== e.id.search("Xbox 360") || -1 !== e.id.search("xinput") ? new zt(e.id, e.index, e, i) : n ? new jt(e.id, e.index, e) : e.pose ? Lt.InitiateController(e) : new Ke(e.id, e.index, e)),
(this._babylonGamepads[t.index] = t),
t
);
}),
(e.prototype._startMonitoringGamepads = function () {
this._isMonitoring || ((this._isMonitoring = !0), this._scene || this._checkGamepadsStatus());
}),
(e.prototype._stopMonitoringGamepads = function () {
this._isMonitoring = !1;
}),
(e.prototype._checkGamepadsStatus = function () {
var e = this;
for (var t in (this._updateGamepadObjects(), this._babylonGamepads)) {
var n = this._babylonGamepads[t];
n && n.isConnected && n.update();
}
this._isMonitoring &&
!this._scene &&
ue.a.QueueNewFrame(function () {
e._checkGamepadsStatus();
});
}),
(e.prototype._updateGamepadObjects = function () {
for (var e = navigator.getGamepads ? navigator.getGamepads() : navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : [], t = 0; t < e.length; t++) {
var n = e[t];
if (n)
if (this._babylonGamepads[n.index])
(this._babylonGamepads[t].browserGamepad = n),
this._babylonGamepads[t].isConnected || ((this._babylonGamepads[t]._isConnected = !0), this.onGamepadConnectedObservable.notifyObservers(this._babylonGamepads[t]));
else {
var i = this._addNewGamepad(n);
this.onGamepadConnectedObservable.notifyObservers(i);
}
}
}),
e
);
})();
Object.defineProperty(ge.a.prototype, "gamepadManager", {
get: function () {
if (!this._gamepadManager) {
this._gamepadManager = new Bt(this);
var e = this._getComponent(me.a.NAME_GAMEPAD);
e || ((e = new Vt(this)), this._addComponent(e));
}
return this._gamepadManager;
},
enumerable: !0,
configurable: !0,
}),
(lt.a.prototype.addGamepad = function () {
return this.add(new ht()), this;
}),
(nt.prototype.addGamepad = function () {
return this.add(new Ze()), this;
});
var Vt = (function () {
function e(e) {
(this.name = me.a.NAME_GAMEPAD), (this.scene = e);
}
return (
(e.prototype.register = function () {
this.scene._beforeCameraUpdateStage.registerStep(me.a.STEP_BEFORECAMERAUPDATE_GAMEPAD, this, this._beforeCameraUpdate);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {
var e = this.scene._gamepadManager;
e && (e.dispose(), (this.scene._gamepadManager = null));
}),
(e.prototype._beforeCameraUpdate = function () {
var e = this.scene._gamepadManager;
e && e._isMonitoring && e._checkGamepadsStatus();
}),
e
);
})();
Ct.a.AddNodeConstructor("FreeCamera", function (e, t) {
return function () {
return new Gt(e, a.e.Zero(), t);
};
});
var Gt = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n, i) || this;
return r.inputs.addGamepad(), r;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "gamepadAngularSensibility", {
get: function () {
var e = this.inputs.attached.gamepad;
return e ? e.gamepadAngularSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.gamepad;
t && (t.gamepadAngularSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "gamepadMoveSensibility", {
get: function () {
var e = this.inputs.attached.gamepad;
return e ? e.gamepadMoveSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.gamepad;
t && (t.gamepadMoveSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "UniversalCamera";
}),
t
);
})(Pt);
(De.a._createDefaultParsedCamera = function (e, t) {
return new Gt(e, a.e.Zero(), t);
}),
Ct.a.AddNodeConstructor("GamepadCamera", function (e, t) {
return function () {
return new Ut(e, a.e.Zero(), t);
};
});
var Ut = (function (e) {
function t(t, n, i) {
return e.call(this, t, n, i) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "GamepadCamera";
}),
t
);
})(Gt),
Ht = n(107),
Wt = n(24),
Xt = n(7),
Yt =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D leftSampler;\nvoid main(void)\n{\nvec4 leftFrag=texture2D(leftSampler,vUV);\nleftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);\nvec4 rightFrag=texture2D(textureSampler,vUV);\nrightFrag=vec4(rightFrag.r,1.0,1.0,1.0);\ngl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);\n}";
Xt.a.ShadersStore.anaglyphPixelShader = Yt;
var Kt = (function (e) {
function t(t, n, i, r, o, a) {
var s = e.call(this, t, "anaglyph", null, ["leftSampler"], n, i[1], r, o, a) || this;
return (
(s._passedProcess = i[0]._rigPostProcess),
s.onApplyObservable.add(function (e) {
e.setTextureFromPostProcess("leftSampler", s._passedProcess);
}),
s
);
}
return Object(h.d)(t, e), t;
})(Wt.a);
(De.a._setStereoscopicAnaglyphRigMode = function (e) {
(e._rigCameras[0]._rigPostProcess = new Ht.b(e.name + "_passthru", 1, e._rigCameras[0])), (e._rigCameras[1]._rigPostProcess = new Kt(e.name + "_anaglyph", 1, e._rigCameras));
}),
Ct.a.AddNodeConstructor("AnaglyphArcRotateCamera", function (e, t, n) {
return function () {
return new Zt(e, 0, 0, 1, a.e.Zero(), n.interaxial_distance, t);
};
});
var Zt = (function (e) {
function t(t, n, i, r, o, a, s) {
var c = e.call(this, t, n, i, r, o, s) || this;
return (c.interaxialDistance = a), c.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: a }), c;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "AnaglyphArcRotateCamera";
}),
t
);
})(xt);
Ct.a.AddNodeConstructor("AnaglyphFreeCamera", function (e, t, n) {
return function () {
return new qt(e, a.e.Zero(), n.interaxial_distance, t);
};
});
var qt = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, n, r) || this;
return (o.interaxialDistance = i), o.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i }), o;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "AnaglyphFreeCamera";
}),
t
);
})(yt.a);
Ct.a.AddNodeConstructor("AnaglyphGamepadCamera", function (e, t, n) {
return function () {
return new Qt(e, a.e.Zero(), n.interaxial_distance, t);
};
});
var Qt = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, n, r) || this;
return (o.interaxialDistance = i), o.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i }), o;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "AnaglyphGamepadCamera";
}),
t
);
})(Ut);
Ct.a.AddNodeConstructor("AnaglyphUniversalCamera", function (e, t, n) {
return function () {
return new Jt(e, a.e.Zero(), n.interaxial_distance, t);
};
});
var Jt = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, n, r) || this;
return (o.interaxialDistance = i), o.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i }), o;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "AnaglyphUniversalCamera";
}),
t
);
})(Gt),
$t =
"const vec3 TWO=vec3(2.0,2.0,2.0);\nvarying vec2 vUV;\nuniform sampler2D camASampler;\nuniform sampler2D textureSampler;\nuniform vec2 stepSize;\nvoid main(void)\n{\nbool useCamA;\nbool useCamB;\nvec2 texCoord1;\nvec2 texCoord2;\nvec3 frag1;\nvec3 frag2;\n#ifdef IS_STEREOSCOPIC_HORIZ\nuseCamB=vUV.x>0.5;\nuseCamA=!useCamB;\ntexCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);\ntexCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\n#else\n#ifdef IS_STEREOSCOPIC_INTERLACED\nfloat rowNum=floor(vUV.y/stepSize.y);\nuseCamA=mod(rowNum,2.0) == 1.0;\nuseCamB=mod(rowNum,2.0) == 0.0;\ntexCoord1=vec2(vUV.x,vUV.y);\ntexCoord2=vec2(vUV.x,vUV.y);\n#else\nuseCamB=vUV.y>0.5;\nuseCamA=!useCamB;\ntexCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);\ntexCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\n#endif\n#endif\n\nif (useCamB){\nfrag1=texture2D(textureSampler,texCoord1).rgb;\nfrag2=texture2D(textureSampler,texCoord2).rgb;\n}else if (useCamA){\nfrag1=texture2D(camASampler ,texCoord1).rgb;\nfrag2=texture2D(camASampler ,texCoord2).rgb;\n}else {\ndiscard;\n}\ngl_FragColor=vec4((frag1+frag2)/TWO,1.0);\n}\n";
Xt.a.ShadersStore.stereoscopicInterlacePixelShader = $t;
var en = (function (e) {
function t(t, n, i, r, o, s, c) {
var l = e.call(this, t, "stereoscopicInterlace", ["stepSize"], ["camASampler"], 1, n[1], o, s, c, r ? "#define IS_STEREOSCOPIC_INTERLACED 1" : i ? "#define IS_STEREOSCOPIC_HORIZ 1" : void 0) || this;
return (
(l._passedProcess = n[0]._rigPostProcess),
(l._stepSize = new a.d(1 / l.width, 1 / l.height)),
l.onSizeChangedObservable.add(function () {
l._stepSize = new a.d(1 / l.width, 1 / l.height);
}),
l.onApplyObservable.add(function (e) {
e.setTextureFromPostProcess("camASampler", l._passedProcess), e.setFloat2("stepSize", l._stepSize.x, l._stepSize.y);
}),
l
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
tn = (function (e) {
function t(t, n, i, r, o, s) {
var c = e.call(this, t, "stereoscopicInterlace", ["stepSize"], ["camASampler"], 1, n[1], r, o, s, i ? "#define IS_STEREOSCOPIC_HORIZ 1" : void 0) || this;
return (
(c._passedProcess = n[0]._rigPostProcess),
(c._stepSize = new a.d(1 / c.width, 1 / c.height)),
c.onSizeChangedObservable.add(function () {
c._stepSize = new a.d(1 / c.width, 1 / c.height);
}),
c.onApplyObservable.add(function (e) {
e.setTextureFromPostProcess("camASampler", c._passedProcess), e.setFloat2("stepSize", c._stepSize.x, c._stepSize.y);
}),
c
);
}
return Object(h.d)(t, e), t;
})(Wt.a);
(De.a._setStereoscopicRigMode = function (e) {
var t = e.cameraRigMode === De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL || e.cameraRigMode === De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED,
n = e.cameraRigMode === De.a.RIG_MODE_STEREOSCOPIC_INTERLACED;
(e._rigCameras[0]._rigPostProcess = new Ht.b(e.name + "_passthru", 1, e._rigCameras[0])), (e._rigCameras[1]._rigPostProcess = new en(e.name + "_stereoInterlace", e._rigCameras, t, n));
}),
Ct.a.AddNodeConstructor("StereoscopicArcRotateCamera", function (e, t, n) {
return function () {
return new nn(e, 0, 0, 1, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t);
};
});
var nn = (function (e) {
function t(t, n, i, r, o, a, s, c) {
var l = e.call(this, t, n, i, r, o, c) || this;
return (l.interaxialDistance = a), (l.isStereoscopicSideBySide = s), l.setCameraRigMode(s ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: a }), l;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "StereoscopicArcRotateCamera";
}),
t
);
})(xt);
Ct.a.AddNodeConstructor("StereoscopicFreeCamera", function (e, t, n) {
return function () {
return new rn(e, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t);
};
});
var rn = (function (e) {
function t(t, n, i, r, o) {
var a = e.call(this, t, n, o) || this;
return (a.interaxialDistance = i), (a.isStereoscopicSideBySide = r), a.setCameraRigMode(r ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: i }), a;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "StereoscopicFreeCamera";
}),
t
);
})(yt.a);
Ct.a.AddNodeConstructor("StereoscopicGamepadCamera", function (e, t, n) {
return function () {
return new on(e, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t);
};
});
var on = (function (e) {
function t(t, n, i, r, o) {
var a = e.call(this, t, n, o) || this;
return (a.interaxialDistance = i), (a.isStereoscopicSideBySide = r), a.setCameraRigMode(r ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: i }), a;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "StereoscopicGamepadCamera";
}),
t
);
})(Ut);
Ct.a.AddNodeConstructor("StereoscopicFreeCamera", function (e, t, n) {
return function () {
return new an(e, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t);
};
});
var an = (function (e) {
function t(t, n, i, r, o) {
var a = e.call(this, t, n, o) || this;
return (a.interaxialDistance = i), (a.isStereoscopicSideBySide = r), a.setCameraRigMode(r ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: i }), a;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "StereoscopicUniversalCamera";
}),
t
);
})(Gt);
Ct.a.AddNodeConstructor("VirtualJoysticksCamera", function (e, t) {
return function () {
return new sn(e, a.e.Zero(), t);
};
});
var sn = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n, i) || this;
return r.inputs.addVirtualJoystick(), r;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VirtualJoysticksCamera";
}),
t
);
})(yt.a),
cn = (function () {
function e() {
(this.compensateDistortion = !0), (this.multiviewEnabled = !1);
}
return (
Object.defineProperty(e.prototype, "aspectRatio", {
get: function () {
return this.hResolution / (2 * this.vResolution);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "aspectRatioFov", {
get: function () {
return 2 * Math.atan((this.postProcessScaleFactor * this.vScreenSize) / (2 * this.eyeToScreenDistance));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "leftHMatrix", {
get: function () {
var e = (4 * (this.hScreenSize / 4 - this.lensSeparationDistance / 2)) / this.hScreenSize;
return a.a.Translation(e, 0, 0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rightHMatrix", {
get: function () {
var e = (4 * (this.hScreenSize / 4 - this.lensSeparationDistance / 2)) / this.hScreenSize;
return a.a.Translation(-e, 0, 0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "leftPreViewMatrix", {
get: function () {
return a.a.Translation(0.5 * this.interpupillaryDistance, 0, 0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rightPreViewMatrix", {
get: function () {
return a.a.Translation(-0.5 * this.interpupillaryDistance, 0, 0);
},
enumerable: !0,
configurable: !0,
}),
(e.GetDefault = function () {
var t = new e();
return (
(t.hResolution = 1280),
(t.vResolution = 800),
(t.hScreenSize = 0.149759993),
(t.vScreenSize = 0.0935999975),
(t.vScreenCenter = 0.0467999987),
(t.eyeToScreenDistance = 0.0410000011),
(t.lensSeparationDistance = 0.063500002),
(t.interpupillaryDistance = 0.064000003),
(t.distortionK = [1, 0.219999999, 0.239999995, 0]),
(t.chromaAbCorrection = [0.995999992, -0.00400000019, 1.01400006, 0]),
(t.postProcessScaleFactor = 1.714605507808412),
(t.lensCenterOffset = 0.151976421),
t
);
}),
e
);
})(),
ln = n(8),
un =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 LensCenter;\nuniform vec2 Scale;\nuniform vec2 ScaleIn;\nuniform vec4 HmdWarpParam;\nvec2 HmdWarp(vec2 in01) {\nvec2 theta=(in01-LensCenter)*ScaleIn;\nfloat rSq=theta.x*theta.x+theta.y*theta.y;\nvec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);\nreturn LensCenter+Scale*rvector;\n}\nvoid main(void)\n{\nvec2 tc=HmdWarp(vUV);\nif (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0)\ngl_FragColor=vec4(0.0,0.0,0.0,0.0);\nelse{\ngl_FragColor=texture2D(textureSampler,tc);\n}\n}";
Xt.a.ShadersStore.vrDistortionCorrectionPixelShader = un;
var hn = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, "vrDistortionCorrection", ["LensCenter", "Scale", "ScaleIn", "HmdWarpParam"], null, r.postProcessScaleFactor, n, ln.a.BILINEAR_SAMPLINGMODE) || this;
return (
(o._isRightEye = i),
(o._distortionFactors = r.distortionK),
(o._postProcessScaleFactor = r.postProcessScaleFactor),
(o._lensCenterOffset = r.lensCenterOffset),
(o.adaptScaleToCurrentViewport = !0),
o.onSizeChangedObservable.add(function () {
(o._scaleIn = new a.d(2, 2 / o.aspectRatio)),
(o._scaleFactor = new a.d((1 / o._postProcessScaleFactor) * 0.5, (1 / o._postProcessScaleFactor) * 0.5 * o.aspectRatio)),
(o._lensCenter = new a.d(o._isRightEye ? 0.5 - 0.5 * o._lensCenterOffset : 0.5 + 0.5 * o._lensCenterOffset, 0.5));
}),
o.onApplyObservable.add(function (e) {
e.setFloat2("LensCenter", o._lensCenter.x, o._lensCenter.y),
e.setFloat2("Scale", o._scaleFactor.x, o._scaleFactor.y),
e.setFloat2("ScaleIn", o._scaleIn.x, o._scaleIn.y),
e.setFloat4("HmdWarpParam", o._distortionFactors[0], o._distortionFactors[1], o._distortionFactors[2], o._distortionFactors[3]);
}),
o
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
dn = "precision mediump sampler2DArray;\nvarying vec2 vUV;\nuniform sampler2DArray multiviewSampler;\nuniform int imageIndex;\nvoid main(void)\n{\ngl_FragColor=texture(multiviewSampler,vec3(vUV,imageIndex));\n}";
Xt.a.ShadersStore.vrMultiviewToSingleviewPixelShader = dn;
var pn = n(32),
fn = n(124),
mn = n(44),
gn = (function (e) {
function t(t, n) {
void 0 === n && (n = 512);
var i = e.call(this, "multiview rtt", n, t, !1, !0, pn.b.Unknown, !1, void 0, !1, !1, !0, void 0, !0) || this,
r = t.getEngine().createMultiviewRenderTargetTexture(i.getRenderWidth(), i.getRenderHeight());
return (r.isMultiview = !0), (r.format = 5), (i._texture = r), (i.samples = i._engine.getCaps().maxSamples || i.samples), i;
}
return (
Object(h.d)(t, e),
(t.prototype._bindFrameBuffer = function (e) {
void 0 === e && (e = 0), this._texture && this.getScene().getEngine().bindMultiviewFramebuffer(this._texture);
}),
(t.prototype.getViewCount = function () {
return 2;
}),
t
);
})(mn.a),
bn = n(128);
(ue.a.prototype.createMultiviewRenderTargetTexture = function (e, t) {
var n = this._gl;
if (!this.getCaps().multiview) throw "Multiview is not supported";
var i = new pn.a(this, pn.b.Unknown, !0);
return (
(i.width = e),
(i.height = t),
(i._framebuffer = n.createFramebuffer()),
(i._colorTextureArray = n.createTexture()),
n.bindTexture(n.TEXTURE_2D_ARRAY, i._colorTextureArray),
n.texStorage3D(n.TEXTURE_2D_ARRAY, 1, n.RGBA8, e, t, 2),
(i._depthStencilTextureArray = n.createTexture()),
n.bindTexture(n.TEXTURE_2D_ARRAY, i._depthStencilTextureArray),
n.texStorage3D(n.TEXTURE_2D_ARRAY, 1, n.DEPTH32F_STENCIL8, e, t, 2),
(i.isReady = !0),
i
);
}),
(ue.a.prototype.bindMultiviewFramebuffer = function (e) {
var t = this._gl,
n = this.getCaps().oculusMultiview || this.getCaps().multiview;
if ((this.bindFramebuffer(e, void 0, void 0, void 0, !0), t.bindFramebuffer(t.DRAW_FRAMEBUFFER, e._framebuffer), !e._colorTextureArray || !e._depthStencilTextureArray)) throw "Invalid multiview frame buffer";
this.getCaps().oculusMultiview
? (n.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, e.samples, 0, 2),
n.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, e._depthStencilTextureArray, 0, e.samples, 0, 2))
: (n.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, 0, 2),
n.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, e._depthStencilTextureArray, 0, 0, 2));
}),
(De.a.prototype._useMultiviewToSingleView = !1),
(De.a.prototype._multiviewTexture = null),
(De.a.prototype._resizeOrCreateMultiviewTexture = function (e, t) {
this._multiviewTexture
? (this._multiviewTexture.getRenderWidth() == e && this._multiviewTexture.getRenderHeight() == t) || (this._multiviewTexture.dispose(), (this._multiviewTexture = new gn(this.getScene(), { width: e, height: t })))
: (this._multiviewTexture = new gn(this.getScene(), { width: e, height: t }));
}),
(ge.a.prototype._transformMatrixR = a.a.Zero()),
(ge.a.prototype._multiviewSceneUbo = null),
(ge.a.prototype._createMultiviewUbo = function () {
(this._multiviewSceneUbo = new fn.a(this.getEngine(), void 0, !0)),
this._multiviewSceneUbo.addUniform("viewProjection", 16),
this._multiviewSceneUbo.addUniform("viewProjectionR", 16),
this._multiviewSceneUbo.addUniform("view", 16);
}),
(ge.a.prototype._updateMultiviewUbo = function (e, t) {
e && t && e.multiplyToRef(t, this._transformMatrixR),
e && t && (e.multiplyToRef(t, a.c.Matrix[0]), bn.a.GetRightPlaneToRef(a.c.Matrix[0], this._frustumPlanes[3])),
this._multiviewSceneUbo &&
(this._multiviewSceneUbo.updateMatrix("viewProjection", this.getTransformMatrix()),
this._multiviewSceneUbo.updateMatrix("viewProjectionR", this._transformMatrixR),
this._multiviewSceneUbo.updateMatrix("view", this._viewMatrix),
this._multiviewSceneUbo.update());
}),
(ge.a.prototype._renderMultiviewToSingleView = function (e) {
e._resizeOrCreateMultiviewTexture(
e._rigPostProcess && e._rigPostProcess && e._rigPostProcess.width > 0 ? e._rigPostProcess.width : this.getEngine().getRenderWidth(!0),
e._rigPostProcess && e._rigPostProcess && e._rigPostProcess.height > 0 ? e._rigPostProcess.height : this.getEngine().getRenderHeight(!0)
),
this._multiviewSceneUbo || this._createMultiviewUbo(),
(e.outputRenderTarget = e._multiviewTexture),
this._renderForCamera(e),
(e.outputRenderTarget = null);
for (var t = 0; t < e._rigCameras.length; t++) {
var n = this.getEngine();
(this._activeCamera = e._rigCameras[t]),
n.setViewport(this._activeCamera.viewport),
this.postProcessManager && (this.postProcessManager._prepareFrame(), this.postProcessManager._finalizeFrame(this._activeCamera.isIntermediate));
}
});
var _n = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, "vrMultiviewToSingleview", ["imageIndex"], ["multiviewSampler"], i, n, ln.a.BILINEAR_SAMPLINGMODE) || this;
return (
r.onSizeChangedObservable.add(function () {}),
r.onApplyObservable.add(function (e) {
n._scene.activeCamera && n._scene.activeCamera.isLeftCamera ? e.setInt("imageIndex", 0) : e.setInt("imageIndex", 1), e.setTexture("multiviewSampler", n._multiviewTexture);
}),
r
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
vn = n(77);
(De.a._setVRRigMode = function (e, t) {
var n = t.vrCameraMetrics || cn.GetDefault();
(e._rigCameras[0]._cameraRigParams.vrMetrics = n),
(e._rigCameras[0].viewport = new vn.a(0, 0, 0.5, 1)),
(e._rigCameras[0]._cameraRigParams.vrWorkMatrix = new a.a()),
(e._rigCameras[0]._cameraRigParams.vrHMatrix = n.leftHMatrix),
(e._rigCameras[0]._cameraRigParams.vrPreViewMatrix = n.leftPreViewMatrix),
(e._rigCameras[0].getProjectionMatrix = e._rigCameras[0]._getVRProjectionMatrix),
(e._rigCameras[1]._cameraRigParams.vrMetrics = n),
(e._rigCameras[1].viewport = new vn.a(0.5, 0, 0.5, 1)),
(e._rigCameras[1]._cameraRigParams.vrWorkMatrix = new a.a()),
(e._rigCameras[1]._cameraRigParams.vrHMatrix = n.rightHMatrix),
(e._rigCameras[1]._cameraRigParams.vrPreViewMatrix = n.rightPreViewMatrix),
(e._rigCameras[1].getProjectionMatrix = e._rigCameras[1]._getVRProjectionMatrix),
n.multiviewEnabled &&
(e.getScene().getEngine().getCaps().multiview
? ((e._useMultiviewToSingleView = !0), (e._rigPostProcess = new _n("VRMultiviewToSingleview", e, n.postProcessScaleFactor)))
: (g.a.Warn("Multiview is not supported, falling back to standard rendering"), (n.multiviewEnabled = !1))),
n.compensateDistortion &&
((e._rigCameras[0]._rigPostProcess = new hn("VR_Distort_Compensation_Left", e._rigCameras[0], !1, n)), (e._rigCameras[1]._rigPostProcess = new hn("VR_Distort_Compensation_Right", e._rigCameras[1], !0, n)));
}),
Ct.a.AddNodeConstructor("VRDeviceOrientationFreeCamera", function (e, t) {
return function () {
return new yn(e, 0, 0, 1, a.e.Zero(), t);
};
});
var yn = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === s && (s = !0), void 0 === c && (c = cn.GetDefault());
var l = e.call(this, t, n, i, r, o, a) || this;
return (c.compensateDistortion = s), l.setCameraRigMode(De.a.RIG_MODE_VR, { vrCameraMetrics: c }), l.inputs.addVRDeviceOrientation(), l;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VRDeviceOrientationArcRotateCamera";
}),
t
);
})(xt);
Ct.a.AddNodeConstructor("VRDeviceOrientationFreeCamera", function (e, t) {
return function () {
return new Cn(e, a.e.Zero(), t);
};
});
var Cn = (function (e) {
function t(t, n, i, r, o) {
void 0 === r && (r = !0), void 0 === o && (o = cn.GetDefault());
var a = e.call(this, t, n, i) || this;
return (o.compensateDistortion = r), a.setCameraRigMode(De.a.RIG_MODE_VR, { vrCameraMetrics: o }), a;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VRDeviceOrientationFreeCamera";
}),
t
);
})(Tt);
Ct.a.AddNodeConstructor("VRDeviceOrientationGamepadCamera", function (e, t) {
return function () {
return new Pn(e, a.e.Zero(), t);
};
});
var Pn = (function (e) {
function t(t, n, i, r, o) {
void 0 === r && (r = !0), void 0 === o && (o = cn.GetDefault());
var a = e.call(this, t, n, i, r, o) || this;
return a.inputs.addGamepad(), a;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VRDeviceOrientationGamepadCamera";
}),
t
);
})(Cn),
xn = n(96);
De.a._setWebVRRigMode = function (e, t) {
if (t.vrDisplay) {
var n = t.vrDisplay.getEyeParameters("left"),
i = t.vrDisplay.getEyeParameters("right");
(e._rigCameras[0].viewport = new vn.a(0, 0, 0.5, 1)),
e._rigCameras[0].setCameraRigParameter("left", !0),
e._rigCameras[0].setCameraRigParameter("specs", t.specs),
e._rigCameras[0].setCameraRigParameter("eyeParameters", n),
e._rigCameras[0].setCameraRigParameter("frameData", t.frameData),
e._rigCameras[0].setCameraRigParameter("parentCamera", t.parentCamera),
(e._rigCameras[0]._cameraRigParams.vrWorkMatrix = new a.a()),
(e._rigCameras[0].getProjectionMatrix = e._getWebVRProjectionMatrix),
(e._rigCameras[0].parent = e),
(e._rigCameras[0]._getViewMatrix = e._getWebVRViewMatrix),
(e._rigCameras[1].viewport = new vn.a(0.5, 0, 0.5, 1)),
e._rigCameras[1].setCameraRigParameter("eyeParameters", i),
e._rigCameras[1].setCameraRigParameter("specs", t.specs),
e._rigCameras[1].setCameraRigParameter("frameData", t.frameData),
e._rigCameras[1].setCameraRigParameter("parentCamera", t.parentCamera),
(e._rigCameras[1]._cameraRigParams.vrWorkMatrix = new a.a()),
(e._rigCameras[1].getProjectionMatrix = e._getWebVRProjectionMatrix),
(e._rigCameras[1].parent = e),
(e._rigCameras[1]._getViewMatrix = e._getWebVRViewMatrix);
}
};
var Tn = n(109);
Object.defineProperty(ue.a.prototype, "isInVRExclusivePointerMode", {
get: function () {
return this._vrExclusivePointerMode;
},
enumerable: !0,
configurable: !0,
}),
(ue.a.prototype._prepareVRComponent = function () {
(this._vrSupported = !1), (this._vrExclusivePointerMode = !1), (this.onVRDisplayChangedObservable = new o.c()), (this.onVRRequestPresentComplete = new o.c()), (this.onVRRequestPresentStart = new o.c());
}),
(ue.a.prototype.isVRDevicePresent = function () {
return !!this._vrDisplay;
}),
(ue.a.prototype.getVRDevice = function () {
return this._vrDisplay;
}),
(ue.a.prototype.initWebVR = function () {
return this.initWebVRAsync(), this.onVRDisplayChangedObservable;
}),
(ue.a.prototype.initWebVRAsync = function () {
var e = this,
t = function () {
var t = { vrDisplay: e._vrDisplay, vrSupported: e._vrSupported };
e.onVRDisplayChangedObservable.notifyObservers(t),
(e._webVRInitPromise = new Promise(function (e) {
e(t);
}));
};
if (!this._onVrDisplayConnect) {
(this._onVrDisplayConnect = function (n) {
(e._vrDisplay = n.display), t();
}),
(this._onVrDisplayDisconnect = function () {
e._vrDisplay.cancelAnimationFrame(e._frameHandler), (e._vrDisplay = void 0), (e._frameHandler = ue.a.QueueNewFrame(e._boundRenderFunction)), t();
}),
(this._onVrDisplayPresentChange = function () {
e._vrExclusivePointerMode = e._vrDisplay && e._vrDisplay.isPresenting;
});
var n = this.getHostWindow();
n &&
(n.addEventListener("vrdisplayconnect", this._onVrDisplayConnect),
n.addEventListener("vrdisplaydisconnect", this._onVrDisplayDisconnect),
n.addEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange));
}
return (this._webVRInitPromise = this._webVRInitPromise || this._getVRDisplaysAsync()), this._webVRInitPromise.then(t), this._webVRInitPromise;
}),
(ue.a.prototype._getVRDisplaysAsync = function () {
var e = this;
return new Promise(function (t) {
navigator.getVRDisplays
? navigator.getVRDisplays().then(function (n) {
(e._vrSupported = !0), (e._vrDisplay = n[0]), t({ vrDisplay: e._vrDisplay, vrSupported: e._vrSupported });
})
: ((e._vrDisplay = void 0), (e._vrSupported = !1), t({ vrDisplay: e._vrDisplay, vrSupported: e._vrSupported }));
});
}),
(ue.a.prototype.enableVR = function (e) {
var t = this;
if (this._vrDisplay && !this._vrDisplay.isPresenting) {
this.onVRRequestPresentStart.notifyObservers(this);
var n = {
highRefreshRate: !!this.vrPresentationAttributes && this.vrPresentationAttributes.highRefreshRate,
foveationLevel: this.vrPresentationAttributes ? this.vrPresentationAttributes.foveationLevel : 1,
multiview: (this.getCaps().multiview || this.getCaps().oculusMultiview) && e.useMultiview,
};
this._vrDisplay
.requestPresent([Object(h.a)({ source: this.getRenderingCanvas(), attributes: n }, n)])
.then(function () {
t.onVRRequestPresentComplete.notifyObservers(!0), t._onVRFullScreenTriggered();
})
.catch(function () {
t.onVRRequestPresentComplete.notifyObservers(!1);
});
}
}),
(ue.a.prototype._onVRFullScreenTriggered = function () {
if (this._vrDisplay && this._vrDisplay.isPresenting) {
(this._oldSize = new Tn.a(this.getRenderWidth(), this.getRenderHeight())), (this._oldHardwareScaleFactor = this.getHardwareScalingLevel());
var e = this._vrDisplay.getEyeParameters("left");
this.setHardwareScalingLevel(1), this.setSize(2 * e.renderWidth, e.renderHeight);
} else this.setHardwareScalingLevel(this._oldHardwareScaleFactor), this.setSize(this._oldSize.width, this._oldSize.height);
}),
(ue.a.prototype.disableVR = function () {
var e = this;
this._vrDisplay &&
this._vrDisplay.isPresenting &&
this._vrDisplay
.exitPresent()
.then(function () {
return e._onVRFullScreenTriggered();
})
.catch(function () {
return e._onVRFullScreenTriggered();
}),
Dt.a.IsWindowObjectExist() &&
(window.removeEventListener("vrdisplaypointerrestricted", this._onVRDisplayPointerRestricted),
window.removeEventListener("vrdisplaypointerunrestricted", this._onVRDisplayPointerUnrestricted),
this._onVrDisplayConnect &&
(window.removeEventListener("vrdisplayconnect", this._onVrDisplayConnect),
this._onVrDisplayDisconnect && window.removeEventListener("vrdisplaydisconnect", this._onVrDisplayDisconnect),
this._onVrDisplayPresentChange && window.removeEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange),
(this._onVrDisplayConnect = null),
(this._onVrDisplayDisconnect = null)));
}),
(ue.a.prototype._connectVREvents = function (e, t) {
var n = this;
if (
((this._onVRDisplayPointerRestricted = function () {
e && e.requestPointerLock();
}),
(this._onVRDisplayPointerUnrestricted = function () {
if (t) t.exitPointerLock && t.exitPointerLock();
else {
var e = n.getHostWindow();
e.document && e.document.exitPointerLock && e.document.exitPointerLock();
}
}),
Dt.a.IsWindowObjectExist())
) {
var i = this.getHostWindow();
i.addEventListener("vrdisplaypointerrestricted", this._onVRDisplayPointerRestricted, !1), i.addEventListener("vrdisplaypointerunrestricted", this._onVRDisplayPointerUnrestricted, !1);
}
}),
(ue.a.prototype._submitVRFrame = function () {
if (this._vrDisplay && this._vrDisplay.isPresenting)
try {
this._vrDisplay.submitFrame();
} catch (e) {
$e.b.Warn("webVR submitFrame has had an unexpected failure: " + e);
}
}),
(ue.a.prototype.isVRPresenting = function () {
return this._vrDisplay && this._vrDisplay.isPresenting;
}),
(ue.a.prototype._requestVRFrame = function () {
this._frameHandler = ue.a.QueueNewFrame(this._boundRenderFunction, this._vrDisplay);
}),
Ct.a.AddNodeConstructor("WebVRFreeCamera", function (e, t) {
return function () {
return new Sn(e, a.e.Zero(), t);
};
}),
Ct.a.AddNodeConstructor("WebVRGamepadCamera", function (e, t) {
return function () {
return new Sn(e, a.e.Zero(), t);
};
});
var Sn = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = {});
var s = e.call(this, t, n, i) || this;
(s.webVROptions = r),
(s._vrDevice = null),
(s.rawPose = null),
(s._specsVersion = "1.1"),
(s._attached = !1),
(s._descendants = []),
(s._deviceRoomPosition = a.e.Zero()),
(s._deviceRoomRotationQuaternion = a.b.Identity()),
(s._standingMatrix = null),
(s.devicePosition = a.e.Zero()),
(s.deviceRotationQuaternion = a.b.Identity()),
(s.deviceScaleFactor = 1),
(s._deviceToWorld = a.a.Identity()),
(s._worldToDevice = a.a.Identity()),
(s.controllers = []),
(s.onControllersAttachedObservable = new o.c()),
(s.onControllerMeshLoadedObservable = new o.c()),
(s.onPoseUpdatedFromDeviceObservable = new o.c()),
(s._poseSet = !1),
(s.rigParenting = !0),
(s._defaultHeight = void 0),
(s._htmlElementAttached = null),
(s._detachIfAttached = function () {
var e = s.getEngine().getVRDevice();
e && !e.isPresenting && s._htmlElementAttached && s.detachControl(s._htmlElementAttached);
}),
(s._workingVector = a.e.Zero()),
(s._oneVector = a.e.One()),
(s._workingMatrix = a.a.Identity()),
(s._tmpMatrix = new a.a()),
(s._cache.position = a.e.Zero()),
r.defaultHeight && ((s._defaultHeight = r.defaultHeight), (s.position.y = s._defaultHeight)),
(s.minZ = 0.1),
5 === arguments.length && (s.webVROptions = arguments[4]),
null == s.webVROptions.trackPosition && (s.webVROptions.trackPosition = !0),
null == s.webVROptions.controllerMeshes && (s.webVROptions.controllerMeshes = !0),
null == s.webVROptions.defaultLightingOnControllers && (s.webVROptions.defaultLightingOnControllers = !0),
(s.rotationQuaternion = new a.b()),
s.webVROptions && s.webVROptions.positionScale && (s.deviceScaleFactor = s.webVROptions.positionScale);
var c = s.getEngine();
return (
(s._onVREnabled = function (e) {
e && s.initControllers();
}),
c.onVRRequestPresentComplete.add(s._onVREnabled),
c.initWebVR().add(function (e) {
e.vrDisplay &&
s._vrDevice !== e.vrDisplay &&
((s._vrDevice = e.vrDisplay),
s.setCameraRigMode(De.a.RIG_MODE_WEBVR, { parentCamera: s, vrDisplay: s._vrDevice, frameData: s._frameData, specs: s._specsVersion }),
s._attached && s.getEngine().enableVR(s.webVROptions));
}),
"undefined" != typeof VRFrameData && (s._frameData = new VRFrameData()),
r.useMultiview &&
(s.getScene().getEngine().getCaps().multiview
? ((s._useMultiviewToSingleView = !0), (s._rigPostProcess = new _n("VRMultiviewToSingleview", s, 1)))
: (g.a.Warn("Multiview is not supported, falling back to standard rendering"), (s._useMultiviewToSingleView = !1))),
i.onBeforeCameraRenderObservable.add(function (e) {
e.parent === s &&
s.rigParenting &&
((s._descendants = s.getDescendants(!0, function (e) {
var t = s.controllers.some(function (t) {
return t._mesh === e;
}),
n = -1 !== s._rigCameras.indexOf(e);
return !t && !n;
})),
s._descendants.forEach(function (t) {
t.parent = e;
}));
}),
i.onAfterCameraRenderObservable.add(function (e) {
e.parent === s &&
s.rigParenting &&
s._descendants.forEach(function (e) {
e.parent = s;
});
}),
s
);
}
return (
Object(h.d)(t, e),
(t.prototype.deviceDistanceToRoomGround = function () {
return this._standingMatrix ? (this._standingMatrix.getTranslationToRef(this._workingVector), this._deviceRoomPosition.y + this._workingVector.y) : this._defaultHeight || 0;
}),
(t.prototype.useStandingMatrix = function (e) {
var t = this;
void 0 === e && (e = function (e) {}),
this.getEngine()
.initWebVRAsync()
.then(function (n) {
n.vrDisplay && n.vrDisplay.stageParameters && n.vrDisplay.stageParameters.sittingToStandingTransform && t.webVROptions.trackPosition
? ((t._standingMatrix = new a.a()),
a.a.FromFloat32ArrayToRefScaled(n.vrDisplay.stageParameters.sittingToStandingTransform, 0, 1, t._standingMatrix),
t.getScene().useRightHandedSystem || (t._standingMatrix && t._standingMatrix.toggleModelMatrixHandInPlace()),
e(!0))
: e(!1);
});
}),
(t.prototype.useStandingMatrixAsync = function () {
var e = this;
return new Promise(function (t) {
e.useStandingMatrix(function (e) {
t(e);
});
});
}),
(t.prototype.dispose = function () {
this._detachIfAttached(),
this.getEngine().onVRRequestPresentComplete.removeCallback(this._onVREnabled),
this._updateCacheWhenTrackingDisabledObserver && this._scene.onBeforeRenderObservable.remove(this._updateCacheWhenTrackingDisabledObserver),
e.prototype.dispose.call(this);
}),
(t.prototype.getControllerByName = function (e) {
for (var t = 0, n = this.controllers; t < n.length; t++) {
var i = n[t];
if (i.hand === e) return i;
}
return null;
}),
Object.defineProperty(t.prototype, "leftController", {
get: function () {
return this._leftController || (this._leftController = this.getControllerByName("left")), this._leftController;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rightController", {
get: function () {
return this._rightController || (this._rightController = this.getControllerByName("right")), this._rightController;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getForwardRay = function (t) {
return void 0 === t && (t = 100), this.leftCamera ? e.prototype.getForwardRay.call(this, t, this.leftCamera.getWorldMatrix(), this.leftCamera.globalPosition) : e.prototype.getForwardRay.call(this, t);
}),
(t.prototype._checkInputs = function () {
this._vrDevice && this._vrDevice.isPresenting && (this._vrDevice.getFrameData(this._frameData), this.updateFromDevice(this._frameData.pose)), e.prototype._checkInputs.call(this);
}),
(t.prototype.updateFromDevice = function (e) {
e &&
e.orientation &&
4 === e.orientation.length &&
((this.rawPose = e),
this._deviceRoomRotationQuaternion.copyFromFloats(e.orientation[0], e.orientation[1], -e.orientation[2], -e.orientation[3]),
this.getScene().useRightHandedSystem && ((this._deviceRoomRotationQuaternion.z *= -1), (this._deviceRoomRotationQuaternion.w *= -1)),
this.webVROptions.trackPosition &&
this.rawPose.position &&
(this._deviceRoomPosition.copyFromFloats(this.rawPose.position[0], this.rawPose.position[1], -this.rawPose.position[2]), this.getScene().useRightHandedSystem && (this._deviceRoomPosition.z *= -1)),
(this._poseSet = !0));
}),
(t.prototype.attachControl = function (t, n) {
e.prototype.attachControl.call(this, t, n),
(this._attached = !0),
(this._htmlElementAttached = t),
(n = !De.a.ForceAttachControlToAlwaysPreventDefault && n),
this._vrDevice && this.getEngine().enableVR(this.webVROptions);
var i = this._scene.getEngine().getHostWindow();
i && i.addEventListener("vrdisplaypresentchange", this._detachIfAttached);
}),
(t.prototype.detachControl = function (t) {
this.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),
this.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),
e.prototype.detachControl.call(this, t),
(this._attached = !1),
this.getEngine().disableVR(),
window.removeEventListener("vrdisplaypresentchange", this._detachIfAttached);
}),
(t.prototype.getClassName = function () {
return "WebVRFreeCamera";
}),
(t.prototype.resetToCurrentRotation = function () {
this._vrDevice.resetPose();
}),
(t.prototype._updateRigCameras = function () {
var e = this._rigCameras[0],
t = this._rigCameras[1];
e.rotationQuaternion.copyFrom(this._deviceRoomRotationQuaternion),
t.rotationQuaternion.copyFrom(this._deviceRoomRotationQuaternion),
e.position.copyFrom(this._deviceRoomPosition),
t.position.copyFrom(this._deviceRoomPosition);
}),
(t.prototype._correctPositionIfNotTrackPosition = function (e, t) {
void 0 === t && (t = !1),
this.rawPose &&
this.rawPose.position &&
!this.webVROptions.trackPosition &&
(a.a.TranslationToRef(this.rawPose.position[0], this.rawPose.position[1], -this.rawPose.position[2], this._tmpMatrix), t || this._tmpMatrix.invert(), this._tmpMatrix.multiplyToRef(e, e));
}),
(t.prototype._updateCache = function (t) {
var n = this;
(this.rotationQuaternion.equals(this._cache.rotationQuaternion) && this.position.equals(this._cache.position)) ||
(this.updateCacheCalled || ((this.updateCacheCalled = !0), this.update()),
this.rotationQuaternion.toRotationMatrix(this._workingMatrix),
a.e.TransformCoordinatesToRef(this._deviceRoomPosition, this._workingMatrix, this._workingVector),
this.devicePosition.subtractToRef(this._workingVector, this._workingVector),
a.a.ComposeToRef(this._oneVector, this.rotationQuaternion, this._workingVector, this._deviceToWorld),
this._deviceToWorld.getTranslationToRef(this._workingVector),
this._workingVector.addInPlace(this.position),
this._workingVector.subtractInPlace(this._cache.position),
this._deviceToWorld.setTranslation(this._workingVector),
this._deviceToWorld.invertToRef(this._worldToDevice),
this.controllers.forEach(function (e) {
e._deviceToWorld.copyFrom(n._deviceToWorld), n._correctPositionIfNotTrackPosition(e._deviceToWorld), e.update();
})),
t || e.prototype._updateCache.call(this),
(this.updateCacheCalled = !1);
}),
(t.prototype._computeDevicePosition = function () {
a.e.TransformCoordinatesToRef(this._deviceRoomPosition, this._deviceToWorld, this.devicePosition);
}),
(t.prototype.update = function () {
this._computeDevicePosition(),
a.a.FromQuaternionToRef(this._deviceRoomRotationQuaternion, this._workingMatrix),
this._workingMatrix.multiplyToRef(this._deviceToWorld, this._workingMatrix),
a.b.FromRotationMatrixToRef(this._workingMatrix, this.deviceRotationQuaternion),
this._poseSet && this.onPoseUpdatedFromDeviceObservable.notifyObservers(null),
e.prototype.update.call(this);
}),
(t.prototype._getViewMatrix = function () {
return a.a.Identity();
}),
(t.prototype._getWebVRViewMatrix = function () {
var e = this._cameraRigParams.parentCamera;
e._updateCache();
var t = this._cameraRigParams.left ? this._cameraRigParams.frameData.leftViewMatrix : this._cameraRigParams.frameData.rightViewMatrix;
return (
a.a.FromArrayToRef(t, 0, this._webvrViewMatrix),
this.getScene().useRightHandedSystem || this._webvrViewMatrix.toggleModelMatrixHandInPlace(),
this._webvrViewMatrix.getRotationMatrixToRef(this._cameraRotationMatrix),
a.e.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint),
this.position.addToRef(this._transformedReferencePoint, this._currentTarget),
1 !== e.deviceScaleFactor &&
(this._webvrViewMatrix.invert(),
e.deviceScaleFactor &&
(this._webvrViewMatrix.multiplyAtIndex(12, e.deviceScaleFactor), this._webvrViewMatrix.multiplyAtIndex(13, e.deviceScaleFactor), this._webvrViewMatrix.multiplyAtIndex(14, e.deviceScaleFactor)),
this._webvrViewMatrix.invert()),
e._correctPositionIfNotTrackPosition(this._webvrViewMatrix, !0),
e._worldToDevice.multiplyToRef(this._webvrViewMatrix, this._webvrViewMatrix),
(this._workingMatrix = this._workingMatrix || a.a.Identity()),
this._webvrViewMatrix.invertToRef(this._workingMatrix),
this._workingMatrix.multiplyToRef(e.getWorldMatrix(), this._workingMatrix),
this._workingMatrix.getTranslationToRef(this._globalPosition),
this._markSyncedWithParent(),
this._webvrViewMatrix
);
}),
(t.prototype._getWebVRProjectionMatrix = function () {
var e = this.parent;
(e._vrDevice.depthNear = e.minZ), (e._vrDevice.depthFar = e.maxZ);
var t = this._cameraRigParams.left ? this._cameraRigParams.frameData.leftProjectionMatrix : this._cameraRigParams.frameData.rightProjectionMatrix;
return a.a.FromArrayToRef(t, 0, this._projectionMatrix), this.getScene().useRightHandedSystem || this._projectionMatrix.toggleProjectionMatrixHandInPlace(), this._projectionMatrix;
}),
(t.prototype.initControllers = function () {
var e = this;
this.controllers = [];
var t = this.getScene().gamepadManager;
(this._onGamepadDisconnectedObserver = t.onGamepadDisconnectedObservable.add(function (t) {
if (t.type === Ye.POSE_ENABLED) {
var n = t;
n.defaultModel && n.defaultModel.setEnabled(!1), "right" === n.hand && (e._rightController = null), "left" === n.hand && (e._leftController = null);
var i = e.controllers.indexOf(n);
-1 !== i && e.controllers.splice(i, 1);
}
})),
(this._onGamepadConnectedObserver = t.onGamepadConnectedObservable.add(function (t) {
if (t.type === Ye.POSE_ENABLED) {
var n = t;
if (
(e.webVROptions.trackPosition ||
(n._disableTrackPosition(new a.e("left" == n.hand ? -0.15 : 0.15, -0.5, 0.25)),
e._updateCacheWhenTrackingDisabledObserver ||
(e._updateCacheWhenTrackingDisabledObserver = e._scene.onBeforeRenderObservable.add(function () {
e._updateCache();
}))),
(n.deviceScaleFactor = e.deviceScaleFactor),
n._deviceToWorld.copyFrom(e._deviceToWorld),
e._correctPositionIfNotTrackPosition(n._deviceToWorld),
e.webVROptions.controllerMeshes &&
(n.defaultModel
? n.defaultModel.setEnabled(!0)
: n.initControllerMesh(e.getScene(), function (t) {
if ((t.scaling.scaleInPlace(e.deviceScaleFactor), e.onControllerMeshLoadedObservable.notifyObservers(n), e.webVROptions.defaultLightingOnControllers)) {
e._lightOnControllers || (e._lightOnControllers = new xn.a("vrControllersLight", new a.e(0, 1, 0), e.getScene()));
var i = function (e, t) {
var n = e.getChildren();
n &&
0 !== n.length &&
n.forEach(function (e) {
t.includedOnlyMeshes.push(e), i(e, t);
});
};
e._lightOnControllers.includedOnlyMeshes.push(t), i(t, e._lightOnControllers);
}
})),
n.attachToPoseControlledCamera(e),
-1 === e.controllers.indexOf(n))
) {
e.controllers.push(n);
for (var i = !1, r = 0; r < e.controllers.length; r++) e.controllers[r].controllerType === Mt.VIVE && (i ? (e.controllers[r].hand = "right") : ((i = !0), (e.controllers[r].hand = "left")));
e.controllers.length >= 2 && e.onControllersAttachedObservable.notifyObservers(e.controllers);
}
}
}));
}),
t
);
})(yt.a),
On = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (
(n.onTriggerStateChangedObservable = new o.c()),
(n.onMainButtonStateChangedObservable = new o.c()),
(n.onSecondaryButtonStateChangedObservable = new o.c()),
(n.onPadStateChangedObservable = new o.c()),
(n.onPadValuesChangedObservable = new o.c()),
(n.pad = { x: 0, y: 0 }),
(n._changes = { pressChanged: !1, touchChanged: !1, valueChanged: !1, changed: !1 }),
(n._buttons = new Array(t.buttons.length)),
(n.hand = t.hand),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.onButtonStateChange = function (e) {
this._onButtonStateChange = e;
}),
Object.defineProperty(t.prototype, "defaultModel", {
get: function () {
return this._defaultModel;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.update = function () {
e.prototype.update.call(this);
for (var t = 0; t < this._buttons.length; t++) this._setButtonValue(this.browserGamepad.buttons[t], this._buttons[t], t);
(this.leftStick.x === this.pad.x && this.leftStick.y === this.pad.y) || ((this.pad.x = this.leftStick.x), (this.pad.y = this.leftStick.y), this.onPadValuesChangedObservable.notifyObservers(this.pad));
}),
(t.prototype._setButtonValue = function (e, t, n) {
e || (e = { pressed: !1, touched: !1, value: 0 }),
t
? (this._checkChanges(e, t),
this._changes.changed && (this._onButtonStateChange && this._onButtonStateChange(this.index, n, e), this._handleButtonChange(n, e, this._changes)),
(this._buttons[n].pressed = e.pressed),
(this._buttons[n].touched = e.touched),
(this._buttons[n].value = e.value < 1e-8 ? 0 : e.value))
: (this._buttons[n] = { pressed: e.pressed, touched: e.touched, value: e.value });
}),
(t.prototype._checkChanges = function (e, t) {
return (
(this._changes.pressChanged = e.pressed !== t.pressed),
(this._changes.touchChanged = e.touched !== t.touched),
(this._changes.valueChanged = e.value !== t.value),
(this._changes.changed = this._changes.pressChanged || this._changes.touchChanged || this._changes.valueChanged),
this._changes
);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this),
(this._defaultModel = null),
this.onTriggerStateChangedObservable.clear(),
this.onMainButtonStateChangedObservable.clear(),
this.onSecondaryButtonStateChangedObservable.clear(),
this.onPadStateChangedObservable.clear(),
this.onPadValuesChangedObservable.clear();
}),
t
);
})(Ft),
En = n(50),
Mn = n(33),
An = n(75),
In =
(n(140),
n(59),
n(141),
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\n#include\n#include\nvoid main(void)\n{\nvec4 result=texture2D(textureSampler,vUV);\n#ifdef IMAGEPROCESSING\n#ifndef FROMLINEARSPACE\n\nresult.rgb=toLinearSpace(result.rgb);\n#endif\nresult=applyImageProcessing(result);\n#else\n\n#ifdef FROMLINEARSPACE\nresult=applyImageProcessing(result);\n#endif\n#endif\ngl_FragColor=result;\n}");
Xt.a.ShadersStore.imageProcessingPixelShader = In;
n(208);
var Dn = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === i && (i = null), void 0 === s && (s = 0);
var l = e.call(this, t, "imageProcessing", [], [], n, i, r, o, a, null, s, "postprocess", null, !0) || this;
return (
(l._fromLinearSpace = !0),
(l._defines = {
IMAGEPROCESSING: !1,
VIGNETTE: !1,
VIGNETTEBLENDMODEMULTIPLY: !1,
VIGNETTEBLENDMODEOPAQUE: !1,
TONEMAPPING: !1,
TONEMAPPING_ACES: !1,
CONTRAST: !1,
COLORCURVES: !1,
COLORGRADING: !1,
COLORGRADING3D: !1,
FROMLINEARSPACE: !1,
SAMPLER3DGREENDEPTH: !1,
SAMPLER3DBGRMAP: !1,
IMAGEPROCESSINGPOSTPROCESS: !1,
EXPOSURE: !1,
}),
c ? ((c.applyByPostProcess = !0), l._attachImageProcessingConfiguration(c, !0), (l.fromLinearSpace = !1)) : (l._attachImageProcessingConfiguration(null, !0), (l.imageProcessingConfiguration.applyByPostProcess = !0)),
(l.onApply = function (e) {
l.imageProcessingConfiguration.bind(e, l.aspectRatio);
}),
l
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
set: function (e) {
(e.applyByPostProcess = !0), this._attachImageProcessingConfiguration(e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._attachImageProcessingConfiguration = function (e, t) {
var n = this;
if ((void 0 === t && (t = !1), e !== this._imageProcessingConfiguration)) {
if ((this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e)) this._imageProcessingConfiguration = e;
else {
var i = null,
r = this.getEngine(),
o = this.getCamera();
if (o) i = o.getScene();
else if (r && r.scenes) {
var a = r.scenes;
i = a[a.length - 1];
} else i = E.a.LastCreatedScene;
this._imageProcessingConfiguration = i.imageProcessingConfiguration;
}
this._imageProcessingConfiguration &&
(this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () {
n._updateParameters();
})),
t || this._updateParameters();
}
}),
Object.defineProperty(t.prototype, "colorCurves", {
get: function () {
return this.imageProcessingConfiguration.colorCurves;
},
set: function (e) {
this.imageProcessingConfiguration.colorCurves = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "colorCurvesEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorCurvesEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorCurvesEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "colorGradingTexture", {
get: function () {
return this.imageProcessingConfiguration.colorGradingTexture;
},
set: function (e) {
this.imageProcessingConfiguration.colorGradingTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "colorGradingEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorGradingEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorGradingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "exposure", {
get: function () {
return this.imageProcessingConfiguration.exposure;
},
set: function (e) {
this.imageProcessingConfiguration.exposure = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "toneMappingEnabled", {
get: function () {
return this._imageProcessingConfiguration.toneMappingEnabled;
},
set: function (e) {
this._imageProcessingConfiguration.toneMappingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "toneMappingType", {
get: function () {
return this._imageProcessingConfiguration.toneMappingType;
},
set: function (e) {
this._imageProcessingConfiguration.toneMappingType = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "contrast", {
get: function () {
return this.imageProcessingConfiguration.contrast;
},
set: function (e) {
this.imageProcessingConfiguration.contrast = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteStretch", {
get: function () {
return this.imageProcessingConfiguration.vignetteStretch;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteStretch = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteCentreX", {
get: function () {
return this.imageProcessingConfiguration.vignetteCentreX;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteCentreX = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteCentreY", {
get: function () {
return this.imageProcessingConfiguration.vignetteCentreY;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteCentreY = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteWeight", {
get: function () {
return this.imageProcessingConfiguration.vignetteWeight;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteWeight = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteColor", {
get: function () {
return this.imageProcessingConfiguration.vignetteColor;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteColor = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteCameraFov", {
get: function () {
return this.imageProcessingConfiguration.vignetteCameraFov;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteCameraFov = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteBlendMode", {
get: function () {
return this.imageProcessingConfiguration.vignetteBlendMode;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteBlendMode = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "vignetteEnabled", {
get: function () {
return this.imageProcessingConfiguration.vignetteEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.vignetteEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fromLinearSpace", {
get: function () {
return this._fromLinearSpace;
},
set: function (e) {
this._fromLinearSpace !== e && ((this._fromLinearSpace = e), this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "ImageProcessingPostProcess";
}),
(t.prototype._updateParameters = function () {
(this._defines.FROMLINEARSPACE = this._fromLinearSpace), this.imageProcessingConfiguration.prepareDefines(this._defines, !0);
var e = "";
for (var t in this._defines) this._defines[t] && (e += "#define " + t + ";\r\n");
var n = ["textureSampler"],
i = ["scale"];
En.a && (En.a.PrepareSamplers(n, this._defines), En.a.PrepareUniforms(i, this._defines)), this.updateEffect(e, i, n);
}),
(t.prototype.dispose = function (t) {
e.prototype.dispose.call(this, t),
this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
this._imageProcessingConfiguration && (this.imageProcessingConfiguration.applyByPostProcess = !1);
}),
Object(h.c)([Object(He.c)()], t.prototype, "_fromLinearSpace", void 0),
t
);
})(Wt.a),
Rn = n(16),
wn = n(4);
Ee.a._GroundMeshParser = function (e, t) {
return Ln.Parse(e, t);
};
var Ln = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (i.generateOctree = !1), i;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "GroundMesh";
}),
Object.defineProperty(t.prototype, "subdivisions", {
get: function () {
return Math.min(this._subdivisionsX, this._subdivisionsY);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "subdivisionsX", {
get: function () {
return this._subdivisionsX;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "subdivisionsY", {
get: function () {
return this._subdivisionsY;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.optimize = function (e, t) {
void 0 === t && (t = 32), (this._subdivisionsX = e), (this._subdivisionsY = e), this.subdivide(e);
this.createOrUpdateSubmeshesOctree && this.createOrUpdateSubmeshesOctree(t);
}),
(t.prototype.getHeightAtCoordinates = function (e, t) {
var n = this.getWorldMatrix(),
i = a.c.Matrix[5];
n.invertToRef(i);
var r = a.c.Vector3[8];
if ((a.e.TransformCoordinatesFromFloatsToRef(e, 0, t, i, r), (e = r.x), (t = r.z), e < this._minX || e > this._maxX || t < this._minZ || t > this._maxZ)) return this.position.y;
(this._heightQuads && 0 != this._heightQuads.length) || (this._initHeightQuads(), this._computeHeightQuads());
var o = this._getFacetAt(e, t),
s = -(o.x * e + o.z * t + o.w) / o.y;
return a.e.TransformCoordinatesFromFloatsToRef(0, s, 0, n, r), r.y;
}),
(t.prototype.getNormalAtCoordinates = function (e, t) {
var n = new a.e(0, 1, 0);
return this.getNormalAtCoordinatesToRef(e, t, n), n;
}),
(t.prototype.getNormalAtCoordinatesToRef = function (e, t, n) {
var i = this.getWorldMatrix(),
r = a.c.Matrix[5];
i.invertToRef(r);
var o = a.c.Vector3[8];
if ((a.e.TransformCoordinatesFromFloatsToRef(e, 0, t, r, o), (e = o.x), (t = o.z), e < this._minX || e > this._maxX || t < this._minZ || t > this._maxZ)) return this;
(this._heightQuads && 0 != this._heightQuads.length) || (this._initHeightQuads(), this._computeHeightQuads());
var s = this._getFacetAt(e, t);
return a.e.TransformNormalFromFloatsToRef(s.x, s.y, s.z, i, n), this;
}),
(t.prototype.updateCoordinateHeights = function () {
return (this._heightQuads && 0 != this._heightQuads.length) || this._initHeightQuads(), this._computeHeightQuads(), this;
}),
(t.prototype._getFacetAt = function (e, t) {
var n = Math.floor(((e + this._maxX) * this._subdivisionsX) / this._width),
i = Math.floor((-(t + this._maxZ) * this._subdivisionsY) / this._height + this._subdivisionsY),
r = this._heightQuads[i * this._subdivisionsX + n];
return t < r.slope.x * e + r.slope.y ? r.facet1 : r.facet2;
}),
(t.prototype._initHeightQuads = function () {
var e = this._subdivisionsX,
t = this._subdivisionsY;
this._heightQuads = new Array();
for (var n = 0; n < t; n++)
for (var i = 0; i < e; i++) {
var r = { slope: a.d.Zero(), facet1: new a.f(0, 0, 0, 0), facet2: new a.f(0, 0, 0, 0) };
this._heightQuads[n * e + i] = r;
}
return this;
}),
(t.prototype._computeHeightQuads = function () {
var e = this.getVerticesData(wn.b.PositionKind);
if (!e) return this;
for (
var t = a.c.Vector3[3],
n = a.c.Vector3[2],
i = a.c.Vector3[1],
r = a.c.Vector3[0],
o = a.c.Vector3[4],
s = a.c.Vector3[5],
c = a.c.Vector3[6],
l = a.c.Vector3[7],
u = a.c.Vector3[8],
h = 0,
d = 0,
p = 0,
f = 0,
m = 0,
g = 0,
b = 0,
_ = this._subdivisionsX,
v = this._subdivisionsY,
y = 0;
y < v;
y++
)
for (var C = 0; C < _; C++) {
(h = 3 * C),
(d = y * (_ + 1) * 3),
(p = (y + 1) * (_ + 1) * 3),
(t.x = e[d + h]),
(t.y = e[d + h + 1]),
(t.z = e[d + h + 2]),
(n.x = e[d + h + 3]),
(n.y = e[d + h + 4]),
(n.z = e[d + h + 5]),
(i.x = e[p + h]),
(i.y = e[p + h + 1]),
(i.z = e[p + h + 2]),
(r.x = e[p + h + 3]),
(r.y = e[p + h + 4]),
(r.z = e[p + h + 5]),
(f = (r.z - t.z) / (r.x - t.x)),
(m = t.z - f * t.x),
n.subtractToRef(t, o),
i.subtractToRef(t, s),
r.subtractToRef(t, c),
a.e.CrossToRef(c, s, l),
a.e.CrossToRef(o, c, u),
l.normalize(),
u.normalize(),
(g = -(l.x * t.x + l.y * t.y + l.z * t.z)),
(b = -(u.x * n.x + u.y * n.y + u.z * n.z));
var P = this._heightQuads[y * _ + C];
P.slope.copyFromFloats(f, m), P.facet1.copyFromFloats(l.x, l.y, l.z, g), P.facet2.copyFromFloats(u.x, u.y, u.z, b);
}
return this;
}),
(t.prototype.serialize = function (t) {
e.prototype.serialize.call(this, t),
(t.subdivisionsX = this._subdivisionsX),
(t.subdivisionsY = this._subdivisionsY),
(t.minX = this._minX),
(t.maxX = this._maxX),
(t.minZ = this._minZ),
(t.maxZ = this._maxZ),
(t.width = this._width),
(t.height = this._height);
}),
(t.Parse = function (e, n) {
var i = new t(e.name, n);
return (
(i._subdivisionsX = e.subdivisionsX || 1),
(i._subdivisionsY = e.subdivisionsY || 1),
(i._minX = e.minX),
(i._maxX = e.maxX),
(i._minZ = e.minZ),
(i._maxZ = e.maxZ),
(i._width = e.width),
(i._height = e.height),
i
);
}),
t
);
})(Ee.a),
Fn = n(112);
(Rn.a.CreateGround = function (e) {
var t,
n,
i = [],
r = [],
o = [],
s = [],
c = e.width || 1,
l = e.height || 1,
u = e.subdivisionsX || e.subdivisions || 1,
h = e.subdivisionsY || e.subdivisions || 1;
for (t = 0; t <= h; t++)
for (n = 0; n <= u; n++) {
var d = new a.e((n * c) / u - c / 2, 0, ((h - t) * l) / h - l / 2),
p = new a.e(0, 1, 0);
r.push(d.x, d.y, d.z), o.push(p.x, p.y, p.z), s.push(n / u, 1 - t / h);
}
for (t = 0; t < h; t++) for (n = 0; n < u; n++) i.push(n + 1 + (t + 1) * (u + 1)), i.push(n + 1 + t * (u + 1)), i.push(n + t * (u + 1)), i.push(n + (t + 1) * (u + 1)), i.push(n + 1 + (t + 1) * (u + 1)), i.push(n + t * (u + 1));
var f = new Rn.a();
return (f.indices = i), (f.positions = r), (f.normals = o), (f.uvs = s), f;
}),
(Rn.a.CreateTiledGround = function (e) {
var t,
n,
i,
r,
o = void 0 !== e.xmin && null !== e.xmin ? e.xmin : -1,
s = void 0 !== e.zmin && null !== e.zmin ? e.zmin : -1,
c = void 0 !== e.xmax && null !== e.xmax ? e.xmax : 1,
l = void 0 !== e.zmax && null !== e.zmax ? e.zmax : 1,
u = e.subdivisions || { w: 1, h: 1 },
h = e.precision || { w: 1, h: 1 },
d = new Array(),
p = new Array(),
f = new Array(),
m = new Array();
(u.h = u.h < 1 ? 1 : u.h), (u.w = u.w < 1 ? 1 : u.w), (h.w = h.w < 1 ? 1 : h.w), (h.h = h.h < 1 ? 1 : h.h);
var g = (c - o) / u.w,
b = (l - s) / u.h;
function _(e, i, r, o) {
var s = p.length / 3,
c = h.w + 1;
for (t = 0; t < h.h; t++)
for (n = 0; n < h.w; n++) {
var l = [s + n + t * c, s + (n + 1) + t * c, s + (n + 1) + (t + 1) * c, s + n + (t + 1) * c];
d.push(l[1]), d.push(l[2]), d.push(l[3]), d.push(l[0]), d.push(l[1]), d.push(l[3]);
}
var u = a.e.Zero(),
g = new a.e(0, 1, 0);
for (t = 0; t <= h.h; t++) for (u.z = (t * (o - i)) / h.h + i, n = 0; n <= h.w; n++) (u.x = (n * (r - e)) / h.w + e), (u.y = 0), p.push(u.x, u.y, u.z), f.push(g.x, g.y, g.z), m.push(n / h.w, t / h.h);
}
for (i = 0; i < u.h; i++) for (r = 0; r < u.w; r++) _(o + r * g, s + i * b, o + (r + 1) * g, s + (i + 1) * b);
var v = new Rn.a();
return (v.indices = d), (v.positions = p), (v.normals = f), (v.uvs = m), v;
}),
(Rn.a.CreateGroundFromHeightMap = function (e) {
var t,
n,
i = [],
r = [],
o = [],
c = [],
l = e.colorFilter || new s.a(0.3, 0.59, 0.11),
u = e.alphaFilter || 0,
h = !1;
if (e.minHeight > e.maxHeight) {
h = !0;
var d = e.maxHeight;
(e.maxHeight = e.minHeight), (e.minHeight = d);
}
for (t = 0; t <= e.subdivisions; t++)
for (n = 0; n <= e.subdivisions; n++) {
var p = new a.e((n * e.width) / e.subdivisions - e.width / 2, 0, ((e.subdivisions - t) * e.height) / e.subdivisions - e.height / 2),
f = 4 * (((((p.x + e.width / 2) / e.width) * (e.bufferWidth - 1)) | 0) + (((1 - (p.z + e.height / 2) / e.height) * (e.bufferHeight - 1)) | 0) * e.bufferWidth),
m = e.buffer[f] / 255,
g = e.buffer[f + 1] / 255,
b = e.buffer[f + 2] / 255,
_ = e.buffer[f + 3] / 255;
h && ((m = 1 - m), (g = 1 - g), (b = 1 - b));
var v = m * l.r + g * l.g + b * l.b;
(p.y = _ >= u ? e.minHeight + (e.maxHeight - e.minHeight) * v : e.minHeight - j.a), r.push(p.x, p.y, p.z), o.push(0, 0, 0), c.push(n / e.subdivisions, 1 - t / e.subdivisions);
}
for (t = 0; t < e.subdivisions; t++)
for (n = 0; n < e.subdivisions; n++) {
var y = n + 1 + (t + 1) * (e.subdivisions + 1),
C = n + 1 + t * (e.subdivisions + 1),
P = n + t * (e.subdivisions + 1),
x = n + (t + 1) * (e.subdivisions + 1),
T = r[3 * y + 1] >= e.minHeight,
S = r[3 * C + 1] >= e.minHeight,
O = r[3 * P + 1] >= e.minHeight;
T && S && O && (i.push(y), i.push(C), i.push(P)), r[3 * x + 1] >= e.minHeight && T && O && (i.push(x), i.push(y), i.push(P));
}
Rn.a.ComputeNormals(r, i, o);
var E = new Rn.a();
return (E.indices = i), (E.positions = r), (E.normals = o), (E.uvs = c), E;
}),
(Ee.a.CreateGround = function (e, t, n, i, r, o) {
var a = { width: t, height: n, subdivisions: i, updatable: o };
return Nn.CreateGround(e, a, r);
}),
(Ee.a.CreateTiledGround = function (e, t, n, i, r, o, a, s, c) {
var l = { xmin: t, zmin: n, xmax: i, zmax: r, subdivisions: o, precision: a, updatable: c };
return Nn.CreateTiledGround(e, l, s);
}),
(Ee.a.CreateGroundFromHeightMap = function (e, t, n, i, r, o, a, s, c, l, u) {
var h = { width: n, height: i, subdivisions: r, minHeight: o, maxHeight: a, updatable: c, onReady: l, alphaFilter: u };
return Nn.CreateGroundFromHeightMap(e, t, h, s);
});
var Nn = (function () {
function e() {}
return (
(e.CreateGround = function (e, t, n) {
var i = new Ln(e, n);
return (
i._setReady(!1),
(i._subdivisionsX = t.subdivisionsX || t.subdivisions || 1),
(i._subdivisionsY = t.subdivisionsY || t.subdivisions || 1),
(i._width = t.width || 1),
(i._height = t.height || 1),
(i._maxX = i._width / 2),
(i._maxZ = i._height / 2),
(i._minX = -i._maxX),
(i._minZ = -i._maxZ),
Rn.a.CreateGround(t).applyToMesh(i, t.updatable),
i._setReady(!0),
i
);
}),
(e.CreateTiledGround = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return Rn.a.CreateTiledGround(t).applyToMesh(i, t.updatable), i;
}),
(e.CreateGroundFromHeightMap = function (e, t, n, i) {
void 0 === i && (i = null);
var r = n.width || 10,
o = n.height || 10,
a = n.subdivisions || 1,
c = n.minHeight || 0,
l = n.maxHeight || 1,
u = n.colorFilter || new s.a(0.3, 0.59, 0.11),
h = n.alphaFilter || 0,
d = n.updatable,
p = n.onReady;
i = i || E.a.LastCreatedScene;
var f = new Ln(e, i);
(f._subdivisionsX = a), (f._subdivisionsY = a), (f._width = r), (f._height = o), (f._maxX = f._width / 2), (f._maxZ = f._height / 2), (f._minX = -f._maxX), (f._minZ = -f._maxZ), f._setReady(!1);
return (
$e.b.LoadImage(
t,
function (e) {
var t = e.width,
n = e.height,
s = Fn.a.CreateCanvas(t, n).getContext("2d");
if (!s) throw new Error("Unable to get 2d context for CreateGroundFromHeightMap");
if (!i.isDisposed) {
s.drawImage(e, 0, 0);
var m = s.getImageData(0, 0, t, n).data;
Rn.a.CreateGroundFromHeightMap({ width: r, height: o, subdivisions: a, minHeight: c, maxHeight: l, colorFilter: u, buffer: m, bufferWidth: t, bufferHeight: n, alphaFilter: h }).applyToMesh(f, d),
p && p(f),
f._setReady(!0);
}
},
function () {},
i.offlineProvider
),
f
);
}),
e
);
})();
(Rn.a.CreateTorus = function (e) {
for (var t = [], n = [], i = [], r = [], o = e.diameter || 1, s = e.thickness || 0.5, c = e.tessellation || 16, l = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, u = c + 1, h = 0; h <= c; h++)
for (var d = h / c, p = (h * Math.PI * 2) / c - Math.PI / 2, f = a.a.Translation(o / 2, 0, 0).multiply(a.a.RotationY(p)), m = 0; m <= c; m++) {
var g = 1 - m / c,
b = (m * Math.PI * 2) / c + Math.PI,
_ = Math.cos(b),
v = Math.sin(b),
y = new a.e(_, v, 0),
C = y.scale(s / 2),
P = new a.d(d, g);
(C = a.e.TransformCoordinates(C, f)), (y = a.e.TransformNormal(y, f)), n.push(C.x, C.y, C.z), i.push(y.x, y.y, y.z), r.push(P.x, P.y);
var x = (h + 1) % u,
T = (m + 1) % u;
t.push(h * u + m), t.push(h * u + T), t.push(x * u + m), t.push(h * u + T), t.push(x * u + T), t.push(x * u + m);
}
Rn.a._ComputeSides(l, n, t, i, r, e.frontUVs, e.backUVs);
var S = new Rn.a();
return (S.indices = t), (S.positions = n), (S.normals = i), (S.uvs = r), S;
}),
(Ee.a.CreateTorus = function (e, t, n, i, r, o, a) {
var s = { diameter: t, thickness: n, tessellation: i, sideOrientation: a, updatable: o };
return kn.CreateTorus(e, s, r);
});
var kn = (function () {
function e() {}
return (
(e.CreateTorus = function (e, t, n) {
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTorus(t).applyToMesh(i, t.updatable), i;
}),
e
);
})();
(Rn.a.CreateCylinder = function (e) {
var t = e.height || 2,
n = 0 === e.diameterTop ? 0 : e.diameterTop || e.diameter || 1,
i = 0 === e.diameterBottom ? 0 : e.diameterBottom || e.diameter || 1;
(n = n || 1e-5), (i = i || 1e-5);
var r,
o = e.tessellation || 24,
c = e.subdivisions || 1,
l = !!e.hasRings,
u = !!e.enclose,
h = 0 === e.cap ? 0 : e.cap || Ee.a.CAP_ALL,
d = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1,
p = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE,
f = e.faceUV || new Array(3),
m = e.faceColors,
g = 2 + (1 + (1 !== d && u ? 2 : 0)) * (l ? c : 1);
for (r = 0; r < g; r++) m && void 0 === m[r] && (m[r] = new s.b(1, 1, 1, 1));
for (r = 0; r < g; r++) f && void 0 === f[r] && (f[r] = new a.f(0, 0, 1, 1));
var b,
_,
v,
y,
C,
P,
x = new Array(),
T = new Array(),
S = new Array(),
O = new Array(),
E = new Array(),
M = (2 * Math.PI * d) / o,
A = (i - n) / 2 / t,
I = a.e.Zero(),
D = a.e.Zero(),
R = a.e.Zero(),
w = a.e.Zero(),
L = a.e.Zero(),
F = Be.a.Y,
N = 1,
k = 1,
z = 0,
j = 0;
for (y = 0; y <= c; y++)
for (v = ((_ = y / c) * (n - i) + i) / 2, N = l && 0 !== y && y !== c ? 2 : 1, P = 0; P < N; P++) {
for (l && (k += P), u && (k += 2 * P), C = 0; C <= o; C++)
(b = C * M),
(I.x = Math.cos(-b) * v),
(I.y = -t / 2 + _ * t),
(I.z = Math.sin(-b) * v),
0 === n && y === c
? ((D.x = S[S.length - 3 * (o + 1)]), (D.y = S[S.length - 3 * (o + 1) + 1]), (D.z = S[S.length - 3 * (o + 1) + 2]))
: ((D.x = I.x), (D.z = I.z), (D.y = Math.sqrt(D.x * D.x + D.z * D.z) * A), D.normalize()),
0 === C && (R.copyFrom(I), w.copyFrom(D)),
T.push(I.x, I.y, I.z),
S.push(D.x, D.y, D.z),
(j = l ? (z !== k ? f[k].y : f[k].w) : f[k].y + (f[k].w - f[k].y) * _),
O.push(f[k].x + ((f[k].z - f[k].x) * C) / o, j),
m && E.push(m[k].r, m[k].g, m[k].b, m[k].a);
1 !== d &&
u &&
(T.push(I.x, I.y, I.z),
T.push(0, I.y, 0),
T.push(0, I.y, 0),
T.push(R.x, R.y, R.z),
a.e.CrossToRef(F, D, L),
L.normalize(),
S.push(L.x, L.y, L.z, L.x, L.y, L.z),
a.e.CrossToRef(w, F, L),
L.normalize(),
S.push(L.x, L.y, L.z, L.x, L.y, L.z),
(j = l ? (z !== k ? f[k + 1].y : f[k + 1].w) : f[k + 1].y + (f[k + 1].w - f[k + 1].y) * _),
O.push(f[k + 1].x, j),
O.push(f[k + 1].z, j),
(j = l ? (z !== k ? f[k + 2].y : f[k + 2].w) : f[k + 2].y + (f[k + 2].w - f[k + 2].y) * _),
O.push(f[k + 2].x, j),
O.push(f[k + 2].z, j),
m &&
(E.push(m[k + 1].r, m[k + 1].g, m[k + 1].b, m[k + 1].a),
E.push(m[k + 1].r, m[k + 1].g, m[k + 1].b, m[k + 1].a),
E.push(m[k + 2].r, m[k + 2].g, m[k + 2].b, m[k + 2].a),
E.push(m[k + 2].r, m[k + 2].g, m[k + 2].b, m[k + 2].a))),
z !== k && (z = k);
}
var B = 1 !== d && u ? o + 4 : o;
for (y = 0, k = 0; k < c; k++) {
var V = 0,
G = 0,
U = 0,
H = 0;
for (C = 0; C < o; C++) (V = y * (B + 1) + C), (G = (y + 1) * (B + 1) + C), (U = y * (B + 1) + (C + 1)), (H = (y + 1) * (B + 1) + (C + 1)), x.push(V, G, U), x.push(H, U, G);
1 !== d && u && (x.push(V + 2, G + 2, U + 2), x.push(H + 2, U + 2, G + 2), x.push(V + 4, G + 4, U + 4), x.push(H + 4, U + 4, G + 4)), (y = l ? y + 2 : y + 1);
}
var W = function (e) {
var r = e ? n / 2 : i / 2;
if (0 !== r) {
var s,
c,
l,
u = e ? f[g - 1] : f[0],
h = null;
m && (h = e ? m[g - 1] : m[0]);
var p = T.length / 3,
b = e ? t / 2 : -t / 2,
_ = new a.e(0, b, 0);
T.push(_.x, _.y, _.z), S.push(0, e ? 1 : -1, 0), O.push(u.x + 0.5 * (u.z - u.x), u.y + 0.5 * (u.w - u.y)), h && E.push(h.r, h.g, h.b, h.a);
var v = new a.d(0.5, 0.5);
for (l = 0; l <= o; l++) {
s = (2 * Math.PI * l * d) / o;
var y = Math.cos(-s),
C = Math.sin(-s);
c = new a.e(y * r, b, C * r);
var P = new a.d(y * v.x + 0.5, C * v.y + 0.5);
T.push(c.x, c.y, c.z), S.push(0, e ? 1 : -1, 0), O.push(u.x + (u.z - u.x) * P.x, u.y + (u.w - u.y) * P.y), h && E.push(h.r, h.g, h.b, h.a);
}
for (l = 0; l < o; l++) e ? (x.push(p), x.push(p + (l + 2)), x.push(p + (l + 1))) : (x.push(p), x.push(p + (l + 1)), x.push(p + (l + 2)));
}
};
(h !== Ee.a.CAP_START && h !== Ee.a.CAP_ALL) || W(!1), (h !== Ee.a.CAP_END && h !== Ee.a.CAP_ALL) || W(!0), Rn.a._ComputeSides(p, T, x, S, O, e.frontUVs, e.backUVs);
var X = new Rn.a();
return (X.indices = x), (X.positions = T), (X.normals = S), (X.uvs = O), m && (X.colors = E), X;
}),
(Ee.a.CreateCylinder = function (e, t, n, i, r, o, a, s, c) {
(void 0 !== a && a instanceof ge.a) || (void 0 !== a && ((c = s || Ee.a.DEFAULTSIDE), (s = a)), (a = o), (o = 1));
var l = { height: t, diameterTop: n, diameterBottom: i, tessellation: r, subdivisions: o, sideOrientation: c, updatable: s };
return jn.CreateCylinder(e, l, a);
});
var zn,
jn = (function () {
function e() {}
return (
(e.CreateCylinder = function (e, t, n) {
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateCylinder(t).applyToMesh(i, t.updatable), i;
}),
e
);
})(),
Bn = (function () {
function e() {}
return (
(e.GetDefaults = function () {
var t = new e();
return (
(t.canvasOptions = { antialias: !0, depth: !0, stencil: !1, alpha: !0, multiview: !1, framebufferScaleFactor: 1 }),
(t.newCanvasCssStyle = "position:absolute; bottom:0px;right:0px;z-index:10;width:90%;height:100%;background-color: #000000;"),
t
);
}),
e
);
})(),
Vn = (function () {
function e(e, t) {
var n = this;
if ((void 0 === t && (t = Bn.GetDefaults()), (this._options = t), (this._canvas = null), (this.xrLayer = null), (this._engine = e.scene.getEngine()), t.canvasElement)) this._setManagedOutputCanvas(t.canvasElement);
else {
var i = document.createElement("canvas");
(i.style.cssText = this._options.newCanvasCssStyle || "position:absolute; bottom:0px;right:0px;"), this._setManagedOutputCanvas(i);
}
e.onXRSessionInit.add(function () {
n._addCanvas();
}),
e.onXRSessionEnded.add(function () {
n._removeCanvas();
});
}
return (
(e.prototype.dispose = function () {
this._removeCanvas(), this._setManagedOutputCanvas(null);
}),
(e.prototype.initializeXRLayerAsync = function (e) {
var t = this,
n = function () {
return new XRWebGLLayer(e, t.canvasContext, t._options.canvasOptions);
};
return this.canvasContext.makeXRCompatible
? this.canvasContext.makeXRCompatible().then(function () {
return (t.xrLayer = n()), t.xrLayer;
})
: ((this.xrLayer = n()), Promise.resolve(this.xrLayer));
}),
(e.prototype._addCanvas = function () {
this._canvas && this._canvas !== this._engine.getRenderingCanvas() && document.body.appendChild(this._canvas);
}),
(e.prototype._removeCanvas = function () {
this._canvas && document.body.contains(this._canvas) && this._canvas !== this._engine.getRenderingCanvas() && document.body.removeChild(this._canvas);
}),
(e.prototype._setManagedOutputCanvas = function (e) {
this._removeCanvas(),
e
? ((this._canvas = e), (this.canvasContext = this._canvas.getContext("webgl2")), this.canvasContext || (this.canvasContext = this._canvas.getContext("webgl")))
: ((this._canvas = null), (this.canvasContext = null));
}),
e
);
})(),
Gn = (function () {
function e(e) {
(this.scene = e),
(this._sessionEnded = !1),
(this.baseLayer = null),
(this.currentTimestamp = -1),
(this.defaultHeightCompensation = 1.7),
(this.onXRFrameObservable = new o.c()),
(this.onXRReferenceSpaceChanged = new o.c()),
(this.onXRSessionEnded = new o.c()),
(this.onXRSessionInit = new o.c());
}
return (
Object.defineProperty(e.prototype, "referenceSpace", {
get: function () {
return this._referenceSpace;
},
set: function (e) {
(this._referenceSpace = e), this.onXRReferenceSpaceChanged.notifyObservers(this._referenceSpace);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this._sessionEnded || this.exitXRAsync(), this.onXRFrameObservable.clear(), this.onXRSessionEnded.clear(), this.onXRReferenceSpaceChanged.clear(), this.onXRSessionInit.clear();
}),
(e.prototype.exitXRAsync = function () {
return this.session && !this._sessionEnded
? this.session.end().catch(function (e) {
g.a.Warn("could not end XR session. It has ended already.");
})
: Promise.resolve();
}),
(e.prototype.getRenderTargetTextureForEye = function (e) {
return this._rttProvider.getRenderTargetForEye(e);
}),
(e.prototype.getWebXRRenderTarget = function (e) {
var t = this.scene.getEngine();
return this._xrNavigator.xr.native ? this._xrNavigator.xr.getWebXRRenderTarget(t) : (((e = e || {}).canvasElement = t.getRenderingCanvas() || void 0), new Vn(this, e));
}),
(e.prototype.initializeAsync = function () {
return (this._xrNavigator = navigator), this._xrNavigator.xr ? Promise.resolve() : Promise.reject("WebXR not available");
}),
(e.prototype.initializeSessionAsync = function (e, t) {
var n = this;
return (
void 0 === e && (e = "immersive-vr"),
void 0 === t && (t = {}),
this._xrNavigator.xr.requestSession(e, t).then(function (e) {
return (
(n.session = e),
n.onXRSessionInit.notifyObservers(e),
(n._sessionEnded = !1),
n.session.addEventListener(
"end",
function () {
var e = n.scene.getEngine();
(n._sessionEnded = !0),
(n._rttProvider = null),
(e.framebufferDimensionsObject = null),
e.restoreDefaultFramebuffer(),
(e.customAnimationFrameRequester = null),
n.onXRSessionEnded.notifyObservers(null),
e._renderLoop();
},
{ once: !0 }
),
n.session
);
})
);
}),
(e.prototype.isSessionSupportedAsync = function (t) {
return e.IsSessionSupportedAsync(t);
}),
(e.prototype.resetReferenceSpace = function () {
this.referenceSpace = this.baseReferenceSpace;
}),
(e.prototype.runXRRenderLoop = function () {
var e = this,
t = this.scene.getEngine();
if (
((t.customAnimationFrameRequester = {
requestAnimationFrame: this.session.requestAnimationFrame.bind(this.session),
renderFunction: function (n, i) {
e._sessionEnded ||
((e.currentFrame = i),
(e.currentTimestamp = n),
i && (e.onXRFrameObservable.notifyObservers(i), (t.framebufferDimensionsObject = e.baseLayer), t._renderLoop(), (t.framebufferDimensionsObject = null)));
},
}),
this._xrNavigator.xr.native)
)
this._rttProvider = this._xrNavigator.xr.getNativeRenderTargetProvider(this.session, this._createRenderTargetTexture.bind(this));
else {
var n = this._createRenderTargetTexture(this.baseLayer.framebufferWidth, this.baseLayer.framebufferHeight, this.baseLayer.framebuffer);
(this._rttProvider = {
getRenderTargetForEye: function () {
return n;
},
}),
(t.framebufferDimensionsObject = this.baseLayer);
}
window.cancelAnimationFrame && window.cancelAnimationFrame(t._frameHandler), t._renderLoop();
}),
(e.prototype.setReferenceSpaceTypeAsync = function (e) {
var t = this;
return (
void 0 === e && (e = "local-floor"),
this.session
.requestReferenceSpace(e)
.then(
function (e) {
return e;
},
function (e) {
return (
g.a.Error("XR.requestReferenceSpace failed for the following reason: "),
g.a.Error(e),
g.a.Log('Defaulting to universally-supported "viewer" reference space type.'),
t.session.requestReferenceSpace("viewer").then(
function (e) {
var n = new XRRigidTransform({ x: 0, y: -t.defaultHeightCompensation, z: 0 });
return e.getOffsetReferenceSpace(n);
},
function (e) {
throw (g.a.Error(e), 'XR initialization failed: required "viewer" reference space type not supported.');
}
)
);
}
)
.then(function (e) {
return (
(t.referenceSpace = t.baseReferenceSpace = e),
t.session.requestReferenceSpace("viewer").then(function (e) {
t.viewerReferenceSpace = e;
}),
t.referenceSpace
);
})
);
}),
(e.prototype.updateRenderStateAsync = function (e) {
return e.baseLayer && (this.baseLayer = e.baseLayer), this.session.updateRenderState(e);
}),
(e.IsSessionSupportedAsync = function (e) {
if (!navigator.xr) return Promise.resolve(!1);
var t = navigator.xr.isSessionSupported || navigator.xr.supportsSession;
return t
? t
.call(navigator.xr, e)
.then(function (e) {
var t = void 0 === e || e;
return Promise.resolve(t);
})
.catch(function (e) {
return g.a.Warn(e), Promise.resolve(!1);
})
: Promise.resolve(!1);
}),
(e.prototype._createRenderTargetTexture = function (e, t, n) {
void 0 === n && (n = null);
var i = new pn.a(this.scene.getEngine(), pn.b.Unknown, !0);
(i.width = e), (i.height = t), (i._framebuffer = n);
var r = new mn.a("XR renderTargetTexture", { width: e, height: t }, this.scene, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, !0);
return (r._texture = i), r;
}),
e
);
})();
!(function (e) {
(e[(e.ENTERING_XR = 0)] = "ENTERING_XR"), (e[(e.EXITING_XR = 1)] = "EXITING_XR"), (e[(e.IN_XR = 2)] = "IN_XR"), (e[(e.NOT_IN_XR = 3)] = "NOT_IN_XR");
})(zn || (zn = {}));
var Un,
Hn = (function () {
function e(t, n) {
if (
(void 0 === n && (n = null),
(this.scene = t),
(this._pointerDownOnMeshAsked = !1),
(this._isActionableMesh = !1),
(this._teleportationRequestInitiated = !1),
(this._teleportationBackRequestInitiated = !1),
(this._rotationRightAsked = !1),
(this._rotationLeftAsked = !1),
(this._dpadPressed = !0),
(this._activePointer = !1),
(this._id = e._idCounter++),
n)
)
this._gazeTracker = n.clone("gazeTracker");
else {
(this._gazeTracker = Ee.a.CreateTorus("gazeTracker", 0.0035, 0.0025, 20, t, !1)), this._gazeTracker.bakeCurrentTransformIntoVertices(), (this._gazeTracker.isPickable = !1), (this._gazeTracker.isVisible = !1);
var i = new Mn.a("targetMat", t);
(i.specularColor = s.a.Black()), (i.emissiveColor = new s.a(0.7, 0.7, 0.7)), (i.backFaceCulling = !1), (this._gazeTracker.material = i);
}
}
return (
(e.prototype._getForwardRay = function (e) {
return new Re(a.e.Zero(), new a.e(0, 0, e));
}),
(e.prototype._selectionPointerDown = function () {
(this._pointerDownOnMeshAsked = !0), this._currentHit && this.scene.simulatePointerDown(this._currentHit, { pointerId: this._id });
}),
(e.prototype._selectionPointerUp = function () {
this._currentHit && this.scene.simulatePointerUp(this._currentHit, { pointerId: this._id }), (this._pointerDownOnMeshAsked = !1);
}),
(e.prototype._activatePointer = function () {
this._activePointer = !0;
}),
(e.prototype._deactivatePointer = function () {
this._activePointer = !1;
}),
(e.prototype._updatePointerDistance = function (e) {
void 0 === e && (e = 100);
}),
(e.prototype.dispose = function () {
(this._interactionsEnabled = !1), (this._teleportationEnabled = !1), this._gazeTracker && this._gazeTracker.dispose();
}),
(e._idCounter = 0),
e
);
})(),
Wn = (function (e) {
function t(t, n, i) {
var r = e.call(this, n, i) || this;
(r.webVRController = t), (r._laserPointer = Ee.a.CreateCylinder("laserPointer", 1, 0.004, 2e-4, 20, 1, n, !1));
var o = new Mn.a("laserPointerMat", n);
if (
((o.emissiveColor = new s.a(0.7, 0.7, 0.7)),
(o.alpha = 0.6),
(r._laserPointer.material = o),
(r._laserPointer.rotation.x = Math.PI / 2),
(r._laserPointer.position.z = -0.5),
(r._laserPointer.isVisible = !1),
(r._laserPointer.isPickable = !1),
!t.mesh)
) {
var a = new Ee.a("preloadControllerMesh", n),
c = new Ee.a(Ft.POINTING_POSE, n);
(c.rotation.x = -0.7), a.addChild(c), t.attachToMesh(a);
}
return (
r._setLaserPointerParent(t.mesh),
(r._meshAttachedObserver = t._meshAttachedObservable.add(function (e) {
r._setLaserPointerParent(e);
})),
r
);
}
return (
Object(h.d)(t, e),
(t.prototype._getForwardRay = function (e) {
return this.webVRController.getForwardRay(e);
}),
(t.prototype._activatePointer = function () {
e.prototype._activatePointer.call(this), (this._laserPointer.isVisible = !0);
}),
(t.prototype._deactivatePointer = function () {
e.prototype._deactivatePointer.call(this), (this._laserPointer.isVisible = !1);
}),
(t.prototype._setLaserPointerColor = function (e) {
this._laserPointer.material.emissiveColor = e;
}),
(t.prototype._setLaserPointerLightingDisabled = function (e) {
this._laserPointer.material.disableLighting = e;
}),
(t.prototype._setLaserPointerParent = function (e) {
var t = function (e) {
(e.isPickable = !1),
e.getChildMeshes().forEach(function (e) {
t(e);
});
};
t(e);
var n = e.getChildren(void 0, !1),
i = e;
this.webVRController._pointingPoseNode = null;
for (var r = 0; r < n.length; r++)
if (n[r].name && n[r].name.indexOf(Ft.POINTING_POSE) >= 0) {
(i = n[r]), (this.webVRController._pointingPoseNode = i);
break;
}
this._laserPointer.parent = i;
}),
(t.prototype._updatePointerDistance = function (e) {
void 0 === e && (e = 100), (this._laserPointer.scaling.y = e), (this._laserPointer.position.z = -e / 2);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this._laserPointer.dispose(), this._meshAttachedObserver && this.webVRController._meshAttachedObservable.remove(this._meshAttachedObserver);
}),
t
);
})(Hn),
Xn = (function (e) {
function t(t, n) {
var i = e.call(this, n) || this;
return (i.getCamera = t), i;
}
return (
Object(h.d)(t, e),
(t.prototype._getForwardRay = function (e) {
var t = this.getCamera();
return t ? t.getForwardRay(e) : new Re(a.e.Zero(), a.e.Forward());
}),
t
);
})(Hn),
Yn = function () {},
Kn = (function () {
function e(t, n) {
var i = this;
if (
(void 0 === n && (n = {}),
(this.webVROptions = n),
(this._webVRsupported = !1),
(this._webVRready = !1),
(this._webVRrequesting = !1),
(this._webVRpresenting = !1),
(this._fullscreenVRpresenting = !1),
(this.enableGazeEvenWhenNoPointerLock = !1),
(this.exitVROnDoubleTap = !0),
(this.onEnteringVRObservable = new o.c()),
(this.onAfterEnteringVRObservable = new o.c()),
(this.onExitingVRObservable = new o.c()),
(this.onControllerMeshLoadedObservable = new o.c()),
(this._useCustomVRButton = !1),
(this._teleportationRequested = !1),
(this._teleportActive = !1),
(this._floorMeshesCollection = []),
(this._teleportationMode = e.TELEPORTATIONMODE_CONSTANTTIME),
(this._teleportationTime = 122),
(this._teleportationSpeed = 20),
(this._rotationAllowed = !0),
(this._teleportBackwardsVector = new a.e(0, -1, -1)),
(this._isDefaultTeleportationTarget = !0),
(this._teleportationFillColor = "#444444"),
(this._teleportationBorderColor = "#FFFFFF"),
(this._rotationAngle = 0),
(this._haloCenter = new a.e(0, 0, 0)),
(this._padSensibilityUp = 0.65),
(this._padSensibilityDown = 0.35),
(this._leftController = null),
(this._rightController = null),
(this._gazeColor = new s.a(0.7, 0.7, 0.7)),
(this._laserColor = new s.a(0.7, 0.7, 0.7)),
(this._pickedLaserColor = new s.a(0.2, 0.2, 1)),
(this._pickedGazeColor = new s.a(0, 0, 1)),
(this.onNewMeshSelected = new o.c()),
(this.onMeshSelectedWithController = new o.c()),
(this.onNewMeshPicked = new o.c()),
(this.onBeforeCameraTeleport = new o.c()),
(this.onAfterCameraTeleport = new o.c()),
(this.onSelectedMeshUnselected = new o.c()),
(this.teleportationEnabled = !0),
(this._teleportationInitialized = !1),
(this._interactionsEnabled = !1),
(this._interactionsRequested = !1),
(this._displayGaze = !0),
(this._displayLaserPointer = !0),
(this.updateGazeTrackerScale = !0),
(this.updateGazeTrackerColor = !0),
(this.updateControllerLaserColor = !0),
(this.requestPointerLockOnFullScreen = !0),
(this.xrTestDone = !1),
(this._onResize = function () {
i.moveButtonToBottomRight(), i._fullscreenVRpresenting && i._webVRready && i.exitVR();
}),
(this._onFullscreenChange = function () {
var e = document;
void 0 !== e.fullscreen
? (i._fullscreenVRpresenting = document.fullscreen)
: void 0 !== e.mozFullScreen
? (i._fullscreenVRpresenting = e.mozFullScreen)
: void 0 !== e.webkitIsFullScreen
? (i._fullscreenVRpresenting = e.webkitIsFullScreen)
: void 0 !== e.msIsFullScreen
? (i._fullscreenVRpresenting = e.msIsFullScreen)
: void 0 !== document.msFullscreenElement && (i._fullscreenVRpresenting = document.msFullscreenElement),
!i._fullscreenVRpresenting &&
i._inputElement &&
(i.exitVR(),
!i._useCustomVRButton &&
i._btnVR &&
((i._btnVR.style.top = i._inputElement.offsetTop + i._inputElement.offsetHeight - 70 + "px"),
(i._btnVR.style.left = i._inputElement.offsetLeft + i._inputElement.offsetWidth - 100 + "px"),
i.updateButtonVisibility()));
}),
(this._cachedAngularSensibility = { angularSensibilityX: null, angularSensibilityY: null, angularSensibility: null }),
(this.beforeRender = function () {
i._leftController && i._leftController._activePointer && i._castRayAndSelectObject(i._leftController),
i._rightController && i._rightController._activePointer && i._castRayAndSelectObject(i._rightController),
i._noControllerIsActive && (i._scene.getEngine().isPointerLock || i.enableGazeEvenWhenNoPointerLock) ? i._castRayAndSelectObject(i._cameraGazer) : (i._cameraGazer._gazeTracker.isVisible = !1);
}),
(this._onNewGamepadConnected = function (e) {
if (e.type !== Ye.POSE_ENABLED)
e.leftStick &&
e.onleftstickchanged(function (e) {
i._teleportationInitialized &&
i.teleportationEnabled &&
((!i._leftController && !i._rightController) || (i._leftController && !i._leftController._activePointer && i._rightController && !i._rightController._activePointer)) &&
(i._checkTeleportWithRay(e, i._cameraGazer), i._checkTeleportBackwards(e, i._cameraGazer));
}),
e.rightStick &&
e.onrightstickchanged(function (e) {
i._teleportationInitialized && i._checkRotate(e, i._cameraGazer);
}),
e.type === Ye.XBOX &&
(e.onbuttondown(function (e) {
i._interactionsEnabled && e === Rt.A && i._cameraGazer._selectionPointerDown();
}),
e.onbuttonup(function (e) {
i._interactionsEnabled && e === Rt.A && i._cameraGazer._selectionPointerUp();
}));
else {
var t = e,
n = new Wn(t, i._scene, i._cameraGazer._gazeTracker);
"right" === t.hand || (i._leftController && i._leftController.webVRController != t) ? (i._rightController = n) : (i._leftController = n), i._tryEnableInteractionOnController(n);
}
}),
(this._tryEnableInteractionOnController = function (e) {
i._interactionsRequested && !e._interactionsEnabled && i._enableInteractionOnController(e), i._teleportationRequested && !e._teleportationEnabled && i._enableTeleportationOnController(e);
}),
(this._onNewGamepadDisconnected = function (e) {
e instanceof On &&
("left" === e.hand && null != i._leftController && (i._leftController.dispose(), (i._leftController = null)),
"right" === e.hand && null != i._rightController && (i._rightController.dispose(), (i._rightController = null)));
}),
(this._workingVector = a.e.Zero()),
(this._workingQuaternion = a.b.Identity()),
(this._workingMatrix = a.a.Identity()),
(this._scene = t),
(this._inputElement = t.getEngine().getInputElement()),
"getVRDisplays" in navigator || (n.useXR = !0),
void 0 === n.createFallbackVRDeviceOrientationFreeCamera && (n.createFallbackVRDeviceOrientationFreeCamera = !0),
void 0 === n.createDeviceOrientationCamera && (n.createDeviceOrientationCamera = !0),
void 0 === n.laserToggle && (n.laserToggle = !0),
void 0 === n.defaultHeight && (n.defaultHeight = 1.7),
n.useCustomVRButton && ((this._useCustomVRButton = !0), n.customVRButton && (this._btnVR = n.customVRButton)),
n.rayLength && (this._rayLength = n.rayLength),
(this._defaultHeight = n.defaultHeight),
n.positionScale && ((this._rayLength *= n.positionScale), (this._defaultHeight *= n.positionScale)),
(this._hasEnteredVR = !1),
this._scene.activeCamera ? (this._position = this._scene.activeCamera.position.clone()) : (this._position = new a.e(0, this._defaultHeight, 0)),
n.createDeviceOrientationCamera || !this._scene.activeCamera)
) {
if (
((this._deviceOrientationCamera = new Tt("deviceOrientationVRHelper", this._position.clone(), t)),
this._scene.activeCamera &&
((this._deviceOrientationCamera.minZ = this._scene.activeCamera.minZ),
(this._deviceOrientationCamera.maxZ = this._scene.activeCamera.maxZ),
this._scene.activeCamera instanceof vt.a && this._scene.activeCamera.rotation))
) {
var r = this._scene.activeCamera;
r.rotationQuaternion
? this._deviceOrientationCamera.rotationQuaternion.copyFrom(r.rotationQuaternion)
: this._deviceOrientationCamera.rotationQuaternion.copyFrom(a.b.RotationYawPitchRoll(r.rotation.y, r.rotation.x, r.rotation.z)),
(this._deviceOrientationCamera.rotation = r.rotation.clone());
}
(this._scene.activeCamera = this._deviceOrientationCamera), this._inputElement && this._scene.activeCamera.attachControl(this._inputElement);
} else this._existingCamera = this._scene.activeCamera;
this.webVROptions.useXR && navigator.xr
? Gn.IsSessionSupportedAsync("immersive-vr").then(function (e) {
e
? (g.a.Log("Using WebXR. It is recommended to use the WebXRDefaultExperience directly"),
t.createDefaultXRExperienceAsync({ floorMeshes: n.floorMeshes || [] }).then(function (e) {
(i.xr = e),
(i.xrTestDone = !0),
(i._cameraGazer = new Xn(function () {
return i.xr.baseExperience.camera;
}, t)),
i.xr.baseExperience.onStateChangedObservable.add(function (e) {
switch (e) {
case zn.ENTERING_XR:
i.onEnteringVRObservable.notifyObservers(i), i._interactionsEnabled || i.xr.pointerSelection.detach(), (i.xr.pointerSelection.displayLaserPointer = i._displayLaserPointer);
break;
case zn.EXITING_XR:
i.onExitingVRObservable.notifyObservers(i), i._scene.getEngine().resize();
break;
case zn.IN_XR:
i._hasEnteredVR = !0;
break;
case zn.NOT_IN_XR:
i._hasEnteredVR = !1;
}
});
}))
: i.completeVRInit(t, n);
})
: this.completeVRInit(t, n);
}
return (
Object.defineProperty(e.prototype, "onEnteringVR", {
get: function () {
return this.onEnteringVRObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onExitingVR", {
get: function () {
return this.onExitingVRObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onControllerMeshLoaded", {
get: function () {
return this.onControllerMeshLoadedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "teleportationTarget", {
get: function () {
return this._teleportationTarget;
},
set: function (e) {
e && ((e.name = "teleportationTarget"), (this._isDefaultTeleportationTarget = !1), (this._teleportationTarget = e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "gazeTrackerMesh", {
get: function () {
return this._cameraGazer._gazeTracker;
},
set: function (e) {
e &&
(this._cameraGazer._gazeTracker && this._cameraGazer._gazeTracker.dispose(),
this._leftController && this._leftController._gazeTracker && this._leftController._gazeTracker.dispose(),
this._rightController && this._rightController._gazeTracker && this._rightController._gazeTracker.dispose(),
(this._cameraGazer._gazeTracker = e),
this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(),
(this._cameraGazer._gazeTracker.isPickable = !1),
(this._cameraGazer._gazeTracker.isVisible = !1),
(this._cameraGazer._gazeTracker.name = "gazeTracker"),
this._leftController && (this._leftController._gazeTracker = this._cameraGazer._gazeTracker.clone("gazeTracker")),
this._rightController && (this._rightController._gazeTracker = this._cameraGazer._gazeTracker.clone("gazeTracker")));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "leftControllerGazeTrackerMesh", {
get: function () {
return this._leftController ? this._leftController._gazeTracker : null;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rightControllerGazeTrackerMesh", {
get: function () {
return this._rightController ? this._rightController._gazeTracker : null;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "displayGaze", {
get: function () {
return this._displayGaze;
},
set: function (e) {
(this._displayGaze = e),
e ||
((this._cameraGazer._gazeTracker.isVisible = !1), this._leftController && (this._leftController._gazeTracker.isVisible = !1), this._rightController && (this._rightController._gazeTracker.isVisible = !1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "displayLaserPointer", {
get: function () {
return this._displayLaserPointer;
},
set: function (e) {
(this._displayLaserPointer = e),
e
? (this._rightController && this._rightController._activatePointer(), this._leftController && this._leftController._activatePointer())
: (this._rightController && (this._rightController._deactivatePointer(), (this._rightController._gazeTracker.isVisible = !1)),
this._leftController && (this._leftController._deactivatePointer(), (this._leftController._gazeTracker.isVisible = !1)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "deviceOrientationCamera", {
get: function () {
return this._deviceOrientationCamera;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "currentVRCamera", {
get: function () {
return this._webVRready ? this._webVRCamera : this._scene.activeCamera;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "webVRCamera", {
get: function () {
return this._webVRCamera;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "vrDeviceOrientationCamera", {
get: function () {
return this._vrDeviceOrientationCamera;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "vrButton", {
get: function () {
return this._btnVR;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "_teleportationRequestInitiated", {
get: function () {
return (
this._cameraGazer._teleportationRequestInitiated ||
(null !== this._leftController && this._leftController._teleportationRequestInitiated) ||
(null !== this._rightController && this._rightController._teleportationRequestInitiated)
);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.completeVRInit = function (e, t) {
var n = this;
if (
((this.xrTestDone = !0),
t.createFallbackVRDeviceOrientationFreeCamera &&
(t.useMultiview && (t.vrDeviceOrientationCameraMetrics || (t.vrDeviceOrientationCameraMetrics = cn.GetDefault()), (t.vrDeviceOrientationCameraMetrics.multiviewEnabled = !0)),
(this._vrDeviceOrientationCamera = new Cn("VRDeviceOrientationVRHelper", this._position, this._scene, !0, t.vrDeviceOrientationCameraMetrics)),
(this._vrDeviceOrientationCamera.angularSensibility = Number.MAX_VALUE)),
(this._webVRCamera = new Sn("WebVRHelper", this._position, this._scene, t)),
this._webVRCamera.useStandingMatrix(),
(this._cameraGazer = new Xn(function () {
return n.currentVRCamera;
}, e)),
!this._useCustomVRButton)
) {
(this._btnVR = document.createElement("BUTTON")), (this._btnVR.className = "babylonVRicon"), (this._btnVR.id = "babylonVRiconbtn"), (this._btnVR.title = "Click to switch to VR");
var i =
".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(" +
(window.SVGSVGElement
? "data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A"
: "https://cdn.babylonjs.com/Assets/vrButton.png") +
"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }";
i += ".babylonVRicon.vrdisplaypresenting { display: none; }";
var r = document.createElement("style");
r.appendChild(document.createTextNode(i)), document.getElementsByTagName("head")[0].appendChild(r), this.moveButtonToBottomRight();
}
this._btnVR &&
this._btnVR.addEventListener("click", function () {
n.isInVRMode ? n._scene.getEngine().disableVR() : n.enterVR();
});
var o = this._scene.getEngine().getHostWindow();
o &&
(o.addEventListener("resize", this._onResize),
document.addEventListener("fullscreenchange", this._onFullscreenChange, !1),
document.addEventListener("mozfullscreenchange", this._onFullscreenChange, !1),
document.addEventListener("webkitfullscreenchange", this._onFullscreenChange, !1),
document.addEventListener("msfullscreenchange", this._onFullscreenChange, !1),
(document.onmsfullscreenchange = this._onFullscreenChange),
t.createFallbackVRDeviceOrientationFreeCamera
? this.displayVRButton()
: this._scene.getEngine().onVRDisplayChangedObservable.add(function (e) {
e.vrDisplay && n.displayVRButton();
}),
(this._onKeyDown = function (e) {
27 === e.keyCode && n.isInVRMode && n.exitVR();
}),
document.addEventListener("keydown", this._onKeyDown),
this._scene.onPrePointerObservable.add(
function () {
n._hasEnteredVR && n.exitVROnDoubleTap && (n.exitVR(), n._fullscreenVRpresenting && n._scene.getEngine().exitFullscreen());
},
ye.a.POINTERDOUBLETAP,
!1
),
(this._onVRDisplayChanged = function (e) {
return n.onVRDisplayChanged(e);
}),
(this._onVrDisplayPresentChange = function () {
return n.onVrDisplayPresentChange();
}),
(this._onVRRequestPresentStart = function () {
(n._webVRrequesting = !0), n.updateButtonVisibility();
}),
(this._onVRRequestPresentComplete = function () {
(n._webVRrequesting = !1), n.updateButtonVisibility();
}),
e.getEngine().onVRDisplayChangedObservable.add(this._onVRDisplayChanged),
e.getEngine().onVRRequestPresentStart.add(this._onVRRequestPresentStart),
e.getEngine().onVRRequestPresentComplete.add(this._onVRRequestPresentComplete),
o.addEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange),
e.onDisposeObservable.add(function () {
n.dispose();
}),
this._webVRCamera.onControllerMeshLoadedObservable.add(function (e) {
return n._onDefaultMeshLoaded(e);
}),
this._scene.gamepadManager.onGamepadConnectedObservable.add(this._onNewGamepadConnected),
this._scene.gamepadManager.onGamepadDisconnectedObservable.add(this._onNewGamepadDisconnected),
this.updateButtonVisibility(),
(this._circleEase = new Y()),
this._circleEase.setEasingMode(X.EASINGMODE_EASEINOUT),
(this._teleportationEasing = this._circleEase),
e.onPointerObservable.add(function (t) {
n._interactionsEnabled &&
e.activeCamera === n.vrDeviceOrientationCamera &&
"mouse" === t.event.pointerType &&
(t.type === ye.a.POINTERDOWN ? n._cameraGazer._selectionPointerDown() : t.type === ye.a.POINTERUP && n._cameraGazer._selectionPointerUp());
}),
this.webVROptions.floorMeshes && this.enableTeleportation({ floorMeshes: this.webVROptions.floorMeshes }));
}),
(e.prototype._onDefaultMeshLoaded = function (e) {
this._leftController && this._leftController.webVRController == e && e.mesh && this._leftController._setLaserPointerParent(e.mesh),
this._rightController && this._rightController.webVRController == e && e.mesh && this._rightController._setLaserPointerParent(e.mesh);
try {
this.onControllerMeshLoadedObservable.notifyObservers(e);
} catch (e) {
g.a.Warn("Error in your custom logic onControllerMeshLoaded: " + e);
}
}),
Object.defineProperty(e.prototype, "isInVRMode", {
get: function () {
return (this.xr && this.webVROptions.useXR && this.xr.baseExperience.state === zn.IN_XR) || this._webVRpresenting || this._fullscreenVRpresenting;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.onVrDisplayPresentChange = function () {
var e = this._scene.getEngine().getVRDevice();
if (e) {
var t = this._webVRpresenting;
(this._webVRpresenting = e.isPresenting), t && !this._webVRpresenting && this.exitVR();
} else g.a.Warn("Detected VRDisplayPresentChange on an unknown VRDisplay. Did you can enterVR on the vrExperienceHelper?");
this.updateButtonVisibility();
}),
(e.prototype.onVRDisplayChanged = function (e) {
(this._webVRsupported = e.vrSupported), (this._webVRready = !!e.vrDisplay), (this._webVRpresenting = e.vrDisplay && e.vrDisplay.isPresenting), this.updateButtonVisibility();
}),
(e.prototype.moveButtonToBottomRight = function () {
if (this._inputElement && !this._useCustomVRButton && this._btnVR) {
var e = this._inputElement.getBoundingClientRect();
(this._btnVR.style.top = e.top + e.height - 70 + "px"), (this._btnVR.style.left = e.left + e.width - 100 + "px");
}
}),
(e.prototype.displayVRButton = function () {
this._useCustomVRButton || this._btnVRDisplayed || !this._btnVR || (document.body.appendChild(this._btnVR), (this._btnVRDisplayed = !0));
}),
(e.prototype.updateButtonVisibility = function () {
this._btnVR &&
!this._useCustomVRButton &&
((this._btnVR.className = "babylonVRicon"),
this.isInVRMode
? (this._btnVR.className += " vrdisplaypresenting")
: (this._webVRready && (this._btnVR.className += " vrdisplayready"),
this._webVRsupported && (this._btnVR.className += " vrdisplaysupported"),
this._webVRrequesting && (this._btnVR.className += " vrdisplayrequesting")));
}),
(e.prototype.enterVR = function () {
var e = this;
if (this.xr) this.xr.baseExperience.enterXRAsync("immersive-vr", "local-floor", this.xr.renderTarget);
else {
if (this.onEnteringVRObservable)
try {
this.onEnteringVRObservable.notifyObservers(this);
} catch (e) {
g.a.Warn("Error in your custom logic onEnteringVR: " + e);
}
if (this._scene.activeCamera) {
if (
((this._position = this._scene.activeCamera.position.clone()),
this.vrDeviceOrientationCamera &&
((this.vrDeviceOrientationCamera.rotation = a.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles()),
(this.vrDeviceOrientationCamera.angularSensibility = 2e3)),
this.webVRCamera)
) {
var t = this.webVRCamera.deviceRotationQuaternion.toEulerAngles().y,
n = a.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles().y - t,
i = this.webVRCamera.rotationQuaternion.toEulerAngles().y;
this.webVRCamera.rotationQuaternion = a.b.FromEulerAngles(0, i + n, 0);
}
(this._existingCamera = this._scene.activeCamera),
this._existingCamera.angularSensibilityX &&
((this._cachedAngularSensibility.angularSensibilityX = this._existingCamera.angularSensibilityX), (this._existingCamera.angularSensibilityX = Number.MAX_VALUE)),
this._existingCamera.angularSensibilityY &&
((this._cachedAngularSensibility.angularSensibilityY = this._existingCamera.angularSensibilityY), (this._existingCamera.angularSensibilityY = Number.MAX_VALUE)),
this._existingCamera.angularSensibility && ((this._cachedAngularSensibility.angularSensibility = this._existingCamera.angularSensibility), (this._existingCamera.angularSensibility = Number.MAX_VALUE));
}
this._webVRrequesting ||
(this._webVRready
? this._webVRpresenting ||
(this._scene.getEngine().onVRRequestPresentComplete.addOnce(function (t) {
e.onAfterEnteringVRObservable.notifyObservers({ success: t });
}),
(this._webVRCamera.position = this._position),
(this._scene.activeCamera = this._webVRCamera))
: this._vrDeviceOrientationCamera &&
((this._vrDeviceOrientationCamera.position = this._position),
this._scene.activeCamera && (this._vrDeviceOrientationCamera.minZ = this._scene.activeCamera.minZ),
(this._scene.activeCamera = this._vrDeviceOrientationCamera),
this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen),
this.updateButtonVisibility(),
this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce(function () {
e.onAfterEnteringVRObservable.notifyObservers({ success: !0 });
})),
this._scene.activeCamera && this._inputElement && this._scene.activeCamera.attachControl(this._inputElement),
this._interactionsEnabled && this._scene.registerBeforeRender(this.beforeRender),
this._displayLaserPointer &&
[this._leftController, this._rightController].forEach(function (e) {
e && e._activatePointer();
}),
(this._hasEnteredVR = !0));
}
}),
(e.prototype.exitVR = function () {
if (this.xr) this.xr.baseExperience.exitXRAsync();
else if (this._hasEnteredVR) {
if (this.onExitingVRObservable)
try {
this.onExitingVRObservable.notifyObservers(this);
} catch (e) {
g.a.Warn("Error in your custom logic onExitingVR: " + e);
}
this._webVRpresenting && this._scene.getEngine().disableVR(),
this._scene.activeCamera && (this._position = this._scene.activeCamera.position.clone()),
this.vrDeviceOrientationCamera && (this.vrDeviceOrientationCamera.angularSensibility = Number.MAX_VALUE),
this._deviceOrientationCamera
? ((this._deviceOrientationCamera.position = this._position),
(this._scene.activeCamera = this._deviceOrientationCamera),
this._cachedAngularSensibility.angularSensibilityX &&
((this._deviceOrientationCamera.angularSensibilityX = this._cachedAngularSensibility.angularSensibilityX), (this._cachedAngularSensibility.angularSensibilityX = null)),
this._cachedAngularSensibility.angularSensibilityY &&
((this._deviceOrientationCamera.angularSensibilityY = this._cachedAngularSensibility.angularSensibilityY), (this._cachedAngularSensibility.angularSensibilityY = null)),
this._cachedAngularSensibility.angularSensibility &&
((this._deviceOrientationCamera.angularSensibility = this._cachedAngularSensibility.angularSensibility), (this._cachedAngularSensibility.angularSensibility = null)))
: this._existingCamera &&
((this._existingCamera.position = this._position),
(this._scene.activeCamera = this._existingCamera),
this._inputElement && this._scene.activeCamera.attachControl(this._inputElement),
this._cachedAngularSensibility.angularSensibilityX &&
((this._existingCamera.angularSensibilityX = this._cachedAngularSensibility.angularSensibilityX), (this._cachedAngularSensibility.angularSensibilityX = null)),
this._cachedAngularSensibility.angularSensibilityY &&
((this._existingCamera.angularSensibilityY = this._cachedAngularSensibility.angularSensibilityY), (this._cachedAngularSensibility.angularSensibilityY = null)),
this._cachedAngularSensibility.angularSensibility &&
((this._existingCamera.angularSensibility = this._cachedAngularSensibility.angularSensibility), (this._cachedAngularSensibility.angularSensibility = null))),
this.updateButtonVisibility(),
this._interactionsEnabled &&
(this._scene.unregisterBeforeRender(this.beforeRender),
(this._cameraGazer._gazeTracker.isVisible = !1),
this._leftController && (this._leftController._gazeTracker.isVisible = !1),
this._rightController && (this._rightController._gazeTracker.isVisible = !1)),
this._scene.getEngine().resize(),
[this._leftController, this._rightController].forEach(function (e) {
e && e._deactivatePointer();
}),
(this._hasEnteredVR = !1);
var e = this._scene.getEngine();
e._onVrDisplayPresentChange && e._onVrDisplayPresentChange();
}
}),
Object.defineProperty(e.prototype, "position", {
get: function () {
return this._position;
},
set: function (e) {
(this._position = e), this._scene.activeCamera && (this._scene.activeCamera.position = e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.enableInteractions = function () {
var e = this;
if (!this._interactionsEnabled) {
if (((this._interactionsRequested = !0), this.xr)) return void (this.xr.baseExperience.state === zn.IN_XR && this.xr.pointerSelection.attach());
this._leftController && this._enableInteractionOnController(this._leftController),
this._rightController && this._enableInteractionOnController(this._rightController),
(this.raySelectionPredicate = function (t) {
return t.isVisible && (t.isPickable || t.name === e._floorMeshName);
}),
(this.meshSelectionPredicate = function () {
return !0;
}),
(this._raySelectionPredicate = function (t) {
return (
!!(e._isTeleportationFloor(t) || (-1 === t.name.indexOf("gazeTracker") && -1 === t.name.indexOf("teleportationTarget") && -1 === t.name.indexOf("torusTeleportation"))) && e.raySelectionPredicate(t)
);
}),
(this._interactionsEnabled = !0);
}
}),
Object.defineProperty(e.prototype, "_noControllerIsActive", {
get: function () {
return !((this._leftController && this._leftController._activePointer) || (this._rightController && this._rightController._activePointer));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._isTeleportationFloor = function (e) {
for (var t = 0; t < this._floorMeshesCollection.length; t++) if (this._floorMeshesCollection[t].id === e.id) return !0;
return !(!this._floorMeshName || e.name !== this._floorMeshName);
}),
(e.prototype.addFloorMesh = function (e) {
this._floorMeshesCollection && (this._floorMeshesCollection.indexOf(e) > -1 || this._floorMeshesCollection.push(e));
}),
(e.prototype.removeFloorMesh = function (e) {
if (this._floorMeshesCollection) {
var t = this._floorMeshesCollection.indexOf(e);
-1 !== t && this._floorMeshesCollection.splice(t, 1);
}
}),
(e.prototype.enableTeleportation = function (e) {
var t = this;
if ((void 0 === e && (e = {}), !this._teleportationInitialized)) {
if (((this._teleportationRequested = !0), this.enableInteractions(), this.webVROptions.useXR && (e.floorMeshes || e.floorMeshName))) {
var n = e.floorMeshes || [];
if (!n.length) {
var i = this._scene.getMeshByName(e.floorMeshName);
i && n.push(i);
}
if (this.xr)
return (
n.forEach(function (e) {
t.xr.teleportation.addFloorMesh(e);
}),
void (this.xr.teleportation.attached || this.xr.teleportation.attach())
);
if (!this.xrTestDone) {
var r = function () {
t.xrTestDone && (t._scene.unregisterBeforeRender(r), t.xr ? t.xr.teleportation.attached || t.xr.teleportation.attach() : t.enableTeleportation(e));
};
return void this._scene.registerBeforeRender(r);
}
}
e.floorMeshName && (this._floorMeshName = e.floorMeshName),
e.floorMeshes && (this._floorMeshesCollection = e.floorMeshes),
e.teleportationMode && (this._teleportationMode = e.teleportationMode),
e.teleportationTime && e.teleportationTime > 0 && (this._teleportationTime = e.teleportationTime),
e.teleportationSpeed && e.teleportationSpeed > 0 && (this._teleportationSpeed = e.teleportationSpeed),
void 0 !== e.easingFunction && (this._teleportationEasing = e.easingFunction),
null != this._leftController && this._enableTeleportationOnController(this._leftController),
null != this._rightController && this._enableTeleportationOnController(this._rightController);
var o = new En.a();
(o.vignetteColor = new s.b(0, 0, 0, 0)),
(o.vignetteEnabled = !0),
(this._postProcessMove = new Dn("postProcessMove", 1, this._webVRCamera, void 0, void 0, void 0, void 0, o)),
this._webVRCamera.detachPostProcess(this._postProcessMove),
(this._teleportationInitialized = !0),
this._isDefaultTeleportationTarget && (this._createTeleportationCircles(), this._teleportationTarget.scaling.scaleInPlace(this._webVRCamera.deviceScaleFactor));
}
}),
(e.prototype._enableInteractionOnController = function (e) {
var t = this;
e.webVRController.mesh &&
((e._interactionsEnabled = !0),
this.isInVRMode && this._displayLaserPointer && e._activatePointer(),
this.webVROptions.laserToggle &&
e.webVRController.onMainButtonStateChangedObservable.add(function (n) {
t._displayLaserPointer && 1 === n.value && (e._activePointer ? e._deactivatePointer() : e._activatePointer(), t.displayGaze && (e._gazeTracker.isVisible = e._activePointer));
}),
e.webVRController.onTriggerStateChangedObservable.add(function (n) {
var i = e;
t._noControllerIsActive && (i = t._cameraGazer), i._pointerDownOnMeshAsked ? n.value < t._padSensibilityDown && i._selectionPointerUp() : n.value > t._padSensibilityUp && i._selectionPointerDown();
}));
}),
(e.prototype._checkTeleportWithRay = function (e, t) {
(this._teleportationRequestInitiated && !t._teleportationRequestInitiated) ||
(t._teleportationRequestInitiated
? Math.sqrt(e.y * e.y + e.x * e.x) < this._padSensibilityDown && (this._teleportActive && this.teleportCamera(this._haloCenter), (t._teleportationRequestInitiated = !1))
: e.y < -this._padSensibilityUp && t._dpadPressed && (t._activatePointer(), (t._teleportationRequestInitiated = !0)));
}),
(e.prototype._checkRotate = function (e, t) {
t._teleportationRequestInitiated ||
(t._rotationLeftAsked
? e.x > -this._padSensibilityDown && (t._rotationLeftAsked = !1)
: e.x < -this._padSensibilityUp && t._dpadPressed && ((t._rotationLeftAsked = !0), this._rotationAllowed && this._rotateCamera(!1)),
t._rotationRightAsked
? e.x < this._padSensibilityDown && (t._rotationRightAsked = !1)
: e.x > this._padSensibilityUp && t._dpadPressed && ((t._rotationRightAsked = !0), this._rotationAllowed && this._rotateCamera(!0)));
}),
(e.prototype._checkTeleportBackwards = function (e, t) {
if (!t._teleportationRequestInitiated)
if (e.y > this._padSensibilityUp && t._dpadPressed) {
if (!t._teleportationBackRequestInitiated) {
if (!this.currentVRCamera) return;
var n = a.b.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()),
i = this.currentVRCamera.position;
this.currentVRCamera.devicePosition && this.currentVRCamera.deviceRotationQuaternion && ((n = this.currentVRCamera.deviceRotationQuaternion), (i = this.currentVRCamera.devicePosition)),
n.toEulerAnglesToRef(this._workingVector),
(this._workingVector.z = 0),
(this._workingVector.x = 0),
a.b.RotationYawPitchRollToRef(this._workingVector.y, this._workingVector.x, this._workingVector.z, this._workingQuaternion),
this._workingQuaternion.toRotationMatrix(this._workingMatrix),
a.e.TransformCoordinatesToRef(this._teleportBackwardsVector, this._workingMatrix, this._workingVector);
var r = new Re(i, this._workingVector),
o = this._scene.pickWithRay(r, this._raySelectionPredicate);
o && o.pickedPoint && o.pickedMesh && this._isTeleportationFloor(o.pickedMesh) && o.distance < 5 && this.teleportCamera(o.pickedPoint), (t._teleportationBackRequestInitiated = !0);
}
} else t._teleportationBackRequestInitiated = !1;
}),
(e.prototype._enableTeleportationOnController = function (e) {
var t = this;
e.webVRController.mesh &&
(e._interactionsEnabled || this._enableInteractionOnController(e),
(e._interactionsEnabled = !0),
(e._teleportationEnabled = !0),
e.webVRController.controllerType === Mt.VIVE &&
((e._dpadPressed = !1),
e.webVRController.onPadStateChangedObservable.add(function (t) {
(e._dpadPressed = t.pressed), e._dpadPressed || ((e._rotationLeftAsked = !1), (e._rotationRightAsked = !1), (e._teleportationBackRequestInitiated = !1));
})),
e.webVRController.onPadValuesChangedObservable.add(function (n) {
t.teleportationEnabled && (t._checkTeleportBackwards(n, e), t._checkTeleportWithRay(n, e)), t._checkRotate(n, e);
}));
}),
(e.prototype._createTeleportationCircles = function () {
(this._teleportationTarget = Ee.a.CreateGround("teleportationTarget", 2, 2, 2, this._scene)), (this._teleportationTarget.isPickable = !1);
var e = new An.a("DynamicTexture", 512, this._scene, !0);
e.hasAlpha = !0;
var t = e.getContext();
t.beginPath(),
t.arc(256, 256, 200, 0, 2 * Math.PI, !1),
(t.fillStyle = this._teleportationFillColor),
t.fill(),
(t.lineWidth = 10),
(t.strokeStyle = this._teleportationBorderColor),
t.stroke(),
t.closePath(),
e.update();
var n = new Mn.a("TextPlaneMaterial", this._scene);
(n.diffuseTexture = e), (this._teleportationTarget.material = n);
var i = Ee.a.CreateTorus("torusTeleportation", 0.75, 0.1, 25, this._scene, !1);
(i.isPickable = !1), (i.parent = this._teleportationTarget);
var r = new R.a("animationInnerCircle", "position.y", 30, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CYCLE),
o = [];
o.push({ frame: 0, value: 0 }), o.push({ frame: 30, value: 0.4 }), o.push({ frame: 60, value: 0 }), r.setKeys(o);
var a = new ie();
a.setEasingMode(X.EASINGMODE_EASEINOUT), r.setEasingFunction(a), (i.animations = []), i.animations.push(r), this._scene.beginAnimation(i, 0, 60, !0), this._hideTeleportationTarget();
}),
(e.prototype._displayTeleportationTarget = function () {
(this._teleportActive = !0), this._teleportationInitialized && ((this._teleportationTarget.isVisible = !0), this._isDefaultTeleportationTarget && (this._teleportationTarget.getChildren()[0].isVisible = !0));
}),
(e.prototype._hideTeleportationTarget = function () {
(this._teleportActive = !1), this._teleportationInitialized && ((this._teleportationTarget.isVisible = !1), this._isDefaultTeleportationTarget && (this._teleportationTarget.getChildren()[0].isVisible = !1));
}),
(e.prototype._rotateCamera = function (e) {
var t = this;
if (this.currentVRCamera instanceof yt.a) {
e ? this._rotationAngle++ : this._rotationAngle--, (this.currentVRCamera.animations = []);
var n = a.b.FromRotationMatrix(a.a.RotationY((Math.PI / 4) * this._rotationAngle)),
i = new R.a("animationRotation", "rotationQuaternion", 90, R.a.ANIMATIONTYPE_QUATERNION, R.a.ANIMATIONLOOPMODE_CONSTANT),
r = [];
r.push({ frame: 0, value: this.currentVRCamera.rotationQuaternion }),
r.push({ frame: 6, value: n }),
i.setKeys(r),
i.setEasingFunction(this._circleEase),
this.currentVRCamera.animations.push(i),
(this._postProcessMove.animations = []);
var o = new R.a("animationPP", "vignetteWeight", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT),
s = [];
s.push({ frame: 0, value: 0 }), s.push({ frame: 3, value: 4 }), s.push({ frame: 6, value: 0 }), o.setKeys(s), o.setEasingFunction(this._circleEase), this._postProcessMove.animations.push(o);
var c = new R.a("animationPP2", "vignetteStretch", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT),
l = [];
l.push({ frame: 0, value: 0 }),
l.push({ frame: 3, value: 10 }),
l.push({ frame: 6, value: 0 }),
c.setKeys(l),
c.setEasingFunction(this._circleEase),
this._postProcessMove.animations.push(c),
(this._postProcessMove.imageProcessingConfiguration.vignetteWeight = 0),
(this._postProcessMove.imageProcessingConfiguration.vignetteStretch = 0),
(this._postProcessMove.samples = 4),
this._webVRCamera.attachPostProcess(this._postProcessMove),
this._scene.beginAnimation(this._postProcessMove, 0, 6, !1, 1, function () {
t._webVRCamera.detachPostProcess(t._postProcessMove);
}),
this._scene.beginAnimation(this.currentVRCamera, 0, 6, !1, 1);
}
}),
(e.prototype._moveTeleportationSelectorTo = function (e, t, n) {
if (e.pickedPoint) {
t._teleportationRequestInitiated && (this._displayTeleportationTarget(), this._haloCenter.copyFrom(e.pickedPoint), this._teleportationTarget.position.copyFrom(e.pickedPoint));
var i = this._convertNormalToDirectionOfRay(e.getNormal(!0, !1), n);
if (i) {
var r = a.e.Cross(Be.a.Y, i),
o = a.e.Cross(i, r);
a.e.RotationFromAxisToRef(o, i, r, this._teleportationTarget.rotation);
}
this._teleportationTarget.position.y += 0.1;
}
}),
(e.prototype.teleportCamera = function (t) {
var n = this;
if (this.currentVRCamera instanceof yt.a) {
this.webVRCamera.leftCamera
? (this._workingVector.copyFrom(this.webVRCamera.leftCamera.globalPosition), this._workingVector.subtractInPlace(this.webVRCamera.position), t.subtractToRef(this._workingVector, this._workingVector))
: this._workingVector.copyFrom(t),
this.isInVRMode ? (this._workingVector.y += this.webVRCamera.deviceDistanceToRoomGround() * this._webVRCamera.deviceScaleFactor) : (this._workingVector.y += this._defaultHeight),
this.onBeforeCameraTeleport.notifyObservers(this._workingVector);
var i, r;
if (this._teleportationMode == e.TELEPORTATIONMODE_CONSTANTSPEED) {
r = 90;
var o = a.e.Distance(this.currentVRCamera.position, this._workingVector);
i = this._teleportationSpeed / o;
} else (r = Math.round((90 * this._teleportationTime) / 1e3)), (i = 1);
this.currentVRCamera.animations = [];
var s = new R.a("animationCameraTeleportation", "position", 90, R.a.ANIMATIONTYPE_VECTOR3, R.a.ANIMATIONLOOPMODE_CONSTANT),
c = [
{ frame: 0, value: this.currentVRCamera.position },
{ frame: r, value: this._workingVector },
];
s.setKeys(c), s.setEasingFunction(this._teleportationEasing), this.currentVRCamera.animations.push(s), (this._postProcessMove.animations = []);
var l = Math.round(r / 2),
u = new R.a("animationPP", "vignetteWeight", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT),
h = [];
h.push({ frame: 0, value: 0 }), h.push({ frame: l, value: 8 }), h.push({ frame: r, value: 0 }), u.setKeys(h), this._postProcessMove.animations.push(u);
var d = new R.a("animationPP2", "vignetteStretch", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT),
p = [];
p.push({ frame: 0, value: 0 }),
p.push({ frame: l, value: 10 }),
p.push({ frame: r, value: 0 }),
d.setKeys(p),
this._postProcessMove.animations.push(d),
(this._postProcessMove.imageProcessingConfiguration.vignetteWeight = 0),
(this._postProcessMove.imageProcessingConfiguration.vignetteStretch = 0),
this._webVRCamera.attachPostProcess(this._postProcessMove),
this._scene.beginAnimation(this._postProcessMove, 0, r, !1, i, function () {
n._webVRCamera.detachPostProcess(n._postProcessMove);
}),
this._scene.beginAnimation(this.currentVRCamera, 0, r, !1, i, function () {
n.onAfterCameraTeleport.notifyObservers(n._workingVector);
}),
this._hideTeleportationTarget();
}
}),
(e.prototype._convertNormalToDirectionOfRay = function (e, t) {
e && Math.acos(a.e.Dot(e, t.direction)) < Math.PI / 2 && e.scaleInPlace(-1);
return e;
}),
(e.prototype._castRayAndSelectObject = function (e) {
if (this.currentVRCamera instanceof yt.a) {
var t = e._getForwardRay(this._rayLength),
n = this._scene.pickWithRay(t, this._raySelectionPredicate);
if ((n && (e._laserPointer && (n.originMesh = e._laserPointer.parent), this._scene.simulatePointerMove(n, { pointerId: e._id })), (e._currentHit = n), n && n.pickedPoint)) {
if (this._displayGaze) {
var i = 1;
(e._gazeTracker.isVisible = !0),
e._isActionableMesh && (i = 3),
this.updateGazeTrackerScale && ((e._gazeTracker.scaling.x = n.distance * i), (e._gazeTracker.scaling.y = n.distance * i), (e._gazeTracker.scaling.z = n.distance * i));
var r = this._convertNormalToDirectionOfRay(n.getNormal(), t);
if (r) {
var o = a.e.Cross(Be.a.Y, r),
s = a.e.Cross(r, o);
a.e.RotationFromAxisToRef(s, r, o, e._gazeTracker.rotation);
}
e._gazeTracker.position.copyFrom(n.pickedPoint),
e._gazeTracker.position.x < 0 ? (e._gazeTracker.position.x += 0.002) : (e._gazeTracker.position.x -= 0.002),
e._gazeTracker.position.y < 0 ? (e._gazeTracker.position.y += 0.002) : (e._gazeTracker.position.y -= 0.002),
e._gazeTracker.position.z < 0 ? (e._gazeTracker.position.z += 0.002) : (e._gazeTracker.position.z -= 0.002);
}
e._updatePointerDistance(n.distance);
} else e._updatePointerDistance(), (e._gazeTracker.isVisible = !1);
if (n && n.pickedMesh) {
if (this._teleportationInitialized && this._isTeleportationFloor(n.pickedMesh) && n.pickedPoint)
return (
e._currentMeshSelected && !this._isTeleportationFloor(e._currentMeshSelected) && this._notifySelectedMeshUnselected(e._currentMeshSelected),
(e._currentMeshSelected = null),
void (e._teleportationRequestInitiated && this._moveTeleportationSelectorTo(n, e, t))
);
if (n.pickedMesh !== e._currentMeshSelected)
if (this.meshSelectionPredicate(n.pickedMesh)) {
this.onNewMeshPicked.notifyObservers(n),
(e._currentMeshSelected = n.pickedMesh),
n.pickedMesh.isPickable && n.pickedMesh.actionManager
? (this.changeGazeColor(this._pickedGazeColor), this.changeLaserColor(this._pickedLaserColor), (e._isActionableMesh = !0))
: (this.changeGazeColor(this._gazeColor), this.changeLaserColor(this._laserColor), (e._isActionableMesh = !1));
try {
this.onNewMeshSelected.notifyObservers(n.pickedMesh);
var c = e;
c.webVRController && this.onMeshSelectedWithController.notifyObservers({ mesh: n.pickedMesh, controller: c.webVRController });
} catch (e) {
g.a.Warn("Error while raising onNewMeshSelected or onMeshSelectedWithController: " + e);
}
} else this._notifySelectedMeshUnselected(e._currentMeshSelected), (e._currentMeshSelected = null), this.changeGazeColor(this._gazeColor), this.changeLaserColor(this._laserColor);
} else this._notifySelectedMeshUnselected(e._currentMeshSelected), (e._currentMeshSelected = null), this.changeGazeColor(this._gazeColor), this.changeLaserColor(this._laserColor);
}
}),
(e.prototype._notifySelectedMeshUnselected = function (e) {
e && this.onSelectedMeshUnselected.notifyObservers(e);
}),
(e.prototype.setLaserColor = function (e, t) {
void 0 === t && (t = this._pickedLaserColor), (this._laserColor = e), (this._pickedLaserColor = t);
}),
(e.prototype.setLaserLightingState = function (e) {
void 0 === e && (e = !0), this._leftController && this._leftController._setLaserPointerLightingDisabled(!e), this._rightController && this._rightController._setLaserPointerLightingDisabled(!e);
}),
(e.prototype.setGazeColor = function (e, t) {
void 0 === t && (t = this._pickedGazeColor), (this._gazeColor = e), (this._pickedGazeColor = t);
}),
(e.prototype.changeLaserColor = function (e) {
this.updateControllerLaserColor && (this._leftController && this._leftController._setLaserPointerColor(e), this._rightController && this._rightController._setLaserPointerColor(e));
}),
(e.prototype.changeGazeColor = function (e) {
this.updateGazeTrackerColor &&
this._cameraGazer._gazeTracker.material &&
((this._cameraGazer._gazeTracker.material.emissiveColor = e),
this._leftController && (this._leftController._gazeTracker.material.emissiveColor = e),
this._rightController && (this._rightController._gazeTracker.material.emissiveColor = e));
}),
(e.prototype.dispose = function () {
this.isInVRMode && this.exitVR(),
this._postProcessMove && this._postProcessMove.dispose(),
this._webVRCamera && this._webVRCamera.dispose(),
this._vrDeviceOrientationCamera && this._vrDeviceOrientationCamera.dispose(),
!this._useCustomVRButton && this._btnVR && this._btnVR.parentNode && document.body.removeChild(this._btnVR),
this._deviceOrientationCamera && this._scene.activeCamera != this._deviceOrientationCamera && this._deviceOrientationCamera.dispose(),
this._cameraGazer && this._cameraGazer.dispose(),
this._leftController && this._leftController.dispose(),
this._rightController && this._rightController.dispose(),
this._teleportationTarget && this._teleportationTarget.dispose(),
this.xr && this.xr.dispose(),
(this._floorMeshesCollection = []),
document.removeEventListener("keydown", this._onKeyDown),
window.removeEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange),
window.removeEventListener("resize", this._onResize),
document.removeEventListener("fullscreenchange", this._onFullscreenChange),
document.removeEventListener("mozfullscreenchange", this._onFullscreenChange),
document.removeEventListener("webkitfullscreenchange", this._onFullscreenChange),
document.removeEventListener("msfullscreenchange", this._onFullscreenChange),
(document.onmsfullscreenchange = null),
this._scene.getEngine().onVRDisplayChangedObservable.removeCallback(this._onVRDisplayChanged),
this._scene.getEngine().onVRRequestPresentStart.removeCallback(this._onVRRequestPresentStart),
this._scene.getEngine().onVRRequestPresentComplete.removeCallback(this._onVRRequestPresentComplete),
window.removeEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange),
this._scene.gamepadManager.onGamepadConnectedObservable.removeCallback(this._onNewGamepadConnected),
this._scene.gamepadManager.onGamepadDisconnectedObservable.removeCallback(this._onNewGamepadDisconnected),
this._scene.unregisterBeforeRender(this.beforeRender);
}),
(e.prototype.getClassName = function () {
return "VRExperienceHelper";
}),
(e.TELEPORTATIONMODE_CONSTANTTIME = 0),
(e.TELEPORTATIONMODE_CONSTANTSPEED = 1),
e
);
})(),
Zn = n(85),
qn =
((Un = { root: 0, found: !1 }),
function (e, t, n, i) {
(Un.root = 0), (Un.found = !1);
var r = t * t - 4 * e * n;
if (r < 0) return Un;
var o = Math.sqrt(r),
a = (-t - o) / (2 * e),
s = (-t + o) / (2 * e);
if (a > s) {
var c = s;
(s = a), (a = c);
}
return a > 0 && a < i ? ((Un.root = a), (Un.found = !0), Un) : s > 0 && s < i ? ((Un.root = s), (Un.found = !0), Un) : Un;
}),
Qn = (function () {
function e() {
(this._collisionPoint = a.e.Zero()),
(this._planeIntersectionPoint = a.e.Zero()),
(this._tempVector = a.e.Zero()),
(this._tempVector2 = a.e.Zero()),
(this._tempVector3 = a.e.Zero()),
(this._tempVector4 = a.e.Zero()),
(this._edge = a.e.Zero()),
(this._baseToVertex = a.e.Zero()),
(this._destinationPoint = a.e.Zero()),
(this._slidePlaneNormal = a.e.Zero()),
(this._displacementVector = a.e.Zero()),
(this._radius = a.e.One()),
(this._retry = 0),
(this._basePointWorld = a.e.Zero()),
(this._velocityWorld = a.e.Zero()),
(this._normalizedVelocity = a.e.Zero()),
(this._collisionMask = -1);
}
return (
Object.defineProperty(e.prototype, "collisionMask", {
get: function () {
return this._collisionMask;
},
set: function (e) {
this._collisionMask = isNaN(e) ? -1 : e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "slidePlaneNormal", {
get: function () {
return this._slidePlaneNormal;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._initialize = function (e, t, n) {
(this._velocity = t),
a.e.NormalizeToRef(t, this._normalizedVelocity),
(this._basePoint = e),
e.multiplyToRef(this._radius, this._basePointWorld),
t.multiplyToRef(this._radius, this._velocityWorld),
(this._velocityWorldLength = this._velocityWorld.length()),
(this._epsilon = n),
(this.collisionFound = !1);
}),
(e.prototype._checkPointInTriangle = function (e, t, n, i, r) {
t.subtractToRef(e, this._tempVector), n.subtractToRef(e, this._tempVector2), a.e.CrossToRef(this._tempVector, this._tempVector2, this._tempVector4);
var o = a.e.Dot(this._tempVector4, r);
return (
!(o < 0) &&
(i.subtractToRef(e, this._tempVector3),
a.e.CrossToRef(this._tempVector2, this._tempVector3, this._tempVector4),
!((o = a.e.Dot(this._tempVector4, r)) < 0) && (a.e.CrossToRef(this._tempVector3, this._tempVector, this._tempVector4), (o = a.e.Dot(this._tempVector4, r)) >= 0))
);
}),
(e.prototype._canDoCollision = function (e, t, n, i) {
var r = a.e.Distance(this._basePointWorld, e),
o = Math.max(this._radius.x, this._radius.y, this._radius.z);
return (
!(r > this._velocityWorldLength + o + t) &&
!!(function (e, t, n, i) {
return !(e.x > n.x + i) && !(n.x - i > t.x) && !(e.y > n.y + i) && !(n.y - i > t.y) && !(e.z > n.z + i) && !(n.z - i > t.z);
})(n, i, this._basePointWorld, this._velocityWorldLength + o)
);
}),
(e.prototype._testTriangle = function (e, t, n, i, r, o, s) {
var c,
l = !1;
t || (t = []), t[e] || ((t[e] = new Zn.a(0, 0, 0, 0)), t[e].copyFromPoints(n, i, r));
var u = t[e];
if (o || u.isFrontFacingTo(this._normalizedVelocity, 0)) {
var h = u.signedDistanceTo(this._basePoint),
d = a.e.Dot(u.normal, this._velocity);
if (0 == d) {
if (Math.abs(h) >= 1) return;
(l = !0), (c = 0);
} else {
var p = (1 - h) / d;
if ((c = (-1 - h) / d) > p) {
var f = p;
(p = c), (c = f);
}
if (c > 1 || p < 0) return;
c < 0 && (c = 0), c > 1 && (c = 1);
}
this._collisionPoint.copyFromFloats(0, 0, 0);
var m = !1,
g = 1;
if (
(l ||
(this._basePoint.subtractToRef(u.normal, this._planeIntersectionPoint),
this._velocity.scaleToRef(c, this._tempVector),
this._planeIntersectionPoint.addInPlace(this._tempVector),
this._checkPointInTriangle(this._planeIntersectionPoint, n, i, r, u.normal) && ((m = !0), (g = c), this._collisionPoint.copyFrom(this._planeIntersectionPoint))),
!m)
) {
var b = this._velocity.lengthSquared(),
_ = b;
this._basePoint.subtractToRef(n, this._tempVector);
var v = 2 * a.e.Dot(this._velocity, this._tempVector),
y = this._tempVector.lengthSquared() - 1,
C = qn(_, v, y, g);
C.found && ((g = C.root), (m = !0), this._collisionPoint.copyFrom(n)),
this._basePoint.subtractToRef(i, this._tempVector),
(v = 2 * a.e.Dot(this._velocity, this._tempVector)),
(y = this._tempVector.lengthSquared() - 1),
(C = qn(_, v, y, g)).found && ((g = C.root), (m = !0), this._collisionPoint.copyFrom(i)),
this._basePoint.subtractToRef(r, this._tempVector),
(v = 2 * a.e.Dot(this._velocity, this._tempVector)),
(y = this._tempVector.lengthSquared() - 1),
(C = qn(_, v, y, g)).found && ((g = C.root), (m = !0), this._collisionPoint.copyFrom(r)),
i.subtractToRef(n, this._edge),
n.subtractToRef(this._basePoint, this._baseToVertex);
var P = this._edge.lengthSquared(),
x = a.e.Dot(this._edge, this._velocity),
T = a.e.Dot(this._edge, this._baseToVertex);
if (((_ = P * -b + x * x), (v = P * (2 * a.e.Dot(this._velocity, this._baseToVertex)) - 2 * x * T), (y = P * (1 - this._baseToVertex.lengthSquared()) + T * T), (C = qn(_, v, y, g)).found)) {
var S = (x * C.root - T) / P;
S >= 0 && S <= 1 && ((g = C.root), (m = !0), this._edge.scaleInPlace(S), n.addToRef(this._edge, this._collisionPoint));
}
r.subtractToRef(i, this._edge),
i.subtractToRef(this._basePoint, this._baseToVertex),
(P = this._edge.lengthSquared()),
(x = a.e.Dot(this._edge, this._velocity)),
(T = a.e.Dot(this._edge, this._baseToVertex)),
(_ = P * -b + x * x),
(v = P * (2 * a.e.Dot(this._velocity, this._baseToVertex)) - 2 * x * T),
(y = P * (1 - this._baseToVertex.lengthSquared()) + T * T),
(C = qn(_, v, y, g)).found && (S = (x * C.root - T) / P) >= 0 && S <= 1 && ((g = C.root), (m = !0), this._edge.scaleInPlace(S), i.addToRef(this._edge, this._collisionPoint)),
n.subtractToRef(r, this._edge),
r.subtractToRef(this._basePoint, this._baseToVertex),
(P = this._edge.lengthSquared()),
(x = a.e.Dot(this._edge, this._velocity)),
(T = a.e.Dot(this._edge, this._baseToVertex)),
(_ = P * -b + x * x),
(v = P * (2 * a.e.Dot(this._velocity, this._baseToVertex)) - 2 * x * T),
(y = P * (1 - this._baseToVertex.lengthSquared()) + T * T),
(C = qn(_, v, y, g)).found && (S = (x * C.root - T) / P) >= 0 && S <= 1 && ((g = C.root), (m = !0), this._edge.scaleInPlace(S), r.addToRef(this._edge, this._collisionPoint));
}
if (m) {
var O = g * this._velocity.length();
(!this.collisionFound || O < this._nearestDistance) &&
(this.intersectionPoint ? this.intersectionPoint.copyFrom(this._collisionPoint) : (this.intersectionPoint = this._collisionPoint.clone()),
(this._nearestDistance = O),
(this.collisionFound = !0),
(this.collidedMesh = s));
}
}
}),
(e.prototype._collide = function (e, t, n, i, r, o, a, s) {
for (var c = i; c < r; c += 3) {
var l = t[n[c] - o],
u = t[n[c + 1] - o],
h = t[n[c + 2] - o];
this._testTriangle(c, e, h, u, l, a, s);
}
}),
(e.prototype._getResponse = function (e, t) {
e.addToRef(t, this._destinationPoint),
t.scaleInPlace(this._nearestDistance / t.length()),
this._basePoint.addToRef(t, e),
e.subtractToRef(this.intersectionPoint, this._slidePlaneNormal),
this._slidePlaneNormal.normalize(),
this._slidePlaneNormal.scaleToRef(this._epsilon, this._displacementVector),
e.addInPlace(this._displacementVector),
this.intersectionPoint.addInPlace(this._displacementVector),
this._slidePlaneNormal.scaleInPlace(Zn.a.SignedDistanceToPlaneFromPositionAndNormal(this.intersectionPoint, this._slidePlaneNormal, this._destinationPoint)),
this._destinationPoint.subtractInPlace(this._slidePlaneNormal),
this._destinationPoint.subtractToRef(this.intersectionPoint, t);
}),
e
);
})(),
Jn = (function () {
function e() {
(this._scaledPosition = a.e.Zero()), (this._scaledVelocity = a.e.Zero()), (this._finalPosition = a.e.Zero());
}
return (
(e.prototype.getNewPosition = function (e, t, n, i, r, o, a) {
e.divideToRef(n._radius, this._scaledPosition),
t.divideToRef(n._radius, this._scaledVelocity),
(n.collidedMesh = null),
(n._retry = 0),
(n._initialVelocity = this._scaledVelocity),
(n._initialPosition = this._scaledPosition),
this._collideWithWorld(this._scaledPosition, this._scaledVelocity, n, i, this._finalPosition, r),
this._finalPosition.multiplyInPlace(n._radius),
o(a, this._finalPosition, n.collidedMesh);
}),
(e.prototype.createCollider = function () {
return new Qn();
}),
(e.prototype.init = function (e) {
this._scene = e;
}),
(e.prototype._collideWithWorld = function (e, t, n, i, r, o) {
void 0 === o && (o = null);
var a = 10 * ue.a.CollisionsEpsilon;
if (n._retry >= i) r.copyFrom(e);
else {
var s = o ? o.collisionMask : n.collisionMask;
n._initialize(e, t, a);
for (var c = 0; c < this._scene.meshes.length; c++) {
var l = this._scene.meshes[c];
l.isEnabled() && l.checkCollisions && l.subMeshes && l !== o && 0 != (s & l.collisionGroup) && l._checkCollision(n);
}
n.collisionFound ? ((0 === t.x && 0 === t.y && 0 === t.z) || n._getResponse(e, t), t.length() <= a ? r.copyFrom(e) : (n._retry++, this._collideWithWorld(e, t, n, i, r, o))) : e.addToRef(t, r);
}
}),
e
);
})();
ge.a.CollisionCoordinatorFactory = function () {
return new Jn();
};
var $n = n(188),
ei = n(148),
ti = n(63),
ni = n(152),
ii = n(47),
ri = (function () {
function e(e, t, n, i, r, o) {
(this.entries = new Array()),
(this._boundingVectors = new Array()),
(this._capacity = n),
(this._depth = i),
(this._maxDepth = r),
(this._creationFunc = o),
(this._minPoint = e),
(this._maxPoint = t),
this._boundingVectors.push(e.clone()),
this._boundingVectors.push(t.clone()),
this._boundingVectors.push(e.clone()),
(this._boundingVectors[2].x = t.x),
this._boundingVectors.push(e.clone()),
(this._boundingVectors[3].y = t.y),
this._boundingVectors.push(e.clone()),
(this._boundingVectors[4].z = t.z),
this._boundingVectors.push(t.clone()),
(this._boundingVectors[5].z = e.z),
this._boundingVectors.push(t.clone()),
(this._boundingVectors[6].x = e.x),
this._boundingVectors.push(t.clone()),
(this._boundingVectors[7].y = e.y);
}
return (
Object.defineProperty(e.prototype, "capacity", {
get: function () {
return this._capacity;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "minPoint", {
get: function () {
return this._minPoint;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "maxPoint", {
get: function () {
return this._maxPoint;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.addEntry = function (e) {
if (this.blocks)
for (var t = 0; t < this.blocks.length; t++) {
this.blocks[t].addEntry(e);
}
else this._creationFunc(e, this), this.entries.length > this.capacity && this._depth < this._maxDepth && this.createInnerBlocks();
}),
(e.prototype.removeEntry = function (e) {
if (this.blocks)
for (var t = 0; t < this.blocks.length; t++) {
this.blocks[t].removeEntry(e);
}
else {
var n = this.entries.indexOf(e);
n > -1 && this.entries.splice(n, 1);
}
}),
(e.prototype.addEntries = function (e) {
for (var t = 0; t < e.length; t++) {
var n = e[t];
this.addEntry(n);
}
}),
(e.prototype.select = function (e, t, n) {
if (ei.a.IsInFrustum(this._boundingVectors, e)) {
if (this.blocks) {
for (var i = 0; i < this.blocks.length; i++) {
this.blocks[i].select(e, t, n);
}
return;
}
n ? t.concat(this.entries) : t.concatWithNoDuplicate(this.entries);
}
}),
(e.prototype.intersects = function (e, t, n, i) {
if (ei.a.IntersectsSphere(this._minPoint, this._maxPoint, e, t)) {
if (this.blocks) {
for (var r = 0; r < this.blocks.length; r++) {
this.blocks[r].intersects(e, t, n, i);
}
return;
}
i ? n.concat(this.entries) : n.concatWithNoDuplicate(this.entries);
}
}),
(e.prototype.intersectsRay = function (e, t) {
if (e.intersectsBoxMinMax(this._minPoint, this._maxPoint)) {
if (this.blocks) {
for (var n = 0; n < this.blocks.length; n++) {
this.blocks[n].intersectsRay(e, t);
}
return;
}
t.concatWithNoDuplicate(this.entries);
}
}),
(e.prototype.createInnerBlocks = function () {
e._CreateBlocks(this._minPoint, this._maxPoint, this.entries, this._capacity, this._depth, this._maxDepth, this, this._creationFunc);
}),
(e._CreateBlocks = function (t, n, i, r, o, s, c, l) {
c.blocks = new Array();
for (var u = new a.e((n.x - t.x) / 2, (n.y - t.y) / 2, (n.z - t.z) / 2), h = 0; h < 2; h++)
for (var d = 0; d < 2; d++)
for (var p = 0; p < 2; p++) {
var f = new e(t.add(u.multiplyByFloats(h, d, p)), t.add(u.multiplyByFloats(h + 1, d + 1, p + 1)), r, o + 1, s, l);
f.addEntries(i), c.blocks.push(f);
}
}),
e
);
})(),
oi = (function () {
function e(e, t, n) {
void 0 === n && (n = 2), (this.maxDepth = n), (this.dynamicContent = new Array()), (this._maxBlockCapacity = t || 64), (this._selectionContent = new ii.b(1024)), (this._creationFunc = e);
}
return (
(e.prototype.update = function (e, t, n) {
ri._CreateBlocks(e, t, n, this._maxBlockCapacity, 0, this.maxDepth, this, this._creationFunc);
}),
(e.prototype.addMesh = function (e) {
for (var t = 0; t < this.blocks.length; t++) {
this.blocks[t].addEntry(e);
}
}),
(e.prototype.removeMesh = function (e) {
for (var t = 0; t < this.blocks.length; t++) {
this.blocks[t].removeEntry(e);
}
}),
(e.prototype.select = function (e, t) {
this._selectionContent.reset();
for (var n = 0; n < this.blocks.length; n++) {
this.blocks[n].select(e, this._selectionContent, t);
}
return t ? this._selectionContent.concat(this.dynamicContent) : this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent;
}),
(e.prototype.intersects = function (e, t, n) {
this._selectionContent.reset();
for (var i = 0; i < this.blocks.length; i++) {
this.blocks[i].intersects(e, t, this._selectionContent, n);
}
return n ? this._selectionContent.concat(this.dynamicContent) : this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent;
}),
(e.prototype.intersectsRay = function (e) {
this._selectionContent.reset();
for (var t = 0; t < this.blocks.length; t++) {
this.blocks[t].intersectsRay(e, this._selectionContent);
}
return this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent;
}),
(e.CreationFuncForMeshes = function (e, t) {
var n = e.getBoundingInfo();
!e.isBlocked && n.boundingBox.intersectsMinMax(t.minPoint, t.maxPoint) && t.entries.push(e);
}),
(e.CreationFuncForSubMeshes = function (e, t) {
e.getBoundingInfo().boundingBox.intersectsMinMax(t.minPoint, t.maxPoint) && t.entries.push(e);
}),
e
);
})();
(ge.a.prototype.createOrUpdateSelectionOctree = function (e, t) {
void 0 === e && (e = 64), void 0 === t && (t = 2);
var n = this._getComponent(me.a.NAME_OCTREE);
n || ((n = new ai(this)), this._addComponent(n)), this._selectionOctree || (this._selectionOctree = new oi(oi.CreationFuncForMeshes, e, t));
var i = this.getWorldExtends();
return this._selectionOctree.update(i.min, i.max, this.meshes), this._selectionOctree;
}),
Object.defineProperty(ge.a.prototype, "selectionOctree", {
get: function () {
return this._selectionOctree;
},
enumerable: !0,
configurable: !0,
}),
(ke.a.prototype.createOrUpdateSubmeshesOctree = function (e, t) {
void 0 === e && (e = 64), void 0 === t && (t = 2);
var n = this.getScene(),
i = n._getComponent(me.a.NAME_OCTREE);
i || ((i = new ai(n)), n._addComponent(i)), this._submeshesOctree || (this._submeshesOctree = new oi(oi.CreationFuncForSubMeshes, e, t)), this.computeWorldMatrix(!0);
var r = this.getBoundingInfo().boundingBox;
return this._submeshesOctree.update(r.minimumWorld, r.maximumWorld, this.subMeshes), this._submeshesOctree;
});
var ai = (function () {
function e(e) {
(this.name = me.a.NAME_OCTREE),
(this.checksIsEnabled = !0),
(this._tempRay = new Re(a.e.Zero(), new a.e(1, 1, 1))),
(this.scene = e),
(this.scene.getActiveMeshCandidates = this.getActiveMeshCandidates.bind(this)),
(this.scene.getActiveSubMeshCandidates = this.getActiveSubMeshCandidates.bind(this)),
(this.scene.getCollidingSubMeshCandidates = this.getCollidingSubMeshCandidates.bind(this)),
(this.scene.getIntersectingSubMeshCandidates = this.getIntersectingSubMeshCandidates.bind(this));
}
return (
(e.prototype.register = function () {
var e = this;
this.scene.onMeshRemovedObservable.add(function (t) {
var n = e.scene.selectionOctree;
if (null != n) {
var i = n.dynamicContent.indexOf(t);
-1 !== i && n.dynamicContent.splice(i, 1);
}
}),
this.scene.onMeshImportedObservable.add(function (t) {
var n = e.scene.selectionOctree;
null != n && n.addMesh(t);
});
}),
(e.prototype.getActiveMeshCandidates = function () {
return this.scene._selectionOctree ? this.scene._selectionOctree.select(this.scene.frustumPlanes) : this.scene._getDefaultMeshCandidates();
}),
(e.prototype.getActiveSubMeshCandidates = function (e) {
return e._submeshesOctree && e.useOctreeForRenderingSelection ? e._submeshesOctree.select(this.scene.frustumPlanes) : this.scene._getDefaultSubMeshCandidates(e);
}),
(e.prototype.getIntersectingSubMeshCandidates = function (e, t) {
return e._submeshesOctree && e.useOctreeForPicking ? (Re.TransformToRef(t, e.getWorldMatrix(), this._tempRay), e._submeshesOctree.intersectsRay(this._tempRay)) : this.scene._getDefaultSubMeshCandidates(e);
}),
(e.prototype.getCollidingSubMeshCandidates = function (e, t) {
if (e._submeshesOctree && e.useOctreeForCollisions) {
var n = t._velocityWorldLength + Math.max(t._radius.x, t._radius.y, t._radius.z);
return e._submeshesOctree.intersects(t._basePointWorld, n);
}
return this.scene._getDefaultSubMeshCandidates(e);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {}),
e
);
})(),
si = n(39),
ci = n(55),
li = (function () {
function e(e) {
var t = this;
void 0 === e && (e = ci.a.DefaultUtilityLayer),
(this.gizmoLayer = e),
(this._attachedMesh = null),
(this.scaleRatio = 1),
(this._customMeshSet = !1),
(this.updateGizmoRotationToMatchAttachedMesh = !0),
(this.updateGizmoPositionToMatchAttachedMesh = !0),
(this.updateScale = !0),
(this._interactionsEnabled = !0),
(this._tempVector = new a.e()),
(this._rootMesh = new Ee.a("gizmoRootNode", e.utilityLayerScene)),
(this._rootMesh.rotationQuaternion = a.b.Identity()),
(this._beforeRenderObserver = this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.add(function () {
t._update();
}));
}
return (
Object.defineProperty(e.prototype, "attachedMesh", {
get: function () {
return this._attachedMesh;
},
set: function (e) {
(this._attachedMesh = e), this._rootMesh.setEnabled(!!e), this._attachedMeshChanged(e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setCustomMesh = function (e) {
if (e.getScene() != this.gizmoLayer.utilityLayerScene) throw "When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)";
this._rootMesh.getChildMeshes().forEach(function (e) {
e.dispose();
}),
(e.parent = this._rootMesh),
(this._customMeshSet = !0);
}),
(e.prototype._attachedMeshChanged = function (e) {}),
(e.prototype._update = function () {
if (this.attachedMesh) {
var e = this.attachedMesh._effectiveMesh || this.attachedMesh;
if (
(this.updateGizmoPositionToMatchAttachedMesh && this._rootMesh.position.copyFrom(e.absolutePosition),
this.updateGizmoRotationToMatchAttachedMesh ? e.getWorldMatrix().decompose(void 0, this._rootMesh.rotationQuaternion) : this._rootMesh.rotationQuaternion.set(0, 0, 0, 1),
this.updateScale)
) {
var t = this.gizmoLayer.utilityLayerScene.activeCamera,
n = t.globalPosition;
t.devicePosition && (n = t.devicePosition), this._rootMesh.position.subtractToRef(n, this._tempVector);
var i = this._tempVector.length() * this.scaleRatio;
this._rootMesh.scaling.set(i, i, i), e._getWorldMatrixDeterminant() < 0 && (this._rootMesh.scaling.y *= -1);
} else this._rootMesh.scaling.setAll(this.scaleRatio);
}
}),
(e.prototype.dispose = function () {
this._rootMesh.dispose(), this._beforeRenderObserver && this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.remove(this._beforeRenderObserver);
}),
e
);
})(),
ui = (function (e) {
function t(n, i, r, c) {
void 0 === i && (i = s.a.Gray()), void 0 === r && (r = ci.a.DefaultUtilityLayer), void 0 === c && (c = null);
var l = e.call(this, r) || this;
(l._pointerObserver = null),
(l.snapDistance = 0),
(l.onSnapObservable = new o.c()),
(l._isEnabled = !0),
(l._parent = null),
(l._parent = c),
(l._coloredMaterial = new Mn.a("", r.utilityLayerScene)),
(l._coloredMaterial.diffuseColor = i),
(l._coloredMaterial.specularColor = i.subtract(new s.a(0.1, 0.1, 0.1))),
(l._hoverMaterial = new Mn.a("", r.utilityLayerScene)),
(l._hoverMaterial.diffuseColor = i.add(new s.a(0.3, 0.3, 0.3))),
(l._arrow = t._CreateArrow(r.utilityLayerScene, l._coloredMaterial)),
l._arrow.lookAt(l._rootMesh.position.add(n)),
l._arrow.scaling.scaleInPlace(1 / 3),
(l._arrow.parent = l._rootMesh);
var u = 0,
h = new a.e(),
d = { snapDistance: 0 };
(l.dragBehavior = new Fe({ dragAxis: n })), (l.dragBehavior.moveAttached = !1), l._rootMesh.addBehavior(l.dragBehavior);
var p = new a.e(),
f = new a.a();
l.dragBehavior.onDragObservable.add(function (e) {
if (l.attachedMesh)
if (
(l.attachedMesh.parent ? (l.attachedMesh.parent.computeWorldMatrix().invertToRef(f), f.setTranslationFromFloats(0, 0, 0), a.e.TransformCoordinatesToRef(e.delta, f, p)) : p.copyFrom(e.delta),
0 == l.snapDistance)
)
l.attachedMesh.position.addInPlace(p);
else if (((u += e.dragDistance), Math.abs(u) > l.snapDistance)) {
var t = Math.floor(Math.abs(u) / l.snapDistance);
(u %= l.snapDistance), p.normalizeToRef(h), h.scaleInPlace(l.snapDistance * t), l.attachedMesh.position.addInPlace(h), (d.snapDistance = l.snapDistance * t), l.onSnapObservable.notifyObservers(d);
}
}),
(l._pointerObserver = r.utilityLayerScene.onPointerObservable.add(function (e) {
if (!l._customMeshSet) {
var t = e.pickInfo && -1 != l._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? l._hoverMaterial : l._coloredMaterial;
l._rootMesh.getChildMeshes().forEach(function (e) {
(e.material = t), e.color && (e.color = t.diffuseColor);
});
}
}));
var m = r._getSharedGizmoLight();
return (m.includedOnlyMeshes = m.includedOnlyMeshes.concat(l._rootMesh.getChildMeshes(!1))), l;
}
return (
Object(h.d)(t, e),
(t._CreateArrow = function (e, t) {
var n = new si.a("arrow", e),
i = jn.CreateCylinder("cylinder", { diameterTop: 0, height: 0.075, diameterBottom: 0.0375, tessellation: 96 }, e),
r = jn.CreateCylinder("cylinder", { diameterTop: 0.005, height: 0.275, diameterBottom: 0.005, tessellation: 96 }, e);
return (r.material = t), (i.parent = n), (r.parent = n), (i.material = t), (i.rotation.x = Math.PI / 2), (i.position.z += 0.3), (r.position.z += 0.1375), (r.rotation.x = Math.PI / 2), n;
}),
(t._CreateArrowInstance = function (e, t) {
for (var n = new si.a("arrow", e), i = 0, r = t.getChildMeshes(); i < r.length; i++) {
var o = r[i];
o.createInstance(o.name).parent = n;
}
return n;
}),
(t.prototype._attachedMeshChanged = function (e) {
this.dragBehavior && (this.dragBehavior.enabled = !!e);
}),
Object.defineProperty(t.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
(this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
this.onSnapObservable.clear(),
this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),
this.dragBehavior.detach(),
this._arrow && this._arrow.dispose(),
[this._coloredMaterial, this._hoverMaterial].forEach(function (e) {
e && e.dispose();
}),
e.prototype.dispose.call(this);
}),
t
);
})(li),
hi = (function () {
function e(t, n, i, r, o, c) {
if ((void 0 === n && (n = 1), void 0 === i && (i = 2), (this._scaleLinesFactor = 4), (this._instanced = !1), (this.scaleLines = 1), (this.scaleLines = n), !r)) {
var l = new Mn.a("", t);
(l.disableLighting = !0), (l.emissiveColor = s.a.Red().scale(0.5)), (r = ui._CreateArrow(t, l));
}
if (!o) {
var u = new Mn.a("", t);
(u.disableLighting = !0), (u.emissiveColor = s.a.Green().scale(0.5)), (o = ui._CreateArrow(t, u));
}
if (!c) {
var h = new Mn.a("", t);
(h.disableLighting = !0), (h.emissiveColor = s.a.Blue().scale(0.5)), (c = ui._CreateArrow(t, h));
}
(this._xAxis = r),
this._xAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor),
(this._yAxis = o),
this._yAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor),
(this._zAxis = c),
this._zAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor),
null != i && (e._SetRenderingGroupId(this._xAxis, i), e._SetRenderingGroupId(this._yAxis, i), e._SetRenderingGroupId(this._zAxis, i)),
(this.scene = t),
this.update(new a.e(), a.e.Right(), a.e.Up(), a.e.Forward());
}
return (
Object.defineProperty(e.prototype, "xAxis", {
get: function () {
return this._xAxis;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "yAxis", {
get: function () {
return this._yAxis;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "zAxis", {
get: function () {
return this._zAxis;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.update = function (e, t, n, i) {
this._xAxis.position.copyFrom(e),
this._xAxis.setDirection(t),
this._xAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor),
this._yAxis.position.copyFrom(e),
this._yAxis.setDirection(n),
this._yAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor),
this._zAxis.position.copyFrom(e),
this._zAxis.setDirection(i),
this._zAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor);
}),
(e.prototype.createInstance = function () {
var t = ui._CreateArrowInstance(this.scene, this._xAxis),
n = ui._CreateArrowInstance(this.scene, this._yAxis),
i = ui._CreateArrowInstance(this.scene, this._zAxis),
r = new e(this.scene, this.scaleLines, null, t, n, i);
return (r._instanced = !0), r;
}),
(e.prototype.dispose = function () {
this._xAxis && (this._xAxis.dispose(!1, !this._instanced), delete this._xAxis),
this._yAxis && (this._yAxis.dispose(!1, !this._instanced), delete this._yAxis),
this._zAxis && (this._zAxis.dispose(!1, !this._instanced), delete this._zAxis),
delete this.scene;
}),
(e._SetRenderingGroupId = function (e, t) {
e.getChildMeshes().forEach(function (e) {
e.renderingGroupId = t;
});
}),
e
);
})(),
di = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = 1);
var o = e.call(this, t, r) || this;
return (o.pos = a.e.Zero()), (o.xaxis = a.e.Zero()), (o.yaxis = a.e.Zero()), (o.zaxis = a.e.Zero()), (o.mesh = i), (o.bone = n), o;
}
return (
Object(h.d)(t, e),
(t.prototype.update = function () {
if (this.mesh && this.bone) {
var t = this.bone;
t._markAsDirtyAndCompose(),
t.getAbsolutePositionToRef(this.mesh, this.pos),
t.getDirectionToRef(Be.a.X, this.mesh, this.xaxis),
t.getDirectionToRef(Be.a.Y, this.mesh, this.yaxis),
t.getDirectionToRef(Be.a.Z, this.mesh, this.zaxis),
e.prototype.update.call(this, this.pos, this.xaxis, this.yaxis, this.zaxis);
}
}),
(t.prototype.dispose = function () {
this.mesh && ((this.mesh = null), (this.bone = null), e.prototype.dispose.call(this));
}),
t
);
})(hi),
pi = n(211),
fi = n(84);
(Rn.a.CreateSphere = function (e) {
for (
var t = e.segments || 32,
n = e.diameterX || e.diameter || 1,
i = e.diameterY || e.diameter || 1,
r = e.diameterZ || e.diameter || 1,
o = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1,
s = e.slice && e.slice <= 0 ? 1 : e.slice || 1,
c = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE,
l = new a.e(n / 2, i / 2, r / 2),
u = 2 + t,
h = 2 * u,
d = [],
p = [],
f = [],
m = [],
g = 0;
g <= u;
g++
) {
for (var b = g / u, _ = b * Math.PI * s, v = 0; v <= h; v++) {
var y = v / h,
C = y * Math.PI * 2 * o,
P = a.a.RotationZ(-_),
x = a.a.RotationY(C),
T = a.e.TransformCoordinates(a.e.Up(), P),
S = a.e.TransformCoordinates(T, x),
O = S.multiply(l),
E = S.divide(l).normalize();
p.push(O.x, O.y, O.z), f.push(E.x, E.y, E.z), m.push(y, b);
}
if (g > 0) for (var M = p.length / 3, A = M - 2 * (h + 1); A + h + 2 < M; A++) d.push(A), d.push(A + 1), d.push(A + h + 1), d.push(A + h + 1), d.push(A + 1), d.push(A + h + 2);
}
Rn.a._ComputeSides(c, p, d, f, m, e.frontUVs, e.backUVs);
var I = new Rn.a();
return (I.indices = d), (I.positions = p), (I.normals = f), (I.uvs = m), I;
}),
(Ee.a.CreateSphere = function (e, t, n, i, r, o) {
var a = { segments: t, diameterX: n, diameterY: n, diameterZ: n, sideOrientation: o, updatable: r };
return mi.CreateSphere(e, a, i);
});
var mi = (function () {
function e() {}
return (
(e.CreateSphere = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateSphere(t).applyToMesh(i, t.updatable), i;
}),
e
);
})(),
gi = (function () {
function e(e, t) {
(this.type = e), (this.jointData = t), (t.nativeParams = t.nativeParams || {});
}
return (
Object.defineProperty(e.prototype, "physicsJoint", {
get: function () {
return this._physicsJoint;
},
set: function (e) {
this._physicsJoint, (this._physicsJoint = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "physicsPlugin", {
set: function (e) {
this._physicsPlugin = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.executeNativeFunction = function (e) {
e(this._physicsPlugin.world, this._physicsJoint);
}),
(e.DistanceJoint = 0),
(e.HingeJoint = 1),
(e.BallAndSocketJoint = 2),
(e.WheelJoint = 3),
(e.SliderJoint = 4),
(e.PrismaticJoint = 5),
(e.UniversalJoint = 6),
(e.Hinge2Joint = e.WheelJoint),
(e.PointToPointJoint = 8),
(e.SpringJoint = 9),
(e.LockJoint = 10),
e
);
})(),
bi = (function (e) {
function t(t) {
return e.call(this, gi.DistanceJoint, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.updateDistance = function (e, t) {
this._physicsPlugin.updateDistanceJoint(this, e, t);
}),
t
);
})(gi),
_i = (function (e) {
function t(t, n) {
return e.call(this, t, n) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.setMotor = function (e, t) {
this._physicsPlugin.setMotor(this, e || 0, t);
}),
(t.prototype.setLimit = function (e, t) {
this._physicsPlugin.setLimit(this, e, t);
}),
t
);
})(gi),
vi = (function (e) {
function t(t) {
return e.call(this, gi.HingeJoint, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.setMotor = function (e, t) {
this._physicsPlugin.setMotor(this, e || 0, t);
}),
(t.prototype.setLimit = function (e, t) {
this._physicsPlugin.setLimit(this, e, t);
}),
t
);
})(_i),
yi = (function (e) {
function t(t) {
return e.call(this, gi.Hinge2Joint, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.setMotor = function (e, t, n) {
void 0 === n && (n = 0), this._physicsPlugin.setMotor(this, e || 0, t, n);
}),
(t.prototype.setLimit = function (e, t, n) {
void 0 === n && (n = 0), this._physicsPlugin.setLimit(this, e, t, n);
}),
t
);
})(_i);
Ee.a._PhysicsImpostorParser = function (e, t, n) {
return new Ci(t, n.physicsImpostor, { mass: n.physicsMass, friction: n.physicsFriction, restitution: n.physicsRestitution }, e);
};
var Ci = (function () {
function e(e, t, n, i) {
var r = this;
void 0 === n && (n = { mass: 0 }),
(this.object = e),
(this.type = t),
(this._options = n),
(this._scene = i),
(this._pluginData = {}),
(this._bodyUpdateRequired = !1),
(this._onBeforePhysicsStepCallbacks = new Array()),
(this._onAfterPhysicsStepCallbacks = new Array()),
(this._onPhysicsCollideCallbacks = []),
(this._deltaPosition = a.e.Zero()),
(this._isDisposed = !1),
(this.soft = !1),
(this.segments = 0),
(this._tmpQuat = new a.b()),
(this._tmpQuat2 = new a.b()),
(this.beforeStep = function () {
r._physicsEngine &&
(r.object.translate(r._deltaPosition, -1),
r._deltaRotationConjugated && r.object.rotationQuaternion && r.object.rotationQuaternion.multiplyToRef(r._deltaRotationConjugated, r.object.rotationQuaternion),
r.object.computeWorldMatrix(!1),
r.object.parent && r.object.rotationQuaternion ? (r.getParentsRotation(), r._tmpQuat.multiplyToRef(r.object.rotationQuaternion, r._tmpQuat)) : r._tmpQuat.copyFrom(r.object.rotationQuaternion || new a.b()),
r._options.disableBidirectionalTransformation || (r.object.rotationQuaternion && r._physicsEngine.getPhysicsPlugin().setPhysicsBodyTransformation(r, r.object.getAbsolutePosition(), r._tmpQuat)),
r._onBeforePhysicsStepCallbacks.forEach(function (e) {
e(r);
}));
}),
(this.afterStep = function () {
r._physicsEngine &&
(r._onAfterPhysicsStepCallbacks.forEach(function (e) {
e(r);
}),
r._physicsEngine.getPhysicsPlugin().setTransformationFromPhysicsBody(r),
r.object.parent && r.object.rotationQuaternion && (r.getParentsRotation(), r._tmpQuat.conjugateInPlace(), r._tmpQuat.multiplyToRef(r.object.rotationQuaternion, r.object.rotationQuaternion)),
r.object.setAbsolutePosition(r.object.position),
r._deltaRotation && r.object.rotationQuaternion && r.object.rotationQuaternion.multiplyToRef(r._deltaRotation, r.object.rotationQuaternion),
r.object.translate(r._deltaPosition, 1));
}),
(this.onCollideEvent = null),
(this.onCollide = function (e) {
if ((r._onPhysicsCollideCallbacks.length || r.onCollideEvent) && r._physicsEngine) {
var t = r._physicsEngine.getImpostorWithPhysicsBody(e.body);
t &&
(r.onCollideEvent && r.onCollideEvent(r, t),
r._onPhysicsCollideCallbacks
.filter(function (e) {
return -1 !== e.otherImpostors.indexOf(t);
})
.forEach(function (e) {
e.callback(r, t);
}));
}
}),
this.object
? (this.object.parent && 0 !== n.mass && g.a.Warn("A physics impostor has been created for an object which has a parent. Babylon physics currently works in local space so unexpected issues may occur."),
!this._scene && e.getScene && (this._scene = e.getScene()),
this._scene &&
(this.type > 100 && (this.soft = !0),
(this._physicsEngine = this._scene.getPhysicsEngine()),
this._physicsEngine
? (this.object.rotationQuaternion ||
(this.object.rotation
? (this.object.rotationQuaternion = a.b.RotationYawPitchRoll(this.object.rotation.y, this.object.rotation.x, this.object.rotation.z))
: (this.object.rotationQuaternion = new a.b())),
(this._options.mass = void 0 === n.mass ? 0 : n.mass),
(this._options.friction = void 0 === n.friction ? 0.2 : n.friction),
(this._options.restitution = void 0 === n.restitution ? 0.2 : n.restitution),
this.soft &&
((this._options.mass = this._options.mass > 0 ? this._options.mass : 1),
(this._options.pressure = void 0 === n.pressure ? 200 : n.pressure),
(this._options.stiffness = void 0 === n.stiffness ? 1 : n.stiffness),
(this._options.velocityIterations = void 0 === n.velocityIterations ? 20 : n.velocityIterations),
(this._options.positionIterations = void 0 === n.positionIterations ? 20 : n.positionIterations),
(this._options.fixedPoints = void 0 === n.fixedPoints ? 0 : n.fixedPoints),
(this._options.margin = void 0 === n.margin ? 0 : n.margin),
(this._options.damping = void 0 === n.damping ? 0 : n.damping),
(this._options.path = void 0 === n.path ? null : n.path),
(this._options.shape = void 0 === n.shape ? null : n.shape)),
(this._joints = []),
!this.object.parent || this._options.ignoreParent ? this._init() : this.object.parent.physicsImpostor && g.a.Warn("You must affect impostors to children before affecting impostor to parent."))
: g.a.Error("Physics not enabled. Please use scene.enablePhysics(...) before creating impostors.")))
: g.a.Error("No object was provided. A physics object is obligatory");
}
return (
Object.defineProperty(e.prototype, "isDisposed", {
get: function () {
return this._isDisposed;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "mass", {
get: function () {
return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyMass(this) : 0;
},
set: function (e) {
this.setMass(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "friction", {
get: function () {
return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyFriction(this) : 0;
},
set: function (e) {
this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyFriction(this, e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "restitution", {
get: function () {
return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this) : 0;
},
set: function (e) {
this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this, e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "pressure", {
get: function () {
if (!this._physicsEngine) return 0;
var e = this._physicsEngine.getPhysicsPlugin();
return e.setBodyPressure ? e.getBodyPressure(this) : 0;
},
set: function (e) {
if (this._physicsEngine) {
var t = this._physicsEngine.getPhysicsPlugin();
t.setBodyPressure && t.setBodyPressure(this, e);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stiffness", {
get: function () {
if (!this._physicsEngine) return 0;
var e = this._physicsEngine.getPhysicsPlugin();
return e.getBodyStiffness ? e.getBodyStiffness(this) : 0;
},
set: function (e) {
if (this._physicsEngine) {
var t = this._physicsEngine.getPhysicsPlugin();
t.setBodyStiffness && t.setBodyStiffness(this, e);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "velocityIterations", {
get: function () {
if (!this._physicsEngine) return 0;
var e = this._physicsEngine.getPhysicsPlugin();
return e.getBodyVelocityIterations ? e.getBodyVelocityIterations(this) : 0;
},
set: function (e) {
if (this._physicsEngine) {
var t = this._physicsEngine.getPhysicsPlugin();
t.setBodyVelocityIterations && t.setBodyVelocityIterations(this, e);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "positionIterations", {
get: function () {
if (!this._physicsEngine) return 0;
var e = this._physicsEngine.getPhysicsPlugin();
return e.getBodyPositionIterations ? e.getBodyPositionIterations(this) : 0;
},
set: function (e) {
if (this._physicsEngine) {
var t = this._physicsEngine.getPhysicsPlugin();
t.setBodyPositionIterations && t.setBodyPositionIterations(this, e);
}
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._init = function () {
this._physicsEngine &&
(this._physicsEngine.removeImpostor(this),
(this.physicsBody = null),
(this._parent = this._parent || this._getPhysicsParent()),
this._isDisposed || (this.parent && !this._options.ignoreParent) || this._physicsEngine.addImpostor(this));
}),
(e.prototype._getPhysicsParent = function () {
return this.object.parent instanceof ke.a ? this.object.parent.physicsImpostor : null;
}),
(e.prototype.isBodyInitRequired = function () {
return this._bodyUpdateRequired || (!this._physicsBody && !this._parent);
}),
(e.prototype.setScalingUpdated = function () {
this.forceUpdate();
}),
(e.prototype.forceUpdate = function () {
this._init(), this.parent && !this._options.ignoreParent && this.parent.forceUpdate();
}),
Object.defineProperty(e.prototype, "physicsBody", {
get: function () {
return this._parent && !this._options.ignoreParent ? this._parent.physicsBody : this._physicsBody;
},
set: function (e) {
this._physicsBody && this._physicsEngine && this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this), (this._physicsBody = e), this.resetUpdateFlags();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "parent", {
get: function () {
return !this._options.ignoreParent && this._parent ? this._parent : null;
},
set: function (e) {
this._parent = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.resetUpdateFlags = function () {
this._bodyUpdateRequired = !1;
}),
(e.prototype.getObjectExtendSize = function () {
if (this.object.getBoundingInfo) {
var t = this.object.rotationQuaternion;
(this.object.rotationQuaternion = e.IDENTITY_QUATERNION), this.object.computeWorldMatrix && this.object.computeWorldMatrix(!0);
var n = this.object.getBoundingInfo().boundingBox.extendSizeWorld.scale(2);
return (this.object.rotationQuaternion = t), this.object.computeWorldMatrix && this.object.computeWorldMatrix(!0), n;
}
return e.DEFAULT_OBJECT_SIZE;
}),
(e.prototype.getObjectCenter = function () {
return this.object.getBoundingInfo ? this.object.getBoundingInfo().boundingBox.centerWorld : this.object.position;
}),
(e.prototype.getParam = function (e) {
return this._options[e];
}),
(e.prototype.setParam = function (e, t) {
(this._options[e] = t), (this._bodyUpdateRequired = !0);
}),
(e.prototype.setMass = function (e) {
this.getParam("mass") !== e && this.setParam("mass", e), this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyMass(this, e);
}),
(e.prototype.getLinearVelocity = function () {
return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this) : a.e.Zero();
}),
(e.prototype.setLinearVelocity = function (e) {
this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this, e);
}),
(e.prototype.getAngularVelocity = function () {
return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this) : a.e.Zero();
}),
(e.prototype.setAngularVelocity = function (e) {
this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this, e);
}),
(e.prototype.executeNativeFunction = function (e) {
this._physicsEngine && e(this._physicsEngine.getPhysicsPlugin().world, this.physicsBody);
}),
(e.prototype.registerBeforePhysicsStep = function (e) {
this._onBeforePhysicsStepCallbacks.push(e);
}),
(e.prototype.unregisterBeforePhysicsStep = function (e) {
var t = this._onBeforePhysicsStepCallbacks.indexOf(e);
t > -1 ? this._onBeforePhysicsStepCallbacks.splice(t, 1) : g.a.Warn("Function to remove was not found");
}),
(e.prototype.registerAfterPhysicsStep = function (e) {
this._onAfterPhysicsStepCallbacks.push(e);
}),
(e.prototype.unregisterAfterPhysicsStep = function (e) {
var t = this._onAfterPhysicsStepCallbacks.indexOf(e);
t > -1 ? this._onAfterPhysicsStepCallbacks.splice(t, 1) : g.a.Warn("Function to remove was not found");
}),
(e.prototype.registerOnPhysicsCollide = function (e, t) {
var n = e instanceof Array ? e : [e];
this._onPhysicsCollideCallbacks.push({ callback: t, otherImpostors: n });
}),
(e.prototype.unregisterOnPhysicsCollide = function (e, t) {
var n = e instanceof Array ? e : [e],
i = -1;
this._onPhysicsCollideCallbacks.some(function (e, r) {
if (e.callback === t && e.otherImpostors.length === n.length) {
var o = e.otherImpostors.every(function (e) {
return n.indexOf(e) > -1;
});
return o && (i = r), o;
}
return !1;
})
? this._onPhysicsCollideCallbacks.splice(i, 1)
: g.a.Warn("Function to remove was not found");
}),
(e.prototype.getParentsRotation = function () {
var e = this.object.parent;
for (this._tmpQuat.copyFromFloats(0, 0, 0, 1); e; )
e.rotationQuaternion ? this._tmpQuat2.copyFrom(e.rotationQuaternion) : a.b.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, e.rotation.z, this._tmpQuat2),
this._tmpQuat.multiplyToRef(this._tmpQuat2, this._tmpQuat),
(e = e.parent);
return this._tmpQuat;
}),
(e.prototype.applyForce = function (e, t) {
return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().applyForce(this, e, t), this;
}),
(e.prototype.applyImpulse = function (e, t) {
return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().applyImpulse(this, e, t), this;
}),
(e.prototype.createJoint = function (e, t, n) {
var i = new gi(t, n);
return this.addJoint(e, i), this;
}),
(e.prototype.addJoint = function (e, t) {
return this._joints.push({ otherImpostor: e, joint: t }), this._physicsEngine && this._physicsEngine.addJoint(this, e, t), this;
}),
(e.prototype.addAnchor = function (e, t, n, i, r) {
if (!this._physicsEngine) return this;
var o = this._physicsEngine.getPhysicsPlugin();
return o.appendAnchor ? (this._physicsEngine && o.appendAnchor(this, e, t, n, i, r), this) : this;
}),
(e.prototype.addHook = function (e, t, n, i) {
if (!this._physicsEngine) return this;
var r = this._physicsEngine.getPhysicsPlugin();
return r.appendAnchor ? (this._physicsEngine && r.appendHook(this, e, t, n, i), this) : this;
}),
(e.prototype.sleep = function () {
return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().sleepBody(this), this;
}),
(e.prototype.wakeUp = function () {
return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().wakeUpBody(this), this;
}),
(e.prototype.clone = function (t) {
return t ? new e(t, this.type, this._options, this._scene) : null;
}),
(e.prototype.dispose = function () {
var e = this;
this._physicsEngine &&
(this._joints.forEach(function (t) {
e._physicsEngine && e._physicsEngine.removeJoint(e, t.otherImpostor, t.joint);
}),
this._physicsEngine.removeImpostor(this),
this.parent && this.parent.forceUpdate(),
(this._isDisposed = !0));
}),
(e.prototype.setDeltaPosition = function (e) {
this._deltaPosition.copyFrom(e);
}),
(e.prototype.setDeltaRotation = function (e) {
this._deltaRotation || (this._deltaRotation = new a.b()), this._deltaRotation.copyFrom(e), (this._deltaRotationConjugated = this._deltaRotation.conjugate());
}),
(e.prototype.getBoxSizeToRef = function (e) {
return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this, e), this;
}),
(e.prototype.getRadius = function () {
return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getRadius(this) : 0;
}),
(e.prototype.syncBoneWithImpostor = function (t, n, i, r, o) {
var a = e._tmpVecs[0],
s = this.object;
if (s.rotationQuaternion)
if (o) {
var c = e._tmpQuat;
s.rotationQuaternion.multiplyToRef(o, c), t.setRotationQuaternion(c, Be.b.WORLD, n);
} else t.setRotationQuaternion(s.rotationQuaternion, Be.b.WORLD, n);
(a.x = 0),
(a.y = 0),
(a.z = 0),
i && ((a.x = i.x), (a.y = i.y), (a.z = i.z), t.getDirectionToRef(a, n, a), null == r && (r = i.length()), (a.x *= r), (a.y *= r), (a.z *= r)),
t.getParent() ? (a.addInPlace(s.getAbsolutePosition()), t.setAbsolutePosition(a, n)) : (n.setAbsolutePosition(s.getAbsolutePosition()), (n.position.x -= a.x), (n.position.y -= a.y), (n.position.z -= a.z));
}),
(e.prototype.syncImpostorWithBone = function (t, n, i, r, o, a) {
var s = this.object;
if (s.rotationQuaternion)
if (o) {
var c = e._tmpQuat;
t.getRotationQuaternionToRef(Be.b.WORLD, n, c), c.multiplyToRef(o, s.rotationQuaternion);
} else t.getRotationQuaternionToRef(Be.b.WORLD, n, s.rotationQuaternion);
var l = e._tmpVecs[0],
u = e._tmpVecs[1];
a || (((a = e._tmpVecs[2]).x = 0), (a.y = 1), (a.z = 0)),
t.getDirectionToRef(a, n, u),
t.getAbsolutePositionToRef(n, l),
null == r && i && (r = i.length()),
null != r && ((l.x += u.x * r), (l.y += u.y * r), (l.z += u.z * r)),
s.setAbsolutePosition(l);
}),
(e.DEFAULT_OBJECT_SIZE = new a.e(1, 1, 1)),
(e.IDENTITY_QUATERNION = a.b.Identity()),
(e._tmpVecs = Me.a.BuildArray(3, a.e.Zero)),
(e._tmpQuat = a.b.Identity()),
(e.NoImpostor = 0),
(e.SphereImpostor = 1),
(e.BoxImpostor = 2),
(e.PlaneImpostor = 3),
(e.MeshImpostor = 4),
(e.CapsuleImpostor = 6),
(e.CylinderImpostor = 7),
(e.ParticleImpostor = 8),
(e.HeightmapImpostor = 9),
(e.ConvexHullImpostor = 10),
(e.CustomImpostor = 100),
(e.RopeImpostor = 101),
(e.ClothImpostor = 102),
(e.SoftbodyImpostor = 103),
e
);
})(),
Pi = (function () {
function e(e) {
(this._impostors = []), (this._meshes = []), (this._numMeshes = 0), (this._debugMeshMeshes = new Array()), (this._scene = e || E.a.LastCreatedScene);
var t = this._scene.getPhysicsEngine();
t && (this._physicsEnginePlugin = t.getPhysicsPlugin()),
(this._utilityLayer = new ci.a(this._scene, !1)),
(this._utilityLayer.pickUtilitySceneFirst = !1),
(this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil = !0);
}
return (
(e.prototype._updateDebugMeshes = function () {
for (var e = this._physicsEnginePlugin, t = 0; t < this._numMeshes; t++) {
var n = this._impostors[t];
if (n)
if (n.isDisposed) this.hideImpostor(this._impostors[t--]);
else {
if (n.type === Ci.MeshImpostor) continue;
var i = this._meshes[t];
i && e && e.syncMeshWithImpostor(i, n);
}
}
}),
(e.prototype.showImpostor = function (e, t) {
if (!this._scene) return null;
for (var n = 0; n < this._numMeshes; n++) if (this._impostors[n] == e) return null;
var i = this._getDebugMesh(e, t);
return (
i &&
((this._impostors[this._numMeshes] = e),
(this._meshes[this._numMeshes] = i),
0 === this._numMeshes && ((this._renderFunction = this._updateDebugMeshes.bind(this)), this._scene.registerBeforeRender(this._renderFunction)),
this._numMeshes++),
i
);
}),
(e.prototype.hideImpostor = function (e) {
if (e && this._scene && this._utilityLayer) {
for (var t = !1, n = this._utilityLayer.utilityLayerScene, i = 0; i < this._numMeshes; i++)
if (this._impostors[i] == e) {
var r = this._meshes[i];
if (!r) continue;
n.removeMesh(r), r.dispose();
var o = this._debugMeshMeshes.indexOf(r);
o > -1 && this._debugMeshMeshes.splice(o, 1),
this._numMeshes--,
this._numMeshes > 0
? ((this._meshes[i] = this._meshes[this._numMeshes]), (this._impostors[i] = this._impostors[this._numMeshes]), (this._meshes[this._numMeshes] = null), (this._impostors[this._numMeshes] = null))
: ((this._meshes[0] = null), (this._impostors[0] = null)),
(t = !0);
break;
}
t && 0 === this._numMeshes && this._scene.unregisterBeforeRender(this._renderFunction);
}
}),
(e.prototype._getDebugMaterial = function (e) {
return (
this._debugMaterial || ((this._debugMaterial = new Mn.a("", e)), (this._debugMaterial.wireframe = !0), (this._debugMaterial.emissiveColor = s.a.White()), (this._debugMaterial.disableLighting = !0)),
this._debugMaterial
);
}),
(e.prototype._getDebugBoxMesh = function (e) {
return (
this._debugBoxMesh ||
((this._debugBoxMesh = fi.a.CreateBox("physicsBodyBoxViewMesh", { size: 1 }, e)),
(this._debugBoxMesh.rotationQuaternion = a.b.Identity()),
(this._debugBoxMesh.material = this._getDebugMaterial(e)),
this._debugBoxMesh.setEnabled(!1)),
this._debugBoxMesh.createInstance("physicsBodyBoxViewInstance")
);
}),
(e.prototype._getDebugSphereMesh = function (e) {
return (
this._debugSphereMesh ||
((this._debugSphereMesh = mi.CreateSphere("physicsBodySphereViewMesh", { diameter: 1 }, e)),
(this._debugSphereMesh.rotationQuaternion = a.b.Identity()),
(this._debugSphereMesh.material = this._getDebugMaterial(e)),
this._debugSphereMesh.setEnabled(!1)),
this._debugSphereMesh.createInstance("physicsBodyBoxViewInstance")
);
}),
(e.prototype._getDebugCylinderMesh = function (e) {
return (
this._debugCylinderMesh ||
((this._debugCylinderMesh = jn.CreateCylinder("physicsBodyCylinderViewMesh", { diameterTop: 1, diameterBottom: 1, height: 1 }, e)),
(this._debugCylinderMesh.rotationQuaternion = a.b.Identity()),
(this._debugCylinderMesh.material = this._getDebugMaterial(e)),
this._debugCylinderMesh.setEnabled(!1)),
this._debugCylinderMesh.createInstance("physicsBodyBoxViewInstance")
);
}),
(e.prototype._getDebugMeshMesh = function (e, t) {
var n = new Ee.a(e.name, t, null, e);
return (n.position = a.e.Zero()), n.setParent(e), (n.material = this._getDebugMaterial(t)), this._debugMeshMeshes.push(n), n;
}),
(e.prototype._getDebugMesh = function (e, t) {
var n = this;
if (!this._utilityLayer) return null;
if (t && t.parent && t.parent.physicsImpostor) return null;
var i = null,
r = this._utilityLayer.utilityLayerScene;
switch (e.type) {
case Ci.BoxImpostor:
(i = this._getDebugBoxMesh(r)), e.getBoxSizeToRef(i.scaling);
break;
case Ci.SphereImpostor:
i = this._getDebugSphereMesh(r);
var o = e.getRadius();
(i.scaling.x = 2 * o), (i.scaling.y = 2 * o), (i.scaling.z = 2 * o);
break;
case Ci.MeshImpostor:
t && (i = this._getDebugMeshMesh(t, r));
break;
case Ci.NoImpostor:
if (t)
t.getChildMeshes()
.filter(function (e) {
return e.physicsImpostor ? 1 : 0;
})
.forEach(function (e) {
n._getDebugBoxMesh(r).parent = e;
});
break;
case Ci.CylinderImpostor:
i = this._getDebugCylinderMesh(r);
var a = e.object.getBoundingInfo();
(i.scaling.x = a.boundingBox.maximum.x - a.boundingBox.minimum.x), (i.scaling.y = a.boundingBox.maximum.y - a.boundingBox.minimum.y), (i.scaling.z = a.boundingBox.maximum.z - a.boundingBox.minimum.z);
}
return i;
}),
(e.prototype.dispose = function () {
for (var e = this._numMeshes, t = 0; t < e; t++) this.hideImpostor(this._impostors[0]);
this._debugBoxMesh && this._debugBoxMesh.dispose(),
this._debugSphereMesh && this._debugSphereMesh.dispose(),
this._debugCylinderMesh && this._debugCylinderMesh.dispose(),
this._debugMaterial && this._debugMaterial.dispose(),
(this._impostors.length = 0),
(this._scene = null),
(this._physicsEnginePlugin = null),
this._utilityLayer && (this._utilityLayer.dispose(), (this._utilityLayer = null));
}),
e
);
})(),
xi = n(116);
(Rn.a.CreateLineSystem = function (e) {
for (var t = [], n = [], i = e.lines, r = e.colors, o = [], a = 0, s = 0; s < i.length; s++)
for (var c = i[s], l = 0; l < c.length; l++) {
if ((n.push(c[l].x, c[l].y, c[l].z), r)) {
var u = r[s];
o.push(u[l].r, u[l].g, u[l].b, u[l].a);
}
l > 0 && (t.push(a - 1), t.push(a)), a++;
}
var h = new Rn.a();
return (h.indices = t), (h.positions = n), r && (h.colors = o), h;
}),
(Rn.a.CreateDashedLines = function (e) {
var t,
n,
i = e.dashSize || 3,
r = e.gapSize || 1,
o = e.dashNb || 200,
s = e.points,
c = new Array(),
l = new Array(),
u = a.e.Zero(),
h = 0,
d = 0,
p = 0,
f = 0,
m = 0;
for (m = 0; m < s.length - 1; m++) s[m + 1].subtractToRef(s[m], u), (h += u.length());
for (n = (i * (t = h / o)) / (i + r), m = 0; m < s.length - 1; m++) {
s[m + 1].subtractToRef(s[m], u), (d = Math.floor(u.length() / t)), u.normalize();
for (var g = 0; g < d; g++) (p = t * g), c.push(s[m].x + p * u.x, s[m].y + p * u.y, s[m].z + p * u.z), c.push(s[m].x + (p + n) * u.x, s[m].y + (p + n) * u.y, s[m].z + (p + n) * u.z), l.push(f, f + 1), (f += 2);
}
var b = new Rn.a();
return (b.positions = c), (b.indices = l), b;
}),
(Ee.a.CreateLines = function (e, t, n, i, r) {
void 0 === n && (n = null), void 0 === i && (i = !1), void 0 === r && (r = null);
var o = { points: t, updatable: i, instance: r };
return Ti.CreateLines(e, o, n);
}),
(Ee.a.CreateDashedLines = function (e, t, n, i, r, o, a, s) {
void 0 === o && (o = null);
var c = { points: t, dashSize: n, gapSize: i, dashNb: r, updatable: a, instance: s };
return Ti.CreateDashedLines(e, c, o);
});
var Ti = (function () {
function e() {}
return (
(e.CreateLineSystem = function (e, t, n) {
var i = t.instance,
r = t.lines,
o = t.colors;
if (i) {
var a,
s,
c = i.getVerticesData(wn.b.PositionKind);
o && (a = i.getVerticesData(wn.b.ColorKind));
for (var l = 0, u = 0, h = 0; h < r.length; h++)
for (var d = r[h], p = 0; p < d.length; p++)
(c[l] = d[p].x), (c[l + 1] = d[p].y), (c[l + 2] = d[p].z), o && a && ((s = o[h]), (a[u] = s[p].r), (a[u + 1] = s[p].g), (a[u + 2] = s[p].b), (a[u + 3] = s[p].a), (u += 4)), (l += 3);
return i.updateVerticesData(wn.b.PositionKind, c, !1, !1), o && a && i.updateVerticesData(wn.b.ColorKind, a, !1, !1), i;
}
var f = !!o,
m = new xi.b(e, n, null, void 0, void 0, f, t.useVertexAlpha);
return Rn.a.CreateLineSystem(t).applyToMesh(m, t.updatable), m;
}),
(e.CreateLines = function (t, n, i) {
void 0 === i && (i = null);
var r = n.colors ? [n.colors] : null;
return e.CreateLineSystem(t, { lines: [n.points], updatable: n.updatable, instance: n.instance, colors: r, useVertexAlpha: n.useVertexAlpha }, i);
}),
(e.CreateDashedLines = function (e, t, n) {
void 0 === n && (n = null);
var i = t.points,
r = t.instance,
o = t.gapSize || 1,
s = t.dashSize || 3;
if (r) {
return (
r.updateMeshPositions(function (e) {
var t,
n,
o = a.e.Zero(),
s = e.length / 6,
c = 0,
l = 0,
u = 0,
h = 0,
d = 0,
p = 0;
for (d = 0; d < i.length - 1; d++) i[d + 1].subtractToRef(i[d], o), (c += o.length());
t = c / s;
var f = r._creationDataStorage.dashSize;
for (n = (f * t) / (f + r._creationDataStorage.gapSize), d = 0; d < i.length - 1; d++)
for (i[d + 1].subtractToRef(i[d], o), l = Math.floor(o.length() / t), o.normalize(), p = 0; p < l && h < e.length; )
(u = t * p),
(e[h] = i[d].x + u * o.x),
(e[h + 1] = i[d].y + u * o.y),
(e[h + 2] = i[d].z + u * o.z),
(e[h + 3] = i[d].x + (u + n) * o.x),
(e[h + 4] = i[d].y + (u + n) * o.y),
(e[h + 5] = i[d].z + (u + n) * o.z),
(h += 6),
p++;
for (; h < e.length; ) (e[h] = i[d].x), (e[h + 1] = i[d].y), (e[h + 2] = i[d].z), (h += 3);
}, !1),
r
);
}
var c = new xi.b(e, n, null, void 0, void 0, void 0, t.useVertexAlpha);
return Rn.a.CreateDashedLines(t).applyToMesh(c, t.updatable), (c._creationDataStorage = new Ee.b()), (c._creationDataStorage.dashSize = s), (c._creationDataStorage.gapSize = o), c;
}),
e
);
})(),
Si = (function () {
function e(e) {
this.ray = e;
}
return (
(e.CreateAndShow = function (t, n, i) {
var r = new e(t);
return r.show(n, i), r;
}),
(e.prototype.show = function (e, t) {
if (!this._renderFunction && this.ray) {
var n = this.ray;
(this._renderFunction = this._render.bind(this)),
(this._scene = e),
(this._renderPoints = [n.origin, n.origin.add(n.direction.scale(n.length))]),
(this._renderLine = Ee.a.CreateLines("ray", this._renderPoints, e, !0)),
this._renderFunction && this._scene.registerBeforeRender(this._renderFunction);
}
t && this._renderLine && this._renderLine.color.copyFrom(t);
}),
(e.prototype.hide = function () {
this._renderFunction &&
this._scene &&
(this._scene.unregisterBeforeRender(this._renderFunction),
(this._scene = null),
(this._renderFunction = null),
this._renderLine && (this._renderLine.dispose(), (this._renderLine = null)),
(this._renderPoints = []));
}),
(e.prototype._render = function () {
var e = this.ray;
if (e) {
var t = this._renderPoints[1],
n = Math.min(e.length, 1e6);
t.copyFrom(e.direction), t.scaleInPlace(n), t.addInPlace(e.origin), Ee.a.CreateLines("ray", this._renderPoints, this._scene, !0, this._renderLine);
}
}),
(e.prototype.attachToMesh = function (e, t, n, i) {
this._attachedToMesh = e;
var r = this.ray;
r &&
(r.direction || (r.direction = a.e.Zero()),
r.origin || (r.origin = a.e.Zero()),
i && (r.length = i),
n || (n = a.e.Zero()),
t || (t = new a.e(0, 0, -1)),
this._meshSpaceDirection ? (this._meshSpaceDirection.copyFrom(t), this._meshSpaceOrigin.copyFrom(n)) : ((this._meshSpaceDirection = t.clone()), (this._meshSpaceOrigin = n.clone())),
this._updateToMeshFunction || ((this._updateToMeshFunction = this._updateToMesh.bind(this)), this._attachedToMesh.getScene().registerBeforeRender(this._updateToMeshFunction)),
this._updateToMesh());
}),
(e.prototype.detachFromMesh = function () {
this._attachedToMesh && (this._updateToMeshFunction && this._attachedToMesh.getScene().unregisterBeforeRender(this._updateToMeshFunction), (this._attachedToMesh = null), (this._updateToMeshFunction = null));
}),
(e.prototype._updateToMesh = function () {
var e = this.ray;
this._attachedToMesh &&
e &&
(this._attachedToMesh._isDisposed
? this.detachFromMesh()
: (this._attachedToMesh.getDirectionToRef(this._meshSpaceDirection, e.direction), a.e.TransformCoordinatesToRef(this._meshSpaceOrigin, this._attachedToMesh.getWorldMatrix(), e.origin)));
}),
(e.prototype.dispose = function () {
this.hide(), this.detachFromMesh(), (this.ray = null);
}),
e
);
})(),
Oi = (function () {
function e(e, t, n, i, r) {
void 0 === i && (i = !0),
void 0 === r && (r = 1),
(this.skeleton = e),
(this.mesh = t),
(this.autoUpdateBonesMatrices = i),
(this.renderingGroupId = r),
(this.color = s.a.White()),
(this._debugLines = new Array()),
(this._isEnabled = !1),
(this._scene = n),
(this._utilityLayer = new ci.a(this._scene, !1)),
(this._utilityLayer.pickUtilitySceneFirst = !1),
(this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil = !0),
this.update(),
(this._renderFunction = this.update.bind(this));
}
return (
Object.defineProperty(e.prototype, "debugMesh", {
get: function () {
return this._debugMesh;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
this._isEnabled !== e && ((this._isEnabled = e), e ? this._scene.registerBeforeRender(this._renderFunction) : this._scene.unregisterBeforeRender(this._renderFunction));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._getBonePosition = function (e, t, n, i, r, o) {
void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = 0);
var s = a.c.Matrix[0],
c = t.getParent();
if ((s.copyFrom(t.getLocalMatrix()), 0 !== i || 0 !== r || 0 !== o)) {
var l = a.c.Matrix[1];
a.a.IdentityToRef(l), l.setTranslationFromFloats(i, r, o), l.multiplyToRef(s, s);
}
c && s.multiplyToRef(c.getAbsoluteTransform(), s), s.multiplyToRef(n, s), (e.x = s.m[12]), (e.y = s.m[13]), (e.z = s.m[14]);
}),
(e.prototype._getLinesForBonesWithLength = function (e, t) {
for (var n = e.length, i = this.mesh._effectiveMesh.position, r = 0; r < n; r++) {
var o = e[r],
s = this._debugLines[r];
s || ((s = [a.e.Zero(), a.e.Zero()]), (this._debugLines[r] = s)), this._getBonePosition(s[0], o, t), this._getBonePosition(s[1], o, t, 0, o.length, 0), s[0].subtractInPlace(i), s[1].subtractInPlace(i);
}
}),
(e.prototype._getLinesForBonesNoLength = function (e, t) {
for (var n = e.length, i = 0, r = this.mesh._effectiveMesh, o = r.position, s = n - 1; s >= 0; s--) {
var c = e[s],
l = c.getParent();
if (l) {
var u = this._debugLines[i];
u || ((u = [a.e.Zero(), a.e.Zero()]), (this._debugLines[i] = u)), c.getAbsolutePositionToRef(r, u[0]), l.getAbsolutePositionToRef(r, u[1]), u[0].subtractInPlace(o), u[1].subtractInPlace(o), i++;
}
}
}),
(e.prototype.update = function () {
if (this._utilityLayer) {
this.autoUpdateBonesMatrices && this.skeleton.computeAbsoluteTransforms();
var e = this.mesh._effectiveMesh;
void 0 === this.skeleton.bones[0].length ? this._getLinesForBonesNoLength(this.skeleton.bones, e.getWorldMatrix()) : this._getLinesForBonesWithLength(this.skeleton.bones, e.getWorldMatrix());
var t = this._utilityLayer.utilityLayerScene;
this._debugMesh
? Ti.CreateLineSystem("", { lines: this._debugLines, updatable: !0, instance: this._debugMesh }, t)
: ((this._debugMesh = Ti.CreateLineSystem("", { lines: this._debugLines, updatable: !0, instance: null }, t)), (this._debugMesh.renderingGroupId = this.renderingGroupId)),
this._debugMesh.position.copyFrom(this.mesh.position),
(this._debugMesh.color = this.color);
}
}),
(e.prototype.dispose = function () {
(this.isEnabled = !1), this._debugMesh && ((this.isEnabled = !1), this._debugMesh.dispose(), (this._debugMesh = null)), this._utilityLayer && (this._utilityLayer.dispose(), (this._utilityLayer = null));
}),
e
);
})(),
Ei = n(80),
Mi = n(38),
Ai = n(228),
Ii = function () {
this._timeElapsedQueryEnded = !1;
},
Di = function () {
(this.occlusionInternalRetryCounter = 0),
(this.isOcclusionQueryInProgress = !1),
(this.isOccluded = !1),
(this.occlusionRetryCount = -1),
(this.occlusionType = ke.a.OCCLUSION_TYPE_NONE),
(this.occlusionQueryAlgorithmType = ke.a.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE);
};
(ue.a.prototype.createQuery = function () {
return this._gl.createQuery();
}),
(ue.a.prototype.deleteQuery = function (e) {
return this._gl.deleteQuery(e), this;
}),
(ue.a.prototype.isQueryResultAvailable = function (e) {
return this._gl.getQueryParameter(e, this._gl.QUERY_RESULT_AVAILABLE);
}),
(ue.a.prototype.getQueryResult = function (e) {
return this._gl.getQueryParameter(e, this._gl.QUERY_RESULT);
}),
(ue.a.prototype.beginOcclusionQuery = function (e, t) {
var n = this._getGlAlgorithmType(e);
return this._gl.beginQuery(n, t), this;
}),
(ue.a.prototype.endOcclusionQuery = function (e) {
var t = this._getGlAlgorithmType(e);
return this._gl.endQuery(t), this;
}),
(ue.a.prototype._createTimeQuery = function () {
var e = this.getCaps().timerQuery;
return e.createQueryEXT ? e.createQueryEXT() : this.createQuery();
}),
(ue.a.prototype._deleteTimeQuery = function (e) {
var t = this.getCaps().timerQuery;
t.deleteQueryEXT ? t.deleteQueryEXT(e) : this.deleteQuery(e);
}),
(ue.a.prototype._getTimeQueryResult = function (e) {
var t = this.getCaps().timerQuery;
return t.getQueryObjectEXT ? t.getQueryObjectEXT(e, t.QUERY_RESULT_EXT) : this.getQueryResult(e);
}),
(ue.a.prototype._getTimeQueryAvailability = function (e) {
var t = this.getCaps().timerQuery;
return t.getQueryObjectEXT ? t.getQueryObjectEXT(e, t.QUERY_RESULT_AVAILABLE_EXT) : this.isQueryResultAvailable(e);
}),
(ue.a.prototype.startTimeQuery = function () {
var e = this.getCaps(),
t = e.timerQuery;
if (!t) return null;
var n = new Ii();
if ((this._gl.getParameter(t.GPU_DISJOINT_EXT), e.canUseTimestampForTimerQuery)) (n._startTimeQuery = this._createTimeQuery()), t.queryCounterEXT(n._startTimeQuery, t.TIMESTAMP_EXT);
else {
if (this._currentNonTimestampToken) return this._currentNonTimestampToken;
(n._timeElapsedQuery = this._createTimeQuery()),
t.beginQueryEXT ? t.beginQueryEXT(t.TIME_ELAPSED_EXT, n._timeElapsedQuery) : this._gl.beginQuery(t.TIME_ELAPSED_EXT, n._timeElapsedQuery),
(this._currentNonTimestampToken = n);
}
return n;
}),
(ue.a.prototype.endTimeQuery = function (e) {
var t = this.getCaps(),
n = t.timerQuery;
if (!n || !e) return -1;
if (t.canUseTimestampForTimerQuery) {
if (!e._startTimeQuery) return -1;
e._endTimeQuery || ((e._endTimeQuery = this._createTimeQuery()), n.queryCounterEXT(e._endTimeQuery, n.TIMESTAMP_EXT));
} else if (!e._timeElapsedQueryEnded) {
if (!e._timeElapsedQuery) return -1;
n.endQueryEXT ? n.endQueryEXT(n.TIME_ELAPSED_EXT) : this._gl.endQuery(n.TIME_ELAPSED_EXT), (e._timeElapsedQueryEnded = !0);
}
var i = this._gl.getParameter(n.GPU_DISJOINT_EXT),
r = !1;
if ((e._endTimeQuery ? (r = this._getTimeQueryAvailability(e._endTimeQuery)) : e._timeElapsedQuery && (r = this._getTimeQueryAvailability(e._timeElapsedQuery)), r && !i)) {
var o = 0;
if (t.canUseTimestampForTimerQuery) {
if (!e._startTimeQuery || !e._endTimeQuery) return -1;
var a = this._getTimeQueryResult(e._startTimeQuery);
(o = this._getTimeQueryResult(e._endTimeQuery) - a), this._deleteTimeQuery(e._startTimeQuery), this._deleteTimeQuery(e._endTimeQuery), (e._startTimeQuery = null), (e._endTimeQuery = null);
} else {
if (!e._timeElapsedQuery) return -1;
(o = this._getTimeQueryResult(e._timeElapsedQuery)), this._deleteTimeQuery(e._timeElapsedQuery), (e._timeElapsedQuery = null), (e._timeElapsedQueryEnded = !1), (this._currentNonTimestampToken = null);
}
return o;
}
return -1;
}),
(ue.a.prototype._getGlAlgorithmType = function (e) {
return e === ke.a.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;
}),
Object.defineProperty(ke.a.prototype, "isOcclusionQueryInProgress", {
get: function () {
return this._occlusionDataStorage.isOcclusionQueryInProgress;
},
set: function (e) {
this._occlusionDataStorage.isOcclusionQueryInProgress = e;
},
enumerable: !1,
configurable: !0,
}),
Object.defineProperty(ke.a.prototype, "_occlusionDataStorage", {
get: function () {
return this.__occlusionDataStorage || (this.__occlusionDataStorage = new Di()), this.__occlusionDataStorage;
},
enumerable: !1,
configurable: !0,
}),
Object.defineProperty(ke.a.prototype, "isOccluded", {
get: function () {
return this._occlusionDataStorage.isOccluded;
},
set: function (e) {
this._occlusionDataStorage.isOccluded = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(ke.a.prototype, "occlusionQueryAlgorithmType", {
get: function () {
return this._occlusionDataStorage.occlusionQueryAlgorithmType;
},
set: function (e) {
this._occlusionDataStorage.occlusionQueryAlgorithmType = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(ke.a.prototype, "occlusionType", {
get: function () {
return this._occlusionDataStorage.occlusionType;
},
set: function (e) {
this._occlusionDataStorage.occlusionType = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(ke.a.prototype, "occlusionRetryCount", {
get: function () {
return this._occlusionDataStorage.occlusionRetryCount;
},
set: function (e) {
this._occlusionDataStorage.occlusionRetryCount = e;
},
enumerable: !0,
configurable: !0,
}),
(ke.a.prototype._checkOcclusionQuery = function () {
var e = this._occlusionDataStorage;
if (e.occlusionType === ke.a.OCCLUSION_TYPE_NONE) return (e.isOccluded = !1), !1;
var t = this.getEngine();
if (t.webGLVersion < 2) return (e.isOccluded = !1), !1;
if (!t.isQueryResultAvailable) return (e.isOccluded = !1), !1;
if (this.isOcclusionQueryInProgress && this._occlusionQuery)
if (t.isQueryResultAvailable(this._occlusionQuery)) {
var n = t.getQueryResult(this._occlusionQuery);
(e.isOcclusionQueryInProgress = !1), (e.occlusionInternalRetryCounter = 0), (e.isOccluded = 1 !== n);
} else {
if ((e.occlusionInternalRetryCounter++, !(-1 !== e.occlusionRetryCount && e.occlusionInternalRetryCounter > e.occlusionRetryCount))) return !1;
(e.isOcclusionQueryInProgress = !1), (e.occlusionInternalRetryCounter = 0), (e.isOccluded = e.occlusionType !== ke.a.OCCLUSION_TYPE_OPTIMISTIC && e.isOccluded);
}
var i = this.getScene();
if (i.getBoundingBoxRenderer) {
var r = i.getBoundingBoxRenderer();
this._occlusionQuery || (this._occlusionQuery = t.createQuery()),
t.beginOcclusionQuery(e.occlusionQueryAlgorithmType, this._occlusionQuery),
r.renderOcclusionBoundingBox(this),
t.endOcclusionQuery(e.occlusionQueryAlgorithmType),
(this._occlusionDataStorage.isOcclusionQueryInProgress = !0);
}
return e.isOccluded;
});
var Ri = !0;
(ue.a.prototype.createTransformFeedback = function () {
return this._gl.createTransformFeedback();
}),
(ue.a.prototype.deleteTransformFeedback = function (e) {
this._gl.deleteTransformFeedback(e);
}),
(ue.a.prototype.bindTransformFeedback = function (e) {
this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK, e);
}),
(ue.a.prototype.beginTransformFeedback = function (e) {
void 0 === e && (e = !0), this._gl.beginTransformFeedback(e ? this._gl.POINTS : this._gl.TRIANGLES);
}),
(ue.a.prototype.endTransformFeedback = function () {
this._gl.endTransformFeedback();
}),
(ue.a.prototype.setTranformFeedbackVaryings = function (e, t) {
this._gl.transformFeedbackVaryings(e, t, this._gl.INTERLEAVED_ATTRIBS);
}),
(ue.a.prototype.bindTransformFeedbackBuffer = function (e) {
this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER, 0, e ? e.underlyingResource : null);
});
var wi = function () {};
(ue.a.prototype.getInputElement = function () {
return this.inputElement || this.getRenderingCanvas();
}),
(ue.a.prototype.registerView = function (e, t) {
var n = this;
this.views || (this.views = []);
for (var i = 0, r = this.views; i < r.length; i++) {
var o = r[i];
if (o.target === e) return o;
}
var a = this.getRenderingCanvas();
a && ((e.width = a.width), (e.height = a.height));
var s = { target: e, camera: t };
return (
this.views.push(s),
t &&
t.onDisposeObservable.add(function () {
n.unRegisterView(e);
}),
s
);
}),
(ue.a.prototype.unRegisterView = function (e) {
if (!this.views) return this;
for (var t = 0, n = this.views; t < n.length; t++) {
var i = n[t];
if (i.target === e) {
var r = this.views.indexOf(i);
-1 !== r && this.views.splice(r, 1);
break;
}
}
return this;
}),
(ue.a.prototype._renderViews = function () {
if (!this.views) return !1;
var e = this.getRenderingCanvas();
if (!e) return !1;
for (var t = 0, n = this.views; t < n.length; t++) {
var i = n[t],
r = i.target,
o = r.getContext("2d");
if (o) {
var a = i.camera,
s = null,
c = null;
if (a) {
if ((c = a.getScene()).activeCameras.length) continue;
(this.activeView = i), (s = c.activeCamera), (c.activeCamera = a);
}
(r.width = r.clientWidth), (r.height = r.clientHeight), (e.width = r.clientWidth), (e.height = r.clientHeight), this._renderFrame(), o.drawImage(e, 0, 0), s && c && (c.activeCamera = s);
}
}
return (this.activeView = null), !0;
});
var Li,
Fi,
Ni = n(185),
ki = n(157),
zi = n(127),
ji = n(117),
Bi = n(147),
Vi =
(((Li = {})[wn.b.PositionKind] = 0),
(Li[wn.b.NormalKind] = 1),
(Li[wn.b.TangentKind] = 2),
(Li[wn.b.UVKind] = 10),
(Li[wn.b.UV2Kind] = 11),
(Li[wn.b.UV3Kind] = 12),
(Li[wn.b.UV4Kind] = 13),
(Li[wn.b.ColorKind] = 4),
(Li[wn.b.MatricesIndicesKind] = 8),
(Li[wn.b.MatricesWeightsKind] = 9),
Li),
Gi =
(((Fi = {})[wn.b.PositionKind] = "a_position"),
(Fi[wn.b.NormalKind] = "a_normal"),
(Fi[wn.b.TangentKind] = "a_tangent"),
(Fi[wn.b.UVKind] = "a_texcoord0"),
(Fi[wn.b.UV2Kind] = "a_texcoord1"),
(Fi[wn.b.UV3Kind] = "a_texcoord2"),
(Fi[wn.b.UV4Kind] = "a_texcoord3"),
(Fi[wn.b.ColorKind] = "a_color0"),
(Fi[wn.b.MatricesIndicesKind] = "a_indices"),
(Fi[wn.b.MatricesWeightsKind] = "a_weight"),
Fi),
Ui = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.lineProcessor = function (e) {
for (var t = 0, n = this._replacements; t < n.length; t++) {
var i = n[t];
e = e.replace(i.searchValue, i.replaceValue);
}
return e;
}),
(t.prototype.attributeProcessor = function (t) {
var n = t.match(/attribute\s+[^\s]+\s+([^\s]+)\s*(?:\[.+\])?\s*;/)[1],
i = Vi[n];
if (void 0 === i && (i = this._genericAttributeLocation++) > 17) throw new Error("Exceeded maximum custom attributes");
var r = Gi[n];
if (void 0 === r) throw new Error("Can't find bgfx name mapping");
return (t = t.replace(n, r)), this._replacements.push({ searchValue: new RegExp("\\b" + n + "\\b", "g"), replaceValue: "" + r }), "layout(location=" + i + ") " + e.prototype.attributeProcessor.call(this, t);
}),
(t.prototype.varyingProcessor = function (t, n) {
var i;
return n ? (i = this._varyingLocationMap[t]) : ((i = this._varyingLocationCount++), (this._varyingLocationMap[t] = i)), "layout(location=" + i + ") " + e.prototype.varyingProcessor.call(this, t, n);
}),
(t.prototype.uniformProcessor = function (e) {
var t = e.match(/uniform\s+([^\s]+)\s+([^\s]+)\s*(?:\[.+\])?\s*;/),
n = t[1],
i = t[2];
switch (n) {
case "sampler2D":
case "samplerCube":
var r = n.substr(7),
o = this._textureCount++;
return (
this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: "sampler" + r + "(" + i + "Texture, " + i + ")" }),
"layout(binding=" + o + ") uniform texture" + r + " " + i + "Texture;\nlayout(binding=" + o + ") uniform sampler " + i + ";"
);
case "float":
this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: i + ".x" }), (e = "uniform vec4 " + i + ";");
break;
case "vec2":
this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: i + ".xy" }), (e = "uniform vec4 " + i + ";");
break;
case "vec3":
this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: i + ".xyz" }), (e = "uniform vec4 " + i + ";");
}
return this._uniforms.push(e), 1 === this._uniforms.length ? "" : "";
}),
(t.prototype.preProcessor = function (e, t, n) {
return (this._genericAttributeLocation = 10), n || ((this._varyingLocationCount = 0), (this._varyingLocationMap = {})), (this._replacements = []), (this._textureCount = 0), (this._uniforms = []), e;
}),
(t.prototype.postProcessor = function (t, n, i) {
return (t = (t = (t = e.prototype.postProcessor.call(this, t, n, i)).replace("", "layout(binding=0) uniform Frame {\n" + this._uniforms.join("\n") + "\n};")).replace(
"out vec4 glFragColor",
"layout(location=0) out vec4 glFragColor"
));
}),
t
);
})(ki.a),
Hi = (function () {
function e() {
(this.isAsync = !1), (this.isReady = !1);
}
return (
(e.prototype._handlesSpectorRebuildCallback = function (e) {
throw new Error("Not implemented");
}),
e
);
})(),
Wi = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return Object(h.d)(t, e), t;
})(zi.a),
Xi = (function () {
function e() {}
return (
(e.POINT = 0),
(e.MINPOINT_MAGPOINT_MIPPOINT = e.POINT),
(e.BILINEAR = 1),
(e.MINLINEAR_MAGLINEAR_MIPPOINT = e.BILINEAR),
(e.TRILINEAR = 2),
(e.MINLINEAR_MAGLINEAR_MIPLINEAR = e.TRILINEAR),
(e.ANISOTROPIC = 3),
(e.POINT_COMPARE = 4),
(e.TRILINEAR_COMPARE = 5),
(e.MINBILINEAR_MAGPOINT = 6),
(e.MINLINEAR_MAGPOINT_MIPLINEAR = e.MINBILINEAR_MAGPOINT),
(e.MINPOINT_MAGPOINT_MIPLINEAR = 7),
(e.MINPOINT_MAGLINEAR_MIPPOINT = 8),
(e.MINPOINT_MAGLINEAR_MIPLINEAR = 9),
(e.MINLINEAR_MAGPOINT_MIPPOINT = 10),
e
);
})(),
Yi = (function () {
function e() {}
return (e.CLEAR_COLOR = 1), (e.CLEAR_DEPTH = 2), (e.CLEAR_STENCIL = 4), e;
})(),
Ki = (function () {
function e() {}
return (e.WRAP = 0), (e.MIRROR = 1), (e.CLAMP = 2), (e.BORDER = 3), (e.MIRROR_ONCE = 4), e;
})(),
Zi = (function () {
function e() {}
return (e.RGBA8 = 0), (e.RGBA32F = 1), e;
})(),
qi = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getInternalTexture = function () {
return this;
}),
(t.prototype.getViewCount = function () {
return 1;
}),
t
);
})(pn.a),
Qi = (function (e) {
function t() {
var t = e.call(this, null) || this;
return (
(t._native = new _native.Engine()),
(t.INVALID_HANDLE = 65535),
(t._webGLVersion = 2),
(t.disableUniformBuffers = !0),
(t._caps = {
maxTexturesImageUnits: 16,
maxVertexTextureImageUnits: 16,
maxCombinedTexturesImageUnits: 32,
maxTextureSize: 512,
maxCubemapTextureSize: 512,
maxRenderTextureSize: 512,
maxVertexAttribs: 16,
maxVaryingVectors: 16,
maxFragmentUniformVectors: 16,
maxVertexUniformVectors: 16,
standardDerivatives: !0,
astc: null,
pvrtc: null,
etc1: null,
etc2: null,
maxAnisotropy: 16,
uintIndices: !1,
fragmentDepthSupported: !1,
highPrecisionShaderSupported: !0,
colorBufferFloat: !1,
textureFloat: !1,
textureFloatLinearFiltering: !1,
textureFloatRender: !1,
textureHalfFloat: !1,
textureHalfFloatLinearFiltering: !1,
textureHalfFloatRender: !1,
textureLOD: !0,
drawBuffersExtension: !1,
depthTextureExtension: !1,
vertexArrayObject: !0,
instancedArrays: !1,
canUseTimestampForTimerQuery: !1,
blendMinMax: !1,
maxMSAASamples: 1,
}),
$e.b.Log("Babylon Native (v" + ue.a.Version + ") launched"),
"undefined" == typeof URL && (window.URL = { createObjectURL: function () {}, revokeObjectURL: function () {} }),
"undefined" == typeof Blob && (window.Blob = function () {}),
(t._shaderProcessor = new Ui()),
t
);
}
return (
Object(h.d)(t, e),
(t.prototype.getHardwareScalingLevel = function () {
return 1;
}),
(t.prototype._queueNewFrame = function (e, t) {
return t.requestAnimationFrame ? t.requestAnimationFrame(e) : this._native.requestAnimationFrame(e), 0;
}),
(t.prototype._bindUnboundFramebuffer = function (e) {
this._currentFramebuffer !== e && (this._currentFramebuffer && this._native.unbindFramebuffer(this._currentFramebuffer), e && this._native.bindFramebuffer(e), (this._currentFramebuffer = e));
}),
(t.prototype.getHostDocument = function () {
return null;
}),
(t.prototype.clear = function (e, t, n, i) {
void 0 === i && (i = !1);
var r = 0;
t && e && (this._native.clearColor(e.r, e.g, e.b, void 0 !== e.a ? e.a : 1), (r |= Yi.CLEAR_COLOR)),
n && (this._native.clearDepth(1), (r |= Yi.CLEAR_DEPTH)),
i && (this._native.clearStencil(0), (r |= Yi.CLEAR_STENCIL)),
this._native.clear(r);
}),
(t.prototype.createIndexBuffer = function (e) {
var t = this._normalizeIndexData(e),
n = new Wi();
if (((n.references = 1), (n.is32Bits = 4 === t.BYTES_PER_ELEMENT), (n.nativeIndexBuffer = this._native.createIndexBuffer(t)), n.nativeVertexBuffer === this.INVALID_HANDLE))
throw new Error("Could not create a native index buffer.");
return n;
}),
(t.prototype.createVertexBuffer = function (e) {
var t = new Wi();
if (((t.references = 1), (t.nativeVertexBuffer = this._native.createVertexBuffer(ArrayBuffer.isView(e) ? e : new Float32Array(e))), t.nativeVertexBuffer === this.INVALID_HANDLE))
throw new Error("Could not create a native vertex buffer.");
return t;
}),
(t.prototype.recordVertexArrayObject = function (e, t, n) {
var i = this._native.createVertexArray();
t && this._native.recordIndexBuffer(i, t.nativeIndexBuffer);
for (var r = n.getAttributesNames(), o = 0; o < r.length; o++) {
var a = n.getAttributeLocation(o);
if (a >= 0) {
var s = e[r[o]];
if (s) {
var c = s.getBuffer();
c && this._native.recordVertexBuffer(i, c.nativeVertexBuffer, a, s.byteOffset, s.byteStride, s.getSize(), s.type, s.normalized);
}
}
}
return i;
}),
(t.prototype.bindVertexArrayObject = function (e) {
this._native.bindVertexArray(e);
}),
(t.prototype.releaseVertexArrayObject = function (e) {
this._native.deleteVertexArray(e);
}),
(t.prototype.getAttributes = function (e, t) {
var n = e;
return this._native.getAttributes(n.nativeProgram, t);
}),
(t.prototype.drawElementsType = function (e, t, n, i) {
this._drawCalls.addCount(1, !1), this._native.drawIndexed(e, t, n);
}),
(t.prototype.drawArraysType = function (e, t, n, i) {
this._drawCalls.addCount(1, !1), this._native.draw(e, t, n);
}),
(t.prototype.createPipelineContext = function () {
return new Hi();
}),
(t.prototype._preparePipelineContext = function (e, t, n, i, r, o, a) {
var s = e;
s.nativeProgram = i ? this.createRawShaderProgram(e, t, n, void 0, a) : this.createShaderProgram(e, t, n, o, void 0, a);
}),
(t.prototype._isRenderingStateCompiled = function (e) {
return !0;
}),
(t.prototype._executeWhenRenderingStateIsCompiled = function (e, t) {
t();
}),
(t.prototype.createRawShaderProgram = function (e, t, n, i, r) {
throw (void 0 === r && (r = null), new Error("Not Supported"));
}),
(t.prototype.createShaderProgram = function (e, t, n, i, r, o) {
void 0 === o && (o = null), this.onBeforeShaderCompilationObservable.notifyObservers(this);
var a = this._native.createProgram(Mi.a._ConcatenateShader(t, i), Mi.a._ConcatenateShader(n, i));
return this.onAfterShaderCompilationObservable.notifyObservers(this), a;
}),
(t.prototype._setProgram = function (e) {
this._currentProgram !== e && (this._native.setProgram(e), (this._currentProgram = e));
}),
(t.prototype._releaseEffect = function (e) {}),
(t.prototype._deletePipelineContext = function (e) {}),
(t.prototype.getUniforms = function (e, t) {
var n = e;
return this._native.getUniforms(n.nativeProgram, t);
}),
(t.prototype.bindUniformBlock = function (e, t, n) {
throw new Error("Not Implemented");
}),
(t.prototype.bindSamplers = function (e) {
var t = e.getPipelineContext();
this._setProgram(t.nativeProgram);
for (var n = e.getSamplers(), i = 0; i < n.length; i++) {
var r = e.getUniform(n[i]);
r && (this._boundUniforms[i] = r);
}
this._currentEffect = null;
}),
(t.prototype.setMatrix = function (e, t) {
e && this._native.setMatrix(e, t.toArray());
}),
(t.prototype.getRenderWidth = function (e) {
return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._native.getRenderWidth();
}),
(t.prototype.getRenderHeight = function (e) {
return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._native.getRenderHeight();
}),
(t.prototype.setViewport = function (e, t, n) {
(this._cachedViewport = e), this._native.setViewPort(e.x, e.y, e.width, e.height);
}),
(t.prototype.setState = function (e, t, n, i) {
void 0 === t && (t = 0), void 0 === i && (i = !1), this._native.setState(e, t, i);
}),
(t.prototype.setZOffset = function (e) {
this._native.setZOffset(e);
}),
(t.prototype.getZOffset = function () {
return this._native.getZOffset();
}),
(t.prototype.setDepthBuffer = function (e) {
this._native.setDepthTest(e);
}),
(t.prototype.getDepthWrite = function () {
return this._native.getDepthWrite();
}),
(t.prototype.setDepthWrite = function (e) {
this._native.setDepthWrite(e);
}),
(t.prototype.setColorWrite = function (e) {
this._native.setColorWrite(e), (this._colorWrite = e);
}),
(t.prototype.getColorWrite = function () {
return this._colorWrite;
}),
(t.prototype.setAlphaConstants = function (e, t, n, i) {
throw new Error("Setting alpha blend constant color not yet implemented.");
}),
(t.prototype.setAlphaMode = function (e, t) {
void 0 === t && (t = !1), this._alphaMode !== e && (this._native.setBlendMode(e), t || this.setDepthWrite(0 === e), (this._alphaMode = e));
}),
(t.prototype.getAlphaMode = function () {
return this._alphaMode;
}),
(t.prototype.setInt = function (e, t) {
e && this._native.setInt(e, t);
}),
(t.prototype.setIntArray = function (e, t) {
e && this._native.setIntArray(e, t);
}),
(t.prototype.setIntArray2 = function (e, t) {
e && this._native.setIntArray2(e, t);
}),
(t.prototype.setIntArray3 = function (e, t) {
e && this._native.setIntArray3(e, t);
}),
(t.prototype.setIntArray4 = function (e, t) {
e && this._native.setIntArray4(e, t);
}),
(t.prototype.setFloatArray = function (e, t) {
e && this._native.setFloatArray(e, t);
}),
(t.prototype.setFloatArray2 = function (e, t) {
e && this._native.setFloatArray2(e, t);
}),
(t.prototype.setFloatArray3 = function (e, t) {
e && this._native.setFloatArray3(e, t);
}),
(t.prototype.setFloatArray4 = function (e, t) {
e && this._native.setFloatArray4(e, t);
}),
(t.prototype.setArray = function (e, t) {
e && this._native.setFloatArray(e, t);
}),
(t.prototype.setArray2 = function (e, t) {
e && this._native.setFloatArray2(e, t);
}),
(t.prototype.setArray3 = function (e, t) {
e && this._native.setFloatArray3(e, t);
}),
(t.prototype.setArray4 = function (e, t) {
e && this._native.setFloatArray4(e, t);
}),
(t.prototype.setMatrices = function (e, t) {
e && this._native.setMatrices(e, t);
}),
(t.prototype.setMatrix3x3 = function (e, t) {
e && this._native.setMatrix3x3(e, t);
}),
(t.prototype.setMatrix2x2 = function (e, t) {
e && this._native.setMatrix2x2(e, t);
}),
(t.prototype.setFloat = function (e, t) {
e && this._native.setFloat(e, t);
}),
(t.prototype.setFloat2 = function (e, t, n) {
e && this._native.setFloat2(e, t, n);
}),
(t.prototype.setFloat3 = function (e, t, n, i) {
e && this._native.setFloat3(e, t, n, i);
}),
(t.prototype.setFloat4 = function (e, t, n, i, r) {
e && this._native.setFloat4(e, t, n, i, r);
}),
(t.prototype.setColor3 = function (e, t) {
e && this._native.setFloat3(e, t.r, t.g, t.b);
}),
(t.prototype.setColor4 = function (e, t, n) {
e && this._native.setFloat4(e, t.r, t.g, t.b, n);
}),
(t.prototype.wipeCaches = function (e) {
this.preventCacheWipeBetweenFrames ||
(this.resetTextureCache(),
(this._currentEffect = null),
e && ((this._currentProgram = null), this._stencilState.reset(), this._depthCullingState.reset(), this._alphaState.reset()),
(this._cachedVertexBuffers = null),
(this._cachedIndexBuffer = null),
(this._cachedEffectForVertexBuffers = null));
}),
(t.prototype._createTexture = function () {
return this._native.createTexture();
}),
(t.prototype._deleteTexture = function (e) {
this._native.deleteTexture(e);
}),
(t.prototype.createTexture = function (e, t, n, i, r, o, a, s, c, l, u, h) {
var d = this;
void 0 === r && (r = 3), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = null);
for (
var p = String(e),
f = "data:" === p.substr(0, 5),
m = "blob:" === p.substr(0, 5),
g = c || new pn.a(this, pn.b.Url),
b = p.lastIndexOf("."),
_ = u || (b > -1 ? p.substring(b).toLowerCase() : ""),
v = null,
y = 0,
C = ue.a._TextureLoaders;
y < C.length;
y++
) {
var P = C[y];
if (P.canLoad(_)) {
v = P;
break;
}
}
i && i._addPendingData(g), (g.url = p), (g.generateMipMaps = !t), (g.samplingMode = r), (g.invertY = n), this.doNotHandleContextLost || (g._buffer = s);
var x = null;
o && !c && (x = g.onLoadedObservable.add(o)), c || this._internalTexturesCache.push(g);
if (v) throw new Error("Loading textures from IInternalTextureLoader not yet implemented.");
var T = function (e, o) {
if ("string" == typeof e) throw new Error("Loading textures from string data not yet implemented.");
m && !d.doNotHandleContextLost && (g._buffer = e);
var a = g._webGLTexture;
if (a) {
if (!d._native.loadTexture(a, e, !t, n)) throw new Error("Could not load a native texture.");
(g.baseWidth = d._native.getTextureWidth(a)), (g.baseHeight = d._native.getTextureHeight(a)), (g.width = g.baseWidth), (g.height = g.baseHeight), (g.isReady = !0);
var s = d._getSamplingFilter(r);
d._native.setTextureSampling(a, s), i && i._removePendingData(g), g.onLoadedObservable.notifyObservers(g), g.onLoadedObservable.clear();
} else i && i._removePendingData(g);
};
if (s instanceof ArrayBuffer) T(s);
else if (ArrayBuffer.isView(s)) T(s.buffer);
else {
if (s instanceof Blob) throw new Error("Loading texture from Blob not yet implemented.");
if (f) T($e.b.DecodeBase64(s));
else {
$e.b.LoadFile(p, T, void 0, void 0, !0, function (e, o) {
!(function (e, o) {
i && i._removePendingData(g), x && g.onLoadedObservable.remove(x), $e.b.UseFallbackTexture && d.createTexture($e.b.fallbackTexture, t, n, i, r, null, a, s, g), a && a(e || "Unknown error", o);
})("Failed to retrieve " + p + ".", o);
});
}
}
return g;
}),
(t.prototype.createCubeTexture = function (e, t, n, i, r, o, a, s, c, l, u, h) {
var d = this;
void 0 === r && (r = null), void 0 === o && (o = null), void 0 === s && (s = null), void 0 === c && (c = !1), void 0 === l && (l = 0), void 0 === u && (u = 0), void 0 === h && (h = null);
var p = h || new pn.a(this, pn.b.Cube);
(p.isCube = !0), (p.url = e), (p.generateMipMaps = !i), (p._lodGenerationScale = l), (p._lodGenerationOffset = u), this._doNotHandleContextLost || ((p._extension = s), (p._files = n));
var f = e.lastIndexOf(".");
if (".env" === (s || (f > -1 ? e.substring(f).toLowerCase() : ""))) {
if (n && 6 === n.length) throw new Error("Multi-file loading not allowed on env files.");
this._loadFile(
e,
function (e) {
return (function (e) {
var t = ji.a.GetEnvInfo(e);
if (((p.width = t.width), (p.height = t.width), ji.a.UploadEnvSpherical(p, t), 1 !== t.version)) throw new Error('Unsupported babylon environment map version "' + t.version + '"');
var n = t.specular;
if (!n) throw new Error("Nothing else parsed so far");
p._lodGenerationScale = n.lodGenerationScale;
var i = ji.a.CreateImageDataArrayBufferViews(e, t);
if (
((p.format = 5),
(p.type = 0),
(p.generateMipMaps = !0),
p.getEngine().updateTextureSamplingMode(ln.a.TRILINEAR_SAMPLINGMODE, p),
(p._isRGBD = !0),
(p.invertY = !0),
!d._native.loadEnvTexture(p._webGLTexture, i))
)
throw new Error("Could not load a native cube texture.");
(p.isReady = !0), r && r();
})(new Uint8Array(e));
},
void 0,
void 0,
!0,
function (e, t) {
o && e && o(e.status + " " + e.statusText, t);
}
);
} else {
if (!n || 6 !== n.length) throw new Error("Cannot load cubemap because 6 files were not defined");
var m = [n[0], n[3], n[1], n[4], n[2], n[5]];
Promise.all(
m.map(function (e) {
return $e.b.LoadFileAsync(e).then(function (e) {
return new Uint8Array(e);
});
})
)
.then(function (e) {
d._native.loadCubeTexture(p._webGLTexture, e, !i);
})
.then(
function () {
(p.isReady = !0), r && r();
},
function (e) {
o && o("Failed to load cubemap: " + e.message, e);
}
);
}
return this._internalTexturesCache.push(p), p;
}),
(t.prototype._getSamplingFilter = function (e) {
switch (e) {
case 2:
return Xi.MINLINEAR_MAGLINEAR_MIPPOINT;
case 3:
return Xi.MINLINEAR_MAGLINEAR_MIPLINEAR;
case 1:
return Xi.MINPOINT_MAGPOINT_MIPLINEAR;
case 4:
return Xi.MINPOINT_MAGPOINT_MIPPOINT;
case 5:
return Xi.MINLINEAR_MAGPOINT_MIPPOINT;
case 6:
case 7:
return Xi.MINLINEAR_MAGPOINT_MIPLINEAR;
case 1:
return Xi.MINPOINT_MAGPOINT_MIPPOINT;
case 9:
return Xi.MINPOINT_MAGLINEAR_MIPPOINT;
case 10:
return Xi.MINPOINT_MAGLINEAR_MIPLINEAR;
case 2:
return Xi.MINLINEAR_MAGLINEAR_MIPLINEAR;
case 12:
return Xi.MINPOINT_MAGLINEAR_MIPLINEAR;
default:
throw new Error("Unexpected sampling mode: " + e + ".");
}
}),
(t._GetNativeTextureFormat = function (e, t) {
if (5 == e && 0 == t) return Zi.RGBA8;
if (5 == e && 1 == t) return Zi.RGBA32F;
throw new Error("Unexpected texture format or type: format " + e + ", type " + t + ".");
}),
(t.prototype.createRenderTargetTexture = function (e, n) {
var i = new Bi.a();
void 0 !== n && "object" == typeof n
? ((i.generateMipMaps = n.generateMipMaps),
(i.generateDepthBuffer = void 0 === n.generateDepthBuffer || n.generateDepthBuffer),
(i.generateStencilBuffer = i.generateDepthBuffer && n.generateStencilBuffer),
(i.type = void 0 === n.type ? 0 : n.type),
(i.samplingMode = void 0 === n.samplingMode ? 3 : n.samplingMode),
(i.format = void 0 === n.format ? 5 : n.format))
: ((i.generateMipMaps = n), (i.generateDepthBuffer = !0), (i.generateStencilBuffer = !1), (i.type = 0), (i.samplingMode = 3), (i.format = 5)),
((1 !== i.type || this._caps.textureFloatLinearFiltering) && (2 !== i.type || this._caps.textureHalfFloatLinearFiltering)) || (i.samplingMode = 1);
var r = new qi(this, pn.b.RenderTarget),
o = e.width || e,
a = e.height || e;
1 !== i.type || this._caps.textureFloat || ((i.type = 0), g.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type"));
var s = this._native.createFramebuffer(r._webGLTexture, o, a, t._GetNativeTextureFormat(i.format, i.type), i.samplingMode, !!i.generateStencilBuffer, i.generateDepthBuffer, !!i.generateMipMaps);
return (
(r._framebuffer = s),
(r.baseWidth = o),
(r.baseHeight = a),
(r.width = o),
(r.height = a),
(r.isReady = !0),
(r.samples = 1),
(r.generateMipMaps = !!i.generateMipMaps),
(r.samplingMode = i.samplingMode),
(r.type = i.type),
(r.format = i.format),
(r._generateDepthBuffer = i.generateDepthBuffer),
(r._generateStencilBuffer = !!i.generateStencilBuffer),
this._internalTexturesCache.push(r),
r
);
}),
(t.prototype.updateTextureSamplingMode = function (e, t) {
if (t._webGLTexture) {
var n = this._getSamplingFilter(e);
this._native.setTextureSampling(t._webGLTexture, n);
}
t.samplingMode = e;
}),
(t.prototype.bindFramebuffer = function (e, t, n, i, r) {
if (t) throw new Error("Cuboid frame buffers are not yet supported in NativeEngine.");
if (n || i) throw new Error("Required width/height for frame buffers not yet supported in NativeEngine.");
if (r) throw new Error("forceFullscreenViewport for frame buffers not yet supported in NativeEngine.");
this._bindUnboundFramebuffer(e._framebuffer);
}),
(t.prototype.unBindFramebuffer = function (e, t, n) {
void 0 === t && (t = !1), t && g.a.Warn("Disabling mipmap generation not yet supported in NativeEngine. Ignoring."), n && n(), this._bindUnboundFramebuffer(null);
}),
(t.prototype.createDynamicVertexBuffer = function (e) {
throw new Error("createDynamicVertexBuffer not yet implemented.");
}),
(t.prototype.updateDynamicIndexBuffer = function (e, t, n) {
throw (void 0 === n && (n = 0), new Error("updateDynamicIndexBuffer not yet implemented."));
}),
(t.prototype.updateDynamicVertexBuffer = function (e, t, n, i) {
throw new Error("updateDynamicVertexBuffer not yet implemented.");
}),
(t.prototype._setTexture = function (e, t, n, i) {
void 0 === n && (n = !1), void 0 === i && (i = !1);
var r,
o = this._boundUniforms[e];
if (!o) return !1;
if (!t) return null != this._boundTexturesCache[e] && ((this._activeChannel = e), this._native.setTexture(o, null)), !1;
if (t.video) (this._activeChannel = e), t.update();
else if (4 === t.delayLoadState) return t.delayLoad(), !1;
return (
(r = i ? t.depthStencilTexture : t.isReady() ? t.getInternalTexture() : t.isCube ? this.emptyCubeTexture : t.is3D ? this.emptyTexture3D : t.is2DArray ? this.emptyTexture2DArray : this.emptyTexture),
(this._activeChannel = e),
!(!r || !r._webGLTexture) &&
(this._native.setTextureWrapMode(r._webGLTexture, this._getAddressMode(t.wrapU), this._getAddressMode(t.wrapV), this._getAddressMode(t.wrapR)),
this._updateAnisotropicLevel(t),
this._native.setTexture(o, r._webGLTexture),
!0)
);
}),
(t.prototype._updateAnisotropicLevel = function (e) {
var t = e.getInternalTexture(),
n = e.anisotropicFilteringLevel;
t && t._webGLTexture && t._cachedAnisotropicFilteringLevel !== n && (this._native.setTextureAnisotropicLevel(t._webGLTexture, n), (t._cachedAnisotropicFilteringLevel = n));
}),
(t.prototype._getAddressMode = function (e) {
switch (e) {
case 1:
return Ki.WRAP;
case 0:
return Ki.CLAMP;
case 2:
return Ki.MIRROR;
default:
throw new Error("Unexpected wrap mode: " + e + ".");
}
}),
(t.prototype._bindTexture = function (e, t) {
throw new Error("_bindTexture not implemented.");
}),
(t.prototype._deleteBuffer = function (e) {
e.nativeIndexBuffer && (this._native.deleteIndexBuffer(e.nativeIndexBuffer), delete e.nativeIndexBuffer), e.nativeVertexBuffer && (this._native.deleteVertexBuffer(e.nativeVertexBuffer), delete e.nativeVertexBuffer);
}),
(t.prototype.releaseEffects = function () {}),
(t.prototype._uploadCompressedDataToTextureDirectly = function (e, t, n, i, r, o, a) {
throw (void 0 === o && (o = 0), void 0 === a && (a = 0), new Error("_uploadCompressedDataToTextureDirectly not implemented."));
}),
(t.prototype._uploadDataToTextureDirectly = function (e, t, n, i) {
throw (void 0 === n && (n = 0), void 0 === i && (i = 0), new Error("_uploadDataToTextureDirectly not implemented."));
}),
(t.prototype._uploadArrayBufferViewToTexture = function (e, t, n, i) {
throw (void 0 === n && (n = 0), void 0 === i && (i = 0), new Error("_uploadArrayBufferViewToTexture not implemented."));
}),
(t.prototype._uploadImageToTexture = function (e, t, n, i) {
throw (void 0 === n && (n = 0), void 0 === i && (i = 0), new Error("_uploadArrayBufferViewToTexture not implemented."));
}),
t
);
})(ue.a),
Ji = n(113),
$i = n(37),
er = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (n.controllerType = Mt.DAYDREAM), n;
}
return (
Object(h.d)(t, e),
(t.prototype.initControllerMesh = function (e, n) {
var i = this;
$i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (e) {
(i._defaultModel = e[1]), i.attachToMesh(i._defaultModel), n && n(i._defaultModel);
});
}),
(t.prototype._handleButtonChange = function (e, t, n) {
if (0 === e) {
var i = this.onTriggerStateChangedObservable;
i && i.notifyObservers(t);
} else g.a.Warn("Unrecognized Daydream button index: " + e);
}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/generic/"),
(t.MODEL_FILENAME = "generic.babylon"),
(t.GAMEPAD_ID_PREFIX = "Daydream"),
t
);
})(On);
Lt._ControllerFactories.push({
canCreate: function (e) {
return 0 === e.id.indexOf(er.GAMEPAD_ID_PREFIX);
},
create: function (e) {
return new er(e);
},
});
var tr = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (
(n._buttonIndexToObservableNameMap = ["onPadStateChangedObservable", "onTriggerStateChangedObservable"]),
(n.controllerType = Mt.GEAR_VR),
(n._calculatedPosition = new a.e("left" == n.hand ? -0.15 : 0.15, -0.5, 0.25)),
n._disableTrackPosition(n._calculatedPosition),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.initControllerMesh = function (e, n) {
var i = this;
$i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (t) {
var r = new Ee.a("", e);
(t[1].parent = r), (t[1].position.z = -0.15), (i._defaultModel = r), i.attachToMesh(i._defaultModel), n && n(i._defaultModel);
});
}),
(t.prototype._handleButtonChange = function (e, t, n) {
if (e < this._buttonIndexToObservableNameMap.length) {
var i = this[this._buttonIndexToObservableNameMap[e]];
i && i.notifyObservers(t);
}
}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/generic/"),
(t.MODEL_FILENAME = "generic.babylon"),
(t.GAMEPAD_ID_PREFIX = "Gear VR"),
t
);
})(On);
Lt._ControllerFactories.push({
canCreate: function (e) {
return 0 === e.id.indexOf(tr.GAMEPAD_ID_PREFIX) || -1 !== e.id.indexOf("Oculus Go") || -1 !== e.id.indexOf("Vive Focus");
},
create: function (e) {
return new tr(e);
},
});
var nr = (function (e) {
function t(t) {
return e.call(this, t) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.initControllerMesh = function (e, n) {
var i = this;
$i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (e) {
(i._defaultModel = e[1]), i.attachToMesh(i._defaultModel), n && n(i._defaultModel);
});
}),
(t.prototype._handleButtonChange = function (e, t, n) {}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/generic/"),
(t.MODEL_FILENAME = "generic.babylon"),
t
);
})(On);
Lt._DefaultControllerFactory = function (e) {
return new nr(e);
};
var ir = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (n.onSecondaryTriggerStateChangedObservable = new o.c()), (n.onThumbRestChangedObservable = new o.c()), (n.controllerType = Mt.OCULUS), n;
}
return (
Object(h.d)(t, e),
(t.prototype.initControllerMesh = function (e, n) {
var i,
r = this;
(i = "left" === this.hand ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME),
$i.a.ImportMesh("", t._IsQuest ? t.QUEST_MODEL_BASE_URL : t.MODEL_BASE_URL, i, e, function (e) {
(r._defaultModel = t._IsQuest ? e[0] : e[1]), r.attachToMesh(r._defaultModel), n && n(r._defaultModel);
});
}),
Object.defineProperty(t.prototype, "onAButtonStateChangedObservable", {
get: function () {
if ("right" === this.hand) return this.onMainButtonStateChangedObservable;
throw new Error("No A button on left hand");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onBButtonStateChangedObservable", {
get: function () {
if ("right" === this.hand) return this.onSecondaryButtonStateChangedObservable;
throw new Error("No B button on left hand");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onXButtonStateChangedObservable", {
get: function () {
if ("left" === this.hand) return this.onMainButtonStateChangedObservable;
throw new Error("No X button on right hand");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onYButtonStateChangedObservable", {
get: function () {
if ("left" === this.hand) return this.onSecondaryButtonStateChangedObservable;
throw new Error("No Y button on right hand");
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._handleButtonChange = function (e, n, i) {
var r = n,
o = "right" === this.hand ? -1 : 1;
switch (e) {
case 0:
return void this.onPadStateChangedObservable.notifyObservers(r);
case 1:
return (
!t._IsQuest &&
this._defaultModel &&
((this._defaultModel.getChildren()[3].rotation.x = 0.2 * -r.value),
(this._defaultModel.getChildren()[3].position.y = 0.005 * -r.value),
(this._defaultModel.getChildren()[3].position.z = 0.005 * -r.value)),
void this.onTriggerStateChangedObservable.notifyObservers(r)
);
case 2:
return !t._IsQuest && this._defaultModel && (this._defaultModel.getChildren()[4].position.x = o * r.value * 0.0035), void this.onSecondaryTriggerStateChangedObservable.notifyObservers(r);
case 3:
return (
!t._IsQuest && this._defaultModel && (r.pressed ? (this._defaultModel.getChildren()[1].position.y = -0.001) : (this._defaultModel.getChildren()[1].position.y = 0)),
void this.onMainButtonStateChangedObservable.notifyObservers(r)
);
case 4:
return (
!t._IsQuest && this._defaultModel && (r.pressed ? (this._defaultModel.getChildren()[2].position.y = -0.001) : (this._defaultModel.getChildren()[2].position.y = 0)),
void this.onSecondaryButtonStateChangedObservable.notifyObservers(r)
);
case 5:
return void this.onThumbRestChangedObservable.notifyObservers(r);
}
}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/oculus/"),
(t.MODEL_LEFT_FILENAME = "left.babylon"),
(t.MODEL_RIGHT_FILENAME = "right.babylon"),
(t.QUEST_MODEL_BASE_URL = "https://controllers.babylonjs.com/oculusQuest/"),
(t._IsQuest = !1),
t
);
})(On);
Lt._ControllerFactories.push({
canCreate: function (e) {
return ue.a.LastCreatedEngine && ue.a.LastCreatedEngine._vrDisplay && "Oculus Quest" === ue.a.LastCreatedEngine._vrDisplay.displayName && (ir._IsQuest = !0), -1 !== e.id.indexOf("Oculus Touch");
},
create: function (e) {
return new ir(e);
},
});
var rr = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (n.controllerType = Mt.VIVE), (n._invertLeftStickY = !0), n;
}
return (
Object(h.d)(t, e),
(t.prototype.initControllerMesh = function (e, n) {
var i = this;
$i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (e) {
(i._defaultModel = e[1]), i.attachToMesh(i._defaultModel), n && n(i._defaultModel);
});
}),
Object.defineProperty(t.prototype, "onLeftButtonStateChangedObservable", {
get: function () {
return this.onMainButtonStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onRightButtonStateChangedObservable", {
get: function () {
return this.onMainButtonStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onMenuButtonStateChangedObservable", {
get: function () {
return this.onSecondaryButtonStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._handleButtonChange = function (e, t, n) {
var i = t;
switch (e) {
case 0:
return void this.onPadStateChangedObservable.notifyObservers(i);
case 1:
return this._defaultModel && (this._defaultModel.getChildren()[6].rotation.x = 0.15 * -i.value), void this.onTriggerStateChangedObservable.notifyObservers(i);
case 2:
return void this.onMainButtonStateChangedObservable.notifyObservers(i);
case 3:
return (
this._defaultModel && (i.pressed ? (this._defaultModel.getChildren()[2].position.y = -0.001) : (this._defaultModel.getChildren()[2].position.y = 0)),
void this.onSecondaryButtonStateChangedObservable.notifyObservers(i)
);
}
}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/vive/"),
(t.MODEL_FILENAME = "wand.babylon"),
t
);
})(On);
Lt._ControllerFactories.push({
canCreate: function (e) {
return -1 !== e.id.toLowerCase().indexOf("openvr");
},
create: function (e) {
return new rr(e);
},
});
var or = function () {
(this.buttonMeshes = {}), (this.axisMeshes = {});
},
ar = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (
(n._mapping = {
buttons: ["thumbstick", "trigger", "grip", "menu", "trackpad"],
buttonMeshNames: { trigger: "SELECT", menu: "MENU", grip: "GRASP", thumbstick: "THUMBSTICK_PRESS", trackpad: "TOUCHPAD_PRESS" },
buttonObservableNames: {
trigger: "onTriggerStateChangedObservable",
menu: "onSecondaryButtonStateChangedObservable",
grip: "onMainButtonStateChangedObservable",
thumbstick: "onPadStateChangedObservable",
trackpad: "onTrackpadChangedObservable",
},
axisMeshNames: ["THUMBSTICK_X", "THUMBSTICK_Y", "TOUCHPAD_TOUCH_X", "TOUCHPAD_TOUCH_Y"],
pointingPoseMeshName: Ft.POINTING_POSE,
}),
(n.onTrackpadChangedObservable = new o.c()),
(n.onTrackpadValuesChangedObservable = new o.c()),
(n.trackpad = { x: 0, y: 0 }),
(n.controllerType = Mt.WINDOWS),
(n._loadedMeshInfo = null),
n
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "onTriggerButtonStateChangedObservable", {
get: function () {
return this.onTriggerStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onMenuButtonStateChangedObservable", {
get: function () {
return this.onSecondaryButtonStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onGripButtonStateChangedObservable", {
get: function () {
return this.onMainButtonStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onThumbstickButtonStateChangedObservable", {
get: function () {
return this.onPadStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onTouchpadButtonStateChangedObservable", {
get: function () {
return this.onTrackpadChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "onTouchpadValuesChangedObservable", {
get: function () {
return this.onTrackpadValuesChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._updateTrackpad = function () {
!this.browserGamepad.axes ||
(this.browserGamepad.axes[2] == this.trackpad.x && this.browserGamepad.axes[3] == this.trackpad.y) ||
((this.trackpad.x = this.browserGamepad.axes[this._mapping.axisMeshNames.indexOf("TOUCHPAD_TOUCH_X")]),
(this.trackpad.y = this.browserGamepad.axes[this._mapping.axisMeshNames.indexOf("TOUCHPAD_TOUCH_Y")]),
this.onTrackpadValuesChangedObservable.notifyObservers(this.trackpad));
}),
(t.prototype.update = function () {
if ((e.prototype.update.call(this), this.browserGamepad.axes && (this._updateTrackpad(), this._loadedMeshInfo)))
for (var t = 0; t < this._mapping.axisMeshNames.length; t++) this._lerpAxisTransform(t, this.browserGamepad.axes[t]);
}),
(t.prototype._handleButtonChange = function (e, t, n) {
var i = this._mapping.buttons[e];
if (i) {
this._updateTrackpad();
var r = this[this._mapping.buttonObservableNames[i]];
r && r.notifyObservers(t), this._lerpButtonTransform(i, t.value);
}
}),
(t.prototype._lerpButtonTransform = function (e, t) {
if (this._loadedMeshInfo) {
var n = this._loadedMeshInfo.buttonMeshes[e];
n &&
n.unpressed.rotationQuaternion &&
n.pressed.rotationQuaternion &&
n.value.rotationQuaternion &&
(a.b.SlerpToRef(n.unpressed.rotationQuaternion, n.pressed.rotationQuaternion, t, n.value.rotationQuaternion), a.e.LerpToRef(n.unpressed.position, n.pressed.position, t, n.value.position));
}
}),
(t.prototype._lerpAxisTransform = function (e, t) {
if (this._loadedMeshInfo) {
var n = this._loadedMeshInfo.axisMeshes[e];
if (n && n.min.rotationQuaternion && n.max.rotationQuaternion && n.value.rotationQuaternion) {
var i = 0.5 * t + 0.5;
a.b.SlerpToRef(n.min.rotationQuaternion, n.max.rotationQuaternion, i, n.value.rotationQuaternion), a.e.LerpToRef(n.min.position, n.max.position, i, n.value.position);
}
}
}),
(t.prototype.initControllerMesh = function (e, n, i) {
var r,
o,
a = this;
if ((void 0 === i && (i = !1), $i.a.IsPluginForExtensionAvailable(".glb"))) {
var s = "default";
if (this.id && !i) {
var c = this.id.match(t.GAMEPAD_ID_PATTERN);
s = (c && c[0]) || s;
}
(o = "left" === this.hand ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME), (r = t.MODEL_BASE_URL + s + "/");
} else g.a.Warn("You need to reference GLTF loader to load Windows Motion Controllers model. Falling back to generic models"), (r = nr.MODEL_BASE_URL), (o = nr.MODEL_FILENAME);
$i.a.ImportMesh(
"",
r,
o,
e,
function (t) {
(a._loadedMeshInfo = a.processModel(e, t)), a._loadedMeshInfo && ((a._defaultModel = a._loadedMeshInfo.rootNode), a.attachToMesh(a._defaultModel), n && n(a._defaultModel));
},
null,
function (e, t) {
g.a.Log(t), g.a.Warn("Failed to retrieve controller model from the remote server: " + r + o), i || a.initControllerMesh(e, n, !0);
}
);
}),
(t.prototype.processModel = function (e, t) {
for (var n = null, i = new Ee.a(this.id + " " + this.hand, e), r = null, o = 0; o < t.length; o++) {
var a = t[o];
if (!a.parent) {
(a.isPickable = !1), (r = a);
break;
}
}
return r ? (r.setParent(i), (n = this.createMeshInfo(i))) : g.a.Warn("Could not find root node in model file."), n;
}),
(t.prototype.createMeshInfo = function (e) {
var t,
n = new or();
for (n.rootNode = e, n.buttonMeshes = {}, n.axisMeshes = {}, t = 0; t < this._mapping.buttons.length; t++) {
var i = this._mapping.buttonMeshNames[this._mapping.buttons[t]];
if (i) {
var r = l(e, i);
if (r) {
var o = { index: t, value: u(r, "VALUE"), pressed: u(r, "PRESSED"), unpressed: u(r, "UNPRESSED") };
o.value && o.pressed && o.unpressed
? (n.buttonMeshes[this._mapping.buttons[t]] = o)
: g.a.Warn("Missing button submesh under mesh with name: " + i + "(VALUE: " + !!o.value + ", PRESSED: " + !!o.pressed + ", UNPRESSED:" + !!o.unpressed + ")");
} else g.a.Warn("Missing button mesh with name: " + i);
} else g.a.Log("Skipping unknown button at index: " + t + " with mapped name: " + this._mapping.buttons[t]);
}
for (t = 0; t < this._mapping.axisMeshNames.length; t++) {
var a = this._mapping.axisMeshNames[t];
if (a) {
var s = l(e, a);
if (s) {
var c = { index: t, value: u(s, "VALUE"), min: u(s, "MIN"), max: u(s, "MAX") };
c.value && c.min && c.max ? (n.axisMeshes[t] = c) : g.a.Warn("Missing axis submesh under mesh with name: " + a + "(VALUE: " + !!c.value + ", MIN: " + !!c.min + ", MAX:" + !!c.max + ")");
} else g.a.Warn("Missing axis mesh with name: " + a);
} else g.a.Log("Skipping unknown axis at index: " + t);
}
return (
(n.pointingPoseNode = l(e, this._mapping.pointingPoseMeshName)),
n.pointingPoseNode ? (this._pointingPoseNode = n.pointingPoseNode) : g.a.Warn("Missing pointing pose mesh with name: " + this._mapping.pointingPoseMeshName),
n
);
function l(e, t) {
return e.getChildren(function (e) {
return e.name === t;
}, !1)[0];
}
function u(e, t) {
return e.getChildren(function (e) {
return e.name == t;
}, !0)[0];
}
}),
(t.prototype.getForwardRay = function (t) {
if ((void 0 === t && (t = 100), !this._loadedMeshInfo || !this._loadedMeshInfo.pointingPoseNode)) return e.prototype.getForwardRay.call(this, t);
var n = this._loadedMeshInfo.pointingPoseNode.getWorldMatrix(),
i = n.getTranslation(),
r = new a.e(0, 0, -1),
o = a.e.TransformNormal(r, n),
s = a.e.Normalize(o);
return new Re(i, s, t);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onTrackpadChangedObservable.clear(), this.onTrackpadValuesChangedObservable.clear();
}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/microsoft/"),
(t.MODEL_LEFT_FILENAME = "left.glb"),
(t.MODEL_RIGHT_FILENAME = "right.glb"),
(t.GAMEPAD_ID_PREFIX = "Spatial Controller (Spatial Interaction Source) "),
(t.GAMEPAD_ID_PATTERN = /([0-9a-zA-Z]+-[0-9a-zA-Z]+)$/),
t
);
})(On),
sr = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (
(n._mapping = {
buttons: ["trigger", "grip", "trackpad", "thumbstick", "menu"],
buttonMeshNames: { trigger: "SELECT", menu: "MENU", grip: "GRASP", thumbstick: "THUMBSTICK_PRESS", trackpad: "TOUCHPAD_PRESS" },
buttonObservableNames: {
trigger: "onTriggerStateChangedObservable",
menu: "onSecondaryButtonStateChangedObservable",
grip: "onMainButtonStateChangedObservable",
thumbstick: "onThumbstickStateChangedObservable",
trackpad: "onTrackpadChangedObservable",
},
axisMeshNames: ["TOUCHPAD_TOUCH_X", "TOUCHPAD_TOUCH_Y", "THUMBSTICK_X", "THUMBSTICK_Y"],
pointingPoseMeshName: Ft.POINTING_POSE,
}),
(n.thumbstickValues = { x: 0, y: 0 }),
(n.onThumbstickStateChangedObservable = new o.c()),
(n.onThumbstickValuesChangedObservable = new o.c()),
(n.onTrackpadChangedObservable = n.onPadStateChangedObservable),
(n.onTrackpadValuesChangedObservable = n.onPadValuesChangedObservable),
n
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "onThumbstickButtonStateChangedObservable", {
get: function () {
return this.onThumbstickStateChangedObservable;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._updateTrackpad = function () {
!this.browserGamepad.axes ||
(this.browserGamepad.axes[2] == this.thumbstickValues.x && this.browserGamepad.axes[3] == this.thumbstickValues.y) ||
((this.trackpad.x = this.browserGamepad.axes[2]), (this.trackpad.y = this.browserGamepad.axes[3]), this.onThumbstickValuesChangedObservable.notifyObservers(this.trackpad));
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onThumbstickStateChangedObservable.clear(), this.onThumbstickValuesChangedObservable.clear();
}),
t
);
})(ar);
Lt._ControllerFactories.push({
canCreate: function (e) {
return 0 === e.id.indexOf(ar.GAMEPAD_ID_PREFIX);
},
create: function (e) {
return new ar(e);
},
});
var cr = (function (e) {
function t(t, n, i, r) {
void 0 === n && (n = s.a.Gray()), void 0 === i && (i = ci.a.DefaultUtilityLayer), void 0 === r && (r = null);
var c = e.call(this, i) || this;
(c._pointerObserver = null),
(c.snapDistance = 0),
(c.onSnapObservable = new o.c()),
(c.uniformScaling = !1),
(c.sensitivity = 1),
(c._isEnabled = !0),
(c._parent = null),
(c._parent = r),
(c._coloredMaterial = new Mn.a("", i.utilityLayerScene)),
(c._coloredMaterial.diffuseColor = n),
(c._coloredMaterial.specularColor = n.subtract(new s.a(0.1, 0.1, 0.1))),
(c._hoverMaterial = new Mn.a("", i.utilityLayerScene)),
(c._hoverMaterial.diffuseColor = n.add(new s.a(0.3, 0.3, 0.3))),
(c._arrow = new ke.a("", i.utilityLayerScene));
var l = fi.a.CreateBox("yPosMesh", { size: 0.4 }, i.utilityLayerScene),
u = jn.CreateCylinder("cylinder", { diameterTop: 0.005, height: 0.275, diameterBottom: 0.005, tessellation: 96 }, i.utilityLayerScene);
(u.material = c._coloredMaterial),
c._arrow.addChild(l),
c._arrow.addChild(u),
l.scaling.scaleInPlace(0.1),
(l.material = c._coloredMaterial),
(l.rotation.x = Math.PI / 2),
(l.position.z += 0.3),
(u.position.z += 0.1375),
(u.rotation.x = Math.PI / 2),
c._arrow.lookAt(c._rootMesh.position.add(t)),
c._rootMesh.addChild(c._arrow),
c._arrow.scaling.scaleInPlace(1 / 3),
(c.dragBehavior = new Fe({ dragAxis: t })),
(c.dragBehavior.moveAttached = !1),
c._rootMesh.addBehavior(c.dragBehavior);
var h = 0,
d = new a.e(),
p = { snapDistance: 0 };
c.dragBehavior.onDragObservable.add(function (e) {
if (c.attachedMesh) {
var n = c.sensitivity * e.dragDistance * ((3 * c.scaleRatio) / c._rootMesh.scaling.length()),
i = !1,
r = 0;
c.uniformScaling ? (c.attachedMesh.scaling.normalizeToRef(d), d.y < 0 && d.scaleInPlace(-1)) : d.copyFrom(t),
0 == c.snapDistance
? d.scaleToRef(n, d)
: ((h += n), Math.abs(h) > c.snapDistance ? ((r = Math.floor(Math.abs(h) / c.snapDistance)), h < 0 && (r *= -1), (h %= c.snapDistance), d.scaleToRef(c.snapDistance * r, d), (i = !0)) : d.scaleInPlace(0)),
c.attachedMesh.scaling.addInPlace(d),
i && ((p.snapDistance = c.snapDistance * r), c.onSnapObservable.notifyObservers(p));
}
}),
(c._pointerObserver = i.utilityLayerScene.onPointerObservable.add(function (e) {
if (!c._customMeshSet) {
var t = e.pickInfo && -1 != c._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? c._hoverMaterial : c._coloredMaterial;
c._rootMesh.getChildMeshes().forEach(function (e) {
(e.material = t), e.color && (e.color = t.diffuseColor);
});
}
}));
var f = i._getSharedGizmoLight();
return (f.includedOnlyMeshes = f.includedOnlyMeshes.concat(c._rootMesh.getChildMeshes())), c;
}
return (
Object(h.d)(t, e),
(t.prototype._attachedMeshChanged = function (e) {
this.dragBehavior && (this.dragBehavior.enabled = !!e);
}),
Object.defineProperty(t.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
(this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
this.onSnapObservable.clear(),
this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),
this.dragBehavior.detach(),
this._arrow && this._arrow.dispose(),
[this._coloredMaterial, this._hoverMaterial].forEach(function (e) {
e && e.dispose();
}),
e.prototype.dispose.call(this);
}),
(t.prototype.setCustomMesh = function (t, n) {
var i = this;
void 0 === n && (n = !1),
e.prototype.setCustomMesh.call(this, t),
n &&
(this._rootMesh.getChildMeshes().forEach(function (e) {
(e.material = i._coloredMaterial), e.color && (e.color = i._coloredMaterial.diffuseColor);
}),
(this._customMeshSet = !1));
}),
t
);
})(li),
lr = (function (e) {
function t(t, n) {
void 0 === t && (t = s.a.Gray()), void 0 === n && (n = ci.a.DefaultKeepDepthUtilityLayer);
var i = e.call(this, n) || this;
(i._boundingDimensions = new a.e(1, 1, 1)),
(i._renderObserver = null),
(i._pointerObserver = null),
(i._scaleDragSpeed = 0.2),
(i._tmpQuaternion = new a.b()),
(i._tmpVector = new a.e(0, 0, 0)),
(i._tmpRotationMatrix = new a.a()),
(i.ignoreChildren = !1),
(i.includeChildPredicate = null),
(i.rotationSphereSize = 0.1),
(i.scaleBoxSize = 0.1),
(i.fixedDragMeshScreenSize = !1),
(i.fixedDragMeshScreenSizeDistanceFactor = 10),
(i.onDragStartObservable = new o.c()),
(i.onScaleBoxDragObservable = new o.c()),
(i.onScaleBoxDragEndObservable = new o.c()),
(i.onRotationSphereDragObservable = new o.c()),
(i.onRotationSphereDragEndObservable = new o.c()),
(i.scalePivot = null),
(i._existingMeshScale = new a.e()),
(i._dragMesh = null),
(i.pointerDragBehavior = new Fe()),
(i.updateScale = !1),
(i._anchorMesh = new ke.a("anchor", n.utilityLayerScene)),
(i.coloredMaterial = new Mn.a("", n.utilityLayerScene)),
(i.coloredMaterial.disableLighting = !0),
(i.hoverColoredMaterial = new Mn.a("", n.utilityLayerScene)),
(i.hoverColoredMaterial.disableLighting = !0),
(i._lineBoundingBox = new ke.a("", n.utilityLayerScene)),
(i._lineBoundingBox.rotationQuaternion = new a.b());
var r = [];
r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, 0), new a.e(i._boundingDimensions.x, 0, 0)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, 0), new a.e(0, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, 0), new a.e(0, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, 0, 0), new a.e(i._boundingDimensions.x, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, 0, 0), new a.e(i._boundingDimensions.x, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(0, i._boundingDimensions.y, 0), new a.e(i._boundingDimensions.x, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(0, i._boundingDimensions.y, 0), new a.e(0, i._boundingDimensions.y, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, i._boundingDimensions.z), new a.e(i._boundingDimensions.x, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, i._boundingDimensions.z), new a.e(0, i._boundingDimensions.y, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, i._boundingDimensions.y, i._boundingDimensions.z), new a.e(0, i._boundingDimensions.y, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, i._boundingDimensions.y, i._boundingDimensions.z), new a.e(i._boundingDimensions.x, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)),
r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, i._boundingDimensions.y, i._boundingDimensions.z), new a.e(i._boundingDimensions.x, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)),
r.forEach(function (e) {
(e.color = t), e.position.addInPlace(new a.e(-i._boundingDimensions.x / 2, -i._boundingDimensions.y / 2, -i._boundingDimensions.z / 2)), (e.isPickable = !1), i._lineBoundingBox.addChild(e);
}),
i._rootMesh.addChild(i._lineBoundingBox),
i.setColor(t),
(i._rotateSpheresParent = new ke.a("", n.utilityLayerScene)),
(i._rotateSpheresParent.rotationQuaternion = new a.b());
for (
var c = function (e) {
var t = mi.CreateSphere("", { diameter: 1 }, n.utilityLayerScene);
(t.rotationQuaternion = new a.b()), (t.material = l.coloredMaterial), ((p = new Fe({})).moveAttached = !1), (p.updateDragPlane = !1), t.addBehavior(p);
var r = new a.e(1, 0, 0),
o = 0;
p.onDragStartObservable.add(function () {
r.copyFrom(t.forward), (o = 0);
}),
p.onDragObservable.add(function (t) {
if ((i.onRotationSphereDragObservable.notifyObservers({}), i.attachedMesh)) {
var n = i.attachedMesh.parent;
if (n && n.scaling && n.scaling.isNonUniformWithinEpsilon(0.001)) return void g.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");
we._RemoveAndStorePivotPoint(i.attachedMesh);
var s = r,
c = t.dragPlaneNormal.scale(a.e.Dot(t.dragPlaneNormal, s)),
l = s.subtract(c).normalizeToNew(),
u = a.e.Dot(l, t.delta) < 0 ? Math.abs(t.delta.length()) : -Math.abs(t.delta.length());
(u = (u / i._boundingDimensions.length()) * i._anchorMesh.scaling.length()),
i.attachedMesh.rotationQuaternion || (i.attachedMesh.rotationQuaternion = a.b.RotationYawPitchRoll(i.attachedMesh.rotation.y, i.attachedMesh.rotation.x, i.attachedMesh.rotation.z)),
i._anchorMesh.rotationQuaternion || (i._anchorMesh.rotationQuaternion = a.b.RotationYawPitchRoll(i._anchorMesh.rotation.y, i._anchorMesh.rotation.x, i._anchorMesh.rotation.z)),
(o += u),
Math.abs(o) <= 2 * Math.PI &&
(e >= 8
? a.b.RotationYawPitchRollToRef(0, 0, u, i._tmpQuaternion)
: e >= 4
? a.b.RotationYawPitchRollToRef(u, 0, 0, i._tmpQuaternion)
: a.b.RotationYawPitchRollToRef(0, u, 0, i._tmpQuaternion),
i._anchorMesh.addChild(i.attachedMesh),
i._anchorMesh.rotationQuaternion.multiplyToRef(i._tmpQuaternion, i._anchorMesh.rotationQuaternion),
i._anchorMesh.removeChild(i.attachedMesh),
i.attachedMesh.setParent(n)),
i.updateBoundingBox(),
we._RestorePivotPoint(i.attachedMesh);
}
i._updateDummy();
}),
p.onDragStartObservable.add(function () {
i.onDragStartObservable.notifyObservers({}), i._selectNode(t);
}),
p.onDragEndObservable.add(function () {
i.onRotationSphereDragEndObservable.notifyObservers({}), i._selectNode(null), i._updateDummy();
}),
l._rotateSpheresParent.addChild(t);
},
l = this,
u = 0;
u < 12;
u++
)
c(u);
i._rootMesh.addChild(i._rotateSpheresParent), (i._scaleBoxesParent = new ke.a("", n.utilityLayerScene)), (i._scaleBoxesParent.rotationQuaternion = new a.b());
for (var h = 0; h < 2; h++)
for (var d = 0; d < 2; d++)
for (
var p,
f = function () {
var e = fi.a.CreateBox("", { size: 1 }, n.utilityLayerScene);
e.material = m.coloredMaterial;
var t = new a.e(0 == h ? -1 : 1, 0 == d ? -1 : 1, 0 == b ? -1 : 1);
((p = new Fe({ dragAxis: t })).moveAttached = !1),
e.addBehavior(p),
p.onDragObservable.add(function (t) {
if ((i.onScaleBoxDragObservable.notifyObservers({}), i.attachedMesh)) {
var n = i.attachedMesh.parent;
if (n && n.scaling && n.scaling.isNonUniformWithinEpsilon(0.001)) return void g.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");
we._RemoveAndStorePivotPoint(i.attachedMesh);
var r = (t.dragDistance / i._boundingDimensions.length()) * i._anchorMesh.scaling.length(),
o = new a.e(r, r, r);
o.scaleInPlace(i._scaleDragSpeed),
i.updateBoundingBox(),
i.scalePivot
? (i.attachedMesh.getWorldMatrix().getRotationMatrixToRef(i._tmpRotationMatrix),
i._boundingDimensions.scaleToRef(0.5, i._tmpVector),
a.e.TransformCoordinatesToRef(i._tmpVector, i._tmpRotationMatrix, i._tmpVector),
i._anchorMesh.position.subtractInPlace(i._tmpVector),
i._boundingDimensions.multiplyToRef(i.scalePivot, i._tmpVector),
a.e.TransformCoordinatesToRef(i._tmpVector, i._tmpRotationMatrix, i._tmpVector),
i._anchorMesh.position.addInPlace(i._tmpVector))
: (e.absolutePosition.subtractToRef(i._anchorMesh.position, i._tmpVector), i._anchorMesh.position.subtractInPlace(i._tmpVector)),
i._anchorMesh.addChild(i.attachedMesh),
i._anchorMesh.scaling.addInPlace(o),
(i._anchorMesh.scaling.x < 0 || i._anchorMesh.scaling.y < 0 || i._anchorMesh.scaling.z < 0) && i._anchorMesh.scaling.subtractInPlace(o),
i._anchorMesh.removeChild(i.attachedMesh),
i.attachedMesh.setParent(n),
we._RestorePivotPoint(i.attachedMesh);
}
i._updateDummy();
}),
p.onDragStartObservable.add(function () {
i.onDragStartObservable.notifyObservers({}), i._selectNode(e);
}),
p.onDragEndObservable.add(function () {
i.onScaleBoxDragEndObservable.notifyObservers({}), i._selectNode(null), i._updateDummy();
}),
m._scaleBoxesParent.addChild(e);
},
m = this,
b = 0;
b < 2;
b++
)
f();
i._rootMesh.addChild(i._scaleBoxesParent);
var _ = new Array();
return (
(i._pointerObserver = n.utilityLayerScene.onPointerObservable.add(function (e) {
_[e.event.pointerId]
? e.pickInfo && e.pickInfo.pickedMesh != _[e.event.pointerId] && ((_[e.event.pointerId].material = i.coloredMaterial), delete _[e.event.pointerId])
: i._rotateSpheresParent
.getChildMeshes()
.concat(i._scaleBoxesParent.getChildMeshes())
.forEach(function (t) {
e.pickInfo && e.pickInfo.pickedMesh == t && ((_[e.event.pointerId] = t), (t.material = i.hoverColoredMaterial));
});
})),
(i._renderObserver = i.gizmoLayer.originalScene.onBeforeRenderObservable.add(function () {
i.attachedMesh && !i._existingMeshScale.equals(i.attachedMesh.scaling) ? i.updateBoundingBox() : i.fixedDragMeshScreenSize && (i._updateRotationSpheres(), i._updateScaleBoxes()),
i._dragMesh &&
i.attachedMesh &&
i.pointerDragBehavior.dragging &&
(i._lineBoundingBox.position.rotateByQuaternionToRef(i._rootMesh.rotationQuaternion, i._tmpVector), i.attachedMesh.setAbsolutePosition(i._dragMesh.position.add(i._tmpVector.scale(-1))));
})),
i.updateBoundingBox(),
i
);
}
return (
Object(h.d)(t, e),
(t.prototype.setColor = function (e) {
(this.coloredMaterial.emissiveColor = e),
(this.hoverColoredMaterial.emissiveColor = e.clone().add(new s.a(0.3, 0.3, 0.3))),
this._lineBoundingBox.getChildren().forEach(function (t) {
t.color && (t.color = e);
});
}),
(t.prototype._attachedMeshChanged = function (e) {
var t = this;
if (e) {
we._RemoveAndStorePivotPoint(e);
var n = e.parent;
this._anchorMesh.addChild(e),
this._anchorMesh.removeChild(e),
e.setParent(n),
we._RestorePivotPoint(e),
this.updateBoundingBox(),
e.getChildMeshes(!1).forEach(function (e) {
e.markAsDirty("scaling");
}),
this.gizmoLayer.utilityLayerScene.onAfterRenderObservable.addOnce(function () {
t._updateDummy();
});
}
}),
(t.prototype._selectNode = function (e) {
this._rotateSpheresParent
.getChildMeshes()
.concat(this._scaleBoxesParent.getChildMeshes())
.forEach(function (t) {
t.isVisible = !e || t == e;
});
}),
(t.prototype.updateBoundingBox = function () {
if (this.attachedMesh) {
we._RemoveAndStorePivotPoint(this.attachedMesh);
var e = this.attachedMesh.parent;
this.attachedMesh.setParent(null);
var t = null;
this.attachedMesh.skeleton && ((t = this.attachedMesh.skeleton.overrideMesh), (this.attachedMesh.skeleton.overrideMesh = null)),
this._update(),
this.attachedMesh.rotationQuaternion || (this.attachedMesh.rotationQuaternion = a.b.RotationYawPitchRoll(this.attachedMesh.rotation.y, this.attachedMesh.rotation.x, this.attachedMesh.rotation.z)),
this._anchorMesh.rotationQuaternion || (this._anchorMesh.rotationQuaternion = a.b.RotationYawPitchRoll(this._anchorMesh.rotation.y, this._anchorMesh.rotation.x, this._anchorMesh.rotation.z)),
this._anchorMesh.rotationQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),
this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),
this._tmpVector.copyFrom(this.attachedMesh.position),
this.attachedMesh.rotationQuaternion.set(0, 0, 0, 1),
this.attachedMesh.position.set(0, 0, 0);
var n = this.attachedMesh.getHierarchyBoundingVectors(!this.ignoreChildren, this.includeChildPredicate);
n.max.subtractToRef(n.min, this._boundingDimensions),
this._lineBoundingBox.scaling.copyFrom(this._boundingDimensions),
this._lineBoundingBox.position.set((n.max.x + n.min.x) / 2, (n.max.y + n.min.y) / 2, (n.max.z + n.min.z) / 2),
this._rotateSpheresParent.position.copyFrom(this._lineBoundingBox.position),
this._scaleBoxesParent.position.copyFrom(this._lineBoundingBox.position),
this._lineBoundingBox.computeWorldMatrix(),
this._anchorMesh.position.copyFrom(this._lineBoundingBox.absolutePosition),
this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion),
this.attachedMesh.position.copyFrom(this._tmpVector),
this.attachedMesh.setParent(e),
this.attachedMesh.skeleton && (this.attachedMesh.skeleton.overrideMesh = t);
}
this._updateRotationSpheres(), this._updateScaleBoxes(), this.attachedMesh && (this._existingMeshScale.copyFrom(this.attachedMesh.scaling), we._RestorePivotPoint(this.attachedMesh));
}),
(t.prototype._updateRotationSpheres = function () {
for (var e = this._rotateSpheresParent.getChildMeshes(), t = 0; t < 3; t++)
for (var n = 0; n < 2; n++)
for (var i = 0; i < 2; i++) {
var r = 4 * t + 2 * n + i;
if (
(0 == t &&
(e[r].position.set(this._boundingDimensions.x / 2, this._boundingDimensions.y * n, this._boundingDimensions.z * i),
e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)),
e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(), a.e.Right()).normalizeToNew().add(e[r].position))),
1 == t &&
(e[r].position.set(this._boundingDimensions.x * n, this._boundingDimensions.y / 2, this._boundingDimensions.z * i),
e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)),
e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(), a.e.Up()).normalizeToNew().add(e[r].position))),
2 == t &&
(e[r].position.set(this._boundingDimensions.x * n, this._boundingDimensions.y * i, this._boundingDimensions.z / 2),
e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)),
e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(), a.e.Forward()).normalizeToNew().add(e[r].position))),
this.fixedDragMeshScreenSize && this.gizmoLayer.utilityLayerScene.activeCamera)
) {
e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position, this._tmpVector);
var o = (this.rotationSphereSize * this._tmpVector.length()) / this.fixedDragMeshScreenSizeDistanceFactor;
e[r].scaling.set(o, o, o);
} else e[r].scaling.set(this.rotationSphereSize, this.rotationSphereSize, this.rotationSphereSize);
}
}),
(t.prototype._updateScaleBoxes = function () {
for (var e = this._scaleBoxesParent.getChildMeshes(), t = 0; t < 2; t++)
for (var n = 0; n < 2; n++)
for (var i = 0; i < 2; i++) {
var r = 4 * t + 2 * n + i;
if (e[r])
if (
(e[r].position.set(this._boundingDimensions.x * t, this._boundingDimensions.y * n, this._boundingDimensions.z * i),
e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)),
this.fixedDragMeshScreenSize && this.gizmoLayer.utilityLayerScene.activeCamera)
) {
e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position, this._tmpVector);
var o = (this.scaleBoxSize * this._tmpVector.length()) / this.fixedDragMeshScreenSizeDistanceFactor;
e[r].scaling.set(o, o, o);
} else e[r].scaling.set(this.scaleBoxSize, this.scaleBoxSize, this.scaleBoxSize);
}
}),
(t.prototype.setEnabledRotationAxis = function (e) {
this._rotateSpheresParent.getChildMeshes().forEach(function (t, n) {
n < 4 ? t.setEnabled(-1 != e.indexOf("x")) : n < 8 ? t.setEnabled(-1 != e.indexOf("y")) : t.setEnabled(-1 != e.indexOf("z"));
});
}),
(t.prototype.setEnabledScaling = function (e) {
this._scaleBoxesParent.getChildMeshes().forEach(function (t, n) {
t.setEnabled(e);
});
}),
(t.prototype._updateDummy = function () {
this._dragMesh &&
(this._dragMesh.position.copyFrom(this._lineBoundingBox.getAbsolutePosition()),
this._dragMesh.scaling.copyFrom(this._lineBoundingBox.scaling),
this._dragMesh.rotationQuaternion.copyFrom(this._rootMesh.rotationQuaternion));
}),
(t.prototype.enableDragBehavior = function () {
(this._dragMesh = Ee.a.CreateBox("dummy", 1, this.gizmoLayer.utilityLayerScene)),
(this._dragMesh.visibility = 0),
(this._dragMesh.rotationQuaternion = new a.b()),
(this.pointerDragBehavior.useObjectOrientationForDragging = !1),
this._dragMesh.addBehavior(this.pointerDragBehavior);
}),
(t.prototype.dispose = function () {
this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),
this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver),
this._lineBoundingBox.dispose(),
this._rotateSpheresParent.dispose(),
this._scaleBoxesParent.dispose(),
this._dragMesh && this._dragMesh.dispose(),
e.prototype.dispose.call(this);
}),
(t.MakeNotPickableAndWrapInBoundingBox = function (e) {
var t = function (e) {
(e.isPickable = !1),
e.getChildMeshes().forEach(function (e) {
t(e);
});
};
t(e), e.rotationQuaternion || (e.rotationQuaternion = a.b.RotationYawPitchRoll(e.rotation.y, e.rotation.x, e.rotation.z));
var n = e.position.clone(),
i = e.rotationQuaternion.clone();
e.rotationQuaternion.set(0, 0, 0, 1), e.position.set(0, 0, 0);
var r = fi.a.CreateBox("box", { size: 1 }, e.getScene()),
o = e.getHierarchyBoundingVectors();
return (
o.max.subtractToRef(o.min, r.scaling),
0 === r.scaling.y && (r.scaling.y = j.a),
0 === r.scaling.x && (r.scaling.x = j.a),
0 === r.scaling.z && (r.scaling.z = j.a),
r.position.set((o.max.x + o.min.x) / 2, (o.max.y + o.min.y) / 2, (o.max.z + o.min.z) / 2),
e.addChild(r),
e.rotationQuaternion.copyFrom(i),
e.position.copyFrom(n),
e.removeChild(r),
r.addChild(e),
(r.visibility = 0),
r
);
}),
(t.prototype.setCustomMesh = function (e) {
g.a.Error("Custom meshes are not supported on this gizmo");
}),
t
);
})(li),
ur = (function (e) {
function t(t, n, i, r, c, l) {
void 0 === n && (n = s.a.Gray()), void 0 === i && (i = ci.a.DefaultUtilityLayer), void 0 === r && (r = 32), void 0 === c && (c = null), void 0 === l && (l = !1);
var u = e.call(this, i) || this;
(u._pointerObserver = null), (u.snapDistance = 0), (u.onSnapObservable = new o.c()), (u._isEnabled = !0), (u._parent = null), (u._parent = c);
var h = new Mn.a("", i.utilityLayerScene);
(h.diffuseColor = n), (h.specularColor = n.subtract(new s.a(0.1, 0.1, 0.1)));
var d = new Mn.a("", i.utilityLayerScene);
d.diffuseColor = n.add(new s.a(0.3, 0.3, 0.3));
var p = new ke.a("", i.utilityLayerScene),
f = Ee.a.CreateTorus("", 0.6, 0.03, r, i.utilityLayerScene);
f.visibility = 0;
var m = Ee.a.CreateTorus("", 0.6, 0.005, r, i.utilityLayerScene);
(m.material = h),
(m.rotation.x = Math.PI / 2),
(f.rotation.x = Math.PI / 2),
p.addChild(m),
p.addChild(f),
p.lookAt(u._rootMesh.position.add(t)),
u._rootMesh.addChild(p),
p.scaling.scaleInPlace(1 / 3),
(u.dragBehavior = new Fe({ dragPlaneNormal: t })),
(u.dragBehavior.moveAttached = !1),
(u.dragBehavior.maxDragAngle = (9 * Math.PI) / 20),
(u.dragBehavior._useAlternatePickedPointAboveMaxDragAngle = !0),
u._rootMesh.addBehavior(u.dragBehavior);
var g = new a.e();
u.dragBehavior.onDragStartObservable.add(function (e) {
u.attachedMesh && g.copyFrom(e.dragPlanePoint);
});
var b = new a.a(),
_ = new a.e(),
v = new a.e(),
y = { snapDistance: 0 },
C = 0,
P = new a.a(),
x = new a.e(),
T = new a.b();
u.dragBehavior.onDragObservable.add(function (e) {
if (u.attachedMesh) {
(u.attachedMesh.rotationQuaternion && !l) || (u.attachedMesh.rotationQuaternion = a.b.RotationYawPitchRoll(u.attachedMesh.rotation.y, u.attachedMesh.rotation.x, u.attachedMesh.rotation.z));
var n = u.attachedMesh.parent;
n && u.attachedMesh.setParent(null);
var r = e.dragPlanePoint.subtract(u.attachedMesh.absolutePosition).normalize(),
o = g.subtract(u.attachedMesh.absolutePosition).normalize(),
s = a.e.Cross(r, o),
c = a.e.Dot(r, o),
h = Math.atan2(s.length(), c);
if ((_.copyFrom(t), v.copyFrom(t), u.updateGizmoRotationToMatchAttachedMesh && (u.attachedMesh.rotationQuaternion.toRotationMatrix(b), (v = a.e.TransformCoordinates(_, b))), i.utilityLayerScene.activeCamera)) {
var d = i.utilityLayerScene.activeCamera.position.subtract(u.attachedMesh.position);
a.e.Dot(d, v) > 0 && (_.scaleInPlace(-1), v.scaleInPlace(-1));
}
a.e.Dot(v, s) > 0 && (h = -h);
var p = !1;
if (0 != u.snapDistance)
if (((C += h), Math.abs(C) > u.snapDistance)) {
var f = Math.floor(Math.abs(C) / u.snapDistance);
C < 0 && (f *= -1), (C %= u.snapDistance), (h = u.snapDistance * f), (p = !0);
} else h = 0;
P.reset(), u.attachedMesh.parent && (u.attachedMesh.parent.computeWorldMatrix().invertToRef(P), P.getRotationMatrixToRef(P), a.e.TransformCoordinatesToRef(_, P, _));
var m = Math.sin(h / 2);
T.set(_.x * m, _.y * m, _.z * m, Math.cos(h / 2)),
P.determinant() > 0 && (T.toEulerAnglesToRef(x), a.b.RotationYawPitchRollToRef(x.y, -x.x, -x.z, T)),
u.updateGizmoRotationToMatchAttachedMesh
? u.attachedMesh.rotationQuaternion.multiplyToRef(T, u.attachedMesh.rotationQuaternion)
: T.multiplyToRef(u.attachedMesh.rotationQuaternion, u.attachedMesh.rotationQuaternion),
l && (u.attachedMesh.rotationQuaternion.toEulerAnglesToRef(x), (u.attachedMesh.rotationQuaternion = null), u.attachedMesh.rotation.copyFrom(x)),
g.copyFrom(e.dragPlanePoint),
p && ((y.snapDistance = h), u.onSnapObservable.notifyObservers(y)),
n && u.attachedMesh.setParent(n);
}
}),
(u._pointerObserver = i.utilityLayerScene.onPointerObservable.add(function (e) {
if (!u._customMeshSet) {
var t = e.pickInfo && -1 != u._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? d : h;
u._rootMesh.getChildMeshes().forEach(function (e) {
(e.material = t), e.color && (e.color = t.diffuseColor);
});
}
}));
var S = i._getSharedGizmoLight();
return (S.includedOnlyMeshes = S.includedOnlyMeshes.concat(u._rootMesh.getChildMeshes(!1))), u;
}
return (
Object(h.d)(t, e),
(t.prototype._attachedMeshChanged = function (e) {
this.dragBehavior && (this.dragBehavior.enabled = !!e);
}),
Object.defineProperty(t.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
(this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), e.prototype.dispose.call(this);
}),
t
);
})(li),
hr = (function (e) {
function t(t, n, i) {
void 0 === t && (t = ci.a.DefaultUtilityLayer), void 0 === n && (n = 32), void 0 === i && (i = !1);
var r = e.call(this, t) || this;
return (
(r.onDragStartObservable = new o.c()),
(r.onDragEndObservable = new o.c()),
(r.xGizmo = new ur(new a.e(1, 0, 0), s.a.Red().scale(0.5), t, n, r, i)),
(r.yGizmo = new ur(new a.e(0, 1, 0), s.a.Green().scale(0.5), t, n, r, i)),
(r.zGizmo = new ur(new a.e(0, 0, 1), s.a.Blue().scale(0.5), t, n, r, i)),
[r.xGizmo, r.yGizmo, r.zGizmo].forEach(function (e) {
e.dragBehavior.onDragStartObservable.add(function () {
r.onDragStartObservable.notifyObservers({});
}),
e.dragBehavior.onDragEndObservable.add(function () {
r.onDragEndObservable.notifyObservers({});
});
}),
(r.attachedMesh = null),
r
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "attachedMesh", {
get: function () {
return this._meshAttached;
},
set: function (e) {
(this._meshAttached = e),
[this.xGizmo, this.yGizmo, this.zGizmo].forEach(function (t) {
t.isEnabled ? (t.attachedMesh = e) : (t.attachedMesh = null);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "updateGizmoRotationToMatchAttachedMesh", {
get: function () {
return this.xGizmo.updateGizmoRotationToMatchAttachedMesh;
},
set: function (e) {
this.xGizmo && ((this.xGizmo.updateGizmoRotationToMatchAttachedMesh = e), (this.yGizmo.updateGizmoRotationToMatchAttachedMesh = e), (this.zGizmo.updateGizmoRotationToMatchAttachedMesh = e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "snapDistance", {
get: function () {
return this.xGizmo.snapDistance;
},
set: function (e) {
this.xGizmo && ((this.xGizmo.snapDistance = e), (this.yGizmo.snapDistance = e), (this.zGizmo.snapDistance = e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "scaleRatio", {
get: function () {
return this.xGizmo.scaleRatio;
},
set: function (e) {
this.xGizmo && ((this.xGizmo.scaleRatio = e), (this.yGizmo.scaleRatio = e), (this.zGizmo.scaleRatio = e));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
this.xGizmo.dispose(), this.yGizmo.dispose(), this.zGizmo.dispose(), this.onDragStartObservable.clear(), this.onDragEndObservable.clear();
}),
(t.prototype.setCustomMesh = function (e) {
g.a.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)");
}),
t
);
})(li),
dr = (function (e) {
function t(n, i, r, c) {
void 0 === i && (i = s.a.Gray()), void 0 === r && (r = ci.a.DefaultUtilityLayer), void 0 === c && (c = null);
var l = e.call(this, r) || this;
(l._pointerObserver = null),
(l.snapDistance = 0),
(l.onSnapObservable = new o.c()),
(l._isEnabled = !1),
(l._parent = null),
(l._parent = c),
(l._coloredMaterial = new Mn.a("", r.utilityLayerScene)),
(l._coloredMaterial.diffuseColor = i),
(l._coloredMaterial.specularColor = i.subtract(new s.a(0.1, 0.1, 0.1))),
(l._hoverMaterial = new Mn.a("", r.utilityLayerScene)),
(l._hoverMaterial.diffuseColor = i.add(new s.a(0.3, 0.3, 0.3))),
(l._plane = t._CreatePlane(r.utilityLayerScene, l._coloredMaterial)),
l._plane.lookAt(l._rootMesh.position.add(n)),
l._plane.scaling.scaleInPlace(1 / 3),
(l._plane.parent = l._rootMesh);
var u = 0,
h = new a.e(),
d = { snapDistance: 0 };
(l.dragBehavior = new Fe({ dragPlaneNormal: n })), (l.dragBehavior.moveAttached = !1), l._rootMesh.addBehavior(l.dragBehavior);
var p = new a.e(),
f = new a.a();
l.dragBehavior.onDragObservable.add(function (e) {
if (l.attachedMesh)
if (
(l.attachedMesh.parent ? (l.attachedMesh.parent.computeWorldMatrix().invertToRef(f), f.setTranslationFromFloats(0, 0, 0), a.e.TransformCoordinatesToRef(e.delta, f, p)) : p.copyFrom(e.delta),
0 == l.snapDistance)
)
l.attachedMesh.position.addInPlace(p);
else if (((u += e.dragDistance), Math.abs(u) > l.snapDistance)) {
var t = Math.floor(Math.abs(u) / l.snapDistance);
(u %= l.snapDistance), p.normalizeToRef(h), h.scaleInPlace(l.snapDistance * t), l.attachedMesh.position.addInPlace(h), (d.snapDistance = l.snapDistance * t), l.onSnapObservable.notifyObservers(d);
}
}),
(l._pointerObserver = r.utilityLayerScene.onPointerObservable.add(function (e) {
if (!l._customMeshSet) {
var t = e.pickInfo && -1 != l._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? l._hoverMaterial : l._coloredMaterial;
l._rootMesh.getChildMeshes().forEach(function (e) {
e.material = t;
});
}
}));
var m = r._getSharedGizmoLight();
return (m.includedOnlyMeshes = m.includedOnlyMeshes.concat(l._rootMesh.getChildMeshes(!1))), l;
}
return (
Object(h.d)(t, e),
(t._CreatePlane = function (e, t) {
var n = new si.a("plane", e),
i = Le.a.CreatePlane("dragPlane", { width: 0.1375, height: 0.1375, sideOrientation: 2 }, e);
return (i.material = t), (i.parent = n), (i.material = t), n;
}),
(t._CreateArrowInstance = function (e, t) {
for (var n = new si.a("arrow", e), i = 0, r = t.getChildMeshes(); i < r.length; i++) {
var o = r[i];
o.createInstance(o.name).parent = n;
}
return n;
}),
(t.prototype._attachedMeshChanged = function (e) {
this.dragBehavior && (this.dragBehavior.enabled = !!e);
}),
Object.defineProperty(t.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
(this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
this.onSnapObservable.clear(),
this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),
this.dragBehavior.detach(),
e.prototype.dispose.call(this),
this._plane && this._plane.dispose(),
[this._coloredMaterial, this._hoverMaterial].forEach(function (e) {
e && e.dispose();
});
}),
t
);
})(li),
pr = (function (e) {
function t(t) {
void 0 === t && (t = ci.a.DefaultUtilityLayer);
var n = e.call(this, t) || this;
return (
(n._meshAttached = null),
(n.onDragStartObservable = new o.c()),
(n.onDragEndObservable = new o.c()),
(n._planarGizmoEnabled = !1),
(n.xGizmo = new ui(new a.e(1, 0, 0), s.a.Red().scale(0.5), t, n)),
(n.yGizmo = new ui(new a.e(0, 1, 0), s.a.Green().scale(0.5), t, n)),
(n.zGizmo = new ui(new a.e(0, 0, 1), s.a.Blue().scale(0.5), t, n)),
(n.xPlaneGizmo = new dr(new a.e(1, 0, 0), s.a.Red().scale(0.5), n.gizmoLayer, n)),
(n.yPlaneGizmo = new dr(new a.e(0, 1, 0), s.a.Green().scale(0.5), n.gizmoLayer, n)),
(n.zPlaneGizmo = new dr(new a.e(0, 0, 1), s.a.Blue().scale(0.5), n.gizmoLayer, n)),
[n.xGizmo, n.yGizmo, n.zGizmo, n.xPlaneGizmo, n.yPlaneGizmo, n.zPlaneGizmo].forEach(function (e) {
e.dragBehavior.onDragStartObservable.add(function () {
n.onDragStartObservable.notifyObservers({});
}),
e.dragBehavior.onDragEndObservable.add(function () {
n.onDragEndObservable.notifyObservers({});
});
}),
(n.attachedMesh = null),
n
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "attachedMesh", {
get: function () {
return this._meshAttached;
},
set: function (e) {
(this._meshAttached = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) {
t.isEnabled ? (t.attachedMesh = e) : (t.attachedMesh = null);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "planarGizmoEnabled", {
get: function () {
return this._planarGizmoEnabled;
},
set: function (e) {
var t = this;
(this._planarGizmoEnabled = e),
[this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (n) {
n && ((n.isEnabled = e), e && (n.attachedMesh = t.attachedMesh));
}, this);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "updateGizmoRotationToMatchAttachedMesh", {
get: function () {
return this._updateGizmoRotationToMatchAttachedMesh;
},
set: function (e) {
(this._updateGizmoRotationToMatchAttachedMesh = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) {
t && (t.updateGizmoRotationToMatchAttachedMesh = e);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "snapDistance", {
get: function () {
return this._snapDistance;
},
set: function (e) {
(this._snapDistance = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) {
t && (t.snapDistance = e);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "scaleRatio", {
get: function () {
return this._scaleRatio;
},
set: function (e) {
(this._scaleRatio = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) {
t && (t.scaleRatio = e);
});
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
[this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (e) {
e && e.dispose();
}),
this.onDragStartObservable.clear(),
this.onDragEndObservable.clear();
}),
(t.prototype.setCustomMesh = function (e) {
g.a.Error(
"Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo,gizmo.xPlaneGizmo, gizmo.yPlaneGizmo, gizmo.zPlaneGizmo)"
);
}),
t
);
})(li);
(Rn.a.CreatePolyhedron = function (e) {
var t = [];
(t[0] = {
vertex: [
[0, 0, 1.732051],
[1.632993, 0, -0.5773503],
[-0.8164966, 1.414214, -0.5773503],
[-0.8164966, -1.414214, -0.5773503],
],
face: [
[0, 1, 2],
[0, 2, 3],
[0, 3, 1],
[1, 3, 2],
],
}),
(t[1] = {
vertex: [
[0, 0, 1.414214],
[1.414214, 0, 0],
[0, 1.414214, 0],
[-1.414214, 0, 0],
[0, -1.414214, 0],
[0, 0, -1.414214],
],
face: [
[0, 1, 2],
[0, 2, 3],
[0, 3, 4],
[0, 4, 1],
[1, 4, 5],
[1, 5, 2],
[2, 5, 3],
[3, 5, 4],
],
}),
(t[2] = {
vertex: [
[0, 0, 1.070466],
[0.7136442, 0, 0.7978784],
[-0.3568221, 0.618034, 0.7978784],
[-0.3568221, -0.618034, 0.7978784],
[0.7978784, 0.618034, 0.3568221],
[0.7978784, -0.618034, 0.3568221],
[-0.9341724, 0.381966, 0.3568221],
[0.1362939, 1, 0.3568221],
[0.1362939, -1, 0.3568221],
[-0.9341724, -0.381966, 0.3568221],
[0.9341724, 0.381966, -0.3568221],
[0.9341724, -0.381966, -0.3568221],
[-0.7978784, 0.618034, -0.3568221],
[-0.1362939, 1, -0.3568221],
[-0.1362939, -1, -0.3568221],
[-0.7978784, -0.618034, -0.3568221],
[0.3568221, 0.618034, -0.7978784],
[0.3568221, -0.618034, -0.7978784],
[-0.7136442, 0, -0.7978784],
[0, 0, -1.070466],
],
face: [
[0, 1, 4, 7, 2],
[0, 2, 6, 9, 3],
[0, 3, 8, 5, 1],
[1, 5, 11, 10, 4],
[2, 7, 13, 12, 6],
[3, 9, 15, 14, 8],
[4, 10, 16, 13, 7],
[5, 8, 14, 17, 11],
[6, 12, 18, 15, 9],
[10, 11, 17, 19, 16],
[12, 13, 16, 19, 18],
[14, 15, 18, 19, 17],
],
}),
(t[3] = {
vertex: [
[0, 0, 1.175571],
[1.051462, 0, 0.5257311],
[0.3249197, 1, 0.5257311],
[-0.8506508, 0.618034, 0.5257311],
[-0.8506508, -0.618034, 0.5257311],
[0.3249197, -1, 0.5257311],
[0.8506508, 0.618034, -0.5257311],
[0.8506508, -0.618034, -0.5257311],
[-0.3249197, 1, -0.5257311],
[-1.051462, 0, -0.5257311],
[-0.3249197, -1, -0.5257311],
[0, 0, -1.175571],
],
face: [
[0, 1, 2],
[0, 2, 3],
[0, 3, 4],
[0, 4, 5],
[0, 5, 1],
[1, 5, 7],
[1, 7, 6],
[1, 6, 2],
[2, 6, 8],
[2, 8, 3],
[3, 8, 9],
[3, 9, 4],
[4, 9, 10],
[4, 10, 5],
[5, 10, 7],
[6, 7, 11],
[6, 11, 8],
[7, 10, 11],
[8, 11, 9],
[9, 11, 10],
],
}),
(t[4] = {
vertex: [
[0, 0, 1.070722],
[0.7148135, 0, 0.7971752],
[-0.104682, 0.7071068, 0.7971752],
[-0.6841528, 0.2071068, 0.7971752],
[-0.104682, -0.7071068, 0.7971752],
[0.6101315, 0.7071068, 0.5236279],
[1.04156, 0.2071068, 0.1367736],
[0.6101315, -0.7071068, 0.5236279],
[-0.3574067, 1, 0.1367736],
[-0.7888348, -0.5, 0.5236279],
[-0.9368776, 0.5, 0.1367736],
[-0.3574067, -1, 0.1367736],
[0.3574067, 1, -0.1367736],
[0.9368776, -0.5, -0.1367736],
[0.7888348, 0.5, -0.5236279],
[0.3574067, -1, -0.1367736],
[-0.6101315, 0.7071068, -0.5236279],
[-1.04156, -0.2071068, -0.1367736],
[-0.6101315, -0.7071068, -0.5236279],
[0.104682, 0.7071068, -0.7971752],
[0.6841528, -0.2071068, -0.7971752],
[0.104682, -0.7071068, -0.7971752],
[-0.7148135, 0, -0.7971752],
[0, 0, -1.070722],
],
face: [
[0, 2, 3],
[1, 6, 5],
[4, 9, 11],
[7, 15, 13],
[8, 16, 10],
[12, 14, 19],
[17, 22, 18],
[20, 21, 23],
[0, 1, 5, 2],
[0, 3, 9, 4],
[0, 4, 7, 1],
[1, 7, 13, 6],
[2, 5, 12, 8],
[2, 8, 10, 3],
[3, 10, 17, 9],
[4, 11, 15, 7],
[5, 6, 14, 12],
[6, 13, 20, 14],
[8, 12, 19, 16],
[9, 17, 18, 11],
[10, 16, 22, 17],
[11, 18, 21, 15],
[13, 15, 21, 20],
[14, 20, 23, 19],
[16, 19, 23, 22],
[18, 22, 23, 21],
],
}),
(t[5] = {
vertex: [
[0, 0, 1.322876],
[1.309307, 0, 0.1889822],
[-0.9819805, 0.8660254, 0.1889822],
[0.1636634, -1.299038, 0.1889822],
[0.3273268, 0.8660254, -0.9449112],
[-0.8183171, -0.4330127, -0.9449112],
],
face: [
[0, 3, 1],
[2, 4, 5],
[0, 1, 4, 2],
[0, 2, 5, 3],
[1, 3, 5, 4],
],
}),
(t[6] = {
vertex: [
[0, 0, 1.159953],
[1.013464, 0, 0.5642542],
[-0.3501431, 0.9510565, 0.5642542],
[-0.7715208, -0.6571639, 0.5642542],
[0.6633206, 0.9510565, -0.03144481],
[0.8682979, -0.6571639, -0.3996071],
[-1.121664, 0.2938926, -0.03144481],
[-0.2348831, -1.063314, -0.3996071],
[0.5181548, 0.2938926, -0.9953061],
[-0.5850262, -0.112257, -0.9953061],
],
face: [
[0, 1, 4, 2],
[0, 2, 6, 3],
[1, 5, 8, 4],
[3, 6, 9, 7],
[5, 7, 9, 8],
[0, 3, 7, 5, 1],
[2, 4, 8, 9, 6],
],
}),
(t[7] = {
vertex: [
[0, 0, 1.118034],
[0.8944272, 0, 0.6708204],
[-0.2236068, 0.8660254, 0.6708204],
[-0.7826238, -0.4330127, 0.6708204],
[0.6708204, 0.8660254, 0.2236068],
[1.006231, -0.4330127, -0.2236068],
[-1.006231, 0.4330127, 0.2236068],
[-0.6708204, -0.8660254, -0.2236068],
[0.7826238, 0.4330127, -0.6708204],
[0.2236068, -0.8660254, -0.6708204],
[-0.8944272, 0, -0.6708204],
[0, 0, -1.118034],
],
face: [
[0, 1, 4, 2],
[0, 2, 6, 3],
[1, 5, 8, 4],
[3, 6, 10, 7],
[5, 9, 11, 8],
[7, 10, 11, 9],
[0, 3, 7, 9, 5, 1],
[2, 4, 8, 11, 10, 6],
],
}),
(t[8] = {
vertex: [
[-0.729665, 0.670121, 0.319155],
[-0.655235, -0.29213, -0.754096],
[-0.093922, -0.607123, 0.537818],
[0.702196, 0.595691, 0.485187],
[0.776626, -0.36656, -0.588064],
],
face: [
[1, 4, 2],
[0, 1, 2],
[3, 0, 2],
[4, 3, 2],
[4, 1, 0, 3],
],
}),
(t[9] = {
vertex: [
[-0.868849, -0.100041, 0.61257],
[-0.329458, 0.976099, 0.28078],
[-0.26629, -0.013796, -0.477654],
[-0.13392, -1.034115, 0.229829],
[0.738834, 0.707117, -0.307018],
[0.859683, -0.535264, -0.338508],
],
face: [
[3, 0, 2],
[5, 3, 2],
[4, 5, 2],
[1, 4, 2],
[0, 1, 2],
[0, 3, 5, 4, 1],
],
}),
(t[10] = {
vertex: [
[-0.610389, 0.243975, 0.531213],
[-0.187812, -0.48795, -0.664016],
[-0.187812, 0.9759, -0.664016],
[0.187812, -0.9759, 0.664016],
[0.798201, 0.243975, 0.132803],
],
face: [
[1, 3, 0],
[3, 4, 0],
[3, 1, 4],
[0, 2, 1],
[0, 4, 2],
[2, 4, 1],
],
}),
(t[11] = {
vertex: [
[-1.028778, 0.392027, -0.048786],
[-0.640503, -0.646161, 0.621837],
[-0.125162, -0.395663, -0.540059],
[0.004683, 0.888447, -0.651988],
[0.125161, 0.395663, 0.540059],
[0.632925, -0.791376, 0.433102],
[1.031672, 0.157063, -0.354165],
],
face: [
[3, 2, 0],
[2, 1, 0],
[2, 5, 1],
[0, 4, 3],
[0, 1, 4],
[4, 1, 5],
[2, 3, 6],
[3, 4, 6],
[5, 2, 6],
[4, 5, 6],
],
}),
(t[12] = {
vertex: [
[-0.669867, 0.334933, -0.529576],
[-0.669867, 0.334933, 0.529577],
[-0.4043, 1.212901, 0],
[-0.334933, -0.669867, -0.529576],
[-0.334933, -0.669867, 0.529577],
[0.334933, 0.669867, -0.529576],
[0.334933, 0.669867, 0.529577],
[0.4043, -1.212901, 0],
[0.669867, -0.334933, -0.529576],
[0.669867, -0.334933, 0.529577],
],
face: [
[8, 9, 7],
[6, 5, 2],
[3, 8, 7],
[5, 0, 2],
[4, 3, 7],
[0, 1, 2],
[9, 4, 7],
[1, 6, 2],
[9, 8, 5, 6],
[8, 3, 0, 5],
[3, 4, 1, 0],
[4, 9, 6, 1],
],
}),
(t[13] = {
vertex: [
[-0.931836, 0.219976, -0.264632],
[-0.636706, 0.318353, 0.692816],
[-0.613483, -0.735083, -0.264632],
[-0.326545, 0.979634, 0],
[-0.318353, -0.636706, 0.692816],
[-0.159176, 0.477529, -0.856368],
[0.159176, -0.477529, -0.856368],
[0.318353, 0.636706, 0.692816],
[0.326545, -0.979634, 0],
[0.613482, 0.735082, -0.264632],
[0.636706, -0.318353, 0.692816],
[0.931835, -0.219977, -0.264632],
],
face: [
[11, 10, 8],
[7, 9, 3],
[6, 11, 8],
[9, 5, 3],
[2, 6, 8],
[5, 0, 3],
[4, 2, 8],
[0, 1, 3],
[10, 4, 8],
[1, 7, 3],
[10, 11, 9, 7],
[11, 6, 5, 9],
[6, 2, 0, 5],
[2, 4, 1, 0],
[4, 10, 7, 1],
],
}),
(t[14] = {
vertex: [
[-0.93465, 0.300459, -0.271185],
[-0.838689, -0.260219, -0.516017],
[-0.711319, 0.717591, 0.128359],
[-0.710334, -0.156922, 0.080946],
[-0.599799, 0.556003, -0.725148],
[-0.503838, -0.004675, -0.969981],
[-0.487004, 0.26021, 0.48049],
[-0.460089, -0.750282, -0.512622],
[-0.376468, 0.973135, -0.325605],
[-0.331735, -0.646985, 0.084342],
[-0.254001, 0.831847, 0.530001],
[-0.125239, -0.494738, -0.966586],
[0.029622, 0.027949, 0.730817],
[0.056536, -0.982543, -0.262295],
[0.08085, 1.087391, 0.076037],
[0.125583, -0.532729, 0.485984],
[0.262625, 0.599586, 0.780328],
[0.391387, -0.726999, -0.716259],
[0.513854, -0.868287, 0.139347],
[0.597475, 0.85513, 0.326364],
[0.641224, 0.109523, 0.783723],
[0.737185, -0.451155, 0.538891],
[0.848705, -0.612742, -0.314616],
[0.976075, 0.365067, 0.32976],
[1.072036, -0.19561, 0.084927],
],
face: [
[15, 18, 21],
[12, 20, 16],
[6, 10, 2],
[3, 0, 1],
[9, 7, 13],
[2, 8, 4, 0],
[0, 4, 5, 1],
[1, 5, 11, 7],
[7, 11, 17, 13],
[13, 17, 22, 18],
[18, 22, 24, 21],
[21, 24, 23, 20],
[20, 23, 19, 16],
[16, 19, 14, 10],
[10, 14, 8, 2],
[15, 9, 13, 18],
[12, 15, 21, 20],
[6, 12, 16, 10],
[3, 6, 2, 0],
[9, 3, 1, 7],
[9, 15, 12, 6, 3],
[22, 17, 11, 5, 4, 8, 14, 19, 23, 24],
],
});
var n,
i,
r,
o,
c,
l,
u = e.type && (e.type < 0 || e.type >= t.length) ? 0 : e.type || 0,
h = e.size,
d = e.sizeX || h || 1,
p = e.sizeY || h || 1,
f = e.sizeZ || h || 1,
m = e.custom || t[u],
g = m.face.length,
b = e.faceUV || new Array(g),
_ = e.faceColors,
v = void 0 === e.flat || e.flat,
y = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE,
C = new Array(),
P = new Array(),
x = new Array(),
T = new Array(),
S = new Array(),
O = 0,
E = 0,
M = new Array(),
A = 0,
I = 0;
if (v) for (I = 0; I < g; I++) _ && void 0 === _[I] && (_[I] = new s.b(1, 1, 1, 1)), b && void 0 === b[I] && (b[I] = new a.f(0, 0, 1, 1));
if (v)
for (I = 0; I < g; I++) {
var D = m.face[I].length;
for (r = (2 * Math.PI) / D, o = 0.5 * Math.tan(r / 2), c = 0.5, A = 0; A < D; A++)
C.push(m.vertex[m.face[I][A]][0] * d, m.vertex[m.face[I][A]][1] * p, m.vertex[m.face[I][A]][2] * f),
M.push(O),
O++,
(n = b[I].x + (b[I].z - b[I].x) * (0.5 + o)),
(i = b[I].y + (b[I].w - b[I].y) * (c - 0.5)),
T.push(n, i),
(l = o * Math.cos(r) - c * Math.sin(r)),
(c = o * Math.sin(r) + c * Math.cos(r)),
(o = l),
_ && S.push(_[I].r, _[I].g, _[I].b, _[I].a);
for (A = 0; A < D - 2; A++) P.push(M[0 + E], M[A + 2 + E], M[A + 1 + E]);
E += D;
}
else {
for (A = 0; A < m.vertex.length; A++) C.push(m.vertex[A][0] * d, m.vertex[A][1] * p, m.vertex[A][2] * f), T.push(0, 0);
for (I = 0; I < g; I++) for (A = 0; A < m.face[I].length - 2; A++) P.push(m.face[I][0], m.face[I][A + 2], m.face[I][A + 1]);
}
Rn.a.ComputeNormals(C, P, x), Rn.a._ComputeSides(y, C, P, x, T, e.frontUVs, e.backUVs);
var R = new Rn.a();
return (R.positions = C), (R.indices = P), (R.normals = x), (R.uvs = T), _ && v && (R.colors = S), R;
}),
(Ee.a.CreatePolyhedron = function (e, t, n) {
return fr.CreatePolyhedron(e, t, n);
});
var fr = (function () {
function e() {}
return (
(e.CreatePolyhedron = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreatePolyhedron(t).applyToMesh(i, t.updatable), i;
}),
e
);
})(),
mr = (function (e) {
function t(t) {
void 0 === t && (t = ci.a.DefaultUtilityLayer);
var n = e.call(this, t) || this;
(n._meshAttached = null),
(n._sensitivity = 1),
(n.onDragStartObservable = new o.c()),
(n.onDragEndObservable = new o.c()),
(n.xGizmo = new cr(new a.e(1, 0, 0), s.a.Red().scale(0.5), t, n)),
(n.yGizmo = new cr(new a.e(0, 1, 0), s.a.Green().scale(0.5), t, n)),
(n.zGizmo = new cr(new a.e(0, 0, 1), s.a.Blue().scale(0.5), t, n)),
(n.uniformScaleGizmo = new cr(new a.e(0, 1, 0), s.a.Yellow().scale(0.5), t, n)),
(n.uniformScaleGizmo.updateGizmoRotationToMatchAttachedMesh = !1),
(n.uniformScaleGizmo.uniformScaling = !0),
(n._uniformScalingMesh = fr.CreatePolyhedron("", { type: 1 }, n.uniformScaleGizmo.gizmoLayer.utilityLayerScene)),
n._uniformScalingMesh.scaling.scaleInPlace(0.02),
(n._uniformScalingMesh.visibility = 0),
(n._octahedron = fr.CreatePolyhedron("", { type: 1 }, n.uniformScaleGizmo.gizmoLayer.utilityLayerScene)),
n._octahedron.scaling.scaleInPlace(0.007),
n._uniformScalingMesh.addChild(n._octahedron),
n.uniformScaleGizmo.setCustomMesh(n._uniformScalingMesh, !0);
var i = t._getSharedGizmoLight();
return (
(i.includedOnlyMeshes = i.includedOnlyMeshes.concat(n._octahedron)),
[n.xGizmo, n.yGizmo, n.zGizmo, n.uniformScaleGizmo].forEach(function (e) {
e.dragBehavior.onDragStartObservable.add(function () {
n.onDragStartObservable.notifyObservers({});
}),
e.dragBehavior.onDragEndObservable.add(function () {
n.onDragEndObservable.notifyObservers({});
});
}),
(n.attachedMesh = null),
n
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "attachedMesh", {
get: function () {
return this._meshAttached;
},
set: function (e) {
(this._meshAttached = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) {
t.isEnabled ? (t.attachedMesh = e) : (t.attachedMesh = null);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "updateGizmoRotationToMatchAttachedMesh", {
get: function () {
return this._updateGizmoRotationToMatchAttachedMesh;
},
set: function (e) {
e
? ((this._updateGizmoRotationToMatchAttachedMesh = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) {
t && (t.updateGizmoRotationToMatchAttachedMesh = e);
}))
: g.a.Warn("Setting updateGizmoRotationToMatchAttachedMesh = false on scaling gizmo is not supported.");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "snapDistance", {
get: function () {
return this._snapDistance;
},
set: function (e) {
(this._snapDistance = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) {
t && (t.snapDistance = e);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "scaleRatio", {
get: function () {
return this._scaleRatio;
},
set: function (e) {
(this._scaleRatio = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) {
t && (t.scaleRatio = e);
});
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "sensitivity", {
get: function () {
return this._sensitivity;
},
set: function (e) {
(this._sensitivity = e),
[this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) {
t && (t.sensitivity = e);
});
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function () {
[this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (e) {
e && e.dispose();
}),
this.onDragStartObservable.clear(),
this.onDragEndObservable.clear(),
[this._uniformScalingMesh, this._octahedron].forEach(function (e) {
e && e.dispose();
});
}),
t
);
})(li),
gr = (function () {
function e(e) {
var t = this;
(this.scene = e),
(this.clearGizmoOnEmptyPointerEvent = !1),
(this.onAttachedToMeshObservable = new o.c()),
(this._gizmosEnabled = { positionGizmo: !1, rotationGizmo: !1, scaleGizmo: !1, boundingBoxGizmo: !1 }),
(this._pointerObserver = null),
(this._attachedMesh = null),
(this._boundingBoxColor = s.a.FromHexString("#0984e3")),
(this.boundingBoxDragBehavior = new ze()),
(this.attachableMeshes = null),
(this.usePointerToAttachGizmos = !0),
(this._defaultKeepDepthUtilityLayer = new ci.a(e)),
(this._defaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil = !1),
(this._defaultUtilityLayer = new ci.a(e)),
(this.gizmos = { positionGizmo: null, rotationGizmo: null, scaleGizmo: null, boundingBoxGizmo: null }),
(this._pointerObserver = e.onPointerObservable.add(function (e) {
if (t.usePointerToAttachGizmos && e.type == ye.a.POINTERDOWN)
if (e.pickInfo && e.pickInfo.pickedMesh) {
var n = e.pickInfo.pickedMesh;
if (null == t.attachableMeshes) for (; n && null != n.parent; ) n = n.parent;
else {
var i = !1;
t.attachableMeshes.forEach(function (e) {
n && (n == e || n.isDescendantOf(e)) && ((n = e), (i = !0));
}),
i || (n = null);
}
n instanceof ke.a ? t._attachedMesh != n && t.attachToMesh(n) : t.clearGizmoOnEmptyPointerEvent && t.attachToMesh(null);
} else t.clearGizmoOnEmptyPointerEvent && t.attachToMesh(null);
}));
}
return (
Object.defineProperty(e.prototype, "keepDepthUtilityLayer", {
get: function () {
return this._defaultKeepDepthUtilityLayer;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "utilityLayer", {
get: function () {
return this._defaultUtilityLayer;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attachToMesh = function (e) {
for (var t in (this._attachedMesh && this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior), (this._attachedMesh = e), this.gizmos)) {
var n = this.gizmos[t];
n && this._gizmosEnabled[t] && (n.attachedMesh = e);
}
this.boundingBoxGizmoEnabled && this._attachedMesh && this._attachedMesh.addBehavior(this.boundingBoxDragBehavior), this.onAttachedToMeshObservable.notifyObservers(e);
}),
Object.defineProperty(e.prototype, "positionGizmoEnabled", {
get: function () {
return this._gizmosEnabled.positionGizmo;
},
set: function (e) {
e
? (this.gizmos.positionGizmo || (this.gizmos.positionGizmo = new pr(this._defaultUtilityLayer)), (this.gizmos.positionGizmo.attachedMesh = this._attachedMesh))
: this.gizmos.positionGizmo && (this.gizmos.positionGizmo.attachedMesh = null),
(this._gizmosEnabled.positionGizmo = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rotationGizmoEnabled", {
get: function () {
return this._gizmosEnabled.rotationGizmo;
},
set: function (e) {
e
? (this.gizmos.rotationGizmo || (this.gizmos.rotationGizmo = new hr(this._defaultUtilityLayer)), (this.gizmos.rotationGizmo.attachedMesh = this._attachedMesh))
: this.gizmos.rotationGizmo && (this.gizmos.rotationGizmo.attachedMesh = null),
(this._gizmosEnabled.rotationGizmo = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "scaleGizmoEnabled", {
get: function () {
return this._gizmosEnabled.scaleGizmo;
},
set: function (e) {
e
? ((this.gizmos.scaleGizmo = this.gizmos.scaleGizmo || new mr(this._defaultUtilityLayer)), (this.gizmos.scaleGizmo.attachedMesh = this._attachedMesh))
: this.gizmos.scaleGizmo && (this.gizmos.scaleGizmo.attachedMesh = null),
(this._gizmosEnabled.scaleGizmo = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "boundingBoxGizmoEnabled", {
get: function () {
return this._gizmosEnabled.boundingBoxGizmo;
},
set: function (e) {
e
? ((this.gizmos.boundingBoxGizmo = this.gizmos.boundingBoxGizmo || new lr(this._boundingBoxColor, this._defaultKeepDepthUtilityLayer)),
(this.gizmos.boundingBoxGizmo.attachedMesh = this._attachedMesh),
this._attachedMesh && (this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior), this._attachedMesh.addBehavior(this.boundingBoxDragBehavior)))
: this.gizmos.boundingBoxGizmo && (this._attachedMesh && this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior), (this.gizmos.boundingBoxGizmo.attachedMesh = null)),
(this._gizmosEnabled.boundingBoxGizmo = e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
for (var e in (this.scene.onPointerObservable.remove(this._pointerObserver), this.gizmos)) {
var t = this.gizmos[e];
t && t.dispose();
}
this._defaultKeepDepthUtilityLayer.dispose(), this._defaultUtilityLayer.dispose(), this.boundingBoxDragBehavior.detach(), this.onAttachedToMeshObservable.clear();
}),
e
);
})(),
br = n(115);
Ee.a.CreateHemisphere = function (e, t, n, i) {
var r = { segments: t, diameter: n };
return _r.CreateHemisphere(e, r, i);
};
var _r = (function () {
function e() {}
return (
(e.CreateHemisphere = function (e, t, n) {
t.diameter || (t.diameter = 1), t.segments || (t.segments = 16);
var i = mi.CreateSphere("", { slice: 0.5, diameter: t.diameter, segments: t.segments }, n),
r = Ee.a.CreateDisc("", t.diameter / 2, 3 * t.segments + (4 - t.segments), n);
(r.rotation.x = -Math.PI / 2), (r.parent = i);
var o = Ee.a.MergeMeshes([r, i], !0);
return (o.name = e), o;
}),
e
);
})(),
vr = n(122),
yr = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (
(n._cachedPosition = new a.e()),
(n._cachedForward = new a.e(0, 0, 1)),
(n._light = null),
(n.attachedMesh = new ke.a("", n.gizmoLayer.utilityLayerScene)),
(n._attachedMeshParent = new si.a("parent", n.gizmoLayer.originalScene)),
(n.attachedMesh.parent = n._attachedMeshParent),
(n._material = new Mn.a("light", n.gizmoLayer.originalScene)),
(n._material.diffuseColor = new s.a(0.5, 0.5, 0.5)),
(n._material.specularColor = new s.a(0.1, 0.1, 0.1)),
n
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "light", {
get: function () {
return this._light;
},
set: function (e) {
var n = this;
if (((this._light = e), e)) {
this._lightMesh && this._lightMesh.dispose(),
e instanceof xn.a
? (this._lightMesh = t._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene))
: e instanceof br.a
? (this._lightMesh = t._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene))
: e instanceof vr.a
? (this._lightMesh = t._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene))
: (this._lightMesh = t._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene)),
this._lightMesh.getChildMeshes(!1).forEach(function (e) {
e.material = n._material;
}),
(this._lightMesh.parent = this._rootMesh);
var i = this.gizmoLayer._getSharedGizmoLight();
(i.includedOnlyMeshes = i.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1))),
(this._lightMesh.rotationQuaternion = new a.b()),
this.attachedMesh.reservedDataStore || (this.attachedMesh.reservedDataStore = {}),
(this.attachedMesh.reservedDataStore.lightGizmo = this),
e.parent && this._attachedMeshParent.freezeWorldMatrix(e.parent.getWorldMatrix()),
e.position && (this.attachedMesh.position.copyFrom(e.position), this.attachedMesh.computeWorldMatrix(!0), this._cachedPosition.copyFrom(this.attachedMesh.position)),
e.direction && (this.attachedMesh.setDirection(e.direction), this.attachedMesh.computeWorldMatrix(!0), this._cachedForward.copyFrom(this.attachedMesh.forward)),
this._update();
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "material", {
get: function () {
return this._material;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._update = function () {
e.prototype._update.call(this),
this._light &&
(this._light.parent && this._attachedMeshParent.freezeWorldMatrix(this._light.parent.getWorldMatrix()),
this._light.position &&
(this.attachedMesh.position.equals(this._cachedPosition)
? (this.attachedMesh.position.copyFrom(this._light.position), this.attachedMesh.computeWorldMatrix(!0), this._cachedPosition.copyFrom(this.attachedMesh.position))
: (this._light.position.copyFrom(this.attachedMesh.position), this._cachedPosition.copyFrom(this.attachedMesh.position))),
this._light.direction &&
(a.e.DistanceSquared(this.attachedMesh.forward, this._cachedForward) > 1e-4
? (this._light.direction.copyFrom(this.attachedMesh.forward), this._cachedForward.copyFrom(this.attachedMesh.forward))
: a.e.DistanceSquared(this.attachedMesh.forward, this._light.direction) > 1e-4 &&
(this.attachedMesh.setDirection(this._light.direction), this.attachedMesh.computeWorldMatrix(!0), this._cachedForward.copyFrom(this.attachedMesh.forward))),
this._light.isEnabled() ? this._material.diffuseColor.set(this._light.diffuse.r / 3, this._light.diffuse.g / 3, this._light.diffuse.b / 3) : this._material.diffuseColor.set(0, 0, 0));
}),
(t.prototype.dispose = function () {
this._material.dispose(), e.prototype.dispose.call(this), this._attachedMeshParent.dispose();
}),
(t._CreateHemisphericLightMesh = function (e) {
var n = new Ee.a("hemisphereLight", e),
i = _r.CreateHemisphere(n.name, { segments: 10, diameter: 1 }, e);
(i.position.z = -0.15), (i.rotation.x = Math.PI / 2), (i.parent = n);
var r = this._CreateLightLines(3, e);
return (r.parent = n), r.position.z, n.scaling.scaleInPlace(t._Scale), (n.rotation.x = Math.PI / 2), n;
}),
(t._CreatePointLightMesh = function (e) {
var n = new Ee.a("pointLight", e),
i = mi.CreateSphere(n.name, { segments: 10, diameter: 1 }, e);
return (i.rotation.x = Math.PI / 2), (i.parent = n), (this._CreateLightLines(5, e).parent = n), n.scaling.scaleInPlace(t._Scale), (n.rotation.x = Math.PI / 2), n;
}),
(t._CreateSpotLightMesh = function (e) {
var n = new Ee.a("spotLight", e);
mi.CreateSphere(n.name, { segments: 10, diameter: 1 }, e).parent = n;
var i = _r.CreateHemisphere(n.name, { segments: 10, diameter: 2 }, e);
return (i.parent = n), (i.rotation.x = -Math.PI / 2), (this._CreateLightLines(2, e).parent = n), n.scaling.scaleInPlace(t._Scale), (n.rotation.x = Math.PI / 2), n;
}),
(t._CreateDirectionalLightMesh = function (e) {
var n = new Ee.a("directionalLight", e),
i = new Ee.a(n.name, e);
(i.parent = n), (mi.CreateSphere(n.name, { diameter: 1.2, segments: 10 }, e).parent = i);
var r = Ee.a.CreateCylinder(n.name, 6, 0.3, 0.3, 6, 1, e);
(r.parent = i), ((o = r.clone(n.name)).scaling.y = 0.5), (o.position.x += 1.25), ((a = r.clone(n.name)).scaling.y = 0.5), (a.position.x += -1.25);
var o,
a,
s = Ee.a.CreateCylinder(n.name, 1, 0, 0.6, 6, 1, e);
return (
(s.position.y += 3),
(s.parent = i),
((o = s.clone(n.name)).position.y = 1.5),
(o.position.x += 1.25),
((a = s.clone(n.name)).position.y = 1.5),
(a.position.x += -1.25),
i.scaling.scaleInPlace(t._Scale),
(i.rotation.z = Math.PI / 2),
(i.rotation.y = Math.PI / 2),
n
);
}),
(t._Scale = 0.007),
(t._CreateLightLines = function (e, t) {
var n = new Ee.a("root", t);
n.rotation.x = Math.PI / 2;
var i = new Ee.a("linePivot", t);
i.parent = n;
var r = Ee.a.CreateCylinder("line", 2, 0.2, 0.3, 6, 1, t);
if (((r.position.y = r.scaling.y / 2 + 1.2), (r.parent = i), e < 2)) return i;
for (var o = 0; o < 4; o++) {
((a = i.clone("lineParentClone")).rotation.z = Math.PI / 4),
(a.rotation.y = Math.PI / 2 + (Math.PI / 2) * o),
(a.getChildMeshes()[0].scaling.y = 0.5),
(a.getChildMeshes()[0].scaling.x = a.getChildMeshes()[0].scaling.z = 0.8),
(a.getChildMeshes()[0].position.y = a.getChildMeshes()[0].scaling.y / 2 + 1.2);
}
if (e < 3) return n;
for (o = 0; o < 4; o++) {
((a = i.clone("linePivotClone")).rotation.z = Math.PI / 2), (a.rotation.y = (Math.PI / 2) * o);
}
if (e < 4) return n;
for (o = 0; o < 4; o++) {
var a;
((a = i.clone("linePivotClone")).rotation.z = Math.PI + Math.PI / 4),
(a.rotation.y = Math.PI / 2 + (Math.PI / 2) * o),
(a.getChildMeshes()[0].scaling.y = 0.5),
(a.getChildMeshes()[0].scaling.x = a.getChildMeshes()[0].scaling.z = 0.8),
(a.getChildMeshes()[0].position.y = a.getChildMeshes()[0].scaling.y / 2 + 1.2);
}
return e < 5 || ((a = i.clone("linePivotClone")).rotation.z = Math.PI), n;
}),
t
);
})(li),
Cr = n(68);
Xt.a.IncludesShadersStore.kernelBlurVaryingDeclaration = "varying vec2 sampleCoord{X};";
var Pr =
"vec4 pack(float depth)\n{\nconst vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\nconst vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\nvec4 res=fract(depth*bit_shift);\nres-=res.xxyz*bit_mask;\nreturn res;\n}\nfloat unpack(vec4 color)\n{\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\nreturn dot(color,bit_shift);\n}";
Xt.a.IncludesShadersStore.packingFunctions = Pr;
var xr =
"#ifdef DOF\nfactor=sampleCoC(sampleCoord{X});\ncomputedWeight=KERNEL_WEIGHT{X}*factor;\nsumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\n#endif";
Xt.a.IncludesShadersStore.kernelBlurFragment = xr;
var Tr =
"#ifdef DOF\nfactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});\ncomputedWeight=KERNEL_DEP_WEIGHT{X}*factor;\nsumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_DEP_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\n#endif";
Xt.a.IncludesShadersStore.kernelBlurFragment2 = Tr;
var Sr =
"\nuniform sampler2D textureSampler;\nuniform vec2 delta;\n\nvarying vec2 sampleCenter;\n#ifdef DOF\nuniform sampler2D circleOfConfusionSampler;\nuniform vec2 cameraMinMaxZ;\nfloat sampleDistance(const in vec2 offset) {\nfloat depth=texture2D(circleOfConfusionSampler,offset).g;\nreturn cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth;\n}\nfloat sampleCoC(const in vec2 offset) {\nfloat coc=texture2D(circleOfConfusionSampler,offset).r;\nreturn coc;\n}\n#endif\n#include[0..varyingCount]\n#ifdef PACKEDFLOAT\n#include\n#endif\nvoid main(void)\n{\nfloat computedWeight=0.0;\n#ifdef PACKEDFLOAT\nfloat blend=0.;\n#else\nvec4 blend=vec4(0.);\n#endif\n#ifdef DOF\nfloat sumOfWeights=CENTER_WEIGHT;\nfloat factor=0.0;\n\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\n#else\nblend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\n#endif\n#endif\n#include[0..varyingCount]\n#include[0..depCount]\n#ifdef PACKEDFLOAT\ngl_FragColor=pack(blend);\n#else\ngl_FragColor=blend;\n#endif\n#ifdef DOF\ngl_FragColor/=sumOfWeights;\n#endif\n}";
Xt.a.ShadersStore.kernelBlurPixelShader = Sr;
Xt.a.IncludesShadersStore.kernelBlurVertex = "sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};";
var Or =
"\nattribute vec2 position;\n\nuniform vec2 delta;\n\nvarying vec2 sampleCenter;\n#include[0..varyingCount]\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nsampleCenter=(position*madd+madd);\n#include[0..varyingCount]\ngl_Position=vec4(position,0.0,1.0);\n}";
Xt.a.ShadersStore.kernelBlurVertexShader = Or;
var Er = (function (e) {
function t(t, n, i, r, o, a, s, c, l, u, h) {
void 0 === a && (a = ln.a.BILINEAR_SAMPLINGMODE), void 0 === l && (l = 0), void 0 === u && (u = ""), void 0 === h && (h = !1);
var d = e.call(this, t, "kernelBlur", ["delta", "direction", "cameraMinMaxZ"], ["circleOfConfusionSampler"], r, o, a, s, c, null, l, "kernelBlur", { varyingCount: 0, depCount: 0 }, !0) || this;
return (
(d.direction = n),
(d.blockCompilation = h),
(d._packedFloat = !1),
(d._staticDefines = ""),
(d._staticDefines = u),
d.onApplyObservable.add(function (e) {
d._outputTexture
? e.setFloat2("delta", (1 / d._outputTexture.width) * d.direction.x, (1 / d._outputTexture.height) * d.direction.y)
: e.setFloat2("delta", (1 / d.width) * d.direction.x, (1 / d.height) * d.direction.y);
}),
(d.kernel = i),
d
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "kernel", {
get: function () {
return this._idealKernel;
},
set: function (e) {
this._idealKernel !== e && ((e = Math.max(e, 1)), (this._idealKernel = e), (this._kernel = this._nearestBestKernel(e)), this.blockCompilation || this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "packedFloat", {
get: function () {
return this._packedFloat;
},
set: function (e) {
this._packedFloat !== e && ((this._packedFloat = e), this.blockCompilation || this._updateParameters());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.updateEffect = function (e, t, n, i, r, o) {
void 0 === e && (e = null), void 0 === t && (t = null), void 0 === n && (n = null), this._updateParameters(r, o);
}),
(t.prototype._updateParameters = function (t, n) {
for (var i = this._kernel, r = (i - 1) / 2, o = [], a = [], s = 0, c = 0; c < i; c++) {
var l = c / (i - 1),
u = this._gaussianWeight(2 * l - 1);
(o[c] = c - r), (a[c] = u), (s += u);
}
for (c = 0; c < a.length; c++) a[c] /= s;
var h = [],
d = [],
p = [];
for (c = 0; c <= r; c += 2) {
var f = Math.min(c + 1, Math.floor(r));
if (c === f) p.push({ o: o[c], w: a[c] });
else {
var m = f === r,
g = a[c] + a[f] * (m ? 0.5 : 1),
b = o[c] + 1 / (1 + a[c] / a[f]);
0 === b ? (p.push({ o: o[c], w: a[c] }), p.push({ o: o[c + 1], w: a[c + 1] })) : (p.push({ o: b, w: g }), p.push({ o: -b, w: g }));
}
}
for (c = 0; c < p.length; c++) (d[c] = p[c].o), (h[c] = p[c].w);
(o = d), (a = h);
var _ = this.getEngine().getCaps().maxVaryingVectors,
v = Math.max(_, 0) - 1,
y = Math.min(o.length, v),
C = "";
(C += this._staticDefines), -1 != this._staticDefines.indexOf("DOF") && ((C += "#define CENTER_WEIGHT " + this._glslFloat(a[y - 1]) + "\r\n"), y--);
for (c = 0; c < y; c++) (C += "#define KERNEL_OFFSET" + c + " " + this._glslFloat(o[c]) + "\r\n"), (C += "#define KERNEL_WEIGHT" + c + " " + this._glslFloat(a[c]) + "\r\n");
var P = 0;
for (c = v; c < o.length; c++) (C += "#define KERNEL_DEP_OFFSET" + P + " " + this._glslFloat(o[c]) + "\r\n"), (C += "#define KERNEL_DEP_WEIGHT" + P + " " + this._glslFloat(a[c]) + "\r\n"), P++;
this.packedFloat && (C += "#define PACKEDFLOAT 1"), (this.blockCompilation = !1), e.prototype.updateEffect.call(this, C, null, null, { varyingCount: y, depCount: P }, t, n);
}),
(t.prototype._nearestBestKernel = function (e) {
for (var t = Math.round(e), n = 0, i = [t, t - 1, t + 1, t - 2, t + 2]; n < i.length; n++) {
var r = i[n];
if (r % 2 != 0 && Math.floor(r / 2) % 2 == 0 && r > 0) return Math.max(r, 3);
}
return Math.max(t, 3);
}),
(t.prototype._gaussianWeight = function (e) {
var t = (-e * e) / ((1 / 3) * 2 * (1 / 3));
return (1 / (Math.sqrt(2 * Math.PI) * (1 / 3))) * Math.exp(t);
}),
(t.prototype._glslFloat = function (e, t) {
return void 0 === t && (t = 8), e.toFixed(t).replace(/0+$/, "");
}),
t
);
})(Wt.a),
Mr = (function (e) {
function t(t, n, i, r, o, s, c) {
void 0 === o && (o = 0), void 0 === s && (s = ln.a.BILINEAR_SAMPLINGMODE), void 0 === c && (c = !0);
var l = e.call(this, t, n, i, r, !0, o, !1, s, c) || this;
return (
(l.scene = i),
(l.mirrorPlane = new Zn.a(0, 1, 0, 1)),
(l._transformMatrix = a.a.Zero()),
(l._mirrorMatrix = a.a.Zero()),
(l._adaptiveBlurKernel = 0),
(l._blurKernelX = 0),
(l._blurKernelY = 0),
(l._blurRatio = 1),
(l.ignoreCameraViewport = !0),
l._updateGammaSpace(),
(l._imageProcessingConfigChangeObserver = i.imageProcessingConfiguration.onUpdateParameters.add(function () {
l._updateGammaSpace;
})),
l.onBeforeRenderObservable.add(function () {
a.a.ReflectionToRef(l.mirrorPlane, l._mirrorMatrix),
(l._savedViewMatrix = i.getViewMatrix()),
l._mirrorMatrix.multiplyToRef(l._savedViewMatrix, l._transformMatrix),
i.setTransformMatrix(l._transformMatrix, i.getProjectionMatrix()),
(i.clipPlane = l.mirrorPlane),
(i.getEngine().cullBackFaces = !1),
(i._mirroredCameraPosition = a.e.TransformCoordinates(i.activeCamera.globalPosition, l._mirrorMatrix));
}),
l.onAfterRenderObservable.add(function () {
i.setTransformMatrix(l._savedViewMatrix, i.getProjectionMatrix()), (i.getEngine().cullBackFaces = !0), (i._mirroredCameraPosition = null), (i.clipPlane = null);
}),
l
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "blurRatio", {
get: function () {
return this._blurRatio;
},
set: function (e) {
this._blurRatio !== e && ((this._blurRatio = e), this._preparePostProcesses());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "adaptiveBlurKernel", {
set: function (e) {
(this._adaptiveBlurKernel = e), this._autoComputeBlurKernel();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "blurKernel", {
set: function (e) {
(this.blurKernelX = e), (this.blurKernelY = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "blurKernelX", {
get: function () {
return this._blurKernelX;
},
set: function (e) {
this._blurKernelX !== e && ((this._blurKernelX = e), this._preparePostProcesses());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "blurKernelY", {
get: function () {
return this._blurKernelY;
},
set: function (e) {
this._blurKernelY !== e && ((this._blurKernelY = e), this._preparePostProcesses());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._autoComputeBlurKernel = function () {
var e = this.getScene().getEngine(),
t = this.getRenderWidth() / e.getRenderWidth(),
n = this.getRenderHeight() / e.getRenderHeight();
(this.blurKernelX = this._adaptiveBlurKernel * t), (this.blurKernelY = this._adaptiveBlurKernel * n);
}),
(t.prototype._onRatioRescale = function () {
this._sizeRatio && (this.resize(this._initialSizeParameter), this._adaptiveBlurKernel || this._preparePostProcesses()), this._adaptiveBlurKernel && this._autoComputeBlurKernel();
}),
(t.prototype._updateGammaSpace = function () {
this.gammaSpace = !this.scene.imageProcessingConfiguration.isEnabled || !this.scene.imageProcessingConfiguration.applyByPostProcess;
}),
(t.prototype._preparePostProcesses = function () {
if ((this.clearPostProcesses(!0), this._blurKernelX && this._blurKernelY)) {
var e = this.getScene().getEngine(),
t = e.getCaps().textureFloatRender ? 1 : 2;
(this._blurX = new Er("horizontal blur", new a.d(1, 0), this._blurKernelX, this._blurRatio, null, ln.a.BILINEAR_SAMPLINGMODE, e, !1, t)),
(this._blurX.autoClear = !1),
1 === this._blurRatio && this.samples < 2 && this._texture ? (this._blurX.inputTexture = this._texture) : (this._blurX.alwaysForcePOT = !0),
(this._blurY = new Er("vertical blur", new a.d(0, 1), this._blurKernelY, this._blurRatio, null, ln.a.BILINEAR_SAMPLINGMODE, e, !1, t)),
(this._blurY.autoClear = !1),
(this._blurY.alwaysForcePOT = 1 !== this._blurRatio),
this.addPostProcess(this._blurX),
this.addPostProcess(this._blurY);
} else this._blurY && (this.removePostProcess(this._blurY), this._blurY.dispose(), (this._blurY = null)), this._blurX && (this.removePostProcess(this._blurX), this._blurX.dispose(), (this._blurX = null));
}),
(t.prototype.clone = function () {
var e = this.getScene();
if (!e) return this;
var n = this.getSize(),
i = new t(this.name, n.width, e, this._renderTargetOptions.generateMipMaps, this._renderTargetOptions.type, this._renderTargetOptions.samplingMode, this._renderTargetOptions.generateDepthBuffer);
return (i.hasAlpha = this.hasAlpha), (i.level = this.level), (i.mirrorPlane = this.mirrorPlane.clone()), this.renderList && (i.renderList = this.renderList.slice(0)), i;
}),
(t.prototype.serialize = function () {
if (!this.name) return null;
var t = e.prototype.serialize.call(this);
return (t.mirrorPlane = this.mirrorPlane.asArray()), t;
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver);
}),
t
);
})(mn.a);
ln.a._CreateMirror = function (e, t, n, i) {
return new Mr(e, t, n, i);
};
var Ar = n(98),
Ir = n(11),
Dr = n(41),
Rr = n(46),
wr = n(17),
Lr =
" uniform vec4 vPrimaryColor;\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\nuniform vec4 vPrimaryColorShadow;\n#endif\nuniform float shadowLevel;\nuniform float alpha;\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\n#endif\n#if defined(REFLECTIONFRESNEL) || defined(OPACITYFRESNEL)\nuniform vec3 vBackgroundCenter;\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 vReflectionControl;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)\nuniform mat4 view;\n#endif";
Xt.a.IncludesShadersStore.backgroundFragmentDeclaration = Lr;
var Fr =
"layout(std140,column_major) uniform;\nuniform Material\n{\nuniform vec4 vPrimaryColor;\nuniform vec4 vPrimaryColorShadow;\nuniform vec2 vDiffuseInfos;\nuniform vec2 vReflectionInfos;\nuniform mat4 diffuseMatrix;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float fFovMultiplier;\nuniform float pointSize;\nuniform float shadowLevel;\nuniform float alpha;\n#if defined(REFLECTIONFRESNEL) || defined(OPACITYFRESNEL)\nuniform vec3 vBackgroundCenter;\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 vReflectionControl;\n#endif\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};";
Xt.a.IncludesShadersStore.backgroundUboDeclaration = Fr;
n(171), n(60), n(61), n(105), n(99), n(86), n(87), n(82), n(100), n(90);
var Nr =
"#ifdef TEXTURELODSUPPORT\n#extension GL_EXT_shader_texture_lod : enable\n#endif\nprecision highp float;\n#include<__decl__backgroundFragment>\n#define RECIPROCAL_PI2 0.15915494\n\nuniform vec3 vEyePosition;\n\nvarying vec3 vPositionW;\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef DIFFUSE\n#if DIFFUSEDIRECTUV == 1\n#define vDiffuseUV vMainUV1\n#elif DIFFUSEDIRECTUV == 2\n#define vDiffuseUV vMainUV2\n#else\nvarying vec2 vDiffuseUV;\n#endif\nuniform sampler2D diffuseSampler;\n#endif\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef TEXTURELODSUPPORT\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef TEXTURELODSUPPORT\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include\n#endif\n\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE;\n#endif\n\n#ifndef SHADOWONLY\n#define SHADOWONLY;\n#endif\n#include\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n#include\n#include\n#include\n\n#include\n#ifdef REFLECTIONFRESNEL\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\nvec3 fresnelSchlickEnvironmentGGX(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{\n\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\n}\n#endif\nvoid main(void) {\n#include\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(0.0,1.0,0.0);\n#endif\n\nfloat shadow=1.;\nfloat globalShadow=0.;\nfloat shadowLightCount=0.;\n#include[0..maxSimultaneousLights]\n#ifdef SHADOWINUSE\nglobalShadow/=shadowLightCount;\n#else\nglobalShadow=1.0;\n#endif\n\nvec4 reflectionColor=vec4(1.,1.,1.,1.);\n#ifdef REFLECTION\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\n\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=reflectionVector;\n#else\nvec2 reflectionCoords=reflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nreflectionCoords/=reflectionVector.z;\n#endif\nreflectionCoords.y=1.0-reflectionCoords.y;\n#endif\n#ifdef REFLECTIONBLUR\nfloat reflectionLOD=vReflectionInfos.y;\n#ifdef TEXTURELODSUPPORT\n\nreflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\nreflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\n#else\nfloat lodReflectionNormalized=saturate(reflectionLOD);\nfloat lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\nvec4 reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);\nif(lodReflectionNormalizedDoubled<1.0){\nreflectionColor=mix(\nsampleReflection(reflectionSamplerHigh,reflectionCoords),\nreflectionSpecularMid,\nlodReflectionNormalizedDoubled\n);\n} else {\nreflectionColor=mix(\nreflectionSpecularMid,\nsampleReflection(reflectionSamplerLow,reflectionCoords),\nlodReflectionNormalizedDoubled-1.0\n);\n}\n#endif\n#else\nvec4 reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);\nreflectionColor=reflectionSample;\n#endif\n#ifdef RGBDREFLECTION\nreflectionColor.rgb=fromRGBD(reflectionColor);\n#endif\n#ifdef GAMMAREFLECTION\nreflectionColor.rgb=toLinearSpace(reflectionColor.rgb);\n#endif\n#ifdef REFLECTIONBGR\nreflectionColor.rgb=reflectionColor.bgr;\n#endif\n\nreflectionColor.rgb*=vReflectionInfos.x;\n#endif\n\nvec3 diffuseColor=vec3(1.,1.,1.);\nfloat finalAlpha=alpha;\n#ifdef DIFFUSE\nvec4 diffuseMap=texture2D(diffuseSampler,vDiffuseUV);\n#ifdef GAMMADIFFUSE\ndiffuseMap.rgb=toLinearSpace(diffuseMap.rgb);\n#endif\n\ndiffuseMap.rgb*=vDiffuseInfos.y;\n#ifdef DIFFUSEHASALPHA\nfinalAlpha*=diffuseMap.a;\n#endif\ndiffuseColor=diffuseMap.rgb;\n#endif\n\n#ifdef REFLECTIONFRESNEL\nvec3 colorBase=diffuseColor;\n#else\nvec3 colorBase=reflectionColor.rgb*diffuseColor;\n#endif\ncolorBase=max(colorBase,0.0);\n\n#ifdef USERGBCOLOR\nvec3 finalColor=colorBase;\n#else\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\nvec3 mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);\n#else\nvec3 mainColor=vPrimaryColor.rgb;\n#endif\nvec3 finalColor=colorBase*mainColor;\n#endif\n\n#ifdef REFLECTIONFRESNEL\nvec3 reflectionAmount=vReflectionControl.xxx;\nvec3 reflectionReflectance0=vReflectionControl.yyy;\nvec3 reflectionReflectance90=vReflectionControl.zzz;\nfloat VdotN=dot(normalize(vEyePosition),normalW);\nvec3 planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);\nreflectionAmount*=planarReflectionFresnel;\n#ifdef REFLECTIONFALLOFF\nfloat reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);\nreflectionDistanceFalloff*=reflectionDistanceFalloff;\nreflectionAmount*=reflectionDistanceFalloff;\n#endif\nfinalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));\n#endif\n#ifdef OPACITYFRESNEL\nfloat viewAngleToFloor=dot(normalW,normalize(vEyePosition-vBackgroundCenter));\n\nconst float startAngle=0.1;\nfloat fadeFactor=saturate(viewAngleToFloor/startAngle);\nfinalAlpha*=fadeFactor*fadeFactor;\n#endif\n\n#ifdef SHADOWINUSE\nfinalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);\n#endif\n\nvec4 color=vec4(finalColor,finalAlpha);\n#include\n#ifdef IMAGEPROCESSINGPOSTPROCESS\n\n\ncolor.rgb=clamp(color.rgb,0.,30.0);\n#else\n\ncolor=applyImageProcessing(color);\n#endif\n#ifdef PREMULTIPLYALPHA\n\ncolor.rgb*=color.a;\n#endif\n#ifdef NOISE\ncolor.rgb+=dither(vPositionW.xy,0.5);\ncolor=max(color,0.0);\n#endif\ngl_FragColor=color;\n}\n";
Xt.a.ShadersStore.backgroundPixelShader = Nr;
var kr =
"uniform mat4 view;\nuniform mat4 viewProjection;\nuniform float shadowLevel;\n#ifdef DIFFUSE\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float fFovMultiplier;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif";
Xt.a.IncludesShadersStore.backgroundVertexDeclaration = kr;
n(70), n(71), n(88), n(91), n(72), n(73), n(83), n(93), n(101);
var zr =
"precision highp float;\n#include<__decl__backgroundVertex>\n#include\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#include\n\n#include\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nvarying vec2 vDiffuseUV;\n#endif\n#include\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\nvoid main(void) {\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=position;\n#endif\n#include\n#include\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR == 0u) {\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\n} else {\ngl_Position=viewProjectionR*finalWorld*vec4(position,1.0);\n}\n#else\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\n#endif\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normal);\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));\n#ifdef EQUIRECTANGULAR_RELFECTION_FOV\nmat3 screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));\nvec3 segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));\nif (fFovMultiplier<=1.0) {\nvDirectionW=normalize(segment);\n} else {\nvDirectionW=normalize(vDirectionW+(vDirectionW-segment));\n}\n#endif\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uv;\n#endif\n#ifdef MAINUV2\nvMainUV2=uv2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n\n#include\n\n#include\n\n#include[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#endif\n\n#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif\n}\n";
Xt.a.ShadersStore.backgroundVertexShader = zr;
var jr = n(43),
Br = (function (e) {
function t() {
var t = e.call(this) || this;
return (
(t.DIFFUSE = !1),
(t.DIFFUSEDIRECTUV = 0),
(t.GAMMADIFFUSE = !1),
(t.DIFFUSEHASALPHA = !1),
(t.OPACITYFRESNEL = !1),
(t.REFLECTIONBLUR = !1),
(t.REFLECTIONFRESNEL = !1),
(t.REFLECTIONFALLOFF = !1),
(t.TEXTURELODSUPPORT = !1),
(t.PREMULTIPLYALPHA = !1),
(t.USERGBCOLOR = !1),
(t.USEHIGHLIGHTANDSHADOWCOLORS = !1),
(t.NOISE = !1),
(t.REFLECTIONBGR = !1),
(t.IMAGEPROCESSING = !1),
(t.VIGNETTE = !1),
(t.VIGNETTEBLENDMODEMULTIPLY = !1),
(t.VIGNETTEBLENDMODEOPAQUE = !1),
(t.TONEMAPPING = !1),
(t.TONEMAPPING_ACES = !1),
(t.CONTRAST = !1),
(t.COLORCURVES = !1),
(t.COLORGRADING = !1),
(t.COLORGRADING3D = !1),
(t.SAMPLER3DGREENDEPTH = !1),
(t.SAMPLER3DBGRMAP = !1),
(t.IMAGEPROCESSINGPOSTPROCESS = !1),
(t.EXPOSURE = !1),
(t.MULTIVIEW = !1),
(t.REFLECTION = !1),
(t.REFLECTIONMAP_3D = !1),
(t.REFLECTIONMAP_SPHERICAL = !1),
(t.REFLECTIONMAP_PLANAR = !1),
(t.REFLECTIONMAP_CUBIC = !1),
(t.REFLECTIONMAP_PROJECTION = !1),
(t.REFLECTIONMAP_SKYBOX = !1),
(t.REFLECTIONMAP_EXPLICIT = !1),
(t.REFLECTIONMAP_EQUIRECTANGULAR = !1),
(t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1),
(t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1),
(t.INVERTCUBICMAP = !1),
(t.REFLECTIONMAP_OPPOSITEZ = !1),
(t.LODINREFLECTIONALPHA = !1),
(t.GAMMAREFLECTION = !1),
(t.RGBDREFLECTION = !1),
(t.EQUIRECTANGULAR_RELFECTION_FOV = !1),
(t.MAINUV1 = !1),
(t.MAINUV2 = !1),
(t.UV1 = !1),
(t.UV2 = !1),
(t.CLIPPLANE = !1),
(t.CLIPPLANE2 = !1),
(t.CLIPPLANE3 = !1),
(t.CLIPPLANE4 = !1),
(t.CLIPPLANE5 = !1),
(t.CLIPPLANE6 = !1),
(t.POINTSIZE = !1),
(t.FOG = !1),
(t.NORMAL = !1),
(t.NUM_BONE_INFLUENCERS = 0),
(t.BonesPerMesh = 0),
(t.INSTANCES = !1),
(t.SHADOWFLOAT = !1),
t.rebuild(),
t
);
}
return Object(h.d)(t, e), t;
})(Dr.a),
Vr = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (
(i.primaryColor = s.a.White()),
(i._primaryColorShadowLevel = 0),
(i._primaryColorHighlightLevel = 0),
(i.reflectionTexture = null),
(i.reflectionBlur = 0),
(i.diffuseTexture = null),
(i._shadowLights = null),
(i.shadowLights = null),
(i.shadowLevel = 0),
(i.sceneCenter = a.e.Zero()),
(i.opacityFresnel = !0),
(i.reflectionFresnel = !1),
(i.reflectionFalloffDistance = 0),
(i.reflectionAmount = 1),
(i.reflectionReflectance0 = 0.05),
(i.reflectionReflectance90 = 0.5),
(i.useRGBColor = !0),
(i.enableNoise = !1),
(i._fovMultiplier = 1),
(i.useEquirectangularFOV = !1),
(i._maxSimultaneousLights = 4),
(i.maxSimultaneousLights = 4),
(i._imageProcessingObserver = null),
(i.switchToBGR = !1),
(i._renderTargets = new ii.a(16)),
(i._reflectionControls = a.f.Zero()),
(i._white = s.a.White()),
(i._primaryShadowColor = s.a.Black()),
(i._primaryHighlightColor = s.a.Black()),
i._attachImageProcessingConfiguration(null),
(i.getRenderTargetTextures = function () {
return (
i._renderTargets.reset(),
i._diffuseTexture && i._diffuseTexture.isRenderTarget && i._renderTargets.push(i._diffuseTexture),
i._reflectionTexture && i._reflectionTexture.isRenderTarget && i._renderTargets.push(i._reflectionTexture),
i._renderTargets
);
}),
i
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "_perceptualColor", {
get: function () {
return this.__perceptualColor;
},
set: function (e) {
(this.__perceptualColor = e), this._computePrimaryColorFromPerceptualColor(), this._markAllSubMeshesAsLightsDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "primaryColorShadowLevel", {
get: function () {
return this._primaryColorShadowLevel;
},
set: function (e) {
(this._primaryColorShadowLevel = e), this._computePrimaryColors(), this._markAllSubMeshesAsLightsDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "primaryColorHighlightLevel", {
get: function () {
return this._primaryColorHighlightLevel;
},
set: function (e) {
(this._primaryColorHighlightLevel = e), this._computePrimaryColors(), this._markAllSubMeshesAsLightsDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "reflectionStandardFresnelWeight", {
set: function (e) {
var n = e;
n < 0.5
? ((n *= 2), (this.reflectionReflectance0 = t.StandardReflectance0 * n), (this.reflectionReflectance90 = t.StandardReflectance90 * n))
: ((n = 2 * n - 1), (this.reflectionReflectance0 = t.StandardReflectance0 + (1 - t.StandardReflectance0) * n), (this.reflectionReflectance90 = t.StandardReflectance90 + (1 - t.StandardReflectance90) * n));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fovMultiplier", {
get: function () {
return this._fovMultiplier;
},
set: function (e) {
isNaN(e) && (e = 1), (this._fovMultiplier = Math.max(0, Math.min(2, e)));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._attachImageProcessingConfiguration = function (e) {
var t = this;
e !== this._imageProcessingConfiguration &&
(this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
(this._imageProcessingConfiguration = e || this.getScene().imageProcessingConfiguration),
this._imageProcessingConfiguration &&
(this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () {
t._computePrimaryColorFromPerceptualColor(), t._markAllSubMeshesAsImageProcessingDirty();
})));
}),
Object.defineProperty(t.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
set: function (e) {
this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorCurvesEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorCurvesEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorCurvesEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorGradingEnabled", {
get: function () {
return this.imageProcessingConfiguration.colorGradingEnabled;
},
set: function (e) {
this.imageProcessingConfiguration.colorGradingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraToneMappingEnabled", {
get: function () {
return this._imageProcessingConfiguration.toneMappingEnabled;
},
set: function (e) {
this._imageProcessingConfiguration.toneMappingEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraExposure", {
get: function () {
return this._imageProcessingConfiguration.exposure;
},
set: function (e) {
this._imageProcessingConfiguration.exposure = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraContrast", {
get: function () {
return this._imageProcessingConfiguration.contrast;
},
set: function (e) {
this._imageProcessingConfiguration.contrast = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorGradingTexture", {
get: function () {
return this._imageProcessingConfiguration.colorGradingTexture;
},
set: function (e) {
this.imageProcessingConfiguration.colorGradingTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraColorCurves", {
get: function () {
return this.imageProcessingConfiguration.colorCurves;
},
set: function (e) {
this.imageProcessingConfiguration.colorCurves = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hasRenderTargetTextures", {
get: function () {
return !(!this._diffuseTexture || !this._diffuseTexture.isRenderTarget) || !(!this._reflectionTexture || !this._reflectionTexture.isRenderTarget);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.needAlphaTesting = function () {
return !0;
}),
(t.prototype.needAlphaBlending = function () {
return this.alpha < 0 || (null != this._diffuseTexture && this._diffuseTexture.hasAlpha);
}),
(t.prototype.isReadyForSubMesh = function (e, t, n) {
var i = this;
if ((void 0 === n && (n = !1), t.effect && this.isFrozen && t.effect._wasPreviouslyReady)) return !0;
t._materialDefines || (t._materialDefines = new Br());
var r = this.getScene(),
o = t._materialDefines;
if (!this.checkReadyOnEveryCall && t.effect && o._renderId === r.getRenderId()) return !0;
var a = r.getEngine();
if ((Ir.a.PrepareDefinesForLights(r, e, o, !1, this._maxSimultaneousLights), (o._needNormals = !0), Ir.a.PrepareDefinesForMultiview(r, o), o._areTexturesDirty)) {
if (((o._needUVs = !1), r.texturesEnabled)) {
if ((r.getEngine().getCaps().textureLOD && (o.TEXTURELODSUPPORT = !0), this._diffuseTexture && wr.a.DiffuseTextureEnabled)) {
if (!this._diffuseTexture.isReadyOrNotBlocking()) return !1;
Ir.a.PrepareDefinesForMergedUV(this._diffuseTexture, o, "DIFFUSE"),
(o.DIFFUSEHASALPHA = this._diffuseTexture.hasAlpha),
(o.GAMMADIFFUSE = this._diffuseTexture.gammaSpace),
(o.OPACITYFRESNEL = this._opacityFresnel);
} else (o.DIFFUSE = !1), (o.DIFFUSEHASALPHA = !1), (o.GAMMADIFFUSE = !1), (o.OPACITYFRESNEL = !1);
var s = this._reflectionTexture;
if (s && wr.a.ReflectionTextureEnabled) {
if (!s.isReadyOrNotBlocking()) return !1;
switch (
((o.REFLECTION = !0),
(o.GAMMAREFLECTION = s.gammaSpace),
(o.RGBDREFLECTION = s.isRGBD),
(o.REFLECTIONBLUR = this._reflectionBlur > 0),
(o.REFLECTIONMAP_OPPOSITEZ = this.getScene().useRightHandedSystem ? !s.invertZ : s.invertZ),
(o.LODINREFLECTIONALPHA = s.lodLevelInAlpha),
(o.EQUIRECTANGULAR_RELFECTION_FOV = this.useEquirectangularFOV),
(o.REFLECTIONBGR = this.switchToBGR),
s.coordinatesMode === ln.a.INVCUBIC_MODE && (o.INVERTCUBICMAP = !0),
(o.REFLECTIONMAP_3D = s.isCube),
s.coordinatesMode)
) {
case ln.a.EXPLICIT_MODE:
o.REFLECTIONMAP_EXPLICIT = !0;
break;
case ln.a.PLANAR_MODE:
o.REFLECTIONMAP_PLANAR = !0;
break;
case ln.a.PROJECTION_MODE:
o.REFLECTIONMAP_PROJECTION = !0;
break;
case ln.a.SKYBOX_MODE:
o.REFLECTIONMAP_SKYBOX = !0;
break;
case ln.a.SPHERICAL_MODE:
o.REFLECTIONMAP_SPHERICAL = !0;
break;
case ln.a.EQUIRECTANGULAR_MODE:
o.REFLECTIONMAP_EQUIRECTANGULAR = !0;
break;
case ln.a.FIXED_EQUIRECTANGULAR_MODE:
o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !0;
break;
case ln.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:
o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !0;
break;
case ln.a.CUBIC_MODE:
case ln.a.INVCUBIC_MODE:
default:
o.REFLECTIONMAP_CUBIC = !0;
}
this.reflectionFresnel
? ((o.REFLECTIONFRESNEL = !0),
(o.REFLECTIONFALLOFF = this.reflectionFalloffDistance > 0),
(this._reflectionControls.x = this.reflectionAmount),
(this._reflectionControls.y = this.reflectionReflectance0),
(this._reflectionControls.z = this.reflectionReflectance90),
(this._reflectionControls.w = 1 / this.reflectionFalloffDistance))
: ((o.REFLECTIONFRESNEL = !1), (o.REFLECTIONFALLOFF = !1));
} else
(o.REFLECTION = !1),
(o.REFLECTIONFRESNEL = !1),
(o.REFLECTIONFALLOFF = !1),
(o.REFLECTIONBLUR = !1),
(o.REFLECTIONMAP_3D = !1),
(o.REFLECTIONMAP_SPHERICAL = !1),
(o.REFLECTIONMAP_PLANAR = !1),
(o.REFLECTIONMAP_CUBIC = !1),
(o.REFLECTIONMAP_PROJECTION = !1),
(o.REFLECTIONMAP_SKYBOX = !1),
(o.REFLECTIONMAP_EXPLICIT = !1),
(o.REFLECTIONMAP_EQUIRECTANGULAR = !1),
(o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1),
(o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1),
(o.INVERTCUBICMAP = !1),
(o.REFLECTIONMAP_OPPOSITEZ = !1),
(o.LODINREFLECTIONALPHA = !1),
(o.GAMMAREFLECTION = !1),
(o.RGBDREFLECTION = !1);
}
(o.PREMULTIPLYALPHA = 7 === this.alphaMode || 8 === this.alphaMode), (o.USERGBCOLOR = this._useRGBColor), (o.NOISE = this._enableNoise);
}
if (
(o._areLightsDirty && (o.USEHIGHLIGHTANDSHADOWCOLORS = !this._useRGBColor && (0 !== this._primaryColorShadowLevel || 0 !== this._primaryColorHighlightLevel)),
o._areImageProcessingDirty && this._imageProcessingConfiguration)
) {
if (!this._imageProcessingConfiguration.isReady()) return !1;
this._imageProcessingConfiguration.prepareDefines(o);
}
if (
(Ir.a.PrepareDefinesForMisc(e, r, !1, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e), o),
Ir.a.PrepareDefinesForFrameBoundValues(r, a, o, n),
Ir.a.PrepareDefinesForAttributes(e, o, !1, !0, !1) &&
e &&
(r.getEngine().getCaps().standardDerivatives || e.isVerticesDataPresent(wn.b.NormalKind) || (e.createNormals(!0), g.a.Warn("BackgroundMaterial: Normals have been created for the mesh: " + e.name))),
o.isDirty)
) {
o.markAsProcessed(), r.resetCachedMaterial();
var c = new jr.a();
o.FOG && c.addFallback(0, "FOG"), o.POINTSIZE && c.addFallback(1, "POINTSIZE"), o.MULTIVIEW && c.addFallback(0, "MULTIVIEW"), Ir.a.HandleFallbacksForShadows(o, c, this._maxSimultaneousLights);
var l = [wn.b.PositionKind];
o.NORMAL && l.push(wn.b.NormalKind), o.UV1 && l.push(wn.b.UVKind), o.UV2 && l.push(wn.b.UV2Kind), Ir.a.PrepareAttributesForBones(l, e, o, c), Ir.a.PrepareAttributesForInstances(l, o);
var u = [
"world",
"view",
"viewProjection",
"vEyePosition",
"vLightsType",
"vFogInfos",
"vFogColor",
"pointSize",
"vClipPlane",
"vClipPlane2",
"vClipPlane3",
"vClipPlane4",
"vClipPlane5",
"vClipPlane6",
"mBones",
"vPrimaryColor",
"vPrimaryColorShadow",
"vReflectionInfos",
"reflectionMatrix",
"vReflectionMicrosurfaceInfos",
"fFovMultiplier",
"shadowLevel",
"alpha",
"vBackgroundCenter",
"vReflectionControl",
"vDiffuseInfos",
"diffuseMatrix",
],
h = ["diffuseSampler", "reflectionSampler", "reflectionSamplerLow", "reflectionSamplerHigh"],
d = ["Material", "Scene"];
En.a && (En.a.PrepareUniforms(u, o), En.a.PrepareSamplers(h, o)),
Ir.a.PrepareUniformsAndSamplersList({ uniformsNames: u, uniformBuffersNames: d, samplers: h, defines: o, maxSimultaneousLights: this._maxSimultaneousLights });
var p = o.toString();
t.setEffect(
r.getEngine().createEffect(
"background",
{
attributes: l,
uniformsNames: u,
uniformBuffersNames: d,
samplers: h,
defines: p,
fallbacks: c,
onCompiled: function (e) {
i.onCompiled && i.onCompiled(e), i.bindSceneUniformBuffer(e, r.getSceneUniformBuffer());
},
onError: this.onError,
indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights },
},
a
),
o
),
this.buildUniformLayout();
}
return !(!t.effect || !t.effect.isReady()) && ((o._renderId = r.getRenderId()), (t.effect._wasPreviouslyReady = !0), !0);
}),
(t.prototype._computePrimaryColorFromPerceptualColor = function () {
this.__perceptualColor &&
(this._primaryColor.copyFrom(this.__perceptualColor),
this._primaryColor.toLinearSpaceToRef(this._primaryColor),
this._imageProcessingConfiguration && this._primaryColor.scaleToRef(1 / this._imageProcessingConfiguration.exposure, this._primaryColor),
this._computePrimaryColors());
}),
(t.prototype._computePrimaryColors = function () {
(0 === this._primaryColorShadowLevel && 0 === this._primaryColorHighlightLevel) ||
(this._primaryColor.scaleToRef(this._primaryColorShadowLevel, this._primaryShadowColor),
this._primaryColor.subtractToRef(this._primaryShadowColor, this._primaryShadowColor),
this._white.subtractToRef(this._primaryColor, this._primaryHighlightColor),
this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel, this._primaryHighlightColor),
this._primaryColor.addToRef(this._primaryHighlightColor, this._primaryHighlightColor));
}),
(t.prototype.buildUniformLayout = function () {
this._uniformBuffer.addUniform("vPrimaryColor", 4),
this._uniformBuffer.addUniform("vPrimaryColorShadow", 4),
this._uniformBuffer.addUniform("vDiffuseInfos", 2),
this._uniformBuffer.addUniform("vReflectionInfos", 2),
this._uniformBuffer.addUniform("diffuseMatrix", 16),
this._uniformBuffer.addUniform("reflectionMatrix", 16),
this._uniformBuffer.addUniform("vReflectionMicrosurfaceInfos", 3),
this._uniformBuffer.addUniform("fFovMultiplier", 1),
this._uniformBuffer.addUniform("pointSize", 1),
this._uniformBuffer.addUniform("shadowLevel", 1),
this._uniformBuffer.addUniform("alpha", 1),
this._uniformBuffer.addUniform("vBackgroundCenter", 3),
this._uniformBuffer.addUniform("vReflectionControl", 4),
this._uniformBuffer.create();
}),
(t.prototype.unbind = function () {
this._diffuseTexture && this._diffuseTexture.isRenderTarget && this._uniformBuffer.setTexture("diffuseSampler", null),
this._reflectionTexture && this._reflectionTexture.isRenderTarget && this._uniformBuffer.setTexture("reflectionSampler", null),
e.prototype.unbind.call(this);
}),
(t.prototype.bindOnlyWorldMatrix = function (e) {
this._activeEffect.setMatrix("world", e);
}),
(t.prototype.bindForSubMesh = function (e, t, n) {
var i = this.getScene(),
r = n._materialDefines;
if (r) {
var o = n.effect;
if (o) {
(this._activeEffect = o), this.bindOnlyWorldMatrix(e), Ir.a.BindBonesParameters(t, this._activeEffect);
var a = this._mustRebind(i, o, t.visibility);
if (a) {
this._uniformBuffer.bindToEffect(o, "Material"), this.bindViewProjection(o);
var s = this._reflectionTexture;
(this._uniformBuffer.useUbo && this.isFrozen && this._uniformBuffer.isSync) ||
(i.texturesEnabled &&
(this._diffuseTexture &&
wr.a.DiffuseTextureEnabled &&
(this._uniformBuffer.updateFloat2("vDiffuseInfos", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level),
Ir.a.BindTextureMatrix(this._diffuseTexture, this._uniformBuffer, "diffuse")),
s &&
wr.a.ReflectionTextureEnabled &&
(this._uniformBuffer.updateMatrix("reflectionMatrix", s.getReflectionTextureMatrix()),
this._uniformBuffer.updateFloat2("vReflectionInfos", s.level, this._reflectionBlur),
this._uniformBuffer.updateFloat3("vReflectionMicrosurfaceInfos", s.getSize().width, s.lodGenerationScale, s.lodGenerationOffset))),
this.shadowLevel > 0 && this._uniformBuffer.updateFloat("shadowLevel", this.shadowLevel),
this._uniformBuffer.updateFloat("alpha", this.alpha),
this.pointsCloud && this._uniformBuffer.updateFloat("pointSize", this.pointSize),
r.USEHIGHLIGHTANDSHADOWCOLORS
? (this._uniformBuffer.updateColor4("vPrimaryColor", this._primaryHighlightColor, 1), this._uniformBuffer.updateColor4("vPrimaryColorShadow", this._primaryShadowColor, 1))
: this._uniformBuffer.updateColor4("vPrimaryColor", this._primaryColor, 1)),
this._uniformBuffer.updateFloat("fFovMultiplier", this._fovMultiplier),
i.texturesEnabled &&
(this._diffuseTexture && wr.a.DiffuseTextureEnabled && this._uniformBuffer.setTexture("diffuseSampler", this._diffuseTexture),
s &&
wr.a.ReflectionTextureEnabled &&
(r.REFLECTIONBLUR && r.TEXTURELODSUPPORT
? this._uniformBuffer.setTexture("reflectionSampler", s)
: r.REFLECTIONBLUR
? (this._uniformBuffer.setTexture("reflectionSampler", s._lodTextureMid || s),
this._uniformBuffer.setTexture("reflectionSamplerLow", s._lodTextureLow || s),
this._uniformBuffer.setTexture("reflectionSamplerHigh", s._lodTextureHigh || s))
: this._uniformBuffer.setTexture("reflectionSampler", s),
r.REFLECTIONFRESNEL &&
(this._uniformBuffer.updateFloat3("vBackgroundCenter", this.sceneCenter.x, this.sceneCenter.y, this.sceneCenter.z),
this._uniformBuffer.updateFloat4("vReflectionControl", this._reflectionControls.x, this._reflectionControls.y, this._reflectionControls.z, this._reflectionControls.w)))),
Ir.a.BindClipPlane(this._activeEffect, i),
Ir.a.BindEyePosition(o, i);
}
(!a && this.isFrozen) ||
(i.lightsEnabled && Ir.a.BindLights(i, t, this._activeEffect, r, this._maxSimultaneousLights, !1),
this.bindView(o),
Ir.a.BindFogParameters(i, t, this._activeEffect, !0),
this._imageProcessingConfiguration && this._imageProcessingConfiguration.bind(this._activeEffect)),
this._uniformBuffer.update(),
this._afterBind(t, this._activeEffect);
}
}
}),
(t.prototype.hasTexture = function (t) {
return !!e.prototype.hasTexture.call(this, t) || this._reflectionTexture === t || this._diffuseTexture === t;
}),
(t.prototype.dispose = function (t, n) {
void 0 === t && (t = !1),
void 0 === n && (n = !1),
n && (this.diffuseTexture && this.diffuseTexture.dispose(), this.reflectionTexture && this.reflectionTexture.dispose()),
this._renderTargets.dispose(),
this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
e.prototype.dispose.call(this, t);
}),
(t.prototype.clone = function (e) {
var n = this;
return He.a.Clone(function () {
return new t(e, n.getScene());
}, this);
}),
(t.prototype.serialize = function () {
var e = He.a.Serialize(this);
return (e.customType = "BABYLON.BackgroundMaterial"), e;
}),
(t.prototype.getClassName = function () {
return "BackgroundMaterial";
}),
(t.Parse = function (e, n, i) {
return He.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
}),
(t.StandardReflectance0 = 0.05),
(t.StandardReflectance90 = 0.5),
Object(h.c)([Object(He.e)()], t.prototype, "_primaryColor", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "primaryColor", void 0),
Object(h.c)([Object(He.e)()], t.prototype, "__perceptualColor", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_primaryColorShadowLevel", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_primaryColorHighlightLevel", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "primaryColorHighlightLevel", null),
Object(h.c)([Object(He.m)()], t.prototype, "_reflectionTexture", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionTexture", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_reflectionBlur", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionBlur", void 0),
Object(h.c)([Object(He.m)()], t.prototype, "_diffuseTexture", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "diffuseTexture", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "shadowLights", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_shadowLevel", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "shadowLevel", void 0),
Object(h.c)([Object(He.o)()], t.prototype, "_sceneCenter", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "sceneCenter", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_opacityFresnel", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "opacityFresnel", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_reflectionFresnel", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionFresnel", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_reflectionFalloffDistance", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionFalloffDistance", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_reflectionAmount", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionAmount", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_reflectionReflectance0", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionReflectance0", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_reflectionReflectance90", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionReflectance90", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_useRGBColor", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRGBColor", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_enableNoise", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "enableNoise", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_maxSimultaneousLights", void 0),
Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "maxSimultaneousLights", void 0),
Object(h.c)([Object(He.i)()], t.prototype, "_imageProcessingConfiguration", void 0),
t
);
})(Rr.a);
c.a.RegisteredTypes["BABYLON.BackgroundMaterial"] = Vr;
var Gr = (function () {
function e(t, n) {
var i = this;
(this._errorHandler = function (e, t) {
i.onErrorObservable.notifyObservers({ message: e, exception: t });
}),
(this._options = Object(h.a)(Object(h.a)({}, e._getDefaultOptions()), t)),
(this._scene = n),
(this.onErrorObservable = new o.c()),
this._setupBackground(),
this._setupImageProcessing();
}
return (
(e._getDefaultOptions = function () {
return {
createGround: !0,
groundSize: 15,
groundTexture: this._groundTextureCDNUrl,
groundColor: new s.a(0.2, 0.2, 0.3).toLinearSpace().scale(3),
groundOpacity: 0.9,
enableGroundShadow: !0,
groundShadowLevel: 0.5,
enableGroundMirror: !1,
groundMirrorSizeRatio: 0.3,
groundMirrorBlurKernel: 64,
groundMirrorAmount: 1,
groundMirrorFresnelWeight: 1,
groundMirrorFallOffDistance: 0,
groundMirrorTextureType: 0,
groundYBias: 1e-5,
createSkybox: !0,
skyboxSize: 20,
skyboxTexture: this._skyboxTextureCDNUrl,
skyboxColor: new s.a(0.2, 0.2, 0.3).toLinearSpace().scale(3),
backgroundYRotation: 0,
sizeAuto: !0,
rootPosition: a.e.Zero(),
setupImageProcessing: !0,
environmentTexture: this._environmentTextureCDNUrl,
cameraExposure: 0.8,
cameraContrast: 1.2,
toneMappingEnabled: !0,
};
}),
Object.defineProperty(e.prototype, "rootMesh", {
get: function () {
return this._rootMesh;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "skybox", {
get: function () {
return this._skybox;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "skyboxTexture", {
get: function () {
return this._skyboxTexture;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "skyboxMaterial", {
get: function () {
return this._skyboxMaterial;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "ground", {
get: function () {
return this._ground;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "groundTexture", {
get: function () {
return this._groundTexture;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "groundMirror", {
get: function () {
return this._groundMirror;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "groundMirrorRenderList", {
get: function () {
return this._groundMirror ? this._groundMirror.renderList : null;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "groundMaterial", {
get: function () {
return this._groundMaterial;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.updateOptions = function (e) {
var t = Object(h.a)(Object(h.a)({}, this._options), e);
this._ground && !t.createGround && (this._ground.dispose(), (this._ground = null)),
this._groundMaterial && !t.createGround && (this._groundMaterial.dispose(), (this._groundMaterial = null)),
this._groundTexture && this._options.groundTexture != t.groundTexture && (this._groundTexture.dispose(), (this._groundTexture = null)),
this._skybox && !t.createSkybox && (this._skybox.dispose(), (this._skybox = null)),
this._skyboxMaterial && !t.createSkybox && (this._skyboxMaterial.dispose(), (this._skyboxMaterial = null)),
this._skyboxTexture && this._options.skyboxTexture != t.skyboxTexture && (this._skyboxTexture.dispose(), (this._skyboxTexture = null)),
this._groundMirror && !t.enableGroundMirror && (this._groundMirror.dispose(), (this._groundMirror = null)),
this._scene.environmentTexture && this._options.environmentTexture != t.environmentTexture && this._scene.environmentTexture.dispose(),
(this._options = t),
this._setupBackground(),
this._setupImageProcessing();
}),
(e.prototype.setMainColor = function (e) {
this.groundMaterial && (this.groundMaterial.primaryColor = e), this.skyboxMaterial && (this.skyboxMaterial.primaryColor = e), this.groundMirror && (this.groundMirror.clearColor = new s.b(e.r, e.g, e.b, 1));
}),
(e.prototype._setupImageProcessing = function () {
this._options.setupImageProcessing &&
((this._scene.imageProcessingConfiguration.contrast = this._options.cameraContrast),
(this._scene.imageProcessingConfiguration.exposure = this._options.cameraExposure),
(this._scene.imageProcessingConfiguration.toneMappingEnabled = this._options.toneMappingEnabled),
this._setupEnvironmentTexture());
}),
(e.prototype._setupEnvironmentTexture = function () {
if (!this._scene.environmentTexture)
if (this._options.environmentTexture instanceof Cr.a) this._scene.environmentTexture = this._options.environmentTexture;
else {
var e = Ar.a.CreateFromPrefilteredData(this._options.environmentTexture, this._scene);
this._scene.environmentTexture = e;
}
}),
(e.prototype._setupBackground = function () {
this._rootMesh || (this._rootMesh = new Ee.a("BackgroundHelper", this._scene)), (this._rootMesh.rotation.y = this._options.backgroundYRotation);
var e = this._getSceneSize();
this._options.createGround &&
(this._setupGround(e), this._setupGroundMaterial(), this._setupGroundDiffuseTexture(), this._options.enableGroundMirror && this._setupGroundMirrorTexture(e), this._setupMirrorInGroundMaterial()),
this._options.createSkybox && (this._setupSkybox(e), this._setupSkyboxMaterial(), this._setupSkyboxReflectionTexture()),
(this._rootMesh.position.x = e.rootPosition.x),
(this._rootMesh.position.z = e.rootPosition.z),
(this._rootMesh.position.y = e.rootPosition.y);
}),
(e.prototype._getSceneSize = function () {
var e = this,
t = this._options.groundSize,
n = this._options.skyboxSize,
i = this._options.rootPosition;
if (!this._scene.meshes || 1 === this._scene.meshes.length) return { groundSize: t, skyboxSize: n, rootPosition: i };
var r = this._scene.getWorldExtends(function (t) {
return t !== e._ground && t !== e._rootMesh && t !== e._skybox;
}),
o = r.max.subtract(r.min);
if (this._options.sizeAuto) {
this._scene.activeCamera instanceof xt && this._scene.activeCamera.upperRadiusLimit && (n = t = 2 * this._scene.activeCamera.upperRadiusLimit);
var a = o.length();
a > t && (n = t = 2 * a), (t *= 1.1), (n *= 1.5), ((i = r.min.add(o.scale(0.5))).y = r.min.y - this._options.groundYBias);
}
return { groundSize: t, skyboxSize: n, rootPosition: i };
}),
(e.prototype._setupGround = function (e) {
var t = this;
(this._ground && !this._ground.isDisposed()) ||
((this._ground = Ee.a.CreatePlane("BackgroundPlane", e.groundSize, this._scene)),
(this._ground.rotation.x = Math.PI / 2),
(this._ground.parent = this._rootMesh),
this._ground.onDisposeObservable.add(function () {
t._ground = null;
})),
(this._ground.receiveShadows = this._options.enableGroundShadow);
}),
(e.prototype._setupGroundMaterial = function () {
this._groundMaterial || (this._groundMaterial = new Vr("BackgroundPlaneMaterial", this._scene)),
(this._groundMaterial.alpha = this._options.groundOpacity),
(this._groundMaterial.alphaMode = 8),
(this._groundMaterial.shadowLevel = this._options.groundShadowLevel),
(this._groundMaterial.primaryColor = this._options.groundColor),
(this._groundMaterial.useRGBColor = !1),
(this._groundMaterial.enableNoise = !0),
this._ground && (this._ground.material = this._groundMaterial);
}),
(e.prototype._setupGroundDiffuseTexture = function () {
if (this._groundMaterial && !this._groundTexture)
if (this._options.groundTexture instanceof Cr.a) this._groundMaterial.diffuseTexture = this._options.groundTexture;
else {
var e = new ln.a(this._options.groundTexture, this._scene, void 0, void 0, void 0, void 0, this._errorHandler);
(e.gammaSpace = !1), (e.hasAlpha = !0), (this._groundMaterial.diffuseTexture = e);
}
}),
(e.prototype._setupGroundMirrorTexture = function (e) {
var t = ln.a.CLAMP_ADDRESSMODE;
if (
!this._groundMirror &&
((this._groundMirror = new Mr("BackgroundPlaneMirrorTexture", { ratio: this._options.groundMirrorSizeRatio }, this._scene, !1, this._options.groundMirrorTextureType, ln.a.BILINEAR_SAMPLINGMODE, !0)),
(this._groundMirror.mirrorPlane = new Zn.a(0, -1, 0, e.rootPosition.y)),
(this._groundMirror.anisotropicFilteringLevel = 1),
(this._groundMirror.wrapU = t),
(this._groundMirror.wrapV = t),
(this._groundMirror.gammaSpace = !1),
this._groundMirror.renderList)
)
for (var n = 0; n < this._scene.meshes.length; n++) {
var i = this._scene.meshes[n];
i !== this._ground && i !== this._skybox && i !== this._rootMesh && this._groundMirror.renderList.push(i);
}
(this._groundMirror.clearColor = new s.b(this._options.groundColor.r, this._options.groundColor.g, this._options.groundColor.b, 1)), (this._groundMirror.adaptiveBlurKernel = this._options.groundMirrorBlurKernel);
}),
(e.prototype._setupMirrorInGroundMaterial = function () {
this._groundMaterial &&
((this._groundMaterial.reflectionTexture = this._groundMirror),
(this._groundMaterial.reflectionFresnel = !0),
(this._groundMaterial.reflectionAmount = this._options.groundMirrorAmount),
(this._groundMaterial.reflectionStandardFresnelWeight = this._options.groundMirrorFresnelWeight),
(this._groundMaterial.reflectionFalloffDistance = this._options.groundMirrorFallOffDistance));
}),
(e.prototype._setupSkybox = function (e) {
var t = this;
(this._skybox && !this._skybox.isDisposed()) ||
((this._skybox = Ee.a.CreateBox("BackgroundSkybox", e.skyboxSize, this._scene, void 0, Ee.a.BACKSIDE)),
this._skybox.onDisposeObservable.add(function () {
t._skybox = null;
})),
(this._skybox.parent = this._rootMesh);
}),
(e.prototype._setupSkyboxMaterial = function () {
this._skybox &&
(this._skyboxMaterial || (this._skyboxMaterial = new Vr("BackgroundSkyboxMaterial", this._scene)),
(this._skyboxMaterial.useRGBColor = !1),
(this._skyboxMaterial.primaryColor = this._options.skyboxColor),
(this._skyboxMaterial.enableNoise = !0),
(this._skybox.material = this._skyboxMaterial));
}),
(e.prototype._setupSkyboxReflectionTexture = function () {
this._skyboxMaterial &&
(this._skyboxTexture ||
(this._options.skyboxTexture instanceof Cr.a
? (this._skyboxMaterial.reflectionTexture = this._options.skyboxTexture)
: ((this._skyboxTexture = new Ar.a(this._options.skyboxTexture, this._scene, void 0, void 0, void 0, void 0, this._errorHandler)),
(this._skyboxTexture.coordinatesMode = ln.a.SKYBOX_MODE),
(this._skyboxTexture.gammaSpace = !1),
(this._skyboxMaterial.reflectionTexture = this._skyboxTexture))));
}),
(e.prototype.dispose = function () {
this._groundMaterial && this._groundMaterial.dispose(!0, !0), this._skyboxMaterial && this._skyboxMaterial.dispose(!0, !0), this._rootMesh.dispose(!1);
}),
(e._groundTextureCDNUrl = "https://assets.babylonjs.com/environments/backgroundGround.png"),
(e._skyboxTextureCDNUrl = "https://assets.babylonjs.com/environments/backgroundSkybox.dds"),
(e._environmentTextureCDNUrl = "https://assets.babylonjs.com/environments/environmentSpecular.env"),
e
);
})(),
Ur = (function (e) {
function t(n, i, r, s, c) {
void 0 === c && (c = null);
var l = e.call(this, n, s) || this;
(l._useDirectMapping = !1),
(l.onLoadErrorObservable = new o.c()),
(l._imageMode = t.MODE_MONOSCOPIC),
(l._onBeforeCameraRenderObserver = null),
(n = n || "photoDome"),
(r.resolution = 0 | Math.abs(r.resolution) || 32),
(r.size = Math.abs(r.size) || (s.activeCamera ? 0.48 * s.activeCamera.maxZ : 1e3)),
void 0 === r.useDirectMapping ? (l._useDirectMapping = !0) : (l._useDirectMapping = r.useDirectMapping),
void 0 === r.faceForward && (r.faceForward = !0),
l._setReady(!1);
var u = (l._material = new Vr(n + "_material", s));
if (
((l._mesh = Ee.a.CreateSphere(n + "_mesh", r.resolution, r.size, s, !1, Ee.a.BACKSIDE)),
(u.opacityFresnel = !1),
(u.useEquirectangularFOV = !0),
(u.fovMultiplier = 1),
(l.photoTexture = new ln.a(i, s, !0, !l._useDirectMapping, void 0, void 0, function (e, t) {
l.onLoadErrorObservable.notifyObservers(e || "Unknown error occured"), c && c(e, t);
})),
(l.photoTexture.anisotropicFilteringLevel = 1),
l.photoTexture.onLoadObservable.addOnce(function () {
l._setReady(!0);
}),
(l._mesh.material = u),
(l._mesh.parent = l),
r.faceForward && s.activeCamera)
) {
var h = s.activeCamera,
d = a.e.Forward(),
p = a.e.TransformNormal(d, h.getViewMatrix());
p.normalize(), (l.rotation.y = Math.acos(a.e.Dot(d, p)));
}
return l;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "photoTexture", {
get: function () {
return this._photoTexture;
},
set: function (e) {
this._photoTexture !== e &&
((this._photoTexture = e),
this._useDirectMapping
? ((this._photoTexture.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._photoTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._material.diffuseTexture = this._photoTexture))
: ((this._photoTexture.coordinatesMode = ln.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE), (this._photoTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._material.reflectionTexture = this._photoTexture)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "mesh", {
get: function () {
return this._mesh;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fovMultiplier", {
get: function () {
return this._material.fovMultiplier;
},
set: function (e) {
this._material.fovMultiplier = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "imageMode", {
get: function () {
return this._imageMode;
},
set: function (e) {
this._imageMode !== e && this._changeImageMode(e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._changeImageMode = function (e) {
var n = this;
switch (
(this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),
(this._imageMode = e),
(this._photoTexture.uScale = 1),
(this._photoTexture.vScale = 1),
(this._photoTexture.uOffset = 0),
(this._photoTexture.vOffset = 0),
e)
) {
case t.MODE_SIDEBYSIDE:
(this._photoTexture.uScale = 0.5),
(this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) {
n._photoTexture.uOffset = e.isRightCamera ? 0.5 : 0;
}));
break;
case t.MODE_TOPBOTTOM:
(this._photoTexture.vScale = 0.5),
(this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) {
n._photoTexture.vOffset = e.isRightCamera ? 0.5 : 0;
}));
}
}),
(t.prototype.dispose = function (t, n) {
void 0 === n && (n = !1),
this._photoTexture.dispose(),
this._mesh.dispose(),
this._material.dispose(),
this.onLoadErrorObservable.clear(),
this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),
e.prototype.dispose.call(this, t, n);
}),
(t.MODE_MONOSCOPIC = 0),
(t.MODE_TOPBOTTOM = 1),
(t.MODE_SIDEBYSIDE = 2),
t
);
})(si.a),
Hr = n(49),
Wr = n(108),
Xr = n(145);
n(230);
function Yr(e) {
return e.charCodeAt(0) + (e.charCodeAt(1) << 8) + (e.charCodeAt(2) << 16) + (e.charCodeAt(3) << 24);
}
var Kr = Yr("DXT1"),
Zr = Yr("DXT3"),
qr = Yr("DXT5"),
Qr = Yr("DX10"),
Jr = (function () {
function e() {}
return (
(e.GetDDSInfo = function (e) {
var t = new Int32Array(e.buffer, e.byteOffset, 31),
n = new Int32Array(e.buffer, e.byteOffset, 35),
i = 1;
131072 & t[2] && (i = Math.max(1, t[7]));
var r = t[21],
o = r === Qr ? n[32] : 0,
a = 0;
switch (r) {
case 113:
a = 2;
break;
case 116:
a = 1;
break;
case Qr:
if (10 === o) {
a = 2;
break;
}
if (2 === o) {
a = 1;
break;
}
}
return {
width: t[4],
height: t[3],
mipmapCount: i,
isFourCC: 4 == (4 & t[20]),
isRGB: 64 == (64 & t[20]),
isLuminance: 131072 == (131072 & t[20]),
isCube: 512 == (512 & t[28]),
isCompressed: r === Kr || r === Zr || r === qr,
dxgiFormat: o,
textureType: a,
};
}),
(e._ToHalfFloat = function (t) {
e._FloatView || ((e._FloatView = new Float32Array(1)), (e._Int32View = new Int32Array(e._FloatView.buffer))), (e._FloatView[0] = t);
var n = e._Int32View[0],
i = (n >> 16) & 32768,
r = (n >> 12) & 2047,
o = (n >> 23) & 255;
return o < 103 ? i : o > 142 ? ((i |= 31744), (i |= (255 == o ? 0 : 1) && 8388607 & n)) : o < 113 ? (i |= ((r |= 2048) >> (114 - o)) + ((r >> (113 - o)) & 1)) : ((i |= ((o - 112) << 10) | (r >> 1)), (i += 1 & r));
}),
(e._FromHalfFloat = function (e) {
var t = (32768 & e) >> 15,
n = (31744 & e) >> 10,
i = 1023 & e;
return 0 === n ? (t ? -1 : 1) * Math.pow(2, -14) * (i / Math.pow(2, 10)) : 31 == n ? (i ? NaN : (1 / 0) * (t ? -1 : 1)) : (t ? -1 : 1) * Math.pow(2, n - 15) * (1 + i / Math.pow(2, 10));
}),
(e._GetHalfFloatAsFloatRGBAArrayBuffer = function (t, n, i, r, o, a) {
for (var s = new Float32Array(r), c = new Uint16Array(o, i), l = 0, u = 0; u < n; u++)
for (var h = 0; h < t; h++) {
var d = 4 * (h + u * t);
(s[l] = e._FromHalfFloat(c[d])),
(s[l + 1] = e._FromHalfFloat(c[d + 1])),
(s[l + 2] = e._FromHalfFloat(c[d + 2])),
e.StoreLODInAlphaChannel ? (s[l + 3] = a) : (s[l + 3] = e._FromHalfFloat(c[d + 3])),
(l += 4);
}
return s;
}),
(e._GetHalfFloatRGBAArrayBuffer = function (t, n, i, r, o, a) {
if (e.StoreLODInAlphaChannel) {
for (var s = new Uint16Array(r), c = new Uint16Array(o, i), l = 0, u = 0; u < n; u++)
for (var h = 0; h < t; h++) {
var d = 4 * (h + u * t);
(s[l] = c[d]), (s[l + 1] = c[d + 1]), (s[l + 2] = c[d + 2]), (s[l + 3] = e._ToHalfFloat(a)), (l += 4);
}
return s;
}
return new Uint16Array(o, i, r);
}),
(e._GetFloatRGBAArrayBuffer = function (t, n, i, r, o, a) {
if (e.StoreLODInAlphaChannel) {
for (var s = new Float32Array(r), c = new Float32Array(o, i), l = 0, u = 0; u < n; u++)
for (var h = 0; h < t; h++) {
var d = 4 * (h + u * t);
(s[l] = c[d]), (s[l + 1] = c[d + 1]), (s[l + 2] = c[d + 2]), (s[l + 3] = a), (l += 4);
}
return s;
}
return new Float32Array(o, i, r);
}),
(e._GetFloatAsUIntRGBAArrayBuffer = function (t, n, i, r, o, a) {
for (var s = new Uint8Array(r), c = new Float32Array(o, i), l = 0, u = 0; u < n; u++)
for (var h = 0; h < t; h++) {
var d = 4 * (h + u * t);
(s[l] = 255 * z.a.Clamp(c[d])), (s[l + 1] = 255 * z.a.Clamp(c[d + 1])), (s[l + 2] = 255 * z.a.Clamp(c[d + 2])), e.StoreLODInAlphaChannel ? (s[l + 3] = a) : (s[l + 3] = 255 * z.a.Clamp(c[d + 3])), (l += 4);
}
return s;
}),
(e._GetHalfFloatAsUIntRGBAArrayBuffer = function (t, n, i, r, o, a) {
for (var s = new Uint8Array(r), c = new Uint16Array(o, i), l = 0, u = 0; u < n; u++)
for (var h = 0; h < t; h++) {
var d = 4 * (h + u * t);
(s[l] = 255 * z.a.Clamp(e._FromHalfFloat(c[d]))),
(s[l + 1] = 255 * z.a.Clamp(e._FromHalfFloat(c[d + 1]))),
(s[l + 2] = 255 * z.a.Clamp(e._FromHalfFloat(c[d + 2]))),
e.StoreLODInAlphaChannel ? (s[l + 3] = a) : (s[l + 3] = 255 * z.a.Clamp(e._FromHalfFloat(c[d + 3]))),
(l += 4);
}
return s;
}),
(e._GetRGBAArrayBuffer = function (e, t, n, i, r, o, a, s, c) {
for (var l = new Uint8Array(i), u = new Uint8Array(r, n), h = 0, d = 0; d < t; d++)
for (var p = 0; p < e; p++) {
var f = 4 * (p + d * e);
(l[h] = u[f + o]), (l[h + 1] = u[f + a]), (l[h + 2] = u[f + s]), (l[h + 3] = u[f + c]), (h += 4);
}
return l;
}),
(e._ExtractLongWordOrder = function (t) {
return 0 === t || 255 === t || -16777216 === t ? 0 : 1 + e._ExtractLongWordOrder(t >> 8);
}),
(e._GetRGBArrayBuffer = function (e, t, n, i, r, o, a, s) {
for (var c = new Uint8Array(i), l = new Uint8Array(r, n), u = 0, h = 0; h < t; h++)
for (var d = 0; d < e; d++) {
var p = 3 * (d + h * e);
(c[u] = l[p + o]), (c[u + 1] = l[p + a]), (c[u + 2] = l[p + s]), (u += 3);
}
return c;
}),
(e._GetLuminanceArrayBuffer = function (e, t, n, i, r) {
for (var o = new Uint8Array(i), a = new Uint8Array(r, n), s = 0, c = 0; c < t; c++)
for (var l = 0; l < e; l++) {
var u = l + c * e;
(o[s] = a[u]), s++;
}
return o;
}),
(e.UploadDDSLevels = function (t, n, i, r, o, a, s, c) {
void 0 === s && (s = -1);
var l = null;
r.sphericalPolynomial && (l = new Array());
var u,
h,
d,
p,
f,
m,
b = t.getCaps().s3tc,
_ = new Int32Array(i.buffer, i.byteOffset, 31),
v = 0,
y = 0,
C = 1;
if (542327876 === _[0])
if (r.isFourCC || r.isRGB || r.isLuminance)
if (!r.isCompressed || b) {
var P = _[22];
d = _[1] + 4;
var x = !1;
if (r.isFourCC)
switch (_[21]) {
case Kr:
(C = 8), (y = b.COMPRESSED_RGBA_S3TC_DXT1_EXT);
break;
case Zr:
(C = 16), (y = b.COMPRESSED_RGBA_S3TC_DXT3_EXT);
break;
case qr:
(C = 16), (y = b.COMPRESSED_RGBA_S3TC_DXT5_EXT);
break;
case 113:
case 116:
x = !0;
break;
case Qr:
d += 20;
var T = !1;
switch (r.dxgiFormat) {
case 10:
case 2:
(x = !0), (T = !0);
break;
case 88:
(r.isRGB = !0), (r.isFourCC = !1), (P = 32), (T = !0);
}
if (T) break;
default:
return;
}
var S = e._ExtractLongWordOrder(_[23]),
O = e._ExtractLongWordOrder(_[24]),
E = e._ExtractLongWordOrder(_[25]),
M = e._ExtractLongWordOrder(_[26]);
x && (y = t._getRGBABufferInternalSizedFormat(r.textureType)), (f = 1), 131072 & _[2] && !1 !== o && (f = Math.max(1, _[7]));
for (var A = c || 0; A < a; A++) {
for (u = _[4], h = _[3], m = 0; m < f; ++m) {
if (-1 === s || s === m) {
var I = -1 === s ? m : 0;
if (!r.isCompressed && r.isFourCC) {
(n.format = 5), (v = u * h * 4);
var D = null;
t._badOS || t._badDesktopOS || (!t.getCaps().textureHalfFloat && !t.getCaps().textureFloat)
? (128 === P
? ((D = e._GetFloatAsUIntRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(e._GetFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)))
: 64 === P &&
((D = e._GetHalfFloatAsUIntRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)),
l && 0 == I && l.push(e._GetHalfFloatAsFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I))),
(n.type = 0))
: 128 === P
? ((n.type = 1), (D = e._GetFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(D))
: 64 !== P || t.getCaps().textureHalfFloat
? ((n.type = 2), (D = e._GetHalfFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(e._GetHalfFloatAsFloatRGBAArrayBuffer(u, h, d, v, i.buffer, I)))
: ((n.type = 1), (D = e._GetHalfFloatAsFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(D)),
D && t._uploadDataToTextureDirectly(n, D, A, I);
} else if (r.isRGB)
(n.type = 0),
24 === P
? ((n.format = 4), (v = u * h * 3), (p = e._GetRGBArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, S, O, E)), t._uploadDataToTextureDirectly(n, p, A, I))
: ((n.format = 5), (v = u * h * 4), (p = e._GetRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, S, O, E, M)), t._uploadDataToTextureDirectly(n, p, A, I));
else if (r.isLuminance) {
var R = t._getUnpackAlignement(),
w = u;
(v = Math.floor((u + R - 1) / R) * R * (h - 1) + w),
(p = e._GetLuminanceArrayBuffer(u, h, i.byteOffset + d, v, i.buffer)),
(n.format = 1),
(n.type = 0),
t._uploadDataToTextureDirectly(n, p, A, I);
} else
(v = (((Math.max(4, u) / 4) * Math.max(4, h)) / 4) * C), (p = new Uint8Array(i.buffer, i.byteOffset + d, v)), (n.type = 0), t._uploadCompressedDataToTextureDirectly(n, y, u, h, p, A, I);
}
(d += P ? u * h * (P / 8) : v), (u *= 0.5), (h *= 0.5), (u = Math.max(1, u)), (h = Math.max(1, h));
}
if (void 0 !== c) break;
}
l && l.length > 0
? (r.sphericalPolynomial = Xr.a.ConvertCubeMapToSphericalPolynomial({ size: _[4], right: l[0], left: l[1], up: l[2], down: l[3], front: l[4], back: l[5], format: 5, type: 1, gammaSpace: !1 }))
: (r.sphericalPolynomial = void 0);
} else g.a.Error("Compressed textures are not supported on this platform.");
else g.a.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code");
else g.a.Error("Invalid magic number in DDS header");
}),
(e.StoreLODInAlphaChannel = !1),
e
);
})();
Mi.a.prototype.createPrefilteredCubeTexture = function (e, t, n, i, r, o, a, s, c) {
var l = this;
void 0 === r && (r = null), void 0 === o && (o = null), void 0 === s && (s = null), void 0 === c && (c = !0);
return this.createCubeTexture(
e,
t,
null,
!1,
function (e) {
if (e) {
var o = e.texture;
if ((c ? e.info.sphericalPolynomial && (o._sphericalPolynomial = e.info.sphericalPolynomial) : (o._sphericalPolynomial = new Wr.b()), (o._source = pn.b.CubePrefiltered), l.getCaps().textureLOD)) r && r(o);
else {
var a = l._gl,
s = e.width;
if (s) {
for (var u = [], h = 0; h < 3; h++) {
var d = 1 - h / 2,
p = i,
f = z.a.Log2(s) * n + i,
m = p + (f - p) * d,
b = Math.round(Math.min(Math.max(m, 0), f)),
_ = new pn.a(l, pn.b.Temp);
if (
((_.type = o.type),
(_.format = o.format),
(_.width = Math.pow(2, Math.max(z.a.Log2(s) - b, 0))),
(_.height = _.width),
(_.isCube = !0),
l._bindTextureDirectly(a.TEXTURE_CUBE_MAP, _, !0),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MAG_FILTER, a.LINEAR),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MIN_FILTER, a.LINEAR),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_S, a.CLAMP_TO_EDGE),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_T, a.CLAMP_TO_EDGE),
e.isDDS)
) {
var v = e.info,
y = e.data;
l._unpackFlipY(v.isCompressed), Jr.UploadDDSLevels(l, _, y, v, !0, 6, b);
} else g.a.Warn("DDS is the only prefiltered cube map supported so far.");
l._bindTextureDirectly(a.TEXTURE_CUBE_MAP, null);
var C = new Cr.a(t);
(C.isCube = !0), (C._texture = _), (_.isReady = !0), u.push(C);
}
(o._lodTextureHigh = u[2]), (o._lodTextureMid = u[1]), (o._lodTextureLow = u[0]), r && r(o);
}
}
} else r && r(null);
},
o,
a,
s,
c,
n,
i
);
};
var $r = n(53),
eo = (function () {
function e() {
this.supportCascades = !0;
}
return (
(e.prototype.canLoad = function (e) {
return $r.a.EndsWith(e, ".dds");
}),
(e.prototype.loadCubeData = function (e, t, n, i, r) {
var o,
a = t.getEngine(),
s = !1;
if (Array.isArray(e))
for (var c = 0; c < e.length; c++) {
var l = e[c];
(o = Jr.GetDDSInfo(l)),
(t.width = o.width),
(t.height = o.height),
(s = (o.isRGB || o.isLuminance || o.mipmapCount > 1) && t.generateMipMaps),
a._unpackFlipY(o.isCompressed),
Jr.UploadDDSLevels(a, t, l, o, s, 6, -1, c),
o.isFourCC || 1 !== o.mipmapCount || a.generateMipMapsForCubemap(t);
}
else {
var u = e;
(o = Jr.GetDDSInfo(u)),
(t.width = o.width),
(t.height = o.height),
n && (o.sphericalPolynomial = new Wr.b()),
(s = (o.isRGB || o.isLuminance || o.mipmapCount > 1) && t.generateMipMaps),
a._unpackFlipY(o.isCompressed),
Jr.UploadDDSLevels(a, t, u, o, s, 6),
o.isFourCC || 1 !== o.mipmapCount || a.generateMipMapsForCubemap(t, !1);
}
a._setCubeMapTextureParams(s), (t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i({ isDDS: !0, width: t.width, info: o, data: e, texture: t });
}),
(e.prototype.loadData = function (e, t, n) {
var i = Jr.GetDDSInfo(e),
r = (i.isRGB || i.isLuminance || i.mipmapCount > 1) && t.generateMipMaps && i.width >> (i.mipmapCount - 1) == 1;
n(i.width, i.height, r, i.isFourCC, function () {
Jr.UploadDDSLevels(t.getEngine(), t, e, i, r, 1);
});
}),
e
);
})();
ue.a._TextureLoaders.push(new eo());
var to = (function () {
function e() {
this.supportCascades = !1;
}
return (
(e.prototype.canLoad = function (e) {
return $r.a.EndsWith(e, ".env");
}),
(e.prototype.loadCubeData = function (e, t, n, i, r) {
if (!Array.isArray(e)) {
var o = ji.a.GetEnvInfo(e);
o
? ((t.width = o.width),
(t.height = o.width),
ji.a.UploadEnvSpherical(t, o),
ji.a.UploadEnvLevelsAsync(t, e, o).then(function () {
(t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i();
}))
: r && r("Can not parse the environment file", null);
}
}),
(e.prototype.loadData = function (e, t, n) {
throw ".env not supported in 2d.";
}),
e
);
})();
ue.a._TextureLoaders.push(new to());
var no = (function () {
function e(t, n, i, r) {
if (((this.data = t), (this.isInvalid = !1), !e.IsValid(t))) return (this.isInvalid = !0), void g.a.Error("texture missing KTX identifier");
var o = Uint32Array.BYTES_PER_ELEMENT,
a = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * o),
s = 67305985 === a.getUint32(0, !0);
(this.glType = a.getUint32(1 * o, s)),
(this.glTypeSize = a.getUint32(2 * o, s)),
(this.glFormat = a.getUint32(3 * o, s)),
(this.glInternalFormat = a.getUint32(4 * o, s)),
(this.glBaseInternalFormat = a.getUint32(5 * o, s)),
(this.pixelWidth = a.getUint32(6 * o, s)),
(this.pixelHeight = a.getUint32(7 * o, s)),
(this.pixelDepth = a.getUint32(8 * o, s)),
(this.numberOfArrayElements = a.getUint32(9 * o, s)),
(this.numberOfFaces = a.getUint32(10 * o, s)),
(this.numberOfMipmapLevels = a.getUint32(11 * o, s)),
(this.bytesOfKeyValueData = a.getUint32(12 * o, s)),
0 === this.glType
? ((this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels)),
0 !== this.pixelHeight && 0 === this.pixelDepth
? 0 === this.numberOfArrayElements
? this.numberOfFaces === n
? (this.loadType = e.COMPRESSED_2D)
: g.a.Error("number of faces expected" + n + ", but found " + this.numberOfFaces)
: g.a.Error("texture arrays not currently supported")
: g.a.Error("only 2D textures currently supported"))
: g.a.Error("only compressed formats currently supported");
}
return (
(e.prototype.uploadLevels = function (t, n) {
switch (this.loadType) {
case e.COMPRESSED_2D:
this._upload2DCompressedLevels(t, n);
break;
case e.TEX_2D:
case e.COMPRESSED_3D:
case e.TEX_3D:
}
}),
(e.prototype._upload2DCompressedLevels = function (t, n) {
for (var i = e.HEADER_LEN + this.bytesOfKeyValueData, r = this.pixelWidth, o = this.pixelHeight, a = n ? this.numberOfMipmapLevels : 1, s = 0; s < a; s++) {
var c = new Int32Array(this.data.buffer, this.data.byteOffset + i, 1)[0];
i += 4;
for (var l = 0; l < this.numberOfFaces; l++) {
var u = new Uint8Array(this.data.buffer, this.data.byteOffset + i, c);
t.getEngine()._uploadCompressedDataToTextureDirectly(t, this.glInternalFormat, r, o, u, l, s), (i += c), (i += 3 - ((c + 3) % 4));
}
(r = Math.max(1, 0.5 * r)), (o = Math.max(1, 0.5 * o));
}
}),
(e.IsValid = function (e) {
if (e.byteLength >= 12) {
var t = new Uint8Array(e.buffer, e.byteOffset, 12);
if (171 === t[0] && 75 === t[1] && 84 === t[2] && 88 === t[3] && 32 === t[4] && 49 === t[5] && 49 === t[6] && 187 === t[7] && 13 === t[8] && 10 === t[9] && 26 === t[10] && 10 === t[11]) return !0;
}
return !1;
}),
(e.HEADER_LEN = 64),
(e.COMPRESSED_2D = 0),
(e.COMPRESSED_3D = 1),
(e.TEX_2D = 2),
(e.TEX_3D = 3),
e
);
})(),
io = (function () {
function e(t) {
var n = this;
e._ModulePromise ||
(e._ModulePromise = new Promise(function (i) {
LIBKTX().then(function (r) {
r.GL.makeContextCurrent(r.GL.registerContext(t._gl, { majorVersion: t._webGLVersion })), (e._TranscodeFormat = n._determineTranscodeFormat(r.TranscodeTarget, t.getCaps())), i({ module: r });
});
}));
}
return (
(e.prototype.uploadAsync = function (t, n) {
return e._ModulePromise.then(function (i) {
var r = new i.module.ktxTexture(t);
try {
r.isBasisSupercompressed && r.transcodeBasis(e._TranscodeFormat, 0), (n.width = n.baseWidth = r.baseWidth), (n.height = n.baseHeight = r.baseHeight), (n.generateMipMaps = !1);
var o = r.glUpload();
if (0 !== o.error) throw new Error("Failed to upload: " + o.error);
(n._webGLTexture = o.texture), (n.isReady = !0);
} finally {
r.delete();
}
});
}),
(e.prototype._determineTranscodeFormat = function (e, t) {
if (t.s3tc) return e.BC1_OR_3;
if (t.etc2) return e.ETC;
throw new Error("No compatible format available");
}),
(e.IsValid = function (e) {
if (e.byteLength >= 12) {
var t = new Uint8Array(e.buffer, e.byteOffset, 12);
if (171 === t[0] && 75 === t[1] && 84 === t[2] && 88 === t[3] && 32 === t[4] && 50 === t[5] && 48 === t[6] && 187 === t[7] && 13 === t[8] && 10 === t[9] && 26 === t[10] && 10 === t[11]) return !0;
}
return !1;
}),
e
);
})(),
ro = (function () {
function e() {
this.supportCascades = !1;
}
return (
(e.prototype.canLoad = function (e) {
return $r.a.EndsWith(e, ".ktx") || $r.a.EndsWith(e, ".ktx2");
}),
(e.prototype.loadCubeData = function (e, t, n, i, r) {
if (!Array.isArray(e)) {
t._invertVScale = !t.invertY;
var o = t.getEngine(),
a = new no(e, 6),
s = a.numberOfMipmapLevels > 1 && t.generateMipMaps;
o._unpackFlipY(!0),
a.uploadLevels(t, t.generateMipMaps),
(t.width = a.pixelWidth),
(t.height = a.pixelHeight),
o._setCubeMapTextureParams(s),
(t.isReady = !0),
t.onLoadedObservable.notifyObservers(t),
t.onLoadedObservable.clear(),
i && i();
}
}),
(e.prototype.loadData = function (e, t, n) {
if (no.IsValid(e)) {
t._invertVScale = !t.invertY;
var i = new no(e, 1);
n(
i.pixelWidth,
i.pixelHeight,
t.generateMipMaps,
!0,
function () {
i.uploadLevels(t, t.generateMipMaps);
},
i.isInvalid
);
} else if (io.IsValid(e)) {
new io(t.getEngine()).uploadAsync(e, t).then(
function () {
n(t.width, t.height, !1, !0, function () {}, !1);
},
function (e) {
g.a.Warn("Failed to load KTX2 texture data: " + e.message), n(0, 0, !1, !1, function () {}, !0);
}
);
} else n(0, 0, !1, !1, function () {}, !0);
}),
e
);
})();
ue.a._TextureLoaders.unshift(new ro());
var oo = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, a.e.Zero(), n) || this;
return (
(r._xrSessionManager = i),
(r._firstFrame = !1),
(r._referenceQuaternion = a.b.Identity()),
(r._referencedPosition = new a.e()),
(r._xrInvPositionCache = new a.e()),
(r._xrInvQuaternionCache = a.b.Identity()),
(r.compensateOnFirstFrame = !0),
(r.minZ = 0.1),
(r.rotationQuaternion = new a.b()),
(r.cameraRigMode = De.a.RIG_MODE_CUSTOM),
(r.updateUpVectorFromRotation = !0),
r._updateNumberOfRigCameras(1),
r._xrSessionManager.onXRSessionInit.add(function () {
r._referencedPosition.copyFromFloats(0, 0, 0), r._referenceQuaternion.copyFromFloats(0, 0, 0, 1), (r._firstFrame = r.compensateOnFirstFrame);
}),
r._xrSessionManager.onXRFrameObservable.add(
function (e) {
r._firstFrame && r._updateFromXRSession(), r._updateReferenceSpace(), r._updateFromXRSession();
},
void 0,
!0
),
r
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "realWorldHeight", {
get: function () {
var e = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.baseReferenceSpace);
return e && e.transform ? e.transform.position.y : 0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._updateForDualEyeDebugging = function () {
this._updateNumberOfRigCameras(2),
(this.rigCameras[0].viewport = new vn.a(0, 0, 0.5, 1)),
(this.rigCameras[0].outputRenderTarget = null),
(this.rigCameras[1].viewport = new vn.a(0.5, 0, 0.5, 1)),
(this.rigCameras[1].outputRenderTarget = null);
}),
(t.prototype.setTransformationFromNonVRCamera = function (e, t) {
(void 0 === e && (e = this.getScene().activeCamera), void 0 === t && (t = !0), e && e !== this) &&
(e.computeWorldMatrix().decompose(void 0, this.rotationQuaternion, this.position),
(this.position.y = 0),
a.b.FromEulerAnglesToRef(0, this.rotationQuaternion.toEulerAngles().y, 0, this.rotationQuaternion),
(this._firstFrame = !0),
t && this._xrSessionManager.resetReferenceSpace());
}),
(t.prototype.getClassName = function () {
return "WebXRCamera";
}),
(t.prototype._updateFromXRSession = function () {
var e = this,
t = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.referenceSpace);
t &&
(t.transform &&
(this._referencedPosition.copyFrom(t.transform.position),
this._referenceQuaternion.copyFrom(t.transform.orientation),
this._scene.useRightHandedSystem || ((this._referencedPosition.z *= -1), (this._referenceQuaternion.z *= -1), (this._referenceQuaternion.w *= -1)),
this._firstFrame
? ((this._firstFrame = !1), (this.position.y += this._referencedPosition.y), this._referenceQuaternion.copyFromFloats(0, 0, 0, 1))
: (this.rotationQuaternion.copyFrom(this._referenceQuaternion), this.position.copyFrom(this._referencedPosition))),
this.rigCameras.length !== t.views.length && this._updateNumberOfRigCameras(t.views.length),
t.views.forEach(function (t, n) {
var i = e.rigCameras[n];
if (
(i.isLeftCamera || i.isRightCamera || ("right" === t.eye ? (i._isRightCamera = !0) : "left" === t.eye && (i._isLeftCamera = !0)),
t.transform.position
? (i.position.copyFrom(t.transform.position),
i.rotationQuaternion.copyFrom(t.transform.orientation),
e._scene.useRightHandedSystem || ((i.position.z *= -1), (i.rotationQuaternion.z *= -1), (i.rotationQuaternion.w *= -1)))
: (a.a.FromFloat32ArrayToRefScaled(t.transform.matrix, 0, 1, i._computedViewMatrix), e._scene.useRightHandedSystem || i._computedViewMatrix.toggleModelMatrixHandInPlace()),
a.a.FromFloat32ArrayToRefScaled(t.projectionMatrix, 0, 1, i._projectionMatrix),
e._scene.useRightHandedSystem || i._projectionMatrix.toggleProjectionMatrixHandInPlace(),
e._xrSessionManager.session.renderState.baseLayer)
) {
var r = e._xrSessionManager.session.renderState.baseLayer.getViewport(t),
o = e._xrSessionManager.session.renderState.baseLayer.framebufferWidth,
s = e._xrSessionManager.session.renderState.baseLayer.framebufferHeight;
(i.viewport.width = r.width / o), (i.viewport.height = r.height / s), (i.viewport.x = r.x / o), (i.viewport.y = r.y / s);
}
i.outputRenderTarget = e._xrSessionManager.getRenderTargetTextureForEye(t.eye);
}));
}),
(t.prototype._updateNumberOfRigCameras = function (e) {
for (void 0 === e && (e = 1); this.rigCameras.length < e; ) {
var t = new vt.a("XR-RigCamera: " + this.rigCameras.length, a.e.Zero(), this.getScene());
(t.minZ = 0.1), (t.rotationQuaternion = new a.b()), (t.updateUpVectorFromRotation = !0), (t.isRigCamera = !0), (t.rigParent = this), this.rigCameras.push(t);
}
for (; this.rigCameras.length > e; ) {
var n = this.rigCameras.pop();
n && n.dispose();
}
}),
(t.prototype._updateReferenceSpace = function () {
(this.position.equals(this._referencedPosition) && this.rotationQuaternion.equals(this._referenceQuaternion)) ||
(this.position.subtractToRef(this._referencedPosition, this._referencedPosition),
this._referenceQuaternion.conjugateInPlace(),
this._referenceQuaternion.multiplyToRef(this.rotationQuaternion, this._referenceQuaternion),
this._updateReferenceSpaceOffset(this._referencedPosition, this._referenceQuaternion.normalize()));
}),
(t.prototype._updateReferenceSpaceOffset = function (e, t, n) {
if ((void 0 === n && (n = !1), this._xrSessionManager.referenceSpace && this._xrSessionManager.currentFrame)) {
this._xrInvPositionCache.copyFrom(e),
t ? this._xrInvQuaternionCache.copyFrom(t) : this._xrInvQuaternionCache.copyFromFloats(0, 0, 0, 1),
this._scene.useRightHandedSystem || ((this._xrInvPositionCache.z *= -1), (this._xrInvQuaternionCache.z *= -1), (this._xrInvQuaternionCache.w *= -1)),
this._xrInvPositionCache.negateInPlace(),
this._xrInvQuaternionCache.conjugateInPlace(),
this._xrInvPositionCache.rotateByQuaternionToRef(this._xrInvQuaternionCache, this._xrInvPositionCache),
n && (this._xrInvPositionCache.y = 0);
var i = new XRRigidTransform(Object(h.a)({}, this._xrInvPositionCache), Object(h.a)({}, this._xrInvQuaternionCache)),
r = this._xrSessionManager.referenceSpace.getOffsetReferenceSpace(i),
o = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(r);
if (o) {
var s = new a.e();
s.copyFrom(o.transform.position), this._scene.useRightHandedSystem || (s.z *= -1), this.position.subtractToRef(s, s), this._scene.useRightHandedSystem || (s.z *= -1), s.negateInPlace();
var c = new XRRigidTransform(Object(h.a)({}, s));
this._xrSessionManager.referenceSpace = r.getOffsetReferenceSpace(c);
}
}
}),
t
);
})(yt.a),
ao = (function () {
function e() {}
return (
(e.ANCHOR_SYSTEM = "xr-anchor-system"),
(e.BACKGROUND_REMOVER = "xr-background-remover"),
(e.HIT_TEST = "xr-hit-test"),
(e.PHYSICS_CONTROLLERS = "xr-physics-controller"),
(e.PLANE_DETECTION = "xr-plane-detection"),
(e.POINTER_SELECTION = "xr-controller-pointer-selection"),
(e.TELEPORTATION = "xr-controller-teleportation"),
e
);
})(),
so = (function () {
function e(e) {
var t = this;
(this._xrSessionManager = e),
(this._features = {}),
this._xrSessionManager.onXRSessionInit.add(function () {
t.getEnabledFeatures().forEach(function (e) {
var n = t._features[e];
!n.enabled || n.featureImplementation.attached || n.featureImplementation.disableAutoAttach || t.attachFeature(e);
});
}),
this._xrSessionManager.onXRSessionEnded.add(function () {
t.getEnabledFeatures().forEach(function (e) {
var n = t._features[e];
n.enabled && n.featureImplementation.attached && t.detachFeature(e);
});
});
}
return (
(e.AddWebXRFeature = function (e, t, n, i) {
void 0 === n && (n = 1),
void 0 === i && (i = !1),
(this._AvailableFeatures[e] = this._AvailableFeatures[e] || { latest: n }),
n > this._AvailableFeatures[e].latest && (this._AvailableFeatures[e].latest = n),
i && (this._AvailableFeatures[e].stable = n),
(this._AvailableFeatures[e][n] = t);
}),
(e.ConstructFeature = function (e, t, n, i) {
void 0 === t && (t = 1);
var r = this._AvailableFeatures[e][t];
if (!r) throw new Error("feature not found");
return r(n, i);
}),
(e.GetAvailableFeatures = function () {
return Object.keys(this._AvailableFeatures);
}),
(e.GetAvailableVersions = function (e) {
return Object.keys(this._AvailableFeatures[e]);
}),
(e.GetLatestVersionOfFeature = function (e) {
return (this._AvailableFeatures[e] && this._AvailableFeatures[e].latest) || -1;
}),
(e.GetStableVersionOfFeature = function (e) {
return (this._AvailableFeatures[e] && this._AvailableFeatures[e].stable) || -1;
}),
(e.prototype.attachFeature = function (e) {
var t = this._features[e];
t && t.enabled && !t.featureImplementation.attached && t.featureImplementation.attach();
}),
(e.prototype.detachFeature = function (e) {
var t = this._features[e];
t && t.featureImplementation.attached && t.featureImplementation.detach();
}),
(e.prototype.disableFeature = function (e) {
var t = "string" == typeof e ? e : e.Name,
n = this._features[t];
return !(!n || !n.enabled) && ((n.enabled = !1), this.detachFeature(t), n.featureImplementation.dispose(), !0);
}),
(e.prototype.dispose = function () {
var e = this;
this.getEnabledFeatures().forEach(function (t) {
e.disableFeature(t), e._features[t].featureImplementation.dispose();
});
}),
(e.prototype.enableFeature = function (t, n, i, r) {
void 0 === n && (n = "latest"), void 0 === i && (i = {}), void 0 === r && (r = !0);
var o = "string" == typeof t ? t : t.Name,
a = 0;
if ("string" == typeof n) {
if (!n) throw new Error("Error in provided version - " + o + " (" + n + ")");
if (-1 === (a = "stable" === n ? e.GetStableVersionOfFeature(o) : "latest" === n ? e.GetLatestVersionOfFeature(o) : +n) || isNaN(a)) throw new Error("feature not found - " + o + " (" + n + ")");
} else a = n;
var s = this._features[o],
c = e.ConstructFeature(o, a, this._xrSessionManager, i);
if (!c) throw new Error("feature not found - " + o);
return (
s && this.disableFeature(o),
(this._features[o] = { featureImplementation: c(), enabled: !0, version: a }),
r ? this._xrSessionManager.session && !s.featureImplementation.attached && this.attachFeature(o) : (this._features[o].featureImplementation.disableAutoAttach = !0),
this._features[o].featureImplementation
);
}),
(e.prototype.getEnabledFeature = function (e) {
return this._features[e] && this._features[e].featureImplementation;
}),
(e.prototype.getEnabledFeatures = function () {
return Object.keys(this._features);
}),
(e._AvailableFeatures = {}),
e
);
})(),
co = (function () {
function e(e) {
var t = this;
(this.scene = e),
(this._nonVRCamera = null),
(this._originalSceneAutoClear = !0),
(this._supported = !1),
(this.onInitialXRPoseSetObservable = new o.c()),
(this.onStateChangedObservable = new o.c()),
(this.state = zn.NOT_IN_XR),
(this.sessionManager = new Gn(e)),
(this.camera = new oo("", e, this.sessionManager)),
(this.featuresManager = new so(this.sessionManager)),
e.onDisposeObservable.add(function () {
t.exitXRAsync();
});
}
return (
(e.CreateAsync = function (t) {
var n = new e(t);
return n.sessionManager
.initializeAsync()
.then(function () {
return (n._supported = !0), n;
})
.catch(function (e) {
throw (n._setState(zn.NOT_IN_XR), n.dispose(), e);
});
}),
(e.prototype.dispose = function () {
this.camera.dispose(), this.onStateChangedObservable.clear(), this.onInitialXRPoseSetObservable.clear(), this.sessionManager.dispose(), this._nonVRCamera && (this.scene.activeCamera = this._nonVRCamera);
}),
(e.prototype.enterXRAsync = function (e, t, n) {
var i = this;
if ((void 0 === n && (n = this.sessionManager.getWebXRRenderTarget()), !this._supported)) throw "WebXR not supported in this browser or environment";
this._setState(zn.ENTERING_XR);
var r = { optionalFeatures: "viewer" !== t && "local" !== t ? [t] : [] };
return (
"immersive-ar" === e && "local" !== t && g.a.Warn("We recommend using 'local' reference space type when using 'immersive-ar' session mode"),
this.sessionManager
.isSessionSupportedAsync(e)
.then(function (t) {
if (!t) throw new Error('Session mode "' + e + '" not supported in browser');
return i.sessionManager.initializeSessionAsync(e, r);
})
.then(function () {
return i.sessionManager.setReferenceSpaceTypeAsync(t);
})
.then(function () {
return n.initializeXRLayerAsync(i.sessionManager.session);
})
.then(function () {
return i.sessionManager.updateRenderStateAsync({ depthFar: i.camera.maxZ, depthNear: i.camera.minZ, baseLayer: n.xrLayer });
})
.then(function () {
return (
i.sessionManager.runXRRenderLoop(),
(i._originalSceneAutoClear = i.scene.autoClear),
(i._nonVRCamera = i.scene.activeCamera),
(i.scene.autoClear = !1),
(i.scene.activeCamera = i.camera),
"immersive-ar" !== e ? i._nonXRToXRCamera() : (i.camera.compensateOnFirstFrame = !1),
i.sessionManager.onXRSessionEnded.addOnce(function () {
i.camera.rigCameras.forEach(function (e) {
e.outputRenderTarget = null;
}),
(i.scene.autoClear = i._originalSceneAutoClear),
(i.scene.activeCamera = i._nonVRCamera),
"immersive-ar" !== e && i.camera.compensateOnFirstFrame && (i._nonVRCamera.setPosition ? i._nonVRCamera.setPosition(i.camera.position) : i._nonVRCamera.position.copyFrom(i.camera.position)),
i._setState(zn.NOT_IN_XR);
}),
i.sessionManager.onXRFrameObservable.addOnce(function () {
i._setState(zn.IN_XR);
}),
i.sessionManager
);
})
.catch(function (e) {
throw (i._setState(zn.NOT_IN_XR), e);
})
);
}),
(e.prototype.exitXRAsync = function () {
return this._setState(zn.EXITING_XR), this.sessionManager.exitXRAsync();
}),
(e.prototype._nonXRToXRCamera = function () {
this.camera.setTransformationFromNonVRCamera(this._nonVRCamera), this.onInitialXRPoseSetObservable.notifyObservers(this.camera);
}),
(e.prototype._setState = function (e) {
this.state !== e && ((this.state = e), this.onStateChangedObservable.notifyObservers(this.state));
}),
e
);
})(),
lo = (function () {
function e(e, t, n, i) {
void 0 === n && (n = -1),
void 0 === i && (i = []),
(this.id = e),
(this.type = t),
(this._buttonIndex = n),
(this._axesIndices = i),
(this._axes = { x: 0, y: 0 }),
(this._changes = {}),
(this._currentValue = 0),
(this._hasChanges = !1),
(this._pressed = !1),
(this._touched = !1),
(this.onAxisValueChangedObservable = new o.c()),
(this.onButtonStateChangedObservable = new o.c());
}
return (
Object.defineProperty(e.prototype, "axes", {
get: function () {
return this._axes;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "changes", {
get: function () {
return this._changes;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasChanges", {
get: function () {
return this._hasChanges;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "pressed", {
get: function () {
return this._pressed;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "touched", {
get: function () {
return this._touched;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "value", {
get: function () {
return this._currentValue;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this.onAxisValueChangedObservable.clear(), this.onButtonStateChangedObservable.clear();
}),
(e.prototype.isAxes = function () {
return 0 !== this._axesIndices.length;
}),
(e.prototype.isButton = function () {
return -1 !== this._buttonIndex;
}),
(e.prototype.update = function (e) {
var t = !1,
n = !1;
if (((this._hasChanges = !1), (this._changes = {}), this.isButton())) {
var i = e.buttons[this._buttonIndex];
if (!i) return;
this._currentValue !== i.value && ((this.changes.value = { current: i.value, previous: this._currentValue }), (t = !0), (this._currentValue = i.value)),
this._touched !== i.touched && ((this.changes.touched = { current: i.touched, previous: this._touched }), (t = !0), (this._touched = i.touched)),
this._pressed !== i.pressed && ((this.changes.pressed = { current: i.pressed, previous: this._pressed }), (t = !0), (this._pressed = i.pressed));
}
this.isAxes() &&
(this._axes.x !== e.axes[this._axesIndices[0]] &&
((this.changes.axes = { current: { x: e.axes[this._axesIndices[0]], y: this._axes.y }, previous: { x: this._axes.x, y: this._axes.y } }), (this._axes.x = e.axes[this._axesIndices[0]]), (n = !0)),
this._axes.y !== e.axes[this._axesIndices[1]] &&
(this.changes.axes
? (this.changes.axes.current.y = e.axes[this._axesIndices[1]])
: (this.changes.axes = { current: { x: this._axes.x, y: e.axes[this._axesIndices[1]] }, previous: { x: this._axes.x, y: this._axes.y } }),
(this._axes.y = e.axes[this._axesIndices[1]]),
(n = !0))),
t && ((this._hasChanges = !0), this.onButtonStateChangedObservable.notifyObservers(this)),
n && ((this._hasChanges = !0), this.onAxisValueChangedObservable.notifyObservers(this._axes));
}),
(e.BUTTON_TYPE = "button"),
(e.SQUEEZE_TYPE = "squeeze"),
(e.THUMBSTICK_TYPE = "thumbstick"),
(e.TOUCHPAD_TYPE = "touchpad"),
(e.TRIGGER_TYPE = "trigger"),
e
);
})(),
uo = (function () {
function e(e, t, n, i, r) {
var a = this;
void 0 === r && (r = !1),
(this.scene = e),
(this.layout = t),
(this.gamepadObject = n),
(this.handness = i),
(this._initComponent = function (e) {
if (e) {
var t = a.layout.components[e],
n = t.type,
i = t.gamepadIndices.button,
r = [];
void 0 !== t.gamepadIndices.xAxis && void 0 !== t.gamepadIndices.yAxis && r.push(t.gamepadIndices.xAxis, t.gamepadIndices.yAxis), (a.components[e] = new lo(e, n, i, r));
}
}),
(this._modelReady = !1),
(this.components = {}),
(this.disableAnimation = !1),
(this.onModelLoadedObservable = new o.c()),
t.components && Object.keys(t.components).forEach(this._initComponent);
}
return (
(e.prototype.dispose = function () {
var e = this;
this.getComponentIds().forEach(function (t) {
return e.getComponent(t).dispose();
}),
this.rootMesh && this.rootMesh.dispose();
}),
(e.prototype.getAllComponentsOfType = function (e) {
var t = this;
return this.getComponentIds()
.map(function (e) {
return t.components[e];
})
.filter(function (t) {
return t.type === e;
});
}),
(e.prototype.getComponent = function (e) {
return this.components[e];
}),
(e.prototype.getComponentIds = function () {
return Object.keys(this.components);
}),
(e.prototype.getComponentOfType = function (e) {
return this.getAllComponentsOfType(e)[0] || null;
}),
(e.prototype.getMainComponent = function () {
return this.getComponent(this.layout.selectComponentId);
}),
(e.prototype.loadModel = function () {
return Object(h.b)(this, void 0, void 0, function () {
var e,
t,
n = this;
return Object(h.e)(this, function (i) {
return (
(e = !this._getModelLoadingConstraints()),
(t = this._getGenericFilenameAndPath()),
e ? g.a.Warn("Falling back to generic models") : (t = this._getFilenameAndPath()),
[
2,
new Promise(function (i, r) {
$i.a.ImportMesh(
"",
t.path,
t.filename,
n.scene,
function (t) {
e ? n._getGenericParentMesh(t) : n._setRootMesh(t), n._processLoadedModel(t), (n._modelReady = !0), n.onModelLoadedObservable.notifyObservers(n), i(!0);
},
null,
function (e, i) {
g.a.Log(i), g.a.Warn("Failed to retrieve controller model of type " + n.profileId + " from the remote server: " + t.path + t.filename), r(i);
}
);
}),
]
);
});
});
}),
(e.prototype.updateFromXRFrame = function (e) {
var t = this;
this.getComponentIds().forEach(function (e) {
return t.getComponent(e).update(t.gamepadObject);
}),
this.updateModel(e);
}),
(e.prototype._getChildByName = function (e, t) {
return e.getChildren(function (e) {
return e.name === t;
}, !1)[0];
}),
(e.prototype._getImmediateChildByName = function (e, t) {
return e.getChildren(function (e) {
return e.name == t;
}, !0)[0];
}),
(e.prototype._lerpTransform = function (e, t, n) {
if (e.minMesh && e.maxMesh && e.minMesh.rotationQuaternion && e.maxMesh.rotationQuaternion && e.valueMesh.rotationQuaternion) {
var i = n ? 0.5 * t + 0.5 : t;
a.b.SlerpToRef(e.minMesh.rotationQuaternion, e.maxMesh.rotationQuaternion, i, e.valueMesh.rotationQuaternion), a.e.LerpToRef(e.minMesh.position, e.maxMesh.position, i, e.valueMesh.position);
}
}),
(e.prototype.updateModel = function (e) {
this._modelReady && this._updateModel(e);
}),
(e.prototype._getGenericFilenameAndPath = function () {
return { filename: "generic.babylon", path: "https://controllers.babylonjs.com/generic/" };
}),
(e.prototype._getGenericParentMesh = function (e) {
var t = this;
(this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)),
e.forEach(function (e) {
e.parent || ((e.isPickable = !1), e.setParent(t.rootMesh));
}),
(this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0));
}),
e
);
})(),
ho = (function (e) {
function t(n, i, r) {
var o = e.call(this, n, po[r], i, r) || this;
return (o.profileId = t.ProfileId), o;
}
return (
Object(h.d)(t, e),
(t.prototype._getFilenameAndPath = function () {
return { filename: "generic.babylon", path: "https://controllers.babylonjs.com/generic/" };
}),
(t.prototype._getModelLoadingConstraints = function () {
return !0;
}),
(t.prototype._processLoadedModel = function (e) {}),
(t.prototype._setRootMesh = function (e) {
var t = this;
(this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)),
e.forEach(function (e) {
(e.isPickable = !1), e.parent || e.setParent(t.rootMesh);
}),
(this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0));
}),
(t.prototype._updateModel = function () {}),
(t.ProfileId = "generic-trigger"),
t
);
})(uo),
po = {
left: {
selectComponentId: "xr-standard-trigger",
components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} } },
gamepadMapping: "xr-standard",
rootNodeName: "generic-trigger-left",
assetPath: "left.glb",
},
right: {
selectComponentId: "xr-standard-trigger",
components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} } },
gamepadMapping: "xr-standard",
rootNodeName: "generic-trigger-right",
assetPath: "right.glb",
},
none: {
selectComponentId: "xr-standard-trigger",
components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} } },
gamepadMapping: "xr-standard",
rootNodeName: "generic-trigger-none",
assetPath: "none.glb",
},
},
fo = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t, i.layouts[n.handedness || "none"], n.gamepad, n.handedness) || this;
return (o._repositoryUrl = r), (o._buttonMeshMapping = {}), (o._touchDots = {}), (o.profileId = i.profileId), o;
}
return (
Object(h.d)(t, e),
(t.prototype.dispose = function () {
var t = this;
e.prototype.dispose.call(this),
Object.keys(this._touchDots).forEach(function (e) {
t._touchDots[e].dispose();
});
}),
(t.prototype._getFilenameAndPath = function () {
return { filename: this.layout.assetPath, path: this._repositoryUrl + "/profiles/" + this.profileId + "/" };
}),
(t.prototype._getModelLoadingConstraints = function () {
var e = $i.a.IsPluginForExtensionAvailable(".glb");
return e || g.a.Warn("glTF / glb loaded was not registered, using generic controller instead"), e;
}),
(t.prototype._processLoadedModel = function (e) {
var t = this;
this.getComponentIds().forEach(function (e) {
var n = t.layout.components[e];
(t._buttonMeshMapping[e] = { mainMesh: t._getChildByName(t.rootMesh, n.rootNodeName), states: {} }),
Object.keys(n.visualResponses).forEach(function (i) {
var r = n.visualResponses[i];
if ("transform" === r.valueNodeProperty)
t._buttonMeshMapping[e].states[i] = {
valueMesh: t._getChildByName(t.rootMesh, r.valueNodeName),
minMesh: t._getChildByName(t.rootMesh, r.minNodeName),
maxMesh: t._getChildByName(t.rootMesh, r.maxNodeName),
};
else {
var o = n.type === lo.TOUCHPAD_TYPE && n.touchPointNodeName ? n.touchPointNodeName : r.valueNodeName;
if (((t._buttonMeshMapping[e].states[i] = { valueMesh: t._getChildByName(t.rootMesh, o) }), n.type === lo.TOUCHPAD_TYPE && !t._touchDots[i])) {
var a = mi.CreateSphere(i + "dot", { diameter: 0.0015, segments: 8 }, t.scene);
(a.material = new Mn.a(i + "mat", t.scene)), (a.material.diffuseColor = s.a.Red()), (a.parent = t._buttonMeshMapping[e].states[i].valueMesh), (a.isVisible = !1), (t._touchDots[i] = a);
}
}
});
});
}),
(t.prototype._setRootMesh = function (e) {
var t;
(this.rootMesh = new Ee.a(this.profileId + "-" + this.handness, this.scene)), (this.rootMesh.isPickable = !1);
for (var n = 0; n < e.length; n++) {
var i = e[n];
(i.isPickable = !1), i.parent || (t = i);
}
t && t.setParent(this.rootMesh), this.rootMesh.rotate(Be.a.Y, Math.PI, Be.b.WORLD);
}),
(t.prototype._updateModel = function (e) {
var t = this;
this.disableAnimation ||
this.getComponentIds().forEach(function (e) {
var n = t.getComponent(e);
if (n.hasChanges) {
var i = t._buttonMeshMapping[e],
r = t.layout.components[e];
Object.keys(r.visualResponses).forEach(function (e) {
var o = r.visualResponses[e],
a = n.value;
"xAxis" === o.componentProperty ? (a = n.axes.x) : "yAxis" === o.componentProperty && (a = n.axes.y),
"transform" === o.valueNodeProperty
? t._lerpTransform(i.states[e], a, "button" !== o.componentProperty)
: ((i.states[e].valueMesh.isVisible = n.touched || n.pressed), t._touchDots[e] && (t._touchDots[e].isVisible = n.touched || n.pressed));
});
}
});
}),
t
);
})(uo),
mo = (function () {
function e() {}
return (
(e.ClearProfilesCache = function () {
delete this._ProfilesList, (this._ProfileLoadingPromises = {});
}),
(e.DefaultFallbacks = function () {
this.RegisterFallbacksForProfileId("google-daydream", ["generic-touchpad"]),
this.RegisterFallbacksForProfileId("htc-vive-focus", ["generic-trigger-touchpad"]),
this.RegisterFallbacksForProfileId("htc-vive", ["generic-trigger-squeeze-touchpad"]),
this.RegisterFallbacksForProfileId("magicleap-one", ["generic-trigger-squeeze-touchpad"]),
this.RegisterFallbacksForProfileId("windows-mixed-reality", ["generic-trigger-squeeze-touchpad-thumbstick"]),
this.RegisterFallbacksForProfileId("microsoft-mixed-reality", ["windows-mixed-reality", "generic-trigger-squeeze-touchpad-thumbstick"]),
this.RegisterFallbacksForProfileId("oculus-go", ["generic-trigger-touchpad"]),
this.RegisterFallbacksForProfileId("oculus-touch-v2", ["oculus-touch", "generic-trigger-squeeze-thumbstick"]),
this.RegisterFallbacksForProfileId("oculus-touch", ["generic-trigger-squeeze-thumbstick"]),
this.RegisterFallbacksForProfileId("samsung-gearvr", ["windows-mixed-reality", "generic-trigger-squeeze-touchpad-thumbstick"]),
this.RegisterFallbacksForProfileId("samsung-odyssey", ["generic-touchpad"]),
this.RegisterFallbacksForProfileId("valve-index", ["generic-trigger-squeeze-touchpad-thumbstick"]);
}),
(e.FindFallbackWithProfileId = function (e) {
var t = this._Fallbacks[e] || [];
return t.unshift(e), t;
}),
(e.GetMotionControllerWithXRInput = function (e, t, n) {
var i = this,
r = [];
if ((n && r.push(n), r.push.apply(r, e.profiles || []), r.length && !r[0] && r.pop(), e.gamepad && e.gamepad.id))
switch (e.gamepad.id) {
case e.gamepad.id.match(/oculus touch/gi) ? e.gamepad.id : void 0:
r.push("oculus-touch-v2");
}
var o = r.indexOf("windows-mixed-reality");
if ((-1 !== o && r.splice(o, 0, "microsoft-mixed-reality"), r.length || r.push("generic-trigger"), this.UseOnlineRepository)) {
var a = this.PrioritizeOnlineRepository ? this._LoadProfileFromRepository : this._LoadProfilesFromAvailableControllers,
s = this.PrioritizeOnlineRepository ? this._LoadProfilesFromAvailableControllers : this._LoadProfileFromRepository;
return a.call(this, r, e, t).catch(function () {
return s.call(i, r, e, t);
});
}
return this._LoadProfilesFromAvailableControllers(r, e, t);
}),
(e.RegisterController = function (e, t) {
this._AvailableControllers[e] = t;
}),
(e.RegisterFallbacksForProfileId = function (e, t) {
var n;
this._Fallbacks[e] ? (n = this._Fallbacks[e]).push.apply(n, t) : (this._Fallbacks[e] = t);
}),
(e.UpdateProfilesList = function () {
return (
(this._ProfilesList = $e.b.LoadFileAsync(this.BaseRepositoryUrl + "/profiles/profilesList.json", !1).then(function (e) {
return JSON.parse(e.toString());
})),
this._ProfilesList
);
}),
(e._LoadProfileFromRepository = function (e, t, n) {
var i = this;
return Promise.resolve()
.then(function () {
return i._ProfilesList ? i._ProfilesList : i.UpdateProfilesList();
})
.then(function (t) {
for (var n = 0; n < e.length; ++n) if (e[n] && t[e[n]]) return e[n];
throw new Error("neither controller " + e[0] + " nor all fallbacks were found in the repository,");
})
.then(function (e) {
return (
i._ProfileLoadingPromises[e] ||
(i._ProfileLoadingPromises[e] = $e.b.LoadFileAsync(i.BaseRepositoryUrl + "/profiles/" + e + "/profile.json", !1).then(function (e) {
return JSON.parse(e);
})),
i._ProfileLoadingPromises[e]
);
})
.then(function (e) {
return new fo(n, t, e, i.BaseRepositoryUrl);
});
}),
(e._LoadProfilesFromAvailableControllers = function (e, t, n) {
for (var i = 0; i < e.length; ++i)
if (e[i])
for (var r = this.FindFallbackWithProfileId(e[i]), o = 0; o < r.length; ++o) {
var a = this._AvailableControllers[r[o]];
if (a) return Promise.resolve(a(t, n));
}
throw new Error("no controller requested was found in the available controllers list");
}),
(e._AvailableControllers = {}),
(e._Fallbacks = {}),
(e._ProfileLoadingPromises = {}),
(e.BaseRepositoryUrl = "https://immersive-web.github.io/webxr-input-profiles/packages/viewer/dist"),
(e.PrioritizeOnlineRepository = !0),
(e.UseOnlineRepository = !0),
e
);
})();
mo.RegisterController(ho.ProfileId, function (e, t) {
return new ho(t, e.gamepad, e.handedness);
}),
mo.DefaultFallbacks();
var go = 0,
bo = (function () {
function e(e, t, n) {
var i = this;
void 0 === n && (n = {}),
(this._scene = e),
(this.inputSource = t),
(this._options = n),
(this._tmpQuaternion = new a.b()),
(this._tmpVector = new a.e()),
(this.onDisposeObservable = new o.c()),
(this.onMeshLoadedObservable = new o.c()),
(this.onMotionControllerInitObservable = new o.c()),
(this._uniqueId = "controller-" + go++ + "-" + t.targetRayMode + "-" + t.handedness),
(this.pointer = new ke.a(this._uniqueId + "-pointer", e)),
(this.pointer.rotationQuaternion = new a.b()),
this.inputSource.gripSpace && ((this.grip = new ke.a(this._uniqueId + "-grip", this._scene)), (this.grip.rotationQuaternion = new a.b())),
this.inputSource.gamepad &&
mo.GetMotionControllerWithXRInput(t, e, this._options.forceControllerProfile).then(function (e) {
(i.motionController = e),
i.onMotionControllerInitObservable.notifyObservers(e),
i._options.doNotLoadControllerMesh ||
i.motionController.loadModel().then(function (e) {
e &&
(i.onMeshLoadedObservable.notifyObservers(i.motionController.rootMesh),
(i.motionController.rootMesh.parent = i.grip || i.pointer),
(i.motionController.disableAnimation = !!i._options.disableMotionControllerAnimation));
});
});
}
return (
Object.defineProperty(e.prototype, "uniqueId", {
get: function () {
return this._uniqueId;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this.grip && this.grip.dispose(),
this.motionController && this.motionController.dispose(),
this.pointer.dispose(),
this.onMotionControllerInitObservable.clear(),
this.onMeshLoadedObservable.clear(),
this.onDisposeObservable.notifyObservers(this),
this.onDisposeObservable.clear();
}),
(e.prototype.getWorldPointerRayToRef = function (e, t) {
void 0 === t && (t = !1);
var n = t && this.grip ? this.grip : this.pointer;
n.computeWorldMatrix().decompose(void 0, this._tmpQuaternion, void 0),
this._tmpVector.set(0, 0, 1),
this._tmpVector.rotateByQuaternionToRef(this._tmpQuaternion, this._tmpVector),
e.origin.copyFrom(n.absolutePosition),
e.direction.copyFrom(this._tmpVector),
(e.length = 1e3);
}),
(e.prototype.updateFromXRFrame = function (e, t) {
var n = e.getPose(this.inputSource.targetRaySpace, t);
if (
(n &&
(this.pointer.position.copyFrom(n.transform.position),
this.pointer.rotationQuaternion.copyFrom(n.transform.orientation),
this._scene.useRightHandedSystem || ((this.pointer.position.z *= -1), (this.pointer.rotationQuaternion.z *= -1), (this.pointer.rotationQuaternion.w *= -1))),
this.inputSource.gripSpace && this.grip)
) {
var i = e.getPose(this.inputSource.gripSpace, t);
i &&
(this.grip.position.copyFrom(i.transform.position),
this.grip.rotationQuaternion.copyFrom(i.transform.orientation),
this._scene.useRightHandedSystem || ((this.grip.position.z *= -1), (this.grip.rotationQuaternion.z *= -1), (this.grip.rotationQuaternion.w *= -1)));
}
this.motionController && this.motionController.updateFromXRFrame(e);
}),
e
);
})(),
_o = (function () {
function e(e, t, n) {
var i = this;
void 0 === n && (n = {}),
(this.xrSessionManager = e),
(this.xrCamera = t),
(this.options = n),
(this.controllers = []),
(this.onControllerAddedObservable = new o.c()),
(this.onControllerRemovedObservable = new o.c()),
(this._onInputSourcesChange = function (e) {
i._addAndRemoveControllers(e.added, e.removed);
}),
(this._sessionEndedObserver = this.xrSessionManager.onXRSessionEnded.add(function () {
i._addAndRemoveControllers(
[],
i.controllers.map(function (e) {
return e.inputSource;
})
);
})),
(this._sessionInitObserver = this.xrSessionManager.onXRSessionInit.add(function (e) {
e.addEventListener("inputsourceschange", i._onInputSourcesChange);
})),
(this._frameObserver = this.xrSessionManager.onXRFrameObservable.add(function (e) {
i.controllers.forEach(function (t) {
t.updateFromXRFrame(e, i.xrSessionManager.referenceSpace);
});
})),
this.options.customControllersRepositoryURL && (mo.BaseRepositoryUrl = this.options.customControllersRepositoryURL),
this.options.disableOnlineControllerRepository ? (mo.UseOnlineRepository = !1) : ((mo.UseOnlineRepository = !0), mo.UpdateProfilesList());
}
return (
(e.prototype._addAndRemoveControllers = function (e, t) {
for (
var n = this,
i = this.controllers.map(function (e) {
return e.inputSource;
}),
r = 0,
o = e;
r < o.length;
r++
) {
var a = o[r];
if (-1 === i.indexOf(a)) {
var s = new bo(this.xrSessionManager.scene, a, {
forceControllerProfile: this.options.forceInputProfile,
doNotLoadControllerMesh: this.options.doNotLoadControllerMeshes,
disableMotionControllerAnimation: this.options.disableControllerAnimation,
});
this.controllers.push(s), this.onControllerAddedObservable.notifyObservers(s);
}
}
var c = [],
l = [];
this.controllers.forEach(function (e) {
-1 === t.indexOf(e.inputSource) ? c.push(e) : l.push(e);
}),
(this.controllers = c),
l.forEach(function (e) {
n.onControllerRemovedObservable.notifyObservers(e), e.dispose();
});
}),
(e.prototype.dispose = function () {
this.controllers.forEach(function (e) {
e.dispose();
}),
this.xrSessionManager.onXRFrameObservable.remove(this._frameObserver),
this.xrSessionManager.onXRSessionInit.remove(this._sessionInitObserver),
this.xrSessionManager.onXRSessionEnded.remove(this._sessionEndedObserver),
this.onControllerAddedObservable.clear(),
this.onControllerRemovedObservable.clear();
}),
e
);
})(),
vo = (function () {
function e(e) {
(this._xrSessionManager = e), (this._attached = !1), (this._removeOnDetach = []), (this.disableAutoAttach = !1);
}
return (
Object.defineProperty(e.prototype, "attached", {
get: function () {
return this._attached;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attach = function (e) {
var t = this;
if (e) this.attached && this.detach();
else if (this.attached) return !1;
return (
(this._attached = !0),
this._addNewAttachObserver(this._xrSessionManager.onXRFrameObservable, function (e) {
return t._onXRFrame(e);
}),
!0
);
}),
(e.prototype.detach = function () {
return this._attached
? ((this._attached = !1),
this._removeOnDetach.forEach(function (e) {
e.observable.remove(e.observer);
}),
!0)
: ((this.disableAutoAttach = !0), !1);
}),
(e.prototype.dispose = function () {
this.detach();
}),
(e.prototype._addNewAttachObserver = function (e, t) {
this._removeOnDetach.push({ observable: e, observer: e.add(t) });
}),
e
);
})(),
yo = (function (e) {
function t(n, i) {
var r = e.call(this, n) || this;
return (
(r._options = i),
(r._attachController = function (e) {
if (!r._controllers[e.uniqueId]) {
var n = r._generateNewMeshPair(e),
i = n.laserPointer,
o = n.selectionMesh;
switch (
((r._controllers[e.uniqueId] = { xrController: e, laserPointer: i, selectionMesh: o, meshUnderPointer: null, pick: null, tmpRay: new Re(new a.e(), new a.e()), id: t._idCounter++ }),
e.inputSource.targetRayMode)
) {
case "tracked-pointer":
return r._attachTrackedPointerRayMode(e);
case "gaze":
return r._attachGazeMode(e);
case "screen":
return r._attachScreenRayMode(e);
}
}
}),
(r._controllers = {}),
(r._tmpVectorForPickCompare = new a.e()),
(r.disablePointerLighting = !0),
(r.disableSelectionMeshLighting = !0),
(r.displayLaserPointer = !0),
(r.displaySelectionMesh = !0),
(r.laserPointerPickedColor = new s.a(0.9, 0.9, 0.9)),
(r.lasterPointerDefaultColor = new s.a(0.7, 0.7, 0.7)),
(r.selectionMeshDefaultColor = new s.a(0.8, 0.8, 0.8)),
(r.selectionMeshPickedColor = new s.a(0.3, 0.3, 1)),
(r._scene = r._xrSessionManager.scene),
r
);
}
return (
Object(h.d)(t, e),
(t.prototype.attach = function () {
var t = this;
return (
!!e.prototype.attach.call(this) &&
(this._options.xrInput.controllers.forEach(this._attachController),
this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController),
this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, function (e) {
t._detachController(e.uniqueId);
}),
!0)
);
}),
(t.prototype.detach = function () {
var t = this;
return (
!!e.prototype.detach.call(this) &&
(Object.keys(this._controllers).forEach(function (e) {
t._detachController(e);
}),
!0)
);
}),
(t.prototype.getMeshUnderPointer = function (e) {
return this._controllers[e] ? this._controllers[e].meshUnderPointer : null;
}),
(t.prototype.getXRControllerByPointerId = function (e) {
for (var t = Object.keys(this._controllers), n = 0; n < t.length; ++n) if (this._controllers[t[n]].id === e) return this._controllers[t[n]].xrController;
return null;
}),
(t.prototype._onXRFrame = function (e) {
var t = this;
Object.keys(this._controllers).forEach(function (e) {
var n = t._controllers[e];
n.xrController.getWorldPointerRayToRef(n.tmpRay), (n.pick = t._scene.pickWithRay(n.tmpRay));
var i = n.pick;
if (i && i.pickedPoint && i.hit) {
t._updatePointerDistance(n.laserPointer, i.distance),
n.selectionMesh.position.copyFrom(i.pickedPoint),
(n.selectionMesh.scaling.x = Math.sqrt(i.distance)),
(n.selectionMesh.scaling.y = Math.sqrt(i.distance)),
(n.selectionMesh.scaling.z = Math.sqrt(i.distance));
var r = t._convertNormalToDirectionOfRay(i.getNormal(!0), n.tmpRay);
if ((n.selectionMesh.position.copyFrom(i.pickedPoint), r)) {
var o = a.e.Cross(Be.a.Y, r),
s = a.e.Cross(r, o);
a.e.RotationFromAxisToRef(s, r, o, n.selectionMesh.rotation), n.selectionMesh.position.addInPlace(r.scale(0.001));
}
(n.selectionMesh.isVisible = t.displaySelectionMesh), (n.meshUnderPointer = i.pickedMesh);
} else (n.selectionMesh.isVisible = !1), (n.meshUnderPointer = null);
});
}),
(t.prototype._attachGazeMode = function (e) {
var t = this,
n = this._controllers[e.uniqueId],
i = this._options.timeToSelect || 3e3,
r = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || ci.a.DefaultUtilityLayer.utilityLayerScene : this._scene,
o = new Ae.a(),
a = kn.CreateTorus("selection", { diameter: 0.0525, thickness: 0.015, tessellation: 20 }, r);
(a.isVisible = !1), (a.isPickable = !1), (a.parent = n.selectionMesh);
var s = 0,
c = !1;
(n.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(function () {
if (n.pick) {
if (((a.isVisible = !1), n.pick.hit))
if (t._pickingMoved(o, n.pick)) c && (t._options.disablePointerUpOnTouchOut || t._scene.simulatePointerUp(n.pick, { pointerId: n.id })), (c = !1), (s = 0);
else if ((s > i / 10 && (a.isVisible = !0), (s += t._scene.getEngine().getDeltaTime()) >= i))
t._scene.simulatePointerDown(n.pick, { pointerId: n.id }), (c = !0), t._options.disablePointerUpOnTouchOut && t._scene.simulatePointerUp(n.pick, { pointerId: n.id }), (a.isVisible = !1);
else {
var e = 1 - s / i;
a.scaling.set(e, e, e);
}
else (c = !1), (s = 0);
t._scene.simulatePointerMove(n.pick, { pointerId: n.id }), (o = n.pick);
}
})),
void 0 !== this._options.renderingGroupId && (a.renderingGroupId = this._options.renderingGroupId),
e.onDisposeObservable.addOnce(function () {
n.pick && !t._options.disablePointerUpOnTouchOut && c && t._scene.simulatePointerUp(n.pick, { pointerId: n.id }), a.dispose();
});
}),
(t.prototype._attachScreenRayMode = function (e) {
var t = this,
n = this._controllers[e.uniqueId],
i = !1;
(n.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(function () {
!n.pick ||
(t._options.disablePointerUpOnTouchOut && i) ||
(i
? t._scene.simulatePointerMove(n.pick, { pointerId: n.id })
: (t._scene.simulatePointerDown(n.pick, { pointerId: n.id }), (i = !0), t._options.disablePointerUpOnTouchOut && t._scene.simulatePointerUp(n.pick, { pointerId: n.id })));
})),
e.onDisposeObservable.addOnce(function () {
n.pick && i && !t._options.disablePointerUpOnTouchOut && t._scene.simulatePointerUp(n.pick, { pointerId: n.id });
});
}),
(t.prototype._attachTrackedPointerRayMode = function (e) {
var t = this;
e.onMotionControllerInitObservable.add(function (n) {
if (t._options.forceGazeMode) return t._attachGazeMode(e);
var i = t._controllers[e.uniqueId];
t._options.overrideButtonId && (i.selectionComponent = n.getComponent(t._options.overrideButtonId)),
i.selectionComponent || (i.selectionComponent = n.getMainComponent()),
(i.onFrameObserver = t._xrSessionManager.onXRFrameObservable.add(function () {
i.selectionComponent && i.selectionComponent.pressed
? ((i.selectionMesh.material.emissiveColor = t.selectionMeshPickedColor), (i.laserPointer.material.emissiveColor = t.laserPointerPickedColor))
: ((i.selectionMesh.material.emissiveColor = t.selectionMeshDefaultColor), (i.laserPointer.material.emissiveColor = t.lasterPointerDefaultColor)),
(i.laserPointer.isVisible = t.displayLaserPointer),
(i.laserPointer.material.disableLighting = t.disablePointerLighting),
(i.selectionMesh.material.disableLighting = t.disableSelectionMeshLighting),
i.pick && t._scene.simulatePointerMove(i.pick, { pointerId: i.id });
})),
(i.onButtonChangedObserver = i.selectionComponent.onButtonStateChangedObservable.add(function (e) {
if (e.changes.pressed) {
var n = e.changes.pressed.current;
i.pick && (n ? t._scene.simulatePointerDown(i.pick, { pointerId: i.id }) : t._scene.simulatePointerUp(i.pick, { pointerId: i.id }));
}
}));
});
}),
(t.prototype._convertNormalToDirectionOfRay = function (e, t) {
e && Math.acos(a.e.Dot(e, t.direction)) < Math.PI / 2 && e.scaleInPlace(-1);
return e;
}),
(t.prototype._detachController = function (e) {
var t = this._controllers[e];
t &&
(t.selectionComponent && t.onButtonChangedObserver && t.selectionComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver),
t.onFrameObserver && this._xrSessionManager.onXRFrameObservable.remove(t.onFrameObserver),
t.selectionMesh.dispose(),
t.laserPointer.dispose(),
delete this._controllers[e]);
}),
(t.prototype._generateNewMeshPair = function (e) {
var t = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || ci.a.DefaultUtilityLayer.utilityLayerScene : this._scene,
n = jn.CreateCylinder("laserPointer", { height: 1, diameterTop: 2e-4, diameterBottom: 0.004, tessellation: 20, subdivisions: 1 }, t);
n.parent = e.pointer;
var i = new Mn.a("laserPointerMat", t);
(i.emissiveColor = this.lasterPointerDefaultColor), (i.alpha = 0.7), (n.material = i), (n.rotation.x = Math.PI / 2), this._updatePointerDistance(n, 1), (n.isPickable = !1);
var r = kn.CreateTorus("gazeTracker", { diameter: 0.0105, thickness: 0.0075, tessellation: 20 }, t);
r.bakeCurrentTransformIntoVertices(), (r.isPickable = !1), (r.isVisible = !1);
var o = new Mn.a("targetMat", t);
return (
(o.specularColor = s.a.Black()),
(o.emissiveColor = this.selectionMeshDefaultColor),
(o.backFaceCulling = !1),
(r.material = o),
void 0 !== this._options.renderingGroupId && ((n.renderingGroupId = this._options.renderingGroupId), (r.renderingGroupId = this._options.renderingGroupId)),
{ laserPointer: n, selectionMesh: r }
);
}),
(t.prototype._pickingMoved = function (e, t) {
var n;
if (!e.hit || !t.hit) return !0;
if (!(e.pickedMesh && e.pickedPoint && t.pickedMesh && t.pickedPoint)) return !0;
if (e.pickedMesh !== t.pickedMesh) return !0;
null === (n = e.pickedPoint) || void 0 === n || n.subtractToRef(t.pickedPoint, this._tmpVectorForPickCompare),
this._tmpVectorForPickCompare.set(Math.abs(this._tmpVectorForPickCompare.x), Math.abs(this._tmpVectorForPickCompare.y), Math.abs(this._tmpVectorForPickCompare.z));
var i = (0.01 * (this._options.gazeModePointerMovedFactor || 1)) / t.distance;
return this._tmpVectorForPickCompare.length() > i;
}),
(t.prototype._updatePointerDistance = function (e, t) {
void 0 === t && (t = 100), (e.scaling.y = t), (e.position.z = t / 2 + 0.05);
}),
(t._idCounter = 0),
(t.Name = ao.POINTER_SELECTION),
(t.Version = 1),
t
);
})(vo);
so.AddWebXRFeature(
yo.Name,
function (e, t) {
return function () {
return new yo(e, t);
};
},
yo.Version,
!0
);
var Co = (function () {
function e(e, t, n) {
(this.element = e), (this.sessionMode = t), (this.referenceSpaceType = n);
}
return (e.prototype.update = function (e) {}), e;
})(),
Po = function () {},
xo = (function () {
function e(e, t) {
var n = this;
if (
((this.scene = e),
(this.options = t),
(this._activeButton = null),
(this._buttons = []),
(this.activeButtonChangedObservable = new o.c()),
(this._overlay = document.createElement("div")),
(this._overlay.style.cssText = "z-index:11;position: absolute; right: 20px;bottom: 50px;"),
t.customButtons)
)
this._buttons = t.customButtons;
else {
var i = t.sessionMode || "immersive-vr",
r = t.referenceSpaceType || "local-floor",
a =
".babylonVRicon { color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(" +
(window.SVGSVGElement
? "data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A"
: "https://cdn.babylonjs.com/Assets/vrButton.png") +
"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }";
a += '.babylonVRicon.vrdisplaypresenting { background-image: none;} .vrdisplaypresenting::after { content: "EXIT"} .xr-error::after { content: "ERROR"}';
var s = document.createElement("style");
s.appendChild(document.createTextNode(a)), document.getElementsByTagName("head")[0].appendChild(s);
var c = document.createElement("button");
(c.className = "babylonVRicon"),
(c.title = i + " - " + r),
this._buttons.push(new Co(c, i, r)),
(this._buttons[this._buttons.length - 1].update = function (e) {
(this.element.style.display = null === e || e === this ? "" : "none"), (c.className = "babylonVRicon" + (e === this ? " vrdisplaypresenting" : ""));
}),
this._updateButtons(null);
}
var l = e.getEngine().getInputElement();
l &&
l.parentNode &&
(l.parentNode.appendChild(this._overlay),
e.onDisposeObservable.addOnce(function () {
n.dispose();
}));
}
return (
(e.CreateAsync = function (t, n, i) {
var r = this,
o = new e(t, i),
a = o._buttons.map(function (e) {
return n.sessionManager.isSessionSupportedAsync(e.sessionMode);
});
return (
n.onStateChangedObservable.add(function (e) {
e == zn.NOT_IN_XR && o._updateButtons(null);
}),
Promise.all(a).then(function (e) {
return (
e.forEach(function (e, t) {
e &&
(o._overlay.appendChild(o._buttons[t].element),
(o._buttons[t].element.onclick = function () {
return Object(h.b)(r, void 0, void 0, function () {
var e, r;
return Object(h.e)(this, function (a) {
switch (a.label) {
case 0:
return n.state != zn.IN_XR ? [3, 2] : [4, n.exitXRAsync()];
case 1:
return a.sent(), o._updateButtons(null), [3, 6];
case 2:
if (n.state != zn.NOT_IN_XR) return [3, 6];
if (!i.renderTarget) return [3, 6];
a.label = 3;
case 3:
return a.trys.push([3, 5, , 6]), [4, n.enterXRAsync(o._buttons[t].sessionMode, o._buttons[t].referenceSpaceType, i.renderTarget)];
case 4:
return a.sent(), o._updateButtons(o._buttons[t]), [3, 6];
case 5:
return a.sent(), o._updateButtons(null), (e = o._buttons[t].element), (r = e.title), (e.title = "Error entering XR session : " + r), e.classList.add("xr-error"), [3, 6];
case 6:
return [2];
}
});
});
}));
}),
o
);
})
);
}),
(e.prototype.dispose = function () {
var e = this.scene.getEngine().getInputElement();
e && e.parentNode && e.parentNode.contains(this._overlay) && e.parentNode.removeChild(this._overlay), this.activeButtonChangedObservable.clear();
}),
(e.prototype._updateButtons = function (e) {
var t = this;
(this._activeButton = e),
this._buttons.forEach(function (e) {
e.update(t._activeButton);
}),
this.activeButtonChangedObservable.notifyObservers(this._activeButton);
}),
e
);
})(),
To = (function (e) {
function t(t, n) {
var i = e.call(this, t) || this;
return (
(i._options = n),
(i._controllers = {}),
(i._snappedToPoint = !1),
(i._tmpRay = new Re(new a.e(), new a.e())),
(i._tmpVector = new a.e()),
(i.backwardsMovementEnabled = !0),
(i.backwardsTeleportationDistance = 0.7),
(i.parabolicCheckRadius = 5),
(i.parabolicRayEnabled = !0),
(i.rotationAngle = Math.PI / 8),
(i.rotationEnabled = !0),
(i._attachController = function (e) {
if (!i._controllers[e.uniqueId]) {
i._controllers[e.uniqueId] = { xrController: e, teleportationState: { forward: !1, backwards: !1, rotating: !1, currentRotation: 0, baseRotation: 0 } };
var t = i._controllers[e.uniqueId];
e.onMotionControllerInitObservable.addOnce(function () {
if (e.motionController) {
var n = e.motionController.getComponentOfType(lo.THUMBSTICK_TYPE) || e.motionController.getComponentOfType(lo.TOUCHPAD_TYPE);
if (!n || i._options.useMainComponentOnly) {
var r = e.motionController.getMainComponent();
if (!r) return;
t.onButtonChangedObserver = r.onButtonStateChangedObservable.add(function () {
if (r.changes.pressed)
if (r.changes.pressed.current) {
(t.teleportationState.forward = !0),
(i._currentTeleportationControllerId = t.xrController.uniqueId),
(t.teleportationState.baseRotation = i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y),
(t.teleportationState.currentRotation = 0);
var n = i._options.timeToTeleport || 3e3,
o = 0,
a = i._xrSessionManager.onXRFrameObservable.add(function () {
r.pressed
? ((o += i._xrSessionManager.scene.getEngine().getDeltaTime()) >= n &&
i._currentTeleportationControllerId === t.xrController.uniqueId &&
t.teleportationState.forward &&
i._teleportForward(e.uniqueId),
o >= n && i._xrSessionManager.onXRFrameObservable.remove(a))
: i._xrSessionManager.onXRFrameObservable.remove(a);
});
} else (t.teleportationState.forward = !1), (i._currentTeleportationControllerId = "");
});
} else
(t.onButtonChangedObserver = n.onButtonStateChangedObservable.add(function () {
i._currentTeleportationControllerId === t.xrController.uniqueId && t.teleportationState.forward && !n.touched && i._teleportForward(e.uniqueId);
})),
(t.onAxisChangedObserver = n.onAxisValueChangedObservable.add(function (e) {
if (
(e.y <= 0.7 && t.teleportationState.backwards && (t.teleportationState.backwards = !1),
e.y > 0.7 && !t.teleportationState.forward && i.backwardsMovementEnabled && !i.snapPointsOnly && !t.teleportationState.backwards)
) {
(t.teleportationState.backwards = !0),
i._tmpVector.set(0, 0, i.backwardsTeleportationDistance),
i._tmpVector.rotateByQuaternionToRef(i._options.xrInput.xrCamera.rotationQuaternion, i._tmpVector),
i._tmpVector.addInPlace(i._options.xrInput.xrCamera.position),
i._options.xrInput.xrCamera.position.subtractToRef(i._tmpVector, i._tmpVector),
i._tmpRay.origin.copyFrom(i._tmpVector),
i._tmpRay.direction.set(0, -1, 0);
var n = i._xrSessionManager.scene.pickWithRay(i._tmpRay, function (e) {
return -1 !== i._floorMeshes.indexOf(e);
});
n && n.pickedPoint && i._options.xrInput.xrCamera.position.addInPlace(n.pickedPoint);
}
if (
(e.y < -0.7 &&
!i._currentTeleportationControllerId &&
!t.teleportationState.rotating &&
((t.teleportationState.forward = !0),
(i._currentTeleportationControllerId = t.xrController.uniqueId),
(t.teleportationState.baseRotation = i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y)),
e.x)
) {
if (t.teleportationState.forward)
i._currentTeleportationControllerId === t.xrController.uniqueId &&
(i.rotationEnabled
? setTimeout(function () {
t.teleportationState.currentRotation = Math.atan2(e.x, -e.y);
})
: (t.teleportationState.currentRotation = 0));
else if (!t.teleportationState.rotating && Math.abs(e.x) > 0.7) {
t.teleportationState.rotating = !0;
var r = i.rotationAngle * (e.x > 0 ? 1 : -1);
i._options.xrInput.xrCamera.rotationQuaternion.multiplyInPlace(a.b.FromEulerAngles(0, r, 0));
}
} else t.teleportationState.rotating = !1;
}));
}
});
}
}),
i._options.teleportationTargetMesh || i._createDefaultTargetMesh(),
(i._floorMeshes = i._options.floorMeshes || []),
(i._snapToPositions = i._options.snapPositions || []),
i._setTargetMeshVisibility(!1),
i
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "snapPointsOnly", {
get: function () {
return !!this._options.snapPointsOnly;
},
set: function (e) {
this._options.snapPointsOnly = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.addFloorMesh = function (e) {
this._floorMeshes.push(e);
}),
(t.prototype.addSnapPoint = function (e) {
this._snapToPositions.push(e);
}),
(t.prototype.attach = function () {
var t = this;
return (
!!e.prototype.attach.call(this) &&
(this._options.xrInput.controllers.forEach(this._attachController),
this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController),
this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, function (e) {
t._detachController(e.uniqueId);
}),
!0)
);
}),
(t.prototype.detach = function () {
var t = this;
return (
!!e.prototype.detach.call(this) &&
(Object.keys(this._controllers).forEach(function (e) {
t._detachController(e);
}),
this._setTargetMeshVisibility(!1),
!0)
);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.dispose(!1, !0);
}),
(t.prototype.removeFloorMesh = function (e) {
var t = this._floorMeshes.indexOf(e);
-1 !== t && this._floorMeshes.splice(t, 1);
}),
(t.prototype.removeFloorMeshByName = function (e) {
var t = this._xrSessionManager.scene.getMeshByName(e);
t && this.removeFloorMesh(t);
}),
(t.prototype.removeSnapPoint = function (e) {
var t = this._snapToPositions.indexOf(e);
if (-1 === t)
for (var n = 0; n < this._snapToPositions.length; ++n)
if (this._snapToPositions[n].equals(e)) {
t = n;
break;
}
return -1 !== t && (this._snapToPositions.splice(t, 1), !0);
}),
(t.prototype.setSelectionFeature = function (e) {
this._selectionFeature = e;
}),
(t.prototype._onXRFrame = function (e) {
var t = this,
n = this._xrSessionManager.currentFrame,
i = this._xrSessionManager.scene;
if (this.attach && n) {
var r = this._options.teleportationTargetMesh;
if (this._currentTeleportationControllerId) {
if (!r) return;
r.rotationQuaternion = r.rotationQuaternion || new a.b();
var o = this._controllers[this._currentTeleportationControllerId];
if (o.teleportationState.forward) {
a.b.RotationYawPitchRollToRef(o.teleportationState.currentRotation + o.teleportationState.baseRotation, 0, 0, r.rotationQuaternion);
var s = !1;
o.xrController.getWorldPointerRayToRef(this._tmpRay);
var c = i.pickWithRay(this._tmpRay, function (e) {
var n = t._floorMeshes.indexOf(e);
return -1 !== n && t._floorMeshes[n].absolutePosition.y < t._options.xrInput.xrCamera.position.y;
});
if (c && c.pickedPoint) (s = !0), this._setTargetMeshPosition(c.pickedPoint), this._setTargetMeshVisibility(!0), this._showParabolicPath(c);
else if (this.parabolicRayEnabled) {
var l = o.xrController.pointer.rotationQuaternion.toEulerAngles().x,
u = Math.PI / 2 - Math.abs(l) + 1,
h = this.parabolicCheckRadius * u;
this._tmpRay.origin.addToRef(this._tmpRay.direction.scale(2 * h), this._tmpVector),
(this._tmpVector.y = this._tmpRay.origin.y),
this._tmpRay.origin.addInPlace(this._tmpRay.direction.scale(h)),
this._tmpVector.subtractToRef(this._tmpRay.origin, this._tmpRay.direction),
this._tmpRay.direction.normalize();
var d = i.pickWithRay(this._tmpRay, function (e) {
return -1 !== t._floorMeshes.indexOf(e);
});
d && d.pickedPoint && ((s = !0), this._setTargetMeshPosition(d.pickedPoint), this._setTargetMeshVisibility(!0), this._showParabolicPath(d));
}
this._setTargetMeshVisibility(s);
} else this._setTargetMeshVisibility(!1);
} else this._setTargetMeshVisibility(!1);
}
}),
(t.prototype._createDefaultTargetMesh = function () {
this._options.defaultTargetMeshOptions = this._options.defaultTargetMeshOptions || {};
var e = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || ci.a.DefaultUtilityLayer.utilityLayerScene : this._xrSessionManager.scene,
t = Nn.CreateGround("teleportationTarget", { width: 2, height: 2, subdivisions: 2 }, e);
t.isPickable = !1;
var n = new An.a("teleportationPlaneDynamicTexture", 512, e, !0);
n.hasAlpha = !0;
var i = n.getContext();
i.beginPath(),
i.arc(256, 256, 200, 0, 2 * Math.PI, !1),
(i.fillStyle = this._options.defaultTargetMeshOptions.teleportationFillColor || "#444444"),
i.fill(),
(i.lineWidth = 10),
(i.strokeStyle = this._options.defaultTargetMeshOptions.teleportationBorderColor || "#FFFFFF"),
i.stroke(),
i.closePath(),
n.update();
var r = new Mn.a("teleportationPlaneMaterial", e);
(r.diffuseTexture = n), (t.material = r);
var o = kn.CreateTorus("torusTeleportation", { diameter: 0.75, thickness: 0.1, tessellation: 20 }, e);
if (((o.isPickable = !1), (o.parent = t), !this._options.defaultTargetMeshOptions.disableAnimation)) {
var a = new R.a("animationInnerCircle", "position.y", 30, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CYCLE),
c = [];
c.push({ frame: 0, value: 0 }), c.push({ frame: 30, value: 0.4 }), c.push({ frame: 60, value: 0 }), a.setKeys(c);
var l = new ie();
l.setEasingMode(X.EASINGMODE_EASEINOUT), a.setEasingFunction(l), (o.animations = []), o.animations.push(a), e.beginAnimation(o, 0, 60, !0);
}
var u = jn.CreateCylinder("cone", { diameterTop: 0, tessellation: 4 }, e);
if (((u.isPickable = !1), u.scaling.set(0.5, 0.12, 0.2), u.rotate(Be.a.X, Math.PI / 2), (u.position.z = 0.6), (u.parent = o), this._options.defaultTargetMeshOptions.torusArrowMaterial))
(o.material = this._options.defaultTargetMeshOptions.torusArrowMaterial), (u.material = this._options.defaultTargetMeshOptions.torusArrowMaterial);
else {
var h = new Mn.a("torusConsMat", e);
(h.disableLighting = !!this._options.defaultTargetMeshOptions.disableLighting),
h.disableLighting ? (h.emissiveColor = new s.a(0.3, 0.3, 1)) : (h.diffuseColor = new s.a(0.3, 0.3, 1)),
(h.alpha = 0.9),
(o.material = h),
(u.material = h),
(this._teleportationRingMaterial = h);
}
void 0 !== this._options.renderingGroupId && ((t.renderingGroupId = this._options.renderingGroupId), (o.renderingGroupId = this._options.renderingGroupId), (u.renderingGroupId = this._options.renderingGroupId)),
(this._options.teleportationTargetMesh = t);
}),
(t.prototype._detachController = function (e) {
var t = this._controllers[e];
t &&
(t.teleportationComponent &&
(t.onAxisChangedObserver && t.teleportationComponent.onAxisValueChangedObservable.remove(t.onAxisChangedObserver),
t.onButtonChangedObserver && t.teleportationComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver)),
delete this._controllers[e]);
}),
(t.prototype._findClosestSnapPointWithRadius = function (e, t) {
void 0 === t && (t = this._options.snapToPositionRadius || 0.8);
var n = null,
i = Number.MAX_VALUE;
if (this._snapToPositions.length) {
var r = t * t;
this._snapToPositions.forEach(function (t) {
var o = a.e.DistanceSquared(t, e);
o <= r && o < i && ((i = o), (n = t));
});
}
return n;
}),
(t.prototype._setTargetMeshPosition = function (e) {
if (this._options.teleportationTargetMesh) {
var t = this._findClosestSnapPointWithRadius(e);
(this._snappedToPoint = !!t),
this.snapPointsOnly && !this._snappedToPoint && this._teleportationRingMaterial
? this._teleportationRingMaterial.diffuseColor.set(1, 0.3, 0.3)
: this.snapPointsOnly && this._snappedToPoint && this._teleportationRingMaterial && this._teleportationRingMaterial.diffuseColor.set(0.3, 0.3, 1),
this._options.teleportationTargetMesh.position.copyFrom(t || e),
(this._options.teleportationTargetMesh.position.y += 0.01);
}
}),
(t.prototype._setTargetMeshVisibility = function (e) {
this._options.teleportationTargetMesh &&
this._options.teleportationTargetMesh.isVisible !== e &&
((this._options.teleportationTargetMesh.isVisible = e),
this._options.teleportationTargetMesh.getChildren(void 0, !1).forEach(function (t) {
t.isVisible = e;
}),
e ? this._selectionFeature && this._selectionFeature.detach() : (this._quadraticBezierCurve && this._quadraticBezierCurve.dispose(), this._selectionFeature && this._selectionFeature.attach()));
}),
(t.prototype._showParabolicPath = function (e) {
if (e.pickedPoint) {
var t = this._controllers[this._currentTeleportationControllerId],
n = W.CreateQuadraticBezier(t.xrController.pointer.absolutePosition, e.ray.origin, e.pickedPoint, 25);
this._quadraticBezierCurve && this._quadraticBezierCurve.dispose(), (this._quadraticBezierCurve = Ti.CreateLines("path line", { points: n.getPoints() })), (this._quadraticBezierCurve.isPickable = !1);
}
}),
(t.prototype._teleportForward = function (e) {
var t = this._controllers[e];
if (
((t.teleportationState.forward = !1),
(this._currentTeleportationControllerId = ""),
(!this.snapPointsOnly || this._snappedToPoint) && this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.isVisible)
) {
var n = this._options.xrInput.xrCamera.realWorldHeight;
this._options.xrInput.xrCamera.position.copyFrom(this._options.teleportationTargetMesh.position),
(this._options.xrInput.xrCamera.position.y += n),
this._options.xrInput.xrCamera.rotationQuaternion.multiplyInPlace(a.b.FromEulerAngles(0, t.teleportationState.currentRotation, 0));
}
}),
(t.Name = ao.TELEPORTATION),
(t.Version = 1),
t
);
})(vo);
so.AddWebXRFeature(
To.Name,
function (e, t) {
return function () {
return new To(e, t);
};
},
To.Version,
!0
);
var So = function () {},
Oo = (function () {
function e() {}
return (
(e.CreateAsync = function (t, n) {
void 0 === n && (n = {});
var i = new e();
return co
.CreateAsync(t)
.then(function (e) {
return (
(i.baseExperience = e),
n.ignoreNativeCameraTransformation && (i.baseExperience.camera.compensateOnFirstFrame = !1),
(i.input = new _o(e.sessionManager, e.camera, n.inputOptions)),
(i.pointerSelection = i.baseExperience.featuresManager.enableFeature(yo.Name, n.useStablePlugins ? "stable" : "latest", { xrInput: i.input })),
n.disableTeleportation ||
((i.teleportation = i.baseExperience.featuresManager.enableFeature(To.Name, n.useStablePlugins ? "stable" : "latest", { floorMeshes: n.floorMeshes, xrInput: i.input })),
i.teleportation.setSelectionFeature(i.pointerSelection)),
(i.renderTarget = i.baseExperience.sessionManager.getWebXRRenderTarget(n.outputCanvasOptions)),
n.disableDefaultUI
? void 0
: (n.uiOptions && (n.uiOptions.renderTarget = n.uiOptions.renderTarget || i.renderTarget),
xo.CreateAsync(t, i.baseExperience, n.uiOptions || { renderTarget: i.renderTarget }).then(function (e) {
i.enterExitUI = e;
}))
);
})
.then(function () {
return i;
})
.catch(function (e) {
return g.a.Error("Error initializing XR"), g.a.Error(e), i;
});
}),
(e.prototype.dispose = function () {
this.baseExperience && this.baseExperience.dispose(), this.input && this.input.dispose(), this.enterExitUI && this.enterExitUI.dispose(), this.renderTarget && this.renderTarget.dispose();
}),
e
);
})(),
Eo = !0;
(ge.a.prototype.createDefaultLight = function (e) {
if ((void 0 === e && (e = !1), e && this.lights)) for (var t = 0; t < this.lights.length; t++) this.lights[t].dispose();
0 === this.lights.length && new xn.a("default light", a.e.Up(), this);
}),
(ge.a.prototype.createDefaultCamera = function (e, t, n) {
if ((void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1), t && this.activeCamera && (this.activeCamera.dispose(), (this.activeCamera = null)), !this.activeCamera)) {
var i,
r = this.getWorldExtends(),
o = r.max.subtract(r.min),
s = r.min.add(o.scale(0.5)),
c = 1.5 * o.length();
if ((isFinite(c) || ((c = 1), s.copyFromFloats(0, 0, 0)), e)) {
var l = new xt("default camera", -Math.PI / 2, Math.PI / 2, c, s, this);
(l.lowerRadiusLimit = 0.01 * c), (l.wheelPrecision = 100 / c), (i = l);
} else {
var u = new yt.a("default camera", new a.e(s.x, s.y, -c), this);
u.setTarget(s), (i = u);
}
(i.minZ = 0.01 * c), (i.maxZ = 1e3 * c), (i.speed = 0.2 * c), (this.activeCamera = i);
var h = this.getEngine().getInputElement();
n && h && i.attachControl(h);
}
}),
(ge.a.prototype.createDefaultCameraOrLight = function (e, t, n) {
void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1), this.createDefaultLight(t), this.createDefaultCamera(e, t, n);
}),
(ge.a.prototype.createDefaultSkybox = function (e, t, n, i, r) {
if ((void 0 === t && (t = !1), void 0 === n && (n = 1e3), void 0 === i && (i = 0), void 0 === r && (r = !0), !e)) return g.a.Warn("Can not create default skybox without environment texture."), null;
r && e && (this.environmentTexture = e);
var o = Ee.a.CreateBox("hdrSkyBox", n, this);
if (t) {
var a = new Hr.a("skyBox", this);
(a.backFaceCulling = !1),
(a.reflectionTexture = e.clone()),
a.reflectionTexture && (a.reflectionTexture.coordinatesMode = ln.a.SKYBOX_MODE),
(a.microSurface = 1 - i),
(a.disableLighting = !0),
(a.twoSidedLighting = !0),
(o.infiniteDistance = !0),
(o.material = a);
} else {
var s = new Mn.a("skyBox", this);
(s.backFaceCulling = !1), (s.reflectionTexture = e.clone()), s.reflectionTexture && (s.reflectionTexture.coordinatesMode = ln.a.SKYBOX_MODE), (s.disableLighting = !0), (o.infiniteDistance = !0), (o.material = s);
}
return (o.isPickable = !1), o;
}),
(ge.a.prototype.createDefaultEnvironment = function (e) {
return Gr ? new Gr(e, this) : null;
}),
(ge.a.prototype.createDefaultVRExperience = function (e) {
return void 0 === e && (e = {}), new Kn(this, e);
}),
(ge.a.prototype.createDefaultXRExperienceAsync = function (e) {
return Oo.CreateAsync(this, e).then(function (e) {
return e;
});
}),
(Mi.a.prototype.updateVideoTexture = function (e, t, n) {
if (e && !e._isDisabled) {
var i = this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0);
this._unpackFlipY(!n);
try {
if (
(void 0 === this._videoTextureSupported &&
(this._gl.texImage2D(this._gl.TEXTURE_2D, 0, this._gl.RGBA, this._gl.RGBA, this._gl.UNSIGNED_BYTE, t), 0 !== this._gl.getError() ? (this._videoTextureSupported = !1) : (this._videoTextureSupported = !0)),
this._videoTextureSupported)
)
this._gl.texImage2D(this._gl.TEXTURE_2D, 0, this._gl.RGBA, this._gl.RGBA, this._gl.UNSIGNED_BYTE, t);
else {
if (!e._workingCanvas) {
e._workingCanvas = Fn.a.CreateCanvas(e.width, e.height);
var r = e._workingCanvas.getContext("2d");
if (!r) throw new Error("Unable to get 2d context");
(e._workingContext = r), (e._workingCanvas.width = e.width), (e._workingCanvas.height = e.height);
}
e._workingContext.drawImage(t, 0, 0, t.videoWidth, t.videoHeight, 0, 0, e.width, e.height), this._gl.texImage2D(this._gl.TEXTURE_2D, 0, this._gl.RGBA, this._gl.RGBA, this._gl.UNSIGNED_BYTE, e._workingCanvas);
}
e.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D), i || this._bindTextureDirectly(this._gl.TEXTURE_2D, null), (e.isReady = !0);
} catch (t) {
e._isDisabled = !0;
}
}
});
var Mo = (function (e) {
function t(t, n, i, r, o, a, s) {
void 0 === r && (r = !1), void 0 === o && (o = !1), void 0 === a && (a = ln.a.TRILINEAR_SAMPLINGMODE), void 0 === s && (s = { autoPlay: !0, loop: !0, autoUpdateTexture: !0 });
var c = e.call(this, null, i, !r, o) || this;
(c._onUserActionRequestedObservable = null),
(c._stillImageCaptured = !1),
(c._displayingPosterTexture = !1),
(c._frameId = -1),
(c._currentSrc = null),
(c._createInternalTexture = function () {
if (null != c._texture) {
if (!c._displayingPosterTexture) return;
c._texture.dispose(), (c._displayingPosterTexture = !1);
}
if (
(!c._engine.needPOTTextures || ($e.b.IsExponentOfTwo(c.video.videoWidth) && $e.b.IsExponentOfTwo(c.video.videoHeight))
? ((c.wrapU = ln.a.WRAP_ADDRESSMODE), (c.wrapV = ln.a.WRAP_ADDRESSMODE))
: ((c.wrapU = ln.a.CLAMP_ADDRESSMODE), (c.wrapV = ln.a.CLAMP_ADDRESSMODE), (c._generateMipMaps = !1)),
(c._texture = c._engine.createDynamicTexture(c.video.videoWidth, c.video.videoHeight, c._generateMipMaps, c.samplingMode)),
c.video.autoplay || c._settings.poster)
)
(c._texture.isReady = !0), c._updateInternalTexture(), c.onLoadObservable.hasObservers() && c.onLoadObservable.notifyObservers(c);
else {
var e = c.video.onplaying,
t = !1,
n = c.video.muted;
(c.video.muted = !0),
(c.video.onplaying = function () {
(c.video.muted = n), (c.video.onplaying = e), (c._texture.isReady = !0), c._updateInternalTexture(), t || c.video.pause(), c.onLoadObservable.hasObservers() && c.onLoadObservable.notifyObservers(c);
});
var i = c.video.play();
i
? i
.then(function () {})
.catch(function () {
(t = !0), c._onUserActionRequestedObservable && c._onUserActionRequestedObservable.hasObservers() && c._onUserActionRequestedObservable.notifyObservers(c);
})
: ((c.video.onplaying = e), (c._texture.isReady = !0), c._updateInternalTexture(), c.onLoadObservable.hasObservers() && c.onLoadObservable.notifyObservers(c));
}
}),
(c.reset = function () {
null != c._texture && (c._displayingPosterTexture || (c._texture.dispose(), (c._texture = null)));
}),
(c._updateInternalTexture = function () {
if (null != c._texture && c._texture.isReady && !(c.video.readyState < c.video.HAVE_CURRENT_DATA || c._displayingPosterTexture)) {
var e = c.getScene().getFrameId();
c._frameId !== e && ((c._frameId = e), c._engine.updateVideoTexture(c._texture, c.video, c._invertY));
}
}),
(c._engine = c.getScene().getEngine()),
(c._generateMipMaps = r),
(c._initialSamplingMode = a),
(c.autoUpdateTexture = s.autoUpdateTexture),
(c._currentSrc = n),
(c.name = t || c._getName(n)),
(c.video = c._getVideo(n)),
(c._settings = s),
s.poster && (c.video.poster = s.poster),
void 0 !== s.autoPlay && (c.video.autoplay = s.autoPlay),
void 0 !== s.loop && (c.video.loop = s.loop),
c.video.setAttribute("playsinline", ""),
c.video.addEventListener("paused", c._updateInternalTexture),
c.video.addEventListener("seeked", c._updateInternalTexture),
c.video.addEventListener("emptied", c.reset),
(c._createInternalTextureOnEvent = s.poster && !s.autoPlay ? "play" : "canplay"),
c.video.addEventListener(c._createInternalTextureOnEvent, c._createInternalTexture);
var l = c.video.readyState >= c.video.HAVE_CURRENT_DATA;
return !s.poster || (s.autoPlay && l) ? l && c._createInternalTexture() : ((c._texture = c._engine.createTexture(s.poster, !1, !c.invertY, i)), (c._displayingPosterTexture = !0)), c;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "onUserActionRequestedObservable", {
get: function () {
return this._onUserActionRequestedObservable || (this._onUserActionRequestedObservable = new o.c()), this._onUserActionRequestedObservable;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._getName = function (e) {
return e instanceof HTMLVideoElement ? e.currentSrc : "object" == typeof e ? e.toString() : e;
}),
(t.prototype._getVideo = function (e) {
if (e instanceof HTMLVideoElement) return $e.b.SetCorsBehavior(e.currentSrc, e), e;
var t = document.createElement("video");
return (
"string" == typeof e
? ($e.b.SetCorsBehavior(e, t), (t.src = e))
: ($e.b.SetCorsBehavior(e[0], t),
e.forEach(function (e) {
var n = document.createElement("source");
(n.src = e), t.appendChild(n);
})),
t
);
}),
(t.prototype._rebuild = function () {
this.update();
}),
(t.prototype.update = function () {
this.autoUpdateTexture && this.updateTexture(!0);
}),
(t.prototype.updateTexture = function (e) {
e && ((this.video.paused && this._stillImageCaptured) || ((this._stillImageCaptured = !0), this._updateInternalTexture()));
}),
(t.prototype.updateURL = function (e) {
(this.video.src = e), (this._currentSrc = e);
}),
(t.prototype.clone = function () {
return new t(this.name, this._currentSrc, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this),
(this._currentSrc = null),
this._onUserActionRequestedObservable && (this._onUserActionRequestedObservable.clear(), (this._onUserActionRequestedObservable = null)),
this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture),
this.video.removeEventListener("paused", this._updateInternalTexture),
this.video.removeEventListener("seeked", this._updateInternalTexture),
this.video.removeEventListener("emptied", this.reset),
this.video.pause();
}),
(t.CreateFromStreamAsync = function (e, n) {
var i = document.createElement("video");
return (
i.setAttribute("autoplay", ""),
i.setAttribute("muted", "true"),
i.setAttribute("playsinline", ""),
(i.muted = !0),
void 0 !== i.mozSrcObject
? (i.mozSrcObject = n)
: "object" == typeof i.srcObject
? (i.srcObject = n)
: ((window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL), (i.src = window.URL && window.URL.createObjectURL(n))),
new Promise(function (n) {
var r = function () {
n(new t("video", i, e, !0, !0)), i.removeEventListener("playing", r);
};
i.addEventListener("playing", r), i.play();
})
);
}),
(t.CreateFromWebCamAsync = function (e, t, n) {
var i,
r = this;
return (
void 0 === n && (n = !1),
t && t.deviceId && (i = { exact: t.deviceId }),
navigator.mediaDevices
? navigator.mediaDevices.getUserMedia({ video: t, audio: n }).then(function (t) {
return r.CreateFromStreamAsync(e, t);
})
: ((navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia),
navigator.getUserMedia &&
navigator.getUserMedia(
{ video: { deviceId: i, width: { min: (t && t.minWidth) || 256, max: (t && t.maxWidth) || 640 }, height: { min: (t && t.minHeight) || 256, max: (t && t.maxHeight) || 480 } }, audio: n },
function (t) {
return r.CreateFromStreamAsync(e, t);
},
function (e) {
g.a.Error(e.name);
}
),
Promise.reject("No support for userMedia on this device"))
);
}),
(t.CreateFromWebCam = function (e, t, n, i) {
void 0 === i && (i = !1),
this.CreateFromWebCamAsync(e, n, i)
.then(function (e) {
t && t(e);
})
.catch(function (e) {
g.a.Error(e.name);
});
}),
t
);
})(ln.a),
Ao = (function () {
function e(e, t) {
void 0 === e && (e = a.e.Zero()), void 0 === t && (t = a.e.Up()), (this.position = e), (this.normal = t);
}
return (
(e.prototype.clone = function () {
return new e(this.position.clone(), this.normal.clone());
}),
e
);
})(),
Io = (function () {
function e(e, t, n) {
void 0 === e && (e = a.e.Zero()), void 0 === t && (t = a.e.Up()), void 0 === n && (n = a.d.Zero()), (this.position = e), (this.normal = t), (this.uv = n);
}
return (
(e.prototype.clone = function () {
return new e(this.position.clone(), this.normal.clone(), this.uv.clone());
}),
e
);
})(),
Do = (function (e) {
function t(n, i, r, o) {
var s = e.call(this, n, o) || this;
(s._halfDome = !1),
(s._useDirectMapping = !1),
(s._videoMode = t.MODE_MONOSCOPIC),
(s._onBeforeCameraRenderObserver = null),
(o = s.getScene()),
(n = n || "videoDome"),
(r.resolution = 0 | Math.abs(r.resolution) || 32),
(r.clickToPlay = Boolean(r.clickToPlay)),
(r.autoPlay = void 0 === r.autoPlay || Boolean(r.autoPlay)),
(r.loop = void 0 === r.loop || Boolean(r.loop)),
(r.size = Math.abs(r.size) || (o.activeCamera ? 0.48 * o.activeCamera.maxZ : 1e3)),
void 0 === r.useDirectMapping ? (s._useDirectMapping = !0) : (s._useDirectMapping = r.useDirectMapping),
void 0 === r.faceForward && (r.faceForward = !0),
s._setReady(!1);
var c = { loop: r.loop, autoPlay: r.autoPlay, autoUpdateTexture: !0, poster: r.poster },
l = (s._material = new Vr(n + "_material", o)),
u = (s._videoTexture = new Mo(n + "_texture", i, o, !1, s._useDirectMapping, ln.a.TRILINEAR_SAMPLINGMODE, c));
if (
((s._mesh = Ee.a.CreateSphere(n + "_mesh", r.resolution, r.size, o, !1, Ee.a.BACKSIDE)),
(u.anisotropicFilteringLevel = 1),
u.onLoadObservable.addOnce(function () {
s._setReady(!0);
}),
(l.useEquirectangularFOV = !0),
(l.fovMultiplier = 1),
(l.opacityFresnel = !1),
s._useDirectMapping
? ((u.wrapU = ln.a.CLAMP_ADDRESSMODE), (u.wrapV = ln.a.CLAMP_ADDRESSMODE), (l.diffuseTexture = u))
: ((u.coordinatesMode = ln.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE), (u.wrapV = ln.a.CLAMP_ADDRESSMODE), (l.reflectionTexture = u)),
(s._mesh.material = l),
(s._mesh.parent = s),
(s._halfDomeMask = mi.CreateSphere("", { slice: 0.5, diameter: 0.99 * r.size, segments: r.resolution, sideOrientation: Ee.a.BACKSIDE }, o)),
s._halfDomeMask.rotate(Be.a.X, -Math.PI / 2),
(s._halfDomeMask.parent = s._mesh),
(s._halfDome = !!r.halfDomeMode),
s._halfDomeMask.setEnabled(s._halfDome),
r.clickToPlay &&
(o.onPointerUp = function () {
s._videoTexture.video.play();
}),
r.faceForward && o.activeCamera)
) {
var h = o.activeCamera,
d = a.e.Forward(),
p = a.e.TransformNormal(d, h.getViewMatrix());
p.normalize(), (s.rotation.y = Math.acos(a.e.Dot(d, p)));
}
return s;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "videoTexture", {
get: function () {
return this._videoTexture;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fovMultiplier", {
get: function () {
return this._material.fovMultiplier;
},
set: function (e) {
this._material.fovMultiplier = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "videoMode", {
get: function () {
return this._videoMode;
},
set: function (e) {
this._videoMode !== e && this._changeVideoMode(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "halfDome", {
get: function () {
return this._halfDome;
},
set: function (e) {
(this._halfDome = e), this._halfDomeMask.setEnabled(e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._changeVideoMode = function (e) {
var n = this;
switch (
(this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),
(this._videoMode = e),
(this._videoTexture.uScale = 1),
(this._videoTexture.vScale = 1),
(this._videoTexture.uOffset = 0),
(this._videoTexture.vOffset = 0),
e)
) {
case t.MODE_SIDEBYSIDE:
this._videoTexture.uScale = this._halfDome ? 0.99999 : 0.5;
var i = this._halfDome ? 0 : 0.5,
r = this._halfDome ? 0.5 : 0;
this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) {
n._videoTexture.uOffset = e.isRightCamera ? i : r;
});
break;
case t.MODE_TOPBOTTOM:
(this._videoTexture.vScale = this._halfDome ? 0.99999 : 0.5),
(this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) {
n._videoTexture.vOffset = e.isRightCamera ? 0.5 : 0;
}));
}
}),
(t.prototype.dispose = function (t, n) {
void 0 === n && (n = !1),
this._videoTexture.dispose(),
this._mesh.dispose(),
this._material.dispose(),
this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),
e.prototype.dispose.call(this, t, n);
}),
(t.MODE_MONOSCOPIC = 0),
(t.MODE_TOPBOTTOM = 1),
(t.MODE_SIDEBYSIDE = 2),
t
);
})(si.a),
Ro = n(69),
wo = (function () {
function e(e) {
(this.engine = e),
(this._captureGPUFrameTime = !1),
(this._gpuFrameTime = new Ro.a()),
(this._captureShaderCompilationTime = !1),
(this._shaderCompilationTime = new Ro.a()),
(this._onBeginFrameObserver = null),
(this._onEndFrameObserver = null),
(this._onBeforeShaderCompilationObserver = null),
(this._onAfterShaderCompilationObserver = null);
}
return (
Object.defineProperty(e.prototype, "gpuFrameTimeCounter", {
get: function () {
return this._gpuFrameTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureGPUFrameTime", {
get: function () {
return this._captureGPUFrameTime;
},
set: function (e) {
var t = this;
e !== this._captureGPUFrameTime &&
((this._captureGPUFrameTime = e),
e
? ((this._onBeginFrameObserver = this.engine.onBeginFrameObservable.add(function () {
t._gpuFrameTimeToken || (t._gpuFrameTimeToken = t.engine.startTimeQuery());
})),
(this._onEndFrameObserver = this.engine.onEndFrameObservable.add(function () {
if (t._gpuFrameTimeToken) {
var e = t.engine.endTimeQuery(t._gpuFrameTimeToken);
e > -1 && ((t._gpuFrameTimeToken = null), t._gpuFrameTime.fetchNewFrame(), t._gpuFrameTime.addCount(e, !0));
}
})))
: (this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),
(this._onBeginFrameObserver = null),
this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),
(this._onEndFrameObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "shaderCompilationTimeCounter", {
get: function () {
return this._shaderCompilationTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureShaderCompilationTime", {
get: function () {
return this._captureShaderCompilationTime;
},
set: function (e) {
var t = this;
e !== this._captureShaderCompilationTime &&
((this._captureShaderCompilationTime = e),
e
? ((this._onBeforeShaderCompilationObserver = this.engine.onBeforeShaderCompilationObservable.add(function () {
t._shaderCompilationTime.fetchNewFrame(), t._shaderCompilationTime.beginMonitoring();
})),
(this._onAfterShaderCompilationObserver = this.engine.onAfterShaderCompilationObservable.add(function () {
t._shaderCompilationTime.endMonitoring();
})))
: (this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),
(this._onBeforeShaderCompilationObserver = null),
this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),
(this._onAfterShaderCompilationObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),
(this._onBeginFrameObserver = null),
this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),
(this._onEndFrameObserver = null),
this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),
(this._onBeforeShaderCompilationObserver = null),
this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),
(this._onAfterShaderCompilationObserver = null),
(this.engine = null);
}),
e
);
})(),
Lo = (function () {
function e(e) {
var t = this;
(this.scene = e),
(this._captureActiveMeshesEvaluationTime = !1),
(this._activeMeshesEvaluationTime = new Ro.a()),
(this._captureRenderTargetsRenderTime = !1),
(this._renderTargetsRenderTime = new Ro.a()),
(this._captureFrameTime = !1),
(this._frameTime = new Ro.a()),
(this._captureRenderTime = !1),
(this._renderTime = new Ro.a()),
(this._captureInterFrameTime = !1),
(this._interFrameTime = new Ro.a()),
(this._captureParticlesRenderTime = !1),
(this._particlesRenderTime = new Ro.a()),
(this._captureSpritesRenderTime = !1),
(this._spritesRenderTime = new Ro.a()),
(this._capturePhysicsTime = !1),
(this._physicsTime = new Ro.a()),
(this._captureAnimationsTime = !1),
(this._animationsTime = new Ro.a()),
(this._captureCameraRenderTime = !1),
(this._cameraRenderTime = new Ro.a()),
(this._onBeforeActiveMeshesEvaluationObserver = null),
(this._onAfterActiveMeshesEvaluationObserver = null),
(this._onBeforeRenderTargetsRenderObserver = null),
(this._onAfterRenderTargetsRenderObserver = null),
(this._onAfterRenderObserver = null),
(this._onBeforeDrawPhaseObserver = null),
(this._onAfterDrawPhaseObserver = null),
(this._onBeforeAnimationsObserver = null),
(this._onBeforeParticlesRenderingObserver = null),
(this._onAfterParticlesRenderingObserver = null),
(this._onBeforeSpritesRenderingObserver = null),
(this._onAfterSpritesRenderingObserver = null),
(this._onBeforePhysicsObserver = null),
(this._onAfterPhysicsObserver = null),
(this._onAfterAnimationsObserver = null),
(this._onBeforeCameraRenderObserver = null),
(this._onAfterCameraRenderObserver = null),
(this._onBeforeAnimationsObserver = e.onBeforeAnimationsObservable.add(function () {
t._captureActiveMeshesEvaluationTime && t._activeMeshesEvaluationTime.fetchNewFrame(),
t._captureRenderTargetsRenderTime && t._renderTargetsRenderTime.fetchNewFrame(),
t._captureFrameTime && ($e.b.StartPerformanceCounter("Scene rendering"), t._frameTime.beginMonitoring()),
t._captureInterFrameTime && t._interFrameTime.endMonitoring(),
t._captureParticlesRenderTime && t._particlesRenderTime.fetchNewFrame(),
t._captureSpritesRenderTime && t._spritesRenderTime.fetchNewFrame(),
t._captureAnimationsTime && t._animationsTime.beginMonitoring(),
t.scene.getEngine()._drawCalls.fetchNewFrame();
})),
(this._onAfterRenderObserver = e.onAfterRenderObservable.add(function () {
t._captureFrameTime && ($e.b.EndPerformanceCounter("Scene rendering"), t._frameTime.endMonitoring()),
t._captureRenderTime && t._renderTime.endMonitoring(!1),
t._captureInterFrameTime && t._interFrameTime.beginMonitoring();
}));
}
return (
Object.defineProperty(e.prototype, "activeMeshesEvaluationTimeCounter", {
get: function () {
return this._activeMeshesEvaluationTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureActiveMeshesEvaluationTime", {
get: function () {
return this._captureActiveMeshesEvaluationTime;
},
set: function (e) {
var t = this;
e !== this._captureActiveMeshesEvaluationTime &&
((this._captureActiveMeshesEvaluationTime = e),
e
? ((this._onBeforeActiveMeshesEvaluationObserver = this.scene.onBeforeActiveMeshesEvaluationObservable.add(function () {
$e.b.StartPerformanceCounter("Active meshes evaluation"), t._activeMeshesEvaluationTime.beginMonitoring();
})),
(this._onAfterActiveMeshesEvaluationObserver = this.scene.onAfterActiveMeshesEvaluationObservable.add(function () {
$e.b.EndPerformanceCounter("Active meshes evaluation"), t._activeMeshesEvaluationTime.endMonitoring();
})))
: (this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),
(this._onBeforeActiveMeshesEvaluationObserver = null),
this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),
(this._onAfterActiveMeshesEvaluationObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "renderTargetsRenderTimeCounter", {
get: function () {
return this._renderTargetsRenderTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureRenderTargetsRenderTime", {
get: function () {
return this._captureRenderTargetsRenderTime;
},
set: function (e) {
var t = this;
e !== this._captureRenderTargetsRenderTime &&
((this._captureRenderTargetsRenderTime = e),
e
? ((this._onBeforeRenderTargetsRenderObserver = this.scene.onBeforeRenderTargetsRenderObservable.add(function () {
$e.b.StartPerformanceCounter("Render targets rendering"), t._renderTargetsRenderTime.beginMonitoring();
})),
(this._onAfterRenderTargetsRenderObserver = this.scene.onAfterRenderTargetsRenderObservable.add(function () {
$e.b.EndPerformanceCounter("Render targets rendering"), t._renderTargetsRenderTime.endMonitoring(!1);
})))
: (this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),
(this._onBeforeRenderTargetsRenderObserver = null),
this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),
(this._onAfterRenderTargetsRenderObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "particlesRenderTimeCounter", {
get: function () {
return this._particlesRenderTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureParticlesRenderTime", {
get: function () {
return this._captureParticlesRenderTime;
},
set: function (e) {
var t = this;
e !== this._captureParticlesRenderTime &&
((this._captureParticlesRenderTime = e),
e
? ((this._onBeforeParticlesRenderingObserver = this.scene.onBeforeParticlesRenderingObservable.add(function () {
$e.b.StartPerformanceCounter("Particles"), t._particlesRenderTime.beginMonitoring();
})),
(this._onAfterParticlesRenderingObserver = this.scene.onAfterParticlesRenderingObservable.add(function () {
$e.b.EndPerformanceCounter("Particles"), t._particlesRenderTime.endMonitoring(!1);
})))
: (this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),
(this._onBeforeParticlesRenderingObserver = null),
this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),
(this._onAfterParticlesRenderingObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "spritesRenderTimeCounter", {
get: function () {
return this._spritesRenderTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureSpritesRenderTime", {
get: function () {
return this._captureSpritesRenderTime;
},
set: function (e) {
var t = this;
e !== this._captureSpritesRenderTime &&
((this._captureSpritesRenderTime = e),
this.scene.spriteManagers &&
(e
? ((this._onBeforeSpritesRenderingObserver = this.scene.onBeforeSpritesRenderingObservable.add(function () {
$e.b.StartPerformanceCounter("Sprites"), t._spritesRenderTime.beginMonitoring();
})),
(this._onAfterSpritesRenderingObserver = this.scene.onAfterSpritesRenderingObservable.add(function () {
$e.b.EndPerformanceCounter("Sprites"), t._spritesRenderTime.endMonitoring(!1);
})))
: (this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),
(this._onBeforeSpritesRenderingObserver = null),
this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),
(this._onAfterSpritesRenderingObserver = null))));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "physicsTimeCounter", {
get: function () {
return this._physicsTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "capturePhysicsTime", {
get: function () {
return this._capturePhysicsTime;
},
set: function (e) {
var t = this;
e !== this._capturePhysicsTime &&
this.scene.onBeforePhysicsObservable &&
((this._capturePhysicsTime = e),
e
? ((this._onBeforePhysicsObserver = this.scene.onBeforePhysicsObservable.add(function () {
$e.b.StartPerformanceCounter("Physics"), t._physicsTime.beginMonitoring();
})),
(this._onAfterPhysicsObserver = this.scene.onAfterPhysicsObservable.add(function () {
$e.b.EndPerformanceCounter("Physics"), t._physicsTime.endMonitoring();
})))
: (this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),
(this._onBeforePhysicsObserver = null),
this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),
(this._onAfterPhysicsObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "animationsTimeCounter", {
get: function () {
return this._animationsTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureAnimationsTime", {
get: function () {
return this._captureAnimationsTime;
},
set: function (e) {
var t = this;
e !== this._captureAnimationsTime &&
((this._captureAnimationsTime = e),
e
? (this._onAfterAnimationsObserver = this.scene.onAfterAnimationsObservable.add(function () {
t._animationsTime.endMonitoring();
}))
: (this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver), (this._onAfterAnimationsObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "frameTimeCounter", {
get: function () {
return this._frameTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureFrameTime", {
get: function () {
return this._captureFrameTime;
},
set: function (e) {
this._captureFrameTime = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "interFrameTimeCounter", {
get: function () {
return this._interFrameTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureInterFrameTime", {
get: function () {
return this._captureInterFrameTime;
},
set: function (e) {
this._captureInterFrameTime = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "renderTimeCounter", {
get: function () {
return this._renderTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureRenderTime", {
get: function () {
return this._captureRenderTime;
},
set: function (e) {
var t = this;
e !== this._captureRenderTime &&
((this._captureRenderTime = e),
e
? ((this._onBeforeDrawPhaseObserver = this.scene.onBeforeDrawPhaseObservable.add(function () {
t._renderTime.beginMonitoring(), $e.b.StartPerformanceCounter("Main render");
})),
(this._onAfterDrawPhaseObserver = this.scene.onAfterDrawPhaseObservable.add(function () {
t._renderTime.endMonitoring(!1), $e.b.EndPerformanceCounter("Main render");
})))
: (this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),
(this._onBeforeDrawPhaseObserver = null),
this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),
(this._onAfterDrawPhaseObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "cameraRenderTimeCounter", {
get: function () {
return this._cameraRenderTime;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "captureCameraRenderTime", {
get: function () {
return this._captureCameraRenderTime;
},
set: function (e) {
var t = this;
e !== this._captureCameraRenderTime &&
((this._captureCameraRenderTime = e),
e
? ((this._onBeforeCameraRenderObserver = this.scene.onBeforeCameraRenderObservable.add(function (e) {
t._cameraRenderTime.beginMonitoring(), $e.b.StartPerformanceCounter("Rendering camera " + e.name);
})),
(this._onAfterCameraRenderObserver = this.scene.onAfterCameraRenderObservable.add(function (e) {
t._cameraRenderTime.endMonitoring(!1), $e.b.EndPerformanceCounter("Rendering camera " + e.name);
})))
: (this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),
(this._onBeforeCameraRenderObserver = null),
this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),
(this._onAfterCameraRenderObserver = null)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "drawCallsCounter", {
get: function () {
return this.scene.getEngine()._drawCalls;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver),
(this._onAfterRenderObserver = null),
this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),
(this._onBeforeActiveMeshesEvaluationObserver = null),
this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),
(this._onAfterActiveMeshesEvaluationObserver = null),
this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),
(this._onBeforeRenderTargetsRenderObserver = null),
this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),
(this._onAfterRenderTargetsRenderObserver = null),
this.scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver),
(this._onBeforeAnimationsObserver = null),
this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),
(this._onBeforeParticlesRenderingObserver = null),
this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),
(this._onAfterParticlesRenderingObserver = null),
this._onBeforeSpritesRenderingObserver && (this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver), (this._onBeforeSpritesRenderingObserver = null)),
this._onAfterSpritesRenderingObserver && (this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver), (this._onAfterSpritesRenderingObserver = null)),
this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),
(this._onBeforeDrawPhaseObserver = null),
this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),
(this._onAfterDrawPhaseObserver = null),
this._onBeforePhysicsObserver && (this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver), (this._onBeforePhysicsObserver = null)),
this._onAfterPhysicsObserver && (this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver), (this._onAfterPhysicsObserver = null)),
this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),
(this._onAfterAnimationsObserver = null),
this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),
(this._onBeforeCameraRenderObserver = null),
this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),
(this._onAfterCameraRenderObserver = null),
(this.scene = null);
}),
e
);
})(),
Fo = n(28),
No =
"#ifdef DIFFUSE\nvarying vec2 vUVDiffuse;\nuniform sampler2D diffuseSampler;\n#endif\n#ifdef OPACITY\nvarying vec2 vUVOpacity;\nuniform sampler2D opacitySampler;\nuniform float opacityIntensity;\n#endif\n#ifdef EMISSIVE\nvarying vec2 vUVEmissive;\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef VERTEXALPHA\nvarying vec4 vColor;\n#endif\nuniform vec4 glowColor;\nvoid main(void)\n{\nvec4 finalColor=glowColor;\n\n#ifdef DIFFUSE\nvec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\nfinalColor.a*=albedoTexture.a;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vUVOpacity);\n#ifdef OPACITYRGB\nfinalColor.a*=getLuminance(opacityMap.rgb);\n#else\nfinalColor.a*=opacityMap.a;\n#endif\nfinalColor.a*=opacityIntensity;\n#endif\n#ifdef VERTEXALPHA\nfinalColor.a*=vColor.a;\n#endif\n#ifdef ALPHATEST\nif (finalColor.a 4 && (o.push(wn.b.MatricesIndicesExtraKind), o.push(wn.b.MatricesWeightsExtraKind)),
r.push("#define NUM_BONE_INFLUENCERS " + a.numBoneInfluencers);
var f = a.skeleton;
f && f.isUsingTextureForMatrices ? r.push("#define BONETEXTURE") : r.push("#define BonesPerMesh " + (f ? f.bones.length + 1 : 0)), a.numBoneInfluencers > 0 && p.addCPUSkinningFallback(0, a);
} else r.push("#define NUM_BONE_INFLUENCERS 0");
var m = a.morphTargetManager,
g = 0;
m && m.numInfluencers > 0 && (r.push("#define MORPHTARGETS"), (g = m.numInfluencers), r.push("#define NUM_MORPH_INFLUENCERS " + g), Ir.a.PrepareAttributesForMorphTargetsInfluencers(o, a, g)),
t && (r.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(o)),
this._addCustomEffectDefines(r);
var b = r.join("\n");
return (
this._cachedDefines !== b &&
((this._cachedDefines = b),
(this._effectLayerMapGenerationEffect = this._scene
.getEngine()
.createEffect(
"glowMapGeneration",
o,
["world", "mBones", "viewProjection", "glowColor", "morphTargetInfluences", "boneTextureWidth", "diffuseMatrix", "emissiveMatrix", "opacityMatrix", "opacityIntensity"],
["diffuseSampler", "emissiveSampler", "opacitySampler", "boneSampler"],
b,
p,
void 0,
void 0,
{ maxSimultaneousMorphTargets: g }
))),
this._effectLayerMapGenerationEffect.isReady()
);
}),
(e.prototype.render = function () {
var e = this._mergeEffect;
if (e.isReady()) {
for (var t = 0; t < this._postProcesses.length; t++) if (!this._postProcesses[t].isReady()) return;
var n = this._scene.getEngine();
this.onBeforeComposeObservable.notifyObservers(this), n.enableEffect(e), n.setState(!1), n.bindBuffers(this._vertexBuffers, this._indexBuffer, e);
var i = n.getAlphaMode();
n.setAlphaMode(this._effectLayerOptions.alphaBlendingMode), this._internalRender(e), n.setAlphaMode(i), this.onAfterComposeObservable.notifyObservers(this);
var r = this._mainTexture.getSize();
this._setMainTextureSize(),
(r.width === this._mainTextureDesiredSize.width && r.height === this._mainTextureDesiredSize.height) ||
(this.onSizeChangedObservable.notifyObservers(this), this._disposeTextureAndPostProcesses(), this._createMainTexture(), this._createTextureAndPostProcesses());
}
}),
(e.prototype.hasMesh = function (e) {
return -1 === this.renderingGroupId || e.renderingGroupId === this.renderingGroupId;
}),
(e.prototype.shouldRender = function () {
return this.isEnabled && this._shouldRender;
}),
(e.prototype._shouldRenderMesh = function (e) {
return !0;
}),
(e.prototype._canRenderMesh = function (e, t) {
return !t.needAlphaBlendingForMesh(e);
}),
(e.prototype._shouldRenderEmissiveTextureForMesh = function () {
return !0;
}),
(e.prototype._renderSubMesh = function (e, t) {
var n = this;
if ((void 0 === t && (t = !1), this.shouldRender())) {
var i = e.getMaterial(),
r = e.getRenderingMesh(),
o = this._scene,
a = o.getEngine();
if (((r._internalAbstractMeshDataInfo._isActiveIntermediate = !1), i && this._canRenderMesh(r, i))) {
a.setState(i.backFaceCulling);
var s = r._getInstancesRenderList(e._id);
if (!s.mustReturn && this._shouldRenderMesh(r)) {
var c = s.hardwareInstancedRendering[e._id];
if ((this._setEmissiveTextureAndColor(r, e, i), this.onBeforeRenderMeshToEffect.notifyObservers(r), this._useMeshMaterial(r))) r.render(e, c);
else if (this._isReady(e, c, this._emissiveTextureAndColor.texture)) {
a.enableEffect(this._effectLayerMapGenerationEffect),
r._bind(e, this._effectLayerMapGenerationEffect, Fo.a.TriangleFillMode),
this._effectLayerMapGenerationEffect.setMatrix("viewProjection", o.getTransformMatrix()),
this._effectLayerMapGenerationEffect.setFloat4(
"glowColor",
this._emissiveTextureAndColor.color.r,
this._emissiveTextureAndColor.color.g,
this._emissiveTextureAndColor.color.b,
this._emissiveTextureAndColor.color.a
);
var l = i.needAlphaTesting(),
u = i.getAlphaTestTexture(),
h = u && u.hasAlpha && (i.useAlphaFromDiffuseTexture || i._useAlphaFromAlbedoTexture);
if (u && (l || h)) this._effectLayerMapGenerationEffect.setTexture("diffuseSampler", u), (d = u.getTextureMatrix()) && this._effectLayerMapGenerationEffect.setMatrix("diffuseMatrix", d);
var d,
p = i.opacityTexture;
if (p)
this._effectLayerMapGenerationEffect.setTexture("opacitySampler", p),
this._effectLayerMapGenerationEffect.setFloat("opacityIntensity", p.level),
(d = p.getTextureMatrix()) && this._effectLayerMapGenerationEffect.setMatrix("opacityMatrix", d);
if (
(this._emissiveTextureAndColor.texture &&
(this._effectLayerMapGenerationEffect.setTexture("emissiveSampler", this._emissiveTextureAndColor.texture),
this._effectLayerMapGenerationEffect.setMatrix("emissiveMatrix", this._emissiveTextureAndColor.texture.getTextureMatrix())),
r.useBones && r.computeBonesUsingShaders && r.skeleton)
) {
var f = r.skeleton;
if (f.isUsingTextureForMatrices) {
var m = f.getTransformMatrixTexture(r);
if (!m) return;
this._effectLayerMapGenerationEffect.setTexture("boneSampler", m), this._effectLayerMapGenerationEffect.setFloat("boneTextureWidth", 4 * (f.bones.length + 1));
} else this._effectLayerMapGenerationEffect.setMatrices("mBones", f.getTransformMatrices(r));
}
Ir.a.BindMorphTargetParameters(r, this._effectLayerMapGenerationEffect),
t && a.setAlphaMode(i.alphaMode),
r._processRendering(e, this._effectLayerMapGenerationEffect, i.fillMode, s, c, function (e, t) {
return n._effectLayerMapGenerationEffect.setMatrix("world", t);
});
} else this._mainTexture.resetRefreshCounter();
this.onAfterRenderMeshToEffect.notifyObservers(r);
}
}
}
}),
(e.prototype._useMeshMaterial = function (e) {
return !1;
}),
(e.prototype._rebuild = function () {
var e = this._vertexBuffers[wn.b.PositionKind];
e && e._rebuild(), this._generateIndexBuffer();
}),
(e.prototype._disposeTextureAndPostProcesses = function () {
this._mainTexture.dispose();
for (var e = 0; e < this._postProcesses.length; e++) this._postProcesses[e] && this._postProcesses[e].dispose();
this._postProcesses = [];
for (e = 0; e < this._textures.length; e++) this._textures[e] && this._textures[e].dispose();
this._textures = [];
}),
(e.prototype.dispose = function () {
var e = this._vertexBuffers[wn.b.PositionKind];
e && (e.dispose(), (this._vertexBuffers[wn.b.PositionKind] = null)),
this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)),
this._disposeTextureAndPostProcesses();
var t = this._scene.effectLayers.indexOf(this, 0);
t > -1 && this._scene.effectLayers.splice(t, 1),
this.onDisposeObservable.notifyObservers(this),
this.onDisposeObservable.clear(),
this.onBeforeRenderMainTextureObservable.clear(),
this.onBeforeComposeObservable.clear(),
this.onBeforeRenderMeshToEffect.clear(),
this.onAfterRenderMeshToEffect.clear(),
this.onAfterComposeObservable.clear(),
this.onSizeChangedObservable.clear();
}),
(e.prototype.getClassName = function () {
return "EffectLayer";
}),
(e.Parse = function (e, t, n) {
return $e.b.Instantiate(e.customType).Parse(e, t, n);
}),
(e._SceneComponentInitialization = function (e) {
throw zo.a.WarnImport("EffectLayerSceneComponent");
}),
Object(h.c)([Object(He.c)()], e.prototype, "name", void 0),
Object(h.c)([Object(He.f)()], e.prototype, "neutralColor", void 0),
Object(h.c)([Object(He.c)()], e.prototype, "isEnabled", void 0),
Object(h.c)([Object(He.d)()], e.prototype, "camera", null),
Object(h.c)([Object(He.c)()], e.prototype, "renderingGroupId", null),
e
);
})();
i.a.AddParser(me.a.NAME_EFFECTLAYER, function (e, t, n, i) {
if (e.effectLayers) {
n.effectLayers || (n.effectLayers = new Array());
for (var r = 0; r < e.effectLayers.length; r++) {
var o = jo.Parse(e.effectLayers[r], t, i);
n.effectLayers.push(o);
}
}
}),
(i.a.prototype.removeEffectLayer = function (e) {
var t = this.effectLayers.indexOf(e);
return -1 !== t && this.effectLayers.splice(t, 1), t;
}),
(i.a.prototype.addEffectLayer = function (e) {
this.effectLayers.push(e);
});
var Bo = (function () {
function e(e) {
(this.name = me.a.NAME_EFFECTLAYER), (this._renderEffects = !1), (this._needStencil = !1), (this._previousStencilState = !1), (this.scene = e), (this._engine = e.getEngine()), (e.effectLayers = new Array());
}
return (
(e.prototype.register = function () {
this.scene._isReadyForMeshStage.registerStep(me.a.STEP_ISREADYFORMESH_EFFECTLAYER, this, this._isReadyForMesh),
this.scene._cameraDrawRenderTargetStage.registerStep(me.a.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER, this, this._renderMainTexture),
this.scene._beforeCameraDrawStage.registerStep(me.a.STEP_BEFORECAMERADRAW_EFFECTLAYER, this, this._setStencil),
this.scene._afterRenderingGroupDrawStage.registerStep(me.a.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW, this, this._drawRenderingGroup),
this.scene._afterCameraDrawStage.registerStep(me.a.STEP_AFTERCAMERADRAW_EFFECTLAYER, this, this._setStencilBack),
this.scene._afterCameraDrawStage.registerStep(me.a.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW, this, this._drawCamera);
}),
(e.prototype.rebuild = function () {
for (var e = 0, t = this.scene.effectLayers; e < t.length; e++) {
t[e]._rebuild();
}
}),
(e.prototype.serialize = function (e) {
e.effectLayers = [];
for (var t = 0, n = this.scene.effectLayers; t < n.length; t++) {
var i = n[t];
i.serialize && e.effectLayers.push(i.serialize());
}
}),
(e.prototype.addFromContainer = function (e) {
var t = this;
e.effectLayers &&
e.effectLayers.forEach(function (e) {
t.scene.addEffectLayer(e);
});
}),
(e.prototype.removeFromContainer = function (e, t) {
var n = this;
e.effectLayers &&
e.effectLayers.forEach(function (e) {
n.scene.removeEffectLayer(e), t && e.dispose();
});
}),
(e.prototype.dispose = function () {
for (var e = this.scene.effectLayers; e.length; ) e[0].dispose();
}),
(e.prototype._isReadyForMesh = function (e, t) {
for (var n = 0, i = this.scene.effectLayers; n < i.length; n++) {
var r = i[n];
if (r.hasMesh(e))
for (var o = 0, a = e.subMeshes; o < a.length; o++) {
var s = a[o];
if (!r.isReady(s, t)) return !1;
}
}
return !0;
}),
(e.prototype._renderMainTexture = function (e) {
(this._renderEffects = !1), (this._needStencil = !1);
var t = !1,
n = this.scene.effectLayers;
if (n && n.length > 0) {
this._previousStencilState = this._engine.getStencilBuffer();
for (var i = 0, r = n; i < r.length; i++) {
var o = r[i];
if (o.shouldRender() && (!o.camera || (o.camera.cameraRigMode === De.a.RIG_MODE_NONE && e === o.camera) || (o.camera.cameraRigMode !== De.a.RIG_MODE_NONE && o.camera._rigCameras.indexOf(e) > -1))) {
(this._renderEffects = !0), (this._needStencil = this._needStencil || o.needStencil());
var a = o._mainTexture;
a._shouldRender() && (this.scene.incrementRenderId(), a.render(!1, !1), (t = !0));
}
}
this.scene.incrementRenderId();
}
return t;
}),
(e.prototype._setStencil = function () {
this._needStencil && this._engine.setStencilBuffer(!0);
}),
(e.prototype._setStencilBack = function () {
this._needStencil && this._engine.setStencilBuffer(this._previousStencilState);
}),
(e.prototype._draw = function (e) {
if (this._renderEffects) {
this._engine.setDepthBuffer(!1);
for (var t = this.scene.effectLayers, n = 0; n < t.length; n++) {
var i = t[n];
i.renderingGroupId === e && i.shouldRender() && i.render();
}
this._engine.setDepthBuffer(!0);
}
}),
(e.prototype._drawCamera = function () {
this._renderEffects && this._draw(-1);
}),
(e.prototype._drawRenderingGroup = function (e) {
!this.scene._isInIntermediateRendering() && this._renderEffects && this._draw(e);
}),
e
);
})();
jo._SceneComponentInitialization = function (e) {
var t = e._getComponent(me.a.NAME_EFFECTLAYER);
t || ((t = new Bo(e)), e._addComponent(t));
};
var Vo =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#ifdef EMISSIVE\nuniform sampler2D textureSampler2;\n#endif\n\nuniform float offset;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef EMISSIVE\nbaseColor+=texture2D(textureSampler2,vUV);\nbaseColor*=offset;\n#else\nbaseColor.a=abs(offset-baseColor.a);\n#ifdef STROKE\nfloat alpha=smoothstep(.0,.1,baseColor.a);\nbaseColor.a=alpha;\nbaseColor.rgb=baseColor.rgb*alpha;\n#endif\n#endif\ngl_FragColor=baseColor;\n}";
Xt.a.ShadersStore.glowMapMergePixelShader = Vo;
var Go = "\nattribute vec2 position;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=position*madd+madd;\ngl_Position=vec4(position,0.0,1.0);\n}";
Xt.a.ShadersStore.glowMapMergeVertexShader = Go;
i.a.prototype.getGlowLayerByName = function (e) {
for (var t = 0; t < this.effectLayers.length; t++) if (this.effectLayers[t].name === e && this.effectLayers[t].getEffectName() === Uo.EffectName) return this.effectLayers[t];
return null;
};
var Uo = (function (e) {
function t(n, i, r) {
var o = e.call(this, n, i) || this;
return (
(o._intensity = 1),
(o._includedOnlyMeshes = []),
(o._excludedMeshes = []),
(o._meshesUsingTheirOwnMaterials = []),
(o.neutralColor = new s.b(0, 0, 0, 1)),
(o._options = Object(h.a)({ mainTextureRatio: t.DefaultTextureRatio, blurKernelSize: 32, mainTextureFixedSize: void 0, camera: null, mainTextureSamples: 1, renderingGroupId: -1 }, r)),
o._init({ alphaBlendingMode: 1, camera: o._options.camera, mainTextureFixedSize: o._options.mainTextureFixedSize, mainTextureRatio: o._options.mainTextureRatio, renderingGroupId: o._options.renderingGroupId }),
o
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "blurKernelSize", {
get: function () {
return this._horizontalBlurPostprocess1.kernel;
},
set: function (e) {
(this._horizontalBlurPostprocess1.kernel = e), (this._verticalBlurPostprocess1.kernel = e), (this._horizontalBlurPostprocess2.kernel = e), (this._verticalBlurPostprocess2.kernel = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "intensity", {
get: function () {
return this._intensity;
},
set: function (e) {
this._intensity = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getEffectName = function () {
return t.EffectName;
}),
(t.prototype._createMergeEffect = function () {
return this._engine.createEffect("glowMapMerge", [wn.b.PositionKind], ["offset"], ["textureSampler", "textureSampler2"], "#define EMISSIVE \n");
}),
(t.prototype._createTextureAndPostProcesses = function () {
var e = this,
t = this._mainTextureDesiredSize.width,
n = this._mainTextureDesiredSize.height;
(t = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(t, this._maxSize) : t), (n = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(n, this._maxSize) : n);
var i = 0;
(i = this._engine.getCaps().textureHalfFloatRender ? 2 : 0),
(this._blurTexture1 = new mn.a("GlowLayerBlurRTT", { width: t, height: n }, this._scene, !1, !0, i)),
(this._blurTexture1.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._blurTexture1.wrapV = ln.a.CLAMP_ADDRESSMODE),
this._blurTexture1.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE),
(this._blurTexture1.renderParticles = !1),
(this._blurTexture1.ignoreCameraViewport = !0);
var r = Math.floor(t / 2),
o = Math.floor(n / 2);
(this._blurTexture2 = new mn.a("GlowLayerBlurRTT2", { width: r, height: o }, this._scene, !1, !0, i)),
(this._blurTexture2.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._blurTexture2.wrapV = ln.a.CLAMP_ADDRESSMODE),
this._blurTexture2.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE),
(this._blurTexture2.renderParticles = !1),
(this._blurTexture2.ignoreCameraViewport = !0),
(this._textures = [this._blurTexture1, this._blurTexture2]),
(this._horizontalBlurPostprocess1 = new Er("GlowLayerHBP1", new a.d(1, 0), this._options.blurKernelSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)),
(this._horizontalBlurPostprocess1.width = t),
(this._horizontalBlurPostprocess1.height = n),
this._horizontalBlurPostprocess1.onApplyObservable.add(function (t) {
t.setTexture("textureSampler", e._mainTexture);
}),
(this._verticalBlurPostprocess1 = new Er("GlowLayerVBP1", new a.d(0, 1), this._options.blurKernelSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)),
(this._horizontalBlurPostprocess2 = new Er("GlowLayerHBP2", new a.d(1, 0), this._options.blurKernelSize / 2, { width: r, height: o }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)),
(this._horizontalBlurPostprocess2.width = r),
(this._horizontalBlurPostprocess2.height = o),
this._horizontalBlurPostprocess2.onApplyObservable.add(function (t) {
t.setTexture("textureSampler", e._blurTexture1);
}),
(this._verticalBlurPostprocess2 = new Er("GlowLayerVBP2", new a.d(0, 1), this._options.blurKernelSize / 2, { width: r, height: o }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)),
(this._postProcesses = [this._horizontalBlurPostprocess1, this._verticalBlurPostprocess1, this._horizontalBlurPostprocess2, this._verticalBlurPostprocess2]),
(this._postProcesses1 = [this._horizontalBlurPostprocess1, this._verticalBlurPostprocess1]),
(this._postProcesses2 = [this._horizontalBlurPostprocess2, this._verticalBlurPostprocess2]),
(this._mainTexture.samples = this._options.mainTextureSamples),
this._mainTexture.onAfterUnbindObservable.add(function () {
var t = e._blurTexture1.getInternalTexture();
t && (e._scene.postProcessManager.directRender(e._postProcesses1, t, !0), (t = e._blurTexture2.getInternalTexture()) && e._scene.postProcessManager.directRender(e._postProcesses2, t, !0));
}),
this._postProcesses.map(function (e) {
e.autoClear = !1;
});
}),
(t.prototype.isReady = function (t, n) {
var i = t.getMaterial(),
r = t.getRenderingMesh();
if (!i || !r) return !1;
var o = i.emissiveTexture;
return e.prototype._isReady.call(this, t, n, o);
}),
(t.prototype.needStencil = function () {
return !1;
}),
(t.prototype._canRenderMesh = function (e, t) {
return !0;
}),
(t.prototype._internalRender = function (e) {
e.setTexture("textureSampler", this._blurTexture1), e.setTexture("textureSampler2", this._blurTexture2), e.setFloat("offset", this._intensity);
var t = this._engine,
n = t.getStencilBuffer();
t.setStencilBuffer(!1), t.drawElementsType(Fo.a.TriangleFillMode, 0, 6), t.setStencilBuffer(n);
}),
(t.prototype._setEmissiveTextureAndColor = function (e, t, n) {
var i = 1;
this.customEmissiveTextureSelector
? (this._emissiveTextureAndColor.texture = this.customEmissiveTextureSelector(e, t, n))
: n
? ((this._emissiveTextureAndColor.texture = n.emissiveTexture), this._emissiveTextureAndColor.texture && (i = this._emissiveTextureAndColor.texture.level))
: (this._emissiveTextureAndColor.texture = null),
this.customEmissiveColorSelector
? this.customEmissiveColorSelector(e, t, n, this._emissiveTextureAndColor.color)
: n.emissiveColor
? this._emissiveTextureAndColor.color.set(n.emissiveColor.r * i, n.emissiveColor.g * i, n.emissiveColor.b * i, n.alpha)
: this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a);
}),
(t.prototype._shouldRenderMesh = function (e) {
return this.hasMesh(e);
}),
(t.prototype._addCustomEffectDefines = function (e) {
e.push("#define GLOW");
}),
(t.prototype.addExcludedMesh = function (e) {
-1 === this._excludedMeshes.indexOf(e.uniqueId) && this._excludedMeshes.push(e.uniqueId);
}),
(t.prototype.removeExcludedMesh = function (e) {
var t = this._excludedMeshes.indexOf(e.uniqueId);
-1 !== t && this._excludedMeshes.splice(t, 1);
}),
(t.prototype.addIncludedOnlyMesh = function (e) {
-1 === this._includedOnlyMeshes.indexOf(e.uniqueId) && this._includedOnlyMeshes.push(e.uniqueId);
}),
(t.prototype.removeIncludedOnlyMesh = function (e) {
var t = this._includedOnlyMeshes.indexOf(e.uniqueId);
-1 !== t && this._includedOnlyMeshes.splice(t, 1);
}),
(t.prototype.hasMesh = function (t) {
return !!e.prototype.hasMesh.call(this, t) && (this._includedOnlyMeshes.length ? -1 !== this._includedOnlyMeshes.indexOf(t.uniqueId) : !this._excludedMeshes.length || -1 === this._excludedMeshes.indexOf(t.uniqueId));
}),
(t.prototype._useMeshMaterial = function (e) {
return 0 != this._meshesUsingTheirOwnMaterials.length && this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId) > -1;
}),
(t.prototype.referenceMeshToUseItsOwnMaterial = function (e) {
this._meshesUsingTheirOwnMaterials.push(e.uniqueId);
}),
(t.prototype.unReferenceMeshFromUsingItsOwnMaterial = function (e) {
for (var t = this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId); t > 0; ) this._meshesUsingTheirOwnMaterials.slice(t, t + 1), (t = this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId));
}),
(t.prototype._disposeMesh = function (e) {
this.removeIncludedOnlyMesh(e), this.removeExcludedMesh(e);
}),
(t.prototype.getClassName = function () {
return "GlowLayer";
}),
(t.prototype.serialize = function () {
var e,
t = He.a.Serialize(this);
if (((t.customType = "BABYLON.GlowLayer"), (t.includedMeshes = []), this._includedOnlyMeshes.length))
for (e = 0; e < this._includedOnlyMeshes.length; e++) {
(n = this._scene.getMeshByUniqueID(this._includedOnlyMeshes[e])) && t.includedMeshes.push(n.id);
}
if (((t.excludedMeshes = []), this._excludedMeshes.length))
for (e = 0; e < this._excludedMeshes.length; e++) {
var n;
(n = this._scene.getMeshByUniqueID(this._excludedMeshes[e])) && t.excludedMeshes.push(n.id);
}
return t;
}),
(t.Parse = function (e, n, i) {
var r,
o = He.a.Parse(
function () {
return new t(e.name, n, e.options);
},
e,
n,
i
);
for (r = 0; r < e.excludedMeshes.length; r++) {
(a = n.getMeshByID(e.excludedMeshes[r])) && o.addExcludedMesh(a);
}
for (r = 0; r < e.includedMeshes.length; r++) {
var a;
(a = n.getMeshByID(e.includedMeshes[r])) && o.addIncludedOnlyMesh(a);
}
return o;
}),
(t.EffectName = "GlowLayer"),
(t.DefaultBlurKernelSize = 32),
(t.DefaultTextureRatio = 0.5),
Object(h.c)([Object(He.c)()], t.prototype, "blurKernelSize", null),
Object(h.c)([Object(He.c)()], t.prototype, "intensity", null),
Object(h.c)([Object(He.c)("options")], t.prototype, "_options", void 0),
t
);
})(jo);
c.a.RegisteredTypes["BABYLON.GlowLayer"] = Uo;
var Ho =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec2 screenSize;\nuniform vec2 direction;\nuniform float blurWidth;\n\nfloat getLuminance(vec3 color)\n{\nreturn dot(color,vec3(0.2126,0.7152,0.0722));\n}\nvoid main(void)\n{\nfloat weights[7];\nweights[0]=0.05;\nweights[1]=0.1;\nweights[2]=0.2;\nweights[3]=0.3;\nweights[4]=0.2;\nweights[5]=0.1;\nweights[6]=0.05;\nvec2 texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);\nvec2 texelStep=texelSize*direction*blurWidth;\nvec2 start=vUV-3.0*texelStep;\nvec4 baseColor=vec4(0.,0.,0.,0.);\nvec2 texelOffset=vec2(0.,0.);\nfor (int i=0; i<7; i++)\n{\n\nvec4 texel=texture2D(textureSampler,start+texelOffset);\nbaseColor.a+=texel.a*weights[i];\n\nfloat luminance=getLuminance(baseColor.rgb);\nfloat luminanceTexel=getLuminance(texel.rgb);\nfloat choice=step(luminanceTexel,luminance);\nbaseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;\ntexelOffset+=texelStep;\n}\ngl_FragColor=baseColor;\n}";
Xt.a.ShadersStore.glowBlurPostProcessPixelShader = Ho;
i.a.prototype.getHighlightLayerByName = function (e) {
for (var t = 0; t < this.effectLayers.length; t++) if (this.effectLayers[t].name === e && this.effectLayers[t].getEffectName() === Xo.EffectName) return this.effectLayers[t];
return null;
};
var Wo = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === a && (a = ln.a.BILINEAR_SAMPLINGMODE);
var l = e.call(this, t, "glowBlurPostProcess", ["screenSize", "direction", "blurWidth"], null, r, o, a, s, c) || this;
return (
(l.direction = n),
(l.kernel = i),
l.onApplyObservable.add(function (e) {
e.setFloat2("screenSize", l.width, l.height), e.setVector2("direction", l.direction), e.setFloat("blurWidth", l.kernel);
}),
l
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
Xo = (function (e) {
function t(n, i, r) {
var a = e.call(this, n, i) || this;
return (
(a.name = n),
(a.innerGlow = !0),
(a.outerGlow = !0),
(a.onBeforeBlurObservable = new o.c()),
(a.onAfterBlurObservable = new o.c()),
(a._instanceGlowingMeshStencilReference = t.GlowingMeshStencilReference++),
(a._meshes = {}),
(a._excludedMeshes = {}),
(a.neutralColor = t.NeutralColor),
a._engine.isStencilEnable || g.a.Warn("Rendering the Highlight Layer requires the stencil to be active on the canvas. var engine = new Engine(canvas, antialias, { stencil: true }"),
(a._options = Object(h.a)({ mainTextureRatio: 0.5, blurTextureSizeRatio: 0.5, blurHorizontalSize: 1, blurVerticalSize: 1, alphaBlendingMode: 2, camera: null, renderingGroupId: -1 }, r)),
a._init({
alphaBlendingMode: a._options.alphaBlendingMode,
camera: a._options.camera,
mainTextureFixedSize: a._options.mainTextureFixedSize,
mainTextureRatio: a._options.mainTextureRatio,
renderingGroupId: a._options.renderingGroupId,
}),
(a._shouldRender = !1),
a
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "blurHorizontalSize", {
get: function () {
return this._horizontalBlurPostprocess.kernel;
},
set: function (e) {
this._horizontalBlurPostprocess.kernel = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "blurVerticalSize", {
get: function () {
return this._verticalBlurPostprocess.kernel;
},
set: function (e) {
this._verticalBlurPostprocess.kernel = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getEffectName = function () {
return t.EffectName;
}),
(t.prototype._createMergeEffect = function () {
return this._engine.createEffect("glowMapMerge", [wn.b.PositionKind], ["offset"], ["textureSampler"], this._options.isStroke ? "#define STROKE \n" : void 0);
}),
(t.prototype._createTextureAndPostProcesses = function () {
var e = this,
t = this._mainTextureDesiredSize.width * this._options.blurTextureSizeRatio,
n = this._mainTextureDesiredSize.height * this._options.blurTextureSizeRatio;
(t = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(t, this._maxSize) : t), (n = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(n, this._maxSize) : n);
var i = 0;
(i = this._engine.getCaps().textureHalfFloatRender ? 2 : 0),
(this._blurTexture = new mn.a("HighlightLayerBlurRTT", { width: t, height: n }, this._scene, !1, !0, i)),
(this._blurTexture.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._blurTexture.wrapV = ln.a.CLAMP_ADDRESSMODE),
(this._blurTexture.anisotropicFilteringLevel = 16),
this._blurTexture.updateSamplingMode(ln.a.TRILINEAR_SAMPLINGMODE),
(this._blurTexture.renderParticles = !1),
(this._blurTexture.ignoreCameraViewport = !0),
(this._textures = [this._blurTexture]),
2 === this._options.alphaBlendingMode
? ((this._downSamplePostprocess = new Ht.b("HighlightLayerPPP", this._options.blurTextureSizeRatio, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine())),
this._downSamplePostprocess.onApplyObservable.add(function (t) {
t.setTexture("textureSampler", e._mainTexture);
}),
(this._horizontalBlurPostprocess = new Wo("HighlightLayerHBP", new a.d(1, 0), this._options.blurHorizontalSize, 1, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine())),
this._horizontalBlurPostprocess.onApplyObservable.add(function (e) {
e.setFloat2("screenSize", t, n);
}),
(this._verticalBlurPostprocess = new Wo("HighlightLayerVBP", new a.d(0, 1), this._options.blurVerticalSize, 1, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine())),
this._verticalBlurPostprocess.onApplyObservable.add(function (e) {
e.setFloat2("screenSize", t, n);
}),
(this._postProcesses = [this._downSamplePostprocess, this._horizontalBlurPostprocess, this._verticalBlurPostprocess]))
: ((this._horizontalBlurPostprocess = new Er(
"HighlightLayerHBP",
new a.d(1, 0),
this._options.blurHorizontalSize / 2,
{ width: t, height: n },
null,
ln.a.BILINEAR_SAMPLINGMODE,
this._scene.getEngine(),
!1,
i
)),
(this._horizontalBlurPostprocess.width = t),
(this._horizontalBlurPostprocess.height = n),
this._horizontalBlurPostprocess.onApplyObservable.add(function (t) {
t.setTexture("textureSampler", e._mainTexture);
}),
(this._verticalBlurPostprocess = new Er("HighlightLayerVBP", new a.d(0, 1), this._options.blurVerticalSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)),
(this._postProcesses = [this._horizontalBlurPostprocess, this._verticalBlurPostprocess])),
this._mainTexture.onAfterUnbindObservable.add(function () {
e.onBeforeBlurObservable.notifyObservers(e);
var t = e._blurTexture.getInternalTexture();
t && e._scene.postProcessManager.directRender(e._postProcesses, t, !0), e.onAfterBlurObservable.notifyObservers(e);
}),
this._postProcesses.map(function (e) {
e.autoClear = !1;
});
}),
(t.prototype.needStencil = function () {
return !0;
}),
(t.prototype.isReady = function (t, n) {
var i = t.getMaterial(),
r = t.getRenderingMesh();
if (!i || !r || !this._meshes) return !1;
var o = null,
a = this._meshes[r.uniqueId];
return a && a.glowEmissiveOnly && i && (o = i.emissiveTexture), e.prototype._isReady.call(this, t, n, o);
}),
(t.prototype._internalRender = function (e) {
e.setTexture("textureSampler", this._blurTexture);
var t = this._engine;
t.cacheStencilState(),
t.setStencilOperationPass(7681),
t.setStencilOperationFail(7680),
t.setStencilOperationDepthFail(7680),
t.setStencilMask(0),
t.setStencilBuffer(!0),
t.setStencilFunctionReference(this._instanceGlowingMeshStencilReference),
this.outerGlow && (e.setFloat("offset", 0), t.setStencilFunction(517), t.drawElementsType(Fo.a.TriangleFillMode, 0, 6)),
this.innerGlow && (e.setFloat("offset", 1), t.setStencilFunction(514), t.drawElementsType(Fo.a.TriangleFillMode, 0, 6)),
t.restoreStencilState();
}),
(t.prototype.shouldRender = function () {
return !!e.prototype.shouldRender.call(this) && !!this._meshes;
}),
(t.prototype._shouldRenderMesh = function (t) {
return (!this._excludedMeshes || !this._excludedMeshes[t.uniqueId]) && !!e.prototype.hasMesh.call(this, t);
}),
(t.prototype._setEmissiveTextureAndColor = function (e, t, n) {
var i = this._meshes[e.uniqueId];
i ? this._emissiveTextureAndColor.color.set(i.color.r, i.color.g, i.color.b, 1) : this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a),
i && i.glowEmissiveOnly && n ? ((this._emissiveTextureAndColor.texture = n.emissiveTexture), this._emissiveTextureAndColor.color.set(1, 1, 1, 1)) : (this._emissiveTextureAndColor.texture = null);
}),
(t.prototype.addExcludedMesh = function (e) {
this._excludedMeshes &&
(this._excludedMeshes[e.uniqueId] ||
(this._excludedMeshes[e.uniqueId] = {
mesh: e,
beforeBind: e.onBeforeBindObservable.add(function (e) {
e.getEngine().setStencilBuffer(!1);
}),
afterRender: e.onAfterRenderObservable.add(function (e) {
e.getEngine().setStencilBuffer(!0);
}),
}));
}),
(t.prototype.removeExcludedMesh = function (e) {
if (this._excludedMeshes) {
var t = this._excludedMeshes[e.uniqueId];
t && (t.beforeBind && e.onBeforeBindObservable.remove(t.beforeBind), t.afterRender && e.onAfterRenderObservable.remove(t.afterRender)), (this._excludedMeshes[e.uniqueId] = null);
}
}),
(t.prototype.hasMesh = function (t) {
return !!this._meshes && !!e.prototype.hasMesh.call(this, t) && void 0 !== this._meshes[t.uniqueId] && null !== this._meshes[t.uniqueId];
}),
(t.prototype.addMesh = function (e, t, n) {
var i = this;
if ((void 0 === n && (n = !1), this._meshes)) {
var r = this._meshes[e.uniqueId];
r
? (r.color = t)
: ((this._meshes[e.uniqueId] = {
mesh: e,
color: t,
observerHighlight: e.onBeforeBindObservable.add(function (e) {
i.isEnabled && (i._excludedMeshes && i._excludedMeshes[e.uniqueId] ? i._defaultStencilReference(e) : e.getScene().getEngine().setStencilFunctionReference(i._instanceGlowingMeshStencilReference));
}),
observerDefault: e.onAfterRenderObservable.add(function (e) {
i.isEnabled && i._defaultStencilReference(e);
}),
glowEmissiveOnly: n,
}),
e.onDisposeObservable.add(function () {
i._disposeMesh(e);
})),
(this._shouldRender = !0);
}
}),
(t.prototype.removeMesh = function (e) {
if (this._meshes) {
var t = this._meshes[e.uniqueId];
for (var n in (t && (t.observerHighlight && e.onBeforeBindObservable.remove(t.observerHighlight), t.observerDefault && e.onAfterRenderObservable.remove(t.observerDefault), delete this._meshes[e.uniqueId]),
(this._shouldRender = !1),
this._meshes))
if (this._meshes[n]) {
this._shouldRender = !0;
break;
}
}
}),
(t.prototype.removeAllMeshes = function () {
if (this._meshes)
for (var e in this._meshes)
if (this._meshes.hasOwnProperty(e)) {
var t = this._meshes[e];
t && this.removeMesh(t.mesh);
}
}),
(t.prototype._defaultStencilReference = function (e) {
e.getScene().getEngine().setStencilFunctionReference(t.NormalMeshStencilReference);
}),
(t.prototype._disposeMesh = function (e) {
this.removeMesh(e), this.removeExcludedMesh(e);
}),
(t.prototype.dispose = function () {
if (this._meshes) {
for (var t in this._meshes) {
(n = this._meshes[t]) && n.mesh && (n.observerHighlight && n.mesh.onBeforeBindObservable.remove(n.observerHighlight), n.observerDefault && n.mesh.onAfterRenderObservable.remove(n.observerDefault));
}
this._meshes = null;
}
if (this._excludedMeshes) {
for (var t in this._excludedMeshes) {
var n;
(n = this._excludedMeshes[t]) && (n.beforeBind && n.mesh.onBeforeBindObservable.remove(n.beforeBind), n.afterRender && n.mesh.onAfterRenderObservable.remove(n.afterRender));
}
this._excludedMeshes = null;
}
e.prototype.dispose.call(this);
}),
(t.prototype.getClassName = function () {
return "HighlightLayer";
}),
(t.prototype.serialize = function () {
var e = He.a.Serialize(this);
if (((e.customType = "BABYLON.HighlightLayer"), (e.meshes = []), this._meshes))
for (var t in this._meshes) {
var n = this._meshes[t];
n && e.meshes.push({ glowEmissiveOnly: n.glowEmissiveOnly, color: n.color.asArray(), meshId: n.mesh.id });
}
if (((e.excludedMeshes = []), this._excludedMeshes))
for (var i in this._excludedMeshes) {
var r = this._excludedMeshes[i];
r && e.excludedMeshes.push(r.mesh.id);
}
return e;
}),
(t.Parse = function (e, n, i) {
var r,
o = He.a.Parse(
function () {
return new t(e.name, n, e.options);
},
e,
n,
i
);
for (r = 0; r < e.excludedMeshes.length; r++) {
(a = n.getMeshByID(e.excludedMeshes[r])) && o.addExcludedMesh(a);
}
for (r = 0; r < e.meshes.length; r++) {
var a,
c = e.meshes[r];
(a = n.getMeshByID(c.meshId)) && o.addMesh(a, s.a.FromArray(c.color), c.glowEmissiveOnly);
}
return o;
}),
(t.EffectName = "HighlightLayer"),
(t.NeutralColor = new s.b(0, 0, 0, 0)),
(t.GlowingMeshStencilReference = 2),
(t.NormalMeshStencilReference = 1),
Object(h.c)([Object(He.c)()], t.prototype, "innerGlow", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "outerGlow", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "blurHorizontalSize", null),
Object(h.c)([Object(He.c)()], t.prototype, "blurVerticalSize", null),
Object(h.c)([Object(He.c)("options")], t.prototype, "_options", void 0),
t
);
})(jo);
c.a.RegisteredTypes["BABYLON.HighlightLayer"] = Xo;
var Yo = n(203),
Ko = n(198),
Zo = (function () {
function e(e, t, n, i, r) {
(this.size = e), (this.position = t), (this.alphaMode = 6), (this.color = n || new s.a(1, 1, 1)), (this.texture = i ? new ln.a(i, r.getScene(), !0) : null), (this._system = r), r.lensFlares.push(this);
}
return (
(e.AddFlare = function (t, n, i, r, o) {
return new e(t, n, i, r, o);
}),
(e.prototype.dispose = function () {
this.texture && this.texture.dispose();
var e = this._system.lensFlares.indexOf(this);
this._system.lensFlares.splice(e, 1);
}),
e
);
})(),
qo = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\ngl_FragColor=baseColor*color;\n}";
Xt.a.ShadersStore.lensFlarePixelShader = qo;
var Qo = "\nattribute vec2 position;\n\nuniform mat4 viewportMatrix;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=position*madd+madd;\ngl_Position=viewportMatrix*vec4(position,0.0,1.0);\n}";
Xt.a.ShadersStore.lensFlareVertexShader = Qo;
var Jo = (function () {
function e(t, n, i) {
(this.name = t),
(this.lensFlares = new Array()),
(this.borderLimit = 300),
(this.viewportBorder = 0),
(this.layerMask = 268435455),
(this._vertexBuffers = {}),
(this._isEnabled = !0),
(this._scene = i || E.a.LastCreatedScene),
e._SceneComponentInitialization(this._scene),
(this._emitter = n),
(this.id = t),
i.lensFlareSystems.push(this),
(this.meshesSelectionPredicate = function (e) {
return i.activeCamera && e.material && e.isVisible && e.isEnabled() && e.isBlocker && 0 != (e.layerMask & i.activeCamera.layerMask);
});
var r = i.getEngine(),
o = [];
o.push(1, 1), o.push(-1, 1), o.push(-1, -1), o.push(1, -1), (this._vertexBuffers[wn.b.PositionKind] = new wn.b(r, o, wn.b.PositionKind, !1, !1, 2));
var a = [];
a.push(0),
a.push(1),
a.push(2),
a.push(0),
a.push(2),
a.push(3),
(this._indexBuffer = r.createIndexBuffer(a)),
(this._effect = r.createEffect("lensFlare", [wn.b.PositionKind], ["color", "viewportMatrix"], ["textureSampler"], ""));
}
return (
Object.defineProperty(e.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
this._isEnabled = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype.getEmitter = function () {
return this._emitter;
}),
(e.prototype.setEmitter = function (e) {
this._emitter = e;
}),
(e.prototype.getEmitterPosition = function () {
return this._emitter.getAbsolutePosition ? this._emitter.getAbsolutePosition() : this._emitter.position;
}),
(e.prototype.computeEffectivePosition = function (e) {
var t = this.getEmitterPosition();
return (
(t = a.e.Project(t, a.a.Identity(), this._scene.getTransformMatrix(), e)),
(this._positionX = t.x),
(this._positionY = t.y),
(t = a.e.TransformCoordinates(this.getEmitterPosition(), this._scene.getViewMatrix())),
this.viewportBorder > 0 &&
((e.x -= this.viewportBorder),
(e.y -= this.viewportBorder),
(e.width += 2 * this.viewportBorder),
(e.height += 2 * this.viewportBorder),
(t.x += this.viewportBorder),
(t.y += this.viewportBorder),
(this._positionX += this.viewportBorder),
(this._positionY += this.viewportBorder)),
t.z > 0 && (this._positionX > e.x && this._positionX < e.x + e.width && this._positionY > e.y && (this._positionY, e.y, e.height), !0)
);
}),
(e.prototype._isVisible = function () {
if (!this._isEnabled || !this._scene.activeCamera) return !1;
var e = this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition),
t = e.length();
e.normalize();
var n = new Re(this._scene.activeCamera.globalPosition, e),
i = this._scene.pickWithRay(n, this.meshesSelectionPredicate, !0);
return !i || !i.hit || i.distance > t;
}),
(e.prototype.render = function () {
if (!this._effect.isReady() || !this._scene.activeCamera) return !1;
var e,
t,
n = this._scene.getEngine(),
i = this._scene.activeCamera.viewport.toGlobal(n.getRenderWidth(!0), n.getRenderHeight(!0));
if (!this.computeEffectivePosition(i)) return !1;
if (!this._isVisible()) return !1;
var r =
(e = this._positionX < this.borderLimit + i.x ? this.borderLimit + i.x - this._positionX : this._positionX > i.x + i.width - this.borderLimit ? this._positionX - i.x - i.width + this.borderLimit : 0) >
(t = this._positionY < this.borderLimit + i.y ? this.borderLimit + i.y - this._positionY : this._positionY > i.y + i.height - this.borderLimit ? this._positionY - i.y - i.height + this.borderLimit : 0)
? e
: t;
(r -= this.viewportBorder) > this.borderLimit && (r = this.borderLimit);
var o = 1 - z.a.Clamp(r / this.borderLimit, 0, 1);
if (o < 0) return !1;
o > 1 && (o = 1),
this.viewportBorder > 0 &&
((i.x += this.viewportBorder),
(i.y += this.viewportBorder),
(i.width -= 2 * this.viewportBorder),
(i.height -= 2 * this.viewportBorder),
(this._positionX -= this.viewportBorder),
(this._positionY -= this.viewportBorder));
var s = i.x + i.width / 2,
c = i.y + i.height / 2,
l = s - this._positionX,
u = c - this._positionY;
n.enableEffect(this._effect), n.setState(!1), n.setDepthBuffer(!1), n.bindBuffers(this._vertexBuffers, this._indexBuffer, this._effect);
for (var h = 0; h < this.lensFlares.length; h++) {
var d = this.lensFlares[h];
if (!d.texture || d.texture.isReady()) {
n.setAlphaMode(d.alphaMode);
var p = s - l * d.position,
f = c - u * d.position,
m = d.size,
g = d.size * n.getAspectRatio(this._scene.activeCamera, !0),
b = (p / (i.width + 2 * i.x)) * 2 - 1,
_ = 1 - (f / (i.height + 2 * i.y)) * 2,
v = a.a.FromValues(m / 2, 0, 0, 0, 0, g / 2, 0, 0, 0, 0, 1, 0, b, _, 0, 1);
this._effect.setMatrix("viewportMatrix", v),
this._effect.setTexture("textureSampler", d.texture),
this._effect.setFloat4("color", d.color.r * o, d.color.g * o, d.color.b * o, 1),
n.drawElementsType(Fo.a.TriangleFillMode, 0, 6);
}
}
return n.setDepthBuffer(!0), n.setAlphaMode(0), !0;
}),
(e.prototype.dispose = function () {
var e = this._vertexBuffers[wn.b.PositionKind];
for (e && (e.dispose(), (this._vertexBuffers[wn.b.PositionKind] = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)); this.lensFlares.length; )
this.lensFlares[0].dispose();
var t = this._scene.lensFlareSystems.indexOf(this);
this._scene.lensFlareSystems.splice(t, 1);
}),
(e.Parse = function (t, n, i) {
var r = n.getLastEntryByID(t.emitterId),
o = t.name || "lensFlareSystem#" + t.emitterId,
a = new e(o, r, n);
(a.id = t.id || o), (a.borderLimit = t.borderLimit);
for (var c = 0; c < t.flares.length; c++) {
var l = t.flares[c];
Zo.AddFlare(l.size, l.position, s.a.FromArray(l.color), l.textureName ? i + l.textureName : "", a);
}
return a;
}),
(e.prototype.serialize = function () {
var e = {};
(e.id = this.id), (e.name = this.name), (e.emitterId = this.getEmitter().id), (e.borderLimit = this.borderLimit), (e.flares = []);
for (var t = 0; t < this.lensFlares.length; t++) {
var n = this.lensFlares[t];
e.flares.push({ size: n.size, position: n.position, color: n.color.asArray(), textureName: $e.b.GetFilename(n.texture ? n.texture.name : "") });
}
return e;
}),
(e._SceneComponentInitialization = function (e) {
throw zo.a.WarnImport("LensFlareSystemSceneComponent");
}),
e
);
})();
i.a.AddParser(me.a.NAME_LENSFLARESYSTEM, function (e, t, n, i) {
if (void 0 !== e.lensFlareSystems && null !== e.lensFlareSystems) {
n.lensFlareSystems || (n.lensFlareSystems = new Array());
for (var r = 0, o = e.lensFlareSystems.length; r < o; r++) {
var a = e.lensFlareSystems[r],
s = Jo.Parse(a, t, i);
n.lensFlareSystems.push(s);
}
}
}),
(i.a.prototype.getLensFlareSystemByName = function (e) {
for (var t = 0; t < this.lensFlareSystems.length; t++) if (this.lensFlareSystems[t].name === e) return this.lensFlareSystems[t];
return null;
}),
(i.a.prototype.getLensFlareSystemByID = function (e) {
for (var t = 0; t < this.lensFlareSystems.length; t++) if (this.lensFlareSystems[t].id === e) return this.lensFlareSystems[t];
return null;
}),
(i.a.prototype.removeLensFlareSystem = function (e) {
var t = this.lensFlareSystems.indexOf(e);
return -1 !== t && this.lensFlareSystems.splice(t, 1), t;
}),
(i.a.prototype.addLensFlareSystem = function (e) {
this.lensFlareSystems.push(e);
});
var $o = (function () {
function e(e) {
(this.name = me.a.NAME_LENSFLARESYSTEM), (this.scene = e), (e.lensFlareSystems = new Array());
}
return (
(e.prototype.register = function () {
this.scene._afterCameraDrawStage.registerStep(me.a.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM, this, this._draw);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.addFromContainer = function (e) {
var t = this;
e.lensFlareSystems &&
e.lensFlareSystems.forEach(function (e) {
t.scene.addLensFlareSystem(e);
});
}),
(e.prototype.removeFromContainer = function (e, t) {
var n = this;
e.lensFlareSystems &&
e.lensFlareSystems.forEach(function (e) {
n.scene.removeLensFlareSystem(e), t && e.dispose();
});
}),
(e.prototype.serialize = function (e) {
e.lensFlareSystems = [];
for (var t = 0, n = this.scene.lensFlareSystems; t < n.length; t++) {
var i = n[t];
e.lensFlareSystems.push(i.serialize());
}
}),
(e.prototype.dispose = function () {
for (var e = this.scene.lensFlareSystems; e.length; ) e[0].dispose();
}),
(e.prototype._draw = function (e) {
if (this.scene.lensFlaresEnabled) {
var t = this.scene.lensFlareSystems;
$e.b.StartPerformanceCounter("Lens flares", t.length > 0);
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
0 != (e.layerMask & r.layerMask) && r.render();
}
$e.b.EndPerformanceCounter("Lens flares", t.length > 0);
}
}),
e
);
})();
Jo._SceneComponentInitialization = function (e) {
var t = e._getComponent(me.a.NAME_LENSFLARESYSTEM);
t || ((t = new $o(e)), e._addComponent(t));
};
var ea = n(57),
ta = n(121),
na =
"#ifndef FLOAT\n#include\n#endif\nvarying float vDepthMetric;\n#ifdef USEDISTANCE\nuniform vec3 lightData;\nvarying vec3 vPositionW;\n#endif\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\nuniform vec3 biasAndScale;\nuniform vec2 depthValues;\n#ifdef DEPTHCLAMP\nvarying float z;\n#endif\n#include\nvoid main(void)\n{\n#include\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\nfloat depth=vDepthMetric;\n#ifdef DEPTHCLAMP\n#ifdef USEDISTANCE\ndepth=clamp(((length(vPositionW-lightData)+depthValues.x)/(depthValues.y))+biasAndScale.x,0.0,1.0);\n#else\ndepth=clamp(((z+depthValues.x)/(depthValues.y))+biasAndScale.x,0.0,1.0);\n#endif\ngl_FragDepth=depth;\n#elif defined(USEDISTANCE)\ndepth=(length(vPositionW-lightData)+depthValues.x)/(depthValues.y)+biasAndScale.x;\n#endif\n#ifdef ESM\ndepth=clamp(exp(-min(87.,biasAndScale.z*depth)),0.,1.);\n#endif\n#ifdef FLOAT\ngl_FragColor=vec4(depth,1.0,1.0,1.0);\n#else\ngl_FragColor=pack(depth);\n#endif\n}";
Xt.a.ShadersStore.shadowMapPixelShader = na;
var ia =
"\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\nuniform vec3 lightData;\n#endif\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\n#include\n#include\nuniform mat4 viewProjection;\nuniform vec3 biasAndScale;\nuniform vec2 depthValues;\nvarying float vDepthMetric;\n#ifdef USEDISTANCE\nvarying vec3 vPositionW;\n#endif\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#ifdef DEPTHCLAMP\nvarying float z;\n#endif\n#include\nvoid main(void)\n{\nvec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvec3 worldNor=normalize(normalWorld*normal);\n#ifdef DIRECTIONINLIGHTDATA\nvec3 worldLightDir=normalize(-lightData.xyz);\n#else\nvec3 directionToLight=lightData.xyz-worldPos.xyz;\nvec3 worldLightDir=normalize(directionToLight);\n#endif\nfloat ndl=dot(worldNor,worldLightDir);\nfloat sinNL=sqrt(1.0-ndl*ndl);\nfloat normalBias=biasAndScale.y*sinNL;\nworldPos.xyz-=worldNor*normalBias;\n#endif\n#ifdef USEDISTANCE\nvPositionW=worldPos.xyz;\n#endif\n\ngl_Position=viewProjection*worldPos;\n#ifdef DEPTHTEXTURE\n\ngl_Position.z+=biasAndScale.x*gl_Position.w;\n#endif\n#ifdef DEPTHCLAMP\nz=gl_Position.z;\ngl_Position.z=0.0;\n#elif !defined(USEDISTANCE)\n\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y))+biasAndScale.x;\n#endif\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}";
Xt.a.ShadersStore.shadowMapVertexShader = ia;
var ra =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec2 screenSize;\nvoid main(void)\n{\nvec4 colorDepth=vec4(0.0);\nfor (int x=-OFFSET; x<=OFFSET; x++)\nfor (int y=-OFFSET; y<=OFFSET; y++)\ncolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);\ngl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));\n}";
Xt.a.ShadersStore.depthBoxBlurPixelShader = ra;
var oa = n(136),
aa = (function () {
function e(t, n, i) {
(this.onBeforeShadowMapRenderObservable = new o.c()),
(this.onAfterShadowMapRenderObservable = new o.c()),
(this.onBeforeShadowMapRenderMeshObservable = new o.c()),
(this.onAfterShadowMapRenderMeshObservable = new o.c()),
(this._bias = 5e-5),
(this._normalBias = 0),
(this._blurBoxOffset = 1),
(this._blurScale = 2),
(this._blurKernel = 1),
(this._useKernelBlur = !1),
(this._filter = e.FILTER_NONE),
(this._filteringQuality = e.QUALITY_HIGH),
(this._contactHardeningLightSizeUVRatio = 0.1),
(this._darkness = 0),
(this._transparencyShadow = !1),
(this.frustumEdgeFalloff = 0),
(this.forceBackFacesOnly = !1),
(this._lightDirection = a.e.Zero()),
(this._viewMatrix = a.a.Zero()),
(this._projectionMatrix = a.a.Zero()),
(this._transformMatrix = a.a.Zero()),
(this._cachedPosition = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)),
(this._cachedDirection = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)),
(this._currentFaceIndex = 0),
(this._currentFaceIndexCache = 0),
(this._defaultTextureMatrix = a.a.Identity()),
(this._mapSize = t),
(this._light = n),
(this._scene = n.getScene()),
(n._shadowGenerator = this),
e._SceneComponentInitialization(this._scene);
var r = this._scene.getEngine().getCaps();
i
? r.textureFloatRender && r.textureFloatLinearFiltering
? (this._textureType = 1)
: r.textureHalfFloatRender && r.textureHalfFloatLinearFiltering
? (this._textureType = 2)
: (this._textureType = 0)
: r.textureHalfFloatRender && r.textureHalfFloatLinearFiltering
? (this._textureType = 2)
: r.textureFloatRender && r.textureFloatLinearFiltering
? (this._textureType = 1)
: (this._textureType = 0),
this._initializeGenerator(),
this._applyFilterValues();
}
return (
Object.defineProperty(e.prototype, "bias", {
get: function () {
return this._bias;
},
set: function (e) {
this._bias = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "normalBias", {
get: function () {
return this._normalBias;
},
set: function (e) {
this._normalBias = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "blurBoxOffset", {
get: function () {
return this._blurBoxOffset;
},
set: function (e) {
this._blurBoxOffset !== e && ((this._blurBoxOffset = e), this._disposeBlurPostProcesses());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "blurScale", {
get: function () {
return this._blurScale;
},
set: function (e) {
this._blurScale !== e && ((this._blurScale = e), this._disposeBlurPostProcesses());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "blurKernel", {
get: function () {
return this._blurKernel;
},
set: function (e) {
this._blurKernel !== e && ((this._blurKernel = e), this._disposeBlurPostProcesses());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useKernelBlur", {
get: function () {
return this._useKernelBlur;
},
set: function (e) {
this._useKernelBlur !== e && ((this._useKernelBlur = e), this._disposeBlurPostProcesses());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "depthScale", {
get: function () {
return void 0 !== this._depthScale ? this._depthScale : this._light.getDepthScale();
},
set: function (e) {
this._depthScale = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._validateFilter = function (e) {
return e;
}),
Object.defineProperty(e.prototype, "filter", {
get: function () {
return this._filter;
},
set: function (t) {
if (((t = this._validateFilter(t)), this._light.needCube())) {
if (t === e.FILTER_BLUREXPONENTIALSHADOWMAP) return void (this.useExponentialShadowMap = !0);
if (t === e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP) return void (this.useCloseExponentialShadowMap = !0);
if (t === e.FILTER_PCF || t === e.FILTER_PCSS) return void (this.usePoissonSampling = !0);
}
(t !== e.FILTER_PCF && t !== e.FILTER_PCSS) || 1 !== this._scene.getEngine().webGLVersion
? this._filter !== t && ((this._filter = t), this._disposeBlurPostProcesses(), this._applyFilterValues(), this._light._markMeshesAsLightDirty())
: (this.usePoissonSampling = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "usePoissonSampling", {
get: function () {
return this.filter === e.FILTER_POISSONSAMPLING;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_POISSONSAMPLING);
(t || this.filter === e.FILTER_POISSONSAMPLING) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useExponentialShadowMap", {
get: function () {
return this.filter === e.FILTER_EXPONENTIALSHADOWMAP;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_EXPONENTIALSHADOWMAP);
(t || this.filter === e.FILTER_EXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useBlurExponentialShadowMap", {
get: function () {
return this.filter === e.FILTER_BLUREXPONENTIALSHADOWMAP;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_BLUREXPONENTIALSHADOWMAP);
(t || this.filter === e.FILTER_BLUREXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useCloseExponentialShadowMap", {
get: function () {
return this.filter === e.FILTER_CLOSEEXPONENTIALSHADOWMAP;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_CLOSEEXPONENTIALSHADOWMAP);
(t || this.filter === e.FILTER_CLOSEEXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useBlurCloseExponentialShadowMap", {
get: function () {
return this.filter === e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP);
(t || this.filter === e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "usePercentageCloserFiltering", {
get: function () {
return this.filter === e.FILTER_PCF;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_PCF);
(t || this.filter === e.FILTER_PCF) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "filteringQuality", {
get: function () {
return this._filteringQuality;
},
set: function (e) {
this._filteringQuality !== e && ((this._filteringQuality = e), this._disposeBlurPostProcesses(), this._applyFilterValues(), this._light._markMeshesAsLightDirty());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useContactHardeningShadow", {
get: function () {
return this.filter === e.FILTER_PCSS;
},
set: function (t) {
var n = this._validateFilter(e.FILTER_PCSS);
(t || this.filter === e.FILTER_PCSS) && (this.filter = t ? n : e.FILTER_NONE);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "contactHardeningLightSizeUVRatio", {
get: function () {
return this._contactHardeningLightSizeUVRatio;
},
set: function (e) {
this._contactHardeningLightSizeUVRatio = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "darkness", {
get: function () {
return this._darkness;
},
set: function (e) {
this.setDarkness(e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getDarkness = function () {
return this._darkness;
}),
(e.prototype.setDarkness = function (e) {
return (this._darkness = e >= 1 ? 1 : e <= 0 ? 0 : e), this;
}),
Object.defineProperty(e.prototype, "transparencyShadow", {
get: function () {
return this._transparencyShadow;
},
set: function (e) {
this.setTransparencyShadow(e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setTransparencyShadow = function (e) {
return (this._transparencyShadow = e), this;
}),
(e.prototype.getShadowMap = function () {
return this._shadowMap;
}),
(e.prototype.getShadowMapForRendering = function () {
return this._shadowMap2 ? this._shadowMap2 : this._shadowMap;
}),
(e.prototype.getClassName = function () {
return e.CLASSNAME;
}),
(e.prototype.addShadowCaster = function (e, t) {
var n;
return (
void 0 === t && (t = !0),
this._shadowMap ? (this._shadowMap.renderList || (this._shadowMap.renderList = []), this._shadowMap.renderList.push(e), t && (n = this._shadowMap.renderList).push.apply(n, e.getChildMeshes()), this) : this
);
}),
(e.prototype.removeShadowCaster = function (e, t) {
if ((void 0 === t && (t = !0), !this._shadowMap || !this._shadowMap.renderList)) return this;
var n = this._shadowMap.renderList.indexOf(e);
if ((-1 !== n && this._shadowMap.renderList.splice(n, 1), t))
for (var i = 0, r = e.getChildren(); i < r.length; i++) {
var o = r[i];
this.removeShadowCaster(o);
}
return this;
}),
(e.prototype.getLight = function () {
return this._light;
}),
(e.prototype._initializeGenerator = function () {
this._light._markMeshesAsLightDirty(), this._initializeShadowMap();
}),
(e.prototype._createTargetRenderTexture = function () {
this._scene.getEngine().webGLVersion > 1
? ((this._shadowMap = new mn.a(this._light.name + "_shadowMap", this._mapSize, this._scene, !1, !0, this._textureType, this._light.needCube(), void 0, !1, !1)), this._shadowMap.createDepthStencilTexture(513, !0))
: (this._shadowMap = new mn.a(this._light.name + "_shadowMap", this._mapSize, this._scene, !1, !0, this._textureType, this._light.needCube()));
}),
(e.prototype._initializeShadowMap = function () {
var t = this;
if ((this._createTargetRenderTexture(), null !== this._shadowMap)) {
(this._shadowMap.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._shadowMap.wrapV = ln.a.CLAMP_ADDRESSMODE),
(this._shadowMap.anisotropicFilteringLevel = 1),
this._shadowMap.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE),
(this._shadowMap.renderParticles = !1),
(this._shadowMap.ignoreCameraViewport = !0),
this._storedUniqueId && (this._shadowMap.uniqueId = this._storedUniqueId),
(this._shadowMap.customRenderFunction = this._renderForShadowMap.bind(this));
var n = this._scene.getEngine();
this._shadowMap.onBeforeRenderObservable.add(function (i) {
(t._currentFaceIndex = i), t._filter === e.FILTER_PCF && n.setColorWrite(!1);
}),
this._shadowMap.onAfterUnbindObservable.add(function () {
if ((t._filter === e.FILTER_PCF && n.setColorWrite(!0), t.useBlurExponentialShadowMap || t.useBlurCloseExponentialShadowMap)) {
var i = t.getShadowMapForRendering();
i && t._scene.postProcessManager.directRender(t._blurPostProcesses, i.getInternalTexture(), !0);
}
});
var i = new s.b(0, 0, 0, 0),
r = new s.b(1, 1, 1, 1);
this._shadowMap.onClearObservable.add(function (n) {
t._filter === e.FILTER_PCF ? n.clear(r, !1, !0, !1) : t.useExponentialShadowMap || t.useBlurExponentialShadowMap ? n.clear(i, !0, !0, !1) : n.clear(r, !0, !0, !1);
}),
this._shadowMap.onResizeObservable.add(function (e) {
(t._storedUniqueId = t._shadowMap.uniqueId), (t._mapSize = e.getRenderSize()), t._light._markMeshesAsLightDirty(), t.recreateShadowMap();
});
for (var o = oa.b.MIN_RENDERINGGROUPS; o < oa.b.MAX_RENDERINGGROUPS; o++) this._shadowMap.setRenderingAutoClearDepthStencil(o, !1);
}
}),
(e.prototype._initializeBlurRTTAndPostProcesses = function () {
var e = this,
t = this._scene.getEngine(),
n = this._mapSize / this.blurScale;
(this.useKernelBlur && 1 === this.blurScale) ||
((this._shadowMap2 = new mn.a(this._light.name + "_shadowMap2", n, this._scene, !1, !0, this._textureType)),
(this._shadowMap2.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._shadowMap2.wrapV = ln.a.CLAMP_ADDRESSMODE),
this._shadowMap2.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE)),
this.useKernelBlur
? ((this._kernelBlurXPostprocess = new Er(this._light.name + "KernelBlurX", new a.d(1, 0), this.blurKernel, 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._textureType)),
(this._kernelBlurXPostprocess.width = n),
(this._kernelBlurXPostprocess.height = n),
this._kernelBlurXPostprocess.onApplyObservable.add(function (t) {
t.setTexture("textureSampler", e._shadowMap);
}),
(this._kernelBlurYPostprocess = new Er(this._light.name + "KernelBlurY", new a.d(0, 1), this.blurKernel, 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._textureType)),
(this._kernelBlurXPostprocess.autoClear = !1),
(this._kernelBlurYPostprocess.autoClear = !1),
0 === this._textureType && ((this._kernelBlurXPostprocess.packedFloat = !0), (this._kernelBlurYPostprocess.packedFloat = !0)),
(this._blurPostProcesses = [this._kernelBlurXPostprocess, this._kernelBlurYPostprocess]))
: ((this._boxBlurPostprocess = new Wt.a(
this._light.name + "DepthBoxBlur",
"depthBoxBlur",
["screenSize", "boxOffset"],
[],
1,
null,
ln.a.BILINEAR_SAMPLINGMODE,
t,
!1,
"#define OFFSET " + this._blurBoxOffset,
this._textureType
)),
this._boxBlurPostprocess.onApplyObservable.add(function (t) {
t.setFloat2("screenSize", n, n), t.setTexture("textureSampler", e._shadowMap);
}),
(this._boxBlurPostprocess.autoClear = !1),
(this._blurPostProcesses = [this._boxBlurPostprocess]));
}),
(e.prototype._renderForShadowMap = function (e, t, n, i) {
var r,
o = this._scene.getEngine(),
a = o.getColorWrite();
if (i.length) {
for (o.setColorWrite(!1), r = 0; r < i.length; r++) this._renderSubMeshForShadowMap(i.data[r]);
o.setColorWrite(a);
}
for (r = 0; r < e.length; r++) this._renderSubMeshForShadowMap(e.data[r]);
for (r = 0; r < t.length; r++) this._renderSubMeshForShadowMap(t.data[r]);
if (this._transparencyShadow) for (r = 0; r < n.length; r++) this._renderSubMeshForShadowMap(n.data[r]);
}),
(e.prototype._bindCustomEffectForRenderSubMeshForShadowMap = function (e, t) {}),
(e.prototype._renderSubMeshForShadowMap = function (e) {
var t = this,
n = e.getRenderingMesh(),
i = this._scene,
r = i.getEngine(),
o = e.getMaterial();
if (((n._internalAbstractMeshDataInfo._isActiveIntermediate = !1), o && 0 !== e.verticesCount)) {
r.setState(o.backFaceCulling);
var a = n._getInstancesRenderList(e._id);
if (!a.mustReturn) {
var s = r.getCaps().instancedArrays && null !== a.visibleInstances[e._id] && void 0 !== a.visibleInstances[e._id];
if (this.isReady(e, s)) {
if (
(r.enableEffect(this._effect),
n._bind(e, this._effect, o.fillMode),
this._effect.setFloat3("biasAndScale", this.bias, this.normalBias, this.depthScale),
this._effect.setMatrix("viewProjection", this.getTransformMatrix()),
this.getLight().getTypeID() === ea.a.LIGHTTYPEID_DIRECTIONALLIGHT ? this._effect.setVector3("lightData", this._cachedDirection) : this._effect.setVector3("lightData", this._cachedPosition),
i.activeCamera && this._effect.setFloat2("depthValues", this.getLight().getDepthMinZ(i.activeCamera), this.getLight().getDepthMinZ(i.activeCamera) + this.getLight().getDepthMaxZ(i.activeCamera)),
o && o.needAlphaTesting())
) {
var c = o.getAlphaTestTexture();
c && (this._effect.setTexture("diffuseSampler", c), this._effect.setMatrix("diffuseMatrix", c.getTextureMatrix() || this._defaultTextureMatrix));
}
if (n.useBones && n.computeBonesUsingShaders && n.skeleton) {
var l = n.skeleton;
if (l.isUsingTextureForMatrices) {
var u = l.getTransformMatrixTexture(n);
if (!u) return;
this._effect.setTexture("boneSampler", u), this._effect.setFloat("boneTextureWidth", 4 * (l.bones.length + 1));
} else this._effect.setMatrices("mBones", l.getTransformMatrices(n));
}
Ir.a.BindMorphTargetParameters(n, this._effect),
Ir.a.BindClipPlane(this._effect, i),
this._bindCustomEffectForRenderSubMeshForShadowMap(e, this._effect),
this.forceBackFacesOnly && r.setState(!0, 0, !1, !0),
this.onBeforeShadowMapRenderMeshObservable.notifyObservers(n),
this.onBeforeShadowMapRenderObservable.notifyObservers(this._effect),
n._processRendering(e, this._effect, o.fillMode, a, s, function (e, n) {
return t._effect.setMatrix("world", n);
}),
this.forceBackFacesOnly && r.setState(!0, 0, !1, !1),
this.onAfterShadowMapRenderObservable.notifyObservers(this._effect),
this.onAfterShadowMapRenderMeshObservable.notifyObservers(n);
} else this._shadowMap && this._shadowMap.resetRefreshCounter();
}
}
}),
(e.prototype._applyFilterValues = function () {
this._shadowMap && (this.filter === e.FILTER_NONE || this.filter === e.FILTER_PCSS ? this._shadowMap.updateSamplingMode(ln.a.NEAREST_SAMPLINGMODE) : this._shadowMap.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE));
}),
(e.prototype.forceCompilation = function (e, t) {
var n = this,
i = Object(h.a)({ useInstances: !1 }, t),
r = this.getShadowMap();
if (r) {
var o = r.renderList;
if (o) {
for (var a = new Array(), s = 0, c = o; s < c.length; s++) {
var l = c[s];
a.push.apply(a, l.subMeshes);
}
if (0 !== a.length) {
var u = 0,
d = function () {
if (n._scene && n._scene.getEngine()) {
for (; n.isReady(a[u], i.useInstances); ) if (++u >= a.length) return void (e && e(n));
setTimeout(d, 16);
}
};
d();
} else e && e(this);
} else e && e(this);
} else e && e(this);
}),
(e.prototype.forceCompilationAsync = function (e) {
var t = this;
return new Promise(function (n) {
t.forceCompilation(function () {
n();
}, e);
});
}),
(e.prototype._isReadyCustomDefines = function (e, t, n) {}),
(e.prototype.isReady = function (e, t) {
var n = [];
0 !== this._textureType && n.push("#define FLOAT"),
this.useExponentialShadowMap || this.useBlurExponentialShadowMap ? n.push("#define ESM") : (this.usePercentageCloserFiltering || this.useContactHardeningShadow) && n.push("#define DEPTHTEXTURE");
var i = [wn.b.PositionKind],
r = e.getMesh(),
o = e.getMaterial();
if (
(this.normalBias &&
r.isVerticesDataPresent(wn.b.NormalKind) &&
(i.push(wn.b.NormalKind),
n.push("#define NORMAL"),
r.nonUniformScaling && n.push("#define NONUNIFORMSCALING"),
this.getLight().getTypeID() === ea.a.LIGHTTYPEID_DIRECTIONALLIGHT && n.push("#define DIRECTIONINLIGHTDATA")),
o && o.needAlphaTesting())
) {
var a = o.getAlphaTestTexture();
a &&
(n.push("#define ALPHATEST"),
r.isVerticesDataPresent(wn.b.UVKind) && (i.push(wn.b.UVKind), n.push("#define UV1")),
r.isVerticesDataPresent(wn.b.UV2Kind) && 1 === a.coordinatesIndex && (i.push(wn.b.UV2Kind), n.push("#define UV2")));
}
var s = new jr.a();
if (r.useBones && r.computeBonesUsingShaders && r.skeleton) {
i.push(wn.b.MatricesIndicesKind), i.push(wn.b.MatricesWeightsKind), r.numBoneInfluencers > 4 && (i.push(wn.b.MatricesIndicesExtraKind), i.push(wn.b.MatricesWeightsExtraKind));
var c = r.skeleton;
n.push("#define NUM_BONE_INFLUENCERS " + r.numBoneInfluencers),
r.numBoneInfluencers > 0 && s.addCPUSkinningFallback(0, r),
c.isUsingTextureForMatrices ? n.push("#define BONETEXTURE") : n.push("#define BonesPerMesh " + (c.bones.length + 1));
} else n.push("#define NUM_BONE_INFLUENCERS 0");
var l = r.morphTargetManager,
u = 0;
l && l.numInfluencers > 0 && (n.push("#define MORPHTARGETS"), (u = l.numInfluencers), n.push("#define NUM_MORPH_INFLUENCERS " + u), Ir.a.PrepareAttributesForMorphTargetsInfluencers(i, r, u));
var h = this._scene;
if (
(h.clipPlane && n.push("#define CLIPPLANE"),
h.clipPlane2 && n.push("#define CLIPPLANE2"),
h.clipPlane3 && n.push("#define CLIPPLANE3"),
h.clipPlane4 && n.push("#define CLIPPLANE4"),
h.clipPlane5 && n.push("#define CLIPPLANE5"),
h.clipPlane6 && n.push("#define CLIPPLANE6"),
t && (n.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(i)),
this.customShaderOptions && this.customShaderOptions.defines)
)
for (var d = 0, p = this.customShaderOptions.defines; d < p.length; d++) {
var f = p[d];
-1 === n.indexOf(f) && n.push(f);
}
this._light.needCube() && n.push("#define USEDISTANCE"), this._isReadyCustomDefines(n, e, t);
var m = n.join("\n");
if (this._cachedDefines !== m) {
this._cachedDefines = m;
var g = "shadowMap",
b = [
"world",
"mBones",
"viewProjection",
"diffuseMatrix",
"lightData",
"depthValues",
"biasAndScale",
"morphTargetInfluences",
"boneTextureWidth",
"vClipPlane",
"vClipPlane2",
"vClipPlane3",
"vClipPlane4",
"vClipPlane5",
"vClipPlane6",
],
_ = ["diffuseSampler", "boneSampler"];
if (this.customShaderOptions) {
if (((g = this.customShaderOptions.shaderName), this.customShaderOptions.attributes))
for (var v = 0, y = this.customShaderOptions.attributes; v < y.length; v++) {
var C = y[v];
-1 === i.indexOf(C) && i.push(C);
}
if (this.customShaderOptions.uniforms)
for (var P = 0, x = this.customShaderOptions.uniforms; P < x.length; P++) {
var T = x[P];
-1 === b.indexOf(T) && b.push(T);
}
if (this.customShaderOptions.samplers)
for (var S = 0, O = this.customShaderOptions.samplers; S < O.length; S++) {
var E = O[S];
-1 === _.indexOf(E) && _.push(E);
}
}
this._effect = this._scene.getEngine().createEffect(g, i, b, _, m, s, void 0, void 0, { maxSimultaneousMorphTargets: u });
}
return (
!!this._effect.isReady() &&
((this.useBlurExponentialShadowMap || this.useBlurCloseExponentialShadowMap) && ((this._blurPostProcesses && this._blurPostProcesses.length) || this._initializeBlurRTTAndPostProcesses()),
!(this._kernelBlurXPostprocess && !this._kernelBlurXPostprocess.isReady()) &&
!(this._kernelBlurYPostprocess && !this._kernelBlurYPostprocess.isReady()) &&
!(this._boxBlurPostprocess && !this._boxBlurPostprocess.isReady()))
);
}),
(e.prototype.prepareDefines = function (t, n) {
var i = this._scene,
r = this._light;
i.shadowsEnabled &&
r.shadowEnabled &&
((t["SHADOW" + n] = !0),
this.useContactHardeningShadow
? ((t["SHADOWPCSS" + n] = !0), this._filteringQuality === e.QUALITY_LOW ? (t["SHADOWLOWQUALITY" + n] = !0) : this._filteringQuality === e.QUALITY_MEDIUM && (t["SHADOWMEDIUMQUALITY" + n] = !0))
: this.usePercentageCloserFiltering
? ((t["SHADOWPCF" + n] = !0), this._filteringQuality === e.QUALITY_LOW ? (t["SHADOWLOWQUALITY" + n] = !0) : this._filteringQuality === e.QUALITY_MEDIUM && (t["SHADOWMEDIUMQUALITY" + n] = !0))
: this.usePoissonSampling
? (t["SHADOWPOISSON" + n] = !0)
: this.useExponentialShadowMap || this.useBlurExponentialShadowMap
? (t["SHADOWESM" + n] = !0)
: (this.useCloseExponentialShadowMap || this.useBlurCloseExponentialShadowMap) && (t["SHADOWCLOSEESM" + n] = !0),
r.needCube() && (t["SHADOWCUBE" + n] = !0));
}),
(e.prototype.bindShadowLight = function (t, n) {
var i = this._light,
r = this._scene;
if (r.shadowsEnabled && i.shadowEnabled) {
var o = r.activeCamera;
if (o) {
var a = this.getShadowMap();
a &&
(i.needCube() || n.setMatrix("lightMatrix" + t, this.getTransformMatrix()),
this._filter === e.FILTER_PCF
? (n.setDepthStencilTexture("shadowSampler" + t, this.getShadowMapForRendering()),
i._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), a.getSize().width, 1 / a.getSize().width, this.frustumEdgeFalloff, t))
: this._filter === e.FILTER_PCSS
? (n.setDepthStencilTexture("shadowSampler" + t, this.getShadowMapForRendering()),
n.setTexture("depthSampler" + t, this.getShadowMapForRendering()),
i._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), 1 / a.getSize().width, this._contactHardeningLightSizeUVRatio * a.getSize().width, this.frustumEdgeFalloff, t))
: (n.setTexture("shadowSampler" + t, this.getShadowMapForRendering()),
i._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), this.blurScale / a.getSize().width, this.depthScale, this.frustumEdgeFalloff, t)),
i._uniformBuffer.updateFloat2("depthValues", this.getLight().getDepthMinZ(o), this.getLight().getDepthMinZ(o) + this.getLight().getDepthMaxZ(o), t));
}
}
}),
(e.prototype.getTransformMatrix = function () {
var e = this._scene;
if (this._currentRenderID === e.getRenderId() && this._currentFaceIndexCache === this._currentFaceIndex) return this._transformMatrix;
(this._currentRenderID = e.getRenderId()), (this._currentFaceIndexCache = this._currentFaceIndex);
var t = this._light.position;
if (
(this._light.computeTransformedInformation() && (t = this._light.transformedPosition),
a.e.NormalizeToRef(this._light.getShadowDirection(this._currentFaceIndex), this._lightDirection),
1 === Math.abs(a.e.Dot(this._lightDirection, a.e.Up())) && (this._lightDirection.z = 1e-13),
this._light.needProjectionMatrixCompute() || !this._cachedPosition || !this._cachedDirection || !t.equals(this._cachedPosition) || !this._lightDirection.equals(this._cachedDirection))
) {
this._cachedPosition.copyFrom(t), this._cachedDirection.copyFrom(this._lightDirection), a.a.LookAtLHToRef(t, t.add(this._lightDirection), a.e.Up(), this._viewMatrix);
var n = this.getShadowMap();
if (n) {
var i = n.renderList;
i && this._light.setShadowProjectionMatrix(this._projectionMatrix, this._viewMatrix, i);
}
this._viewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix);
}
return this._transformMatrix;
}),
(e.prototype.recreateShadowMap = function () {
var e = this._shadowMap;
if (e) {
var t = e.renderList;
this._disposeRTTandPostProcesses(), this._initializeGenerator(), (this.filter = this.filter), this._applyFilterValues(), (this._shadowMap.renderList = t);
}
}),
(e.prototype._disposeBlurPostProcesses = function () {
this._shadowMap2 && (this._shadowMap2.dispose(), (this._shadowMap2 = null)),
this._boxBlurPostprocess && (this._boxBlurPostprocess.dispose(), (this._boxBlurPostprocess = null)),
this._kernelBlurXPostprocess && (this._kernelBlurXPostprocess.dispose(), (this._kernelBlurXPostprocess = null)),
this._kernelBlurYPostprocess && (this._kernelBlurYPostprocess.dispose(), (this._kernelBlurYPostprocess = null)),
(this._blurPostProcesses = []);
}),
(e.prototype._disposeRTTandPostProcesses = function () {
this._shadowMap && (this._shadowMap.dispose(), (this._shadowMap = null)), this._disposeBlurPostProcesses();
}),
(e.prototype.dispose = function () {
this._disposeRTTandPostProcesses(),
this._light && ((this._light._shadowGenerator = null), this._light._markMeshesAsLightDirty()),
this.onBeforeShadowMapRenderMeshObservable.clear(),
this.onBeforeShadowMapRenderObservable.clear(),
this.onAfterShadowMapRenderMeshObservable.clear(),
this.onAfterShadowMapRenderObservable.clear();
}),
(e.prototype.serialize = function () {
var e = {},
t = this.getShadowMap();
if (!t) return e;
if (
((e.className = this.getClassName()),
(e.lightId = this._light.id),
(e.mapSize = t.getRenderSize()),
(e.forceBackFacesOnly = this.forceBackFacesOnly),
(e.darkness = this.getDarkness()),
(e.transparencyShadow = this._transparencyShadow),
(e.frustumEdgeFalloff = this.frustumEdgeFalloff),
(e.bias = this.bias),
(e.normalBias = this.normalBias),
(e.usePercentageCloserFiltering = this.usePercentageCloserFiltering),
(e.useContactHardeningShadow = this.useContactHardeningShadow),
(e.contactHardeningLightSizeUVRatio = this.contactHardeningLightSizeUVRatio),
(e.filteringQuality = this.filteringQuality),
(e.useExponentialShadowMap = this.useExponentialShadowMap),
(e.useBlurExponentialShadowMap = this.useBlurExponentialShadowMap),
(e.useCloseExponentialShadowMap = this.useBlurExponentialShadowMap),
(e.useBlurCloseExponentialShadowMap = this.useBlurExponentialShadowMap),
(e.usePoissonSampling = this.usePoissonSampling),
(e.depthScale = this.depthScale),
(e.blurBoxOffset = this.blurBoxOffset),
(e.blurKernel = this.blurKernel),
(e.blurScale = this.blurScale),
(e.useKernelBlur = this.useKernelBlur),
(e.renderList = []),
t.renderList)
)
for (var n = 0; n < t.renderList.length; n++) {
var i = t.renderList[n];
e.renderList.push(i.id);
}
return e;
}),
(e.Parse = function (t, n, i) {
for (var r = n.getLightByID(t.lightId), o = i ? i(t.mapSize, r) : new e(t.mapSize, r), a = o.getShadowMap(), s = 0; s < t.renderList.length; s++) {
n.getMeshesByID(t.renderList[s]).forEach(function (e) {
a && (a.renderList || (a.renderList = []), a.renderList.push(e));
});
}
return (
(o.forceBackFacesOnly = !!t.forceBackFacesOnly),
void 0 !== t.darkness && o.setDarkness(t.darkness),
t.transparencyShadow && o.setTransparencyShadow(!0),
void 0 !== t.frustumEdgeFalloff && (o.frustumEdgeFalloff = t.frustumEdgeFalloff),
void 0 !== t.bias && (o.bias = t.bias),
void 0 !== t.normalBias && (o.normalBias = t.normalBias),
t.usePercentageCloserFiltering
? (o.usePercentageCloserFiltering = !0)
: t.useContactHardeningShadow
? (o.useContactHardeningShadow = !0)
: t.usePoissonSampling
? (o.usePoissonSampling = !0)
: t.useExponentialShadowMap
? (o.useExponentialShadowMap = !0)
: t.useBlurExponentialShadowMap
? (o.useBlurExponentialShadowMap = !0)
: t.useCloseExponentialShadowMap
? (o.useCloseExponentialShadowMap = !0)
: t.useBlurCloseExponentialShadowMap
? (o.useBlurCloseExponentialShadowMap = !0)
: t.useVarianceShadowMap
? (o.useExponentialShadowMap = !0)
: t.useBlurVarianceShadowMap && (o.useBlurExponentialShadowMap = !0),
void 0 !== t.contactHardeningLightSizeUVRatio && (o.contactHardeningLightSizeUVRatio = t.contactHardeningLightSizeUVRatio),
void 0 !== t.filteringQuality && (o.filteringQuality = t.filteringQuality),
t.depthScale && (o.depthScale = t.depthScale),
t.blurScale && (o.blurScale = t.blurScale),
t.blurBoxOffset && (o.blurBoxOffset = t.blurBoxOffset),
t.useKernelBlur && (o.useKernelBlur = t.useKernelBlur),
t.blurKernel && (o.blurKernel = t.blurKernel),
o
);
}),
(e.CLASSNAME = "ShadowGenerator"),
(e.FILTER_NONE = 0),
(e.FILTER_EXPONENTIALSHADOWMAP = 1),
(e.FILTER_POISSONSAMPLING = 2),
(e.FILTER_BLUREXPONENTIALSHADOWMAP = 3),
(e.FILTER_CLOSEEXPONENTIALSHADOWMAP = 4),
(e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP = 5),
(e.FILTER_PCF = 6),
(e.FILTER_PCSS = 7),
(e.QUALITY_HIGH = 0),
(e.QUALITY_MEDIUM = 1),
(e.QUALITY_LOW = 2),
(e._SceneComponentInitialization = function (e) {
throw zo.a.WarnImport("ShadowGeneratorSceneComponent");
}),
e
);
})(),
sa =
"#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\nvarying float vDepthMetric;\n#ifdef PACKED\n#include\n#endif\nvoid main(void)\n{\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#ifdef NONLINEARDEPTH\n#ifdef PACKED\ngl_FragColor=pack(gl_FragCoord.z);\n#else\ngl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);\n#endif\n#else\n#ifdef PACKED\ngl_FragColor=pack(vDepthMetric);\n#else\ngl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);\n#endif\n#endif\n}";
Xt.a.ShadersStore.depthPixelShader = sa;
var ca =
"\nattribute vec3 position;\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\n#include\nuniform mat4 viewProjection;\nuniform vec2 depthValues;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\nvarying float vDepthMetric;\nvoid main(void)\n{\nvec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n}\n";
Xt.a.ShadersStore.depthVertexShader = ca;
var la = (function () {
function e(t, n, i, r) {
var o = this;
void 0 === n && (n = 1),
void 0 === i && (i = null),
void 0 === r && (r = !1),
(this.enabled = !0),
(this.useOnlyInActiveCamera = !1),
(this._scene = t),
(this._storeNonLinearDepth = r),
(this.isPacked = 0 === n),
this.isPacked ? (this._clearColor = new s.b(1, 1, 1, 1)) : (this._clearColor = new s.b(1, 0, 0, 1)),
e._SceneComponentInitialization(this._scene),
(this._camera = i);
var a = t.getEngine(),
c = this.isPacked || 1 === a.webGLVersion ? 5 : 6;
(this._depthMap = new mn.a("depthMap", { width: a.getRenderWidth(), height: a.getRenderHeight() }, this._scene, !1, !0, n, !1, void 0, void 0, void 0, void 0, c)),
(this._depthMap.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._depthMap.wrapV = ln.a.CLAMP_ADDRESSMODE),
(this._depthMap.refreshRate = 1),
(this._depthMap.renderParticles = !1),
(this._depthMap.renderList = null),
(this._depthMap.activeCamera = this._camera),
(this._depthMap.ignoreCameraViewport = !0),
(this._depthMap.useCameraPostProcesses = !1),
this._depthMap.onClearObservable.add(function (e) {
e.clear(o._clearColor, !0, !0, !0);
});
var l = function (e) {
var t = e.getRenderingMesh(),
n = o._scene,
i = n.getEngine(),
r = e.getMaterial();
if (((t._internalAbstractMeshDataInfo._isActiveIntermediate = !1), r)) {
i.setState(r.backFaceCulling, 0, !1, n.useRightHandedSystem);
var a = t._getInstancesRenderList(e._id);
if (!a.mustReturn) {
var s = i.getCaps().instancedArrays && null !== a.visibleInstances[e._id],
c = o._camera || n.activeCamera;
if (o.isReady(e, s) && c) {
if (
(i.enableEffect(o._effect),
t._bind(e, o._effect, r.fillMode),
o._effect.setMatrix("viewProjection", n.getTransformMatrix()),
o._effect.setFloat2("depthValues", c.minZ, c.minZ + c.maxZ),
r && r.needAlphaTesting())
) {
var l = r.getAlphaTestTexture();
l && (o._effect.setTexture("diffuseSampler", l), o._effect.setMatrix("diffuseMatrix", l.getTextureMatrix()));
}
t.useBones && t.computeBonesUsingShaders && t.skeleton && o._effect.setMatrices("mBones", t.skeleton.getTransformMatrices(t)),
Ir.a.BindMorphTargetParameters(t, o._effect),
t._processRendering(e, o._effect, r.fillMode, a, s, function (e, t) {
return o._effect.setMatrix("world", t);
});
}
}
}
};
this._depthMap.customRenderFunction = function (e, t, n, i) {
var r;
if (i.length) {
for (a.setColorWrite(!1), r = 0; r < i.length; r++) l(i.data[r]);
a.setColorWrite(!0);
}
for (r = 0; r < e.length; r++) l(e.data[r]);
for (r = 0; r < t.length; r++) l(t.data[r]);
};
}
return (
(e.prototype.isReady = function (e, t) {
var n = e.getMaterial();
if (n.disableDepthWrite) return !1;
var i = [],
r = [wn.b.PositionKind],
o = e.getMesh();
n &&
n.needAlphaTesting() &&
n.getAlphaTestTexture() &&
(i.push("#define ALPHATEST"), o.isVerticesDataPresent(wn.b.UVKind) && (r.push(wn.b.UVKind), i.push("#define UV1")), o.isVerticesDataPresent(wn.b.UV2Kind) && (r.push(wn.b.UV2Kind), i.push("#define UV2"))),
o.useBones && o.computeBonesUsingShaders
? (r.push(wn.b.MatricesIndicesKind),
r.push(wn.b.MatricesWeightsKind),
o.numBoneInfluencers > 4 && (r.push(wn.b.MatricesIndicesExtraKind), r.push(wn.b.MatricesWeightsExtraKind)),
i.push("#define NUM_BONE_INFLUENCERS " + o.numBoneInfluencers),
i.push("#define BonesPerMesh " + (o.skeleton ? o.skeleton.bones.length + 1 : 0)))
: i.push("#define NUM_BONE_INFLUENCERS 0");
var a = o.morphTargetManager,
s = 0;
a && a.numInfluencers > 0 && ((s = a.numInfluencers), i.push("#define MORPHTARGETS"), i.push("#define NUM_MORPH_INFLUENCERS " + s), Ir.a.PrepareAttributesForMorphTargetsInfluencers(r, o, s)),
t && (i.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(r)),
this._storeNonLinearDepth && i.push("#define NONLINEARDEPTH"),
this.isPacked && i.push("#define PACKED");
var c = i.join("\n");
return (
this._cachedDefines !== c &&
((this._cachedDefines = c),
(this._effect = this._scene
.getEngine()
.createEffect("depth", r, ["world", "mBones", "viewProjection", "diffuseMatrix", "depthValues", "morphTargetInfluences"], ["diffuseSampler"], c, void 0, void 0, void 0, {
maxSimultaneousMorphTargets: s,
}))),
this._effect.isReady()
);
}),
(e.prototype.getDepthMap = function () {
return this._depthMap;
}),
(e.prototype.dispose = function () {
this._depthMap.dispose();
}),
(e._SceneComponentInitialization = function (e) {
throw zo.a.WarnImport("DepthRendererSceneComponent");
}),
e
);
})(),
ua = n(135),
ha =
"attribute vec2 vUV;\nuniform sampler2D textureSampler;\n#if defined(INITIAL)\nuniform sampler2D sourceTexture;\nuniform vec2 texSize;\nvoid main(void)\n{\nivec2 coord=ivec2(vUV*(texSize-1.0));\nfloat f1=texelFetch(sourceTexture,coord,0).r;\nfloat f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;\nfloat f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;\nfloat f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;\nfloat minz=min(min(min(f1,f2),f3),f4);\n#ifdef DEPTH_REDUX\nfloat maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);\n#else\nfloat maxz=max(max(max(f1,f2),f3),f4);\n#endif\nglFragColor=vec4(minz,maxz,0.,0.);\n}\n#elif defined(MAIN)\nuniform vec2 texSize;\nvoid main(void)\n{\nivec2 coord=ivec2(vUV*(texSize-1.0));\nvec2 f1=texelFetch(textureSampler,coord,0).rg;\nvec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;\nvec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;\nvec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;\nfloat minz=min(min(min(f1.x,f2.x),f3.x),f4.x);\nfloat maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);\nglFragColor=vec4(minz,maxz,0.,0.);\n}\n#elif defined(ONEBEFORELAST)\nuniform ivec2 texSize;\nvoid main(void)\n{\nivec2 coord=ivec2(vUV*vec2(texSize-1));\nvec2 f1=texelFetch(textureSampler,coord % texSize,0).rg;\nvec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg;\nvec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg;\nvec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg;\nfloat minz=min(f1.x,f2.x);\nfloat maxz=max(f1.y,f2.y);\nglFragColor=vec4(minz,maxz,0.,0.);\n}\n#elif defined(LAST)\nvoid main(void)\n{\ndiscard;\nglFragColor=vec4(0.);\n}\n#endif\n";
Xt.a.ShadersStore.minmaxReduxPixelShader = ha;
var da = (function () {
function e(e) {
(this.onAfterReductionPerformed = new o.c()), (this._forceFullscreenViewport = !0), (this._activated = !1), (this._camera = e), (this._postProcessManager = new ua.a(e.getScene()));
}
return (
Object.defineProperty(e.prototype, "sourceTexture", {
get: function () {
return this._sourceTexture;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setSourceTexture = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = 2), void 0 === i && (i = !0), e !== this._sourceTexture)) {
this.dispose(!1), (this._sourceTexture = e), (this._reductionSteps = []), (this._forceFullscreenViewport = i);
var o = this._camera.getScene(),
a = new Wt.a("Initial reduction phase", "minmaxRedux", ["texSize"], ["sourceTexture"], 1, null, 1, o.getEngine(), !1, "#define INITIAL" + (t ? "\n#define DEPTH_REDUX" : ""), n, void 0, void 0, void 0, 7);
(a.autoClear = !1), (a.forceFullscreenViewport = i);
var s = this._sourceTexture.getRenderWidth(),
c = this._sourceTexture.getRenderHeight();
(a.onApply = (function (e, t) {
return function (n) {
n.setTexture("sourceTexture", r._sourceTexture), n.setFloatArray2("texSize", new Float32Array([e, t]));
};
})(s, c)),
this._reductionSteps.push(a);
for (var l = 1; s > 1 || c > 1; ) {
(s = Math.max(Math.round(s / 2), 1)), (c = Math.max(Math.round(c / 2), 1));
var u = new Wt.a(
"Reduction phase " + l,
"minmaxRedux",
["texSize"],
null,
{ width: s, height: c },
null,
1,
o.getEngine(),
!1,
"#define " + (1 == s && 1 == c ? "LAST" : 1 == s || 1 == c ? "ONEBEFORELAST" : "MAIN"),
n,
void 0,
void 0,
void 0,
7
);
if (
((u.autoClear = !1),
(u.forceFullscreenViewport = i),
(u.onApply = (function (e, t) {
return function (n) {
1 == e || 1 == t ? n.setIntArray2("texSize", new Int32Array([e, t])) : n.setFloatArray2("texSize", new Float32Array([e, t]));
};
})(s, c)),
this._reductionSteps.push(u),
l++,
1 == s && 1 == c)
) {
u.onAfterRenderObservable.add(
(function (e, t, n) {
var i = new Float32Array(4 * e * t),
a = { min: 0, max: 0 };
return function () {
o.getEngine()._readTexturePixels(n.inputTexture, e, t, -1, 0, i), (a.min = i[0]), (a.max = i[1]), r.onAfterReductionPerformed.notifyObservers(a);
};
})(s, c, u)
);
}
}
}
}),
Object.defineProperty(e.prototype, "refreshRate", {
get: function () {
return this._sourceTexture ? this._sourceTexture.refreshRate : -1;
},
set: function (e) {
this._sourceTexture && (this._sourceTexture.refreshRate = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "activated", {
get: function () {
return this._activated;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.activate = function () {
var e = this;
!this._onAfterUnbindObserver &&
this._sourceTexture &&
((this._onAfterUnbindObserver = this._sourceTexture.onAfterUnbindObservable.add(function () {
e._reductionSteps[0].activate(e._camera),
e._postProcessManager.directRender(e._reductionSteps, e._reductionSteps[0].inputTexture, e._forceFullscreenViewport),
e._camera.getScene().getEngine().unBindFramebuffer(e._reductionSteps[0].inputTexture, !1);
})),
(this._activated = !0));
}),
(e.prototype.deactivate = function () {
this._onAfterUnbindObserver && this._sourceTexture && (this._sourceTexture.onAfterUnbindObservable.remove(this._onAfterUnbindObserver), (this._onAfterUnbindObserver = null), (this._activated = !1));
}),
(e.prototype.dispose = function (e) {
if ((void 0 === e && (e = !0), e && this.onAfterReductionPerformed.clear(), this.deactivate(), this._reductionSteps)) {
for (var t = 0; t < this._reductionSteps.length; ++t) this._reductionSteps[t].dispose();
this._reductionSteps = null;
}
this._postProcessManager && e && this._postProcessManager.dispose(), (this._sourceTexture = null);
}),
e
);
})(),
pa = (function (e) {
function t(t) {
return e.call(this, t) || this;
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "depthRenderer", {
get: function () {
return this._depthRenderer;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setDepthRenderer = function (t, n, i) {
void 0 === t && (t = null), void 0 === n && (n = 2), void 0 === i && (i = !0);
var r = this._camera.getScene();
this._depthRenderer && (delete r._depthRenderer[this._depthRendererId], this._depthRenderer.dispose(), (this._depthRenderer = null)),
null === t &&
(r._depthRenderer || (r._depthRenderer = {}),
((t = this._depthRenderer = new la(r, n, this._camera, !1)).enabled = !1),
(this._depthRendererId = "minmax" + this._camera.id),
(r._depthRenderer[this._depthRendererId] = t)),
e.prototype.setSourceTexture.call(this, t.getDepthMap(), !0, n, i);
}),
(t.prototype.setSourceTexture = function (t, n, i, r) {
void 0 === i && (i = 2), void 0 === r && (r = !0), e.prototype.setSourceTexture.call(this, t, n, i, r);
}),
(t.prototype.activate = function () {
this._depthRenderer && (this._depthRenderer.enabled = !0), e.prototype.activate.call(this);
}),
(t.prototype.deactivate = function () {
e.prototype.deactivate.call(this), this._depthRenderer && (this._depthRenderer.enabled = !1);
}),
(t.prototype.dispose = function (t) {
var n;
void 0 === t && (t = !0),
e.prototype.dispose.call(this, t),
this._depthRenderer && t && (null === (n = this._depthRenderer.getDepthMap().getScene()) || void 0 === n || n._depthRenderer[this._depthRendererId], this._depthRenderer.dispose(), (this._depthRenderer = null));
}),
t
);
})(da),
fa = a.e.Up(),
ma = a.e.Zero(),
ga = new a.e(),
ba = new a.e(),
_a = new a.a(),
va = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, n, i) || this;
if (1 == r._scene.getEngine().webGLVersion) throw "CSM can only be used in WebGL2";
return (r.usePercentageCloserFiltering = !0), r;
}
return (
Object(h.d)(t, e),
(t.prototype._validateFilter = function (e) {
return e === aa.FILTER_NONE || e === aa.FILTER_PCF || e === aa.FILTER_PCSS ? e : aa.FILTER_NONE;
}),
Object.defineProperty(t.prototype, "numCascades", {
get: function () {
return this._numCascades;
},
set: function (e) {
(e = Math.min(Math.max(e, t.MIN_CASCADES_COUNT), t.MAX_CASCADES_COUNT)) !== this._numCascades && ((this._numCascades = e), this.recreateShadowMap());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "freezeShadowCastersBoundingInfo", {
get: function () {
return this._freezeShadowCastersBoundingInfo;
},
set: function (e) {
this._freezeShadowCastersBoundingInfoObservable && e && (this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable), (this._freezeShadowCastersBoundingInfoObservable = null)),
this._freezeShadowCastersBoundingInfoObservable || e || (this._freezeShadowCastersBoundingInfoObservable = this._scene.onBeforeRenderObservable.add(this._computeShadowCastersBoundingInfo.bind(this))),
(this._freezeShadowCastersBoundingInfo = e),
e && this._computeShadowCastersBoundingInfo();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._computeShadowCastersBoundingInfo = function () {
if (
(this._scbiMin.copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE),
this._scbiMax.copyFromFloats(Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE),
this._shadowMap && this._shadowMap.renderList)
) {
for (var e = this._shadowMap.renderList, t = 0; t < e.length; t++) {
if ((r = e[t])) {
var n = r.getBoundingInfo().boundingBox;
this._scbiMin.minimizeInPlace(n.minimumWorld), this._scbiMax.maximizeInPlace(n.maximumWorld);
}
}
var i = this._scene.meshes;
for (t = 0; t < i.length; t++) {
var r;
if ((r = i[t]) && r.isVisible && r.isEnabled && r.receiveShadows) {
n = r.getBoundingInfo().boundingBox;
this._scbiMin.minimizeInPlace(n.minimumWorld), this._scbiMax.maximizeInPlace(n.maximumWorld);
}
}
}
this._shadowCastersBoundingInfo.reConstruct(this._scbiMin, this._scbiMax);
}),
Object.defineProperty(t.prototype, "shadowCastersBoundingInfo", {
get: function () {
return this._shadowCastersBoundingInfo;
},
set: function (e) {
this._shadowCastersBoundingInfo = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setMinMaxDistance = function (e, t) {
(this._minDistance === e && this._maxDistance === t) || (e > t && ((e = 0), (t = 1)), e < 0 && (e = 0), t > 1 && (t = 1), (this._minDistance = e), (this._maxDistance = t), (this._breaksAreDirty = !0));
}),
Object.defineProperty(t.prototype, "minDistance", {
get: function () {
return this._minDistance;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "maxDistance", {
get: function () {
return this._maxDistance;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return t.CLASSNAME;
}),
(t.prototype.getCascadeMinExtents = function (e) {
return e >= 0 && e < this._numCascades ? this._cascadeMinExtents[e] : null;
}),
(t.prototype.getCascadeMaxExtents = function (e) {
return e >= 0 && e < this._numCascades ? this._cascadeMaxExtents[e] : null;
}),
Object.defineProperty(t.prototype, "shadowMaxZ", {
get: function () {
return this._scene && this._scene.activeCamera ? this._shadowMaxZ : 0;
},
set: function (e) {
this._scene && this._scene.activeCamera
? this._shadowMaxZ === e || e < this._scene.activeCamera.minZ || e > this._scene.activeCamera.maxZ || ((this._shadowMaxZ = e), this._light._markMeshesAsLightDirty(), (this._breaksAreDirty = !0))
: (this._shadowMaxZ = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "debug", {
get: function () {
return this._debug;
},
set: function (e) {
(this._debug = e), this._light._markMeshesAsLightDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "depthClamp", {
get: function () {
return this._depthClamp;
},
set: function (e) {
this._depthClamp = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cascadeBlendPercentage", {
get: function () {
return this._cascadeBlendPercentage;
},
set: function (e) {
(this._cascadeBlendPercentage = e), this._light._markMeshesAsLightDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "lambda", {
get: function () {
return this._lambda;
},
set: function (e) {
var t = Math.min(Math.max(e, 0), 1);
this._lambda != t && ((this._lambda = t), (this._breaksAreDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getCascadeViewMatrix = function (e) {
return e >= 0 && e < this._numCascades ? this._viewMatrices[e] : null;
}),
(t.prototype.getCascadeProjectionMatrix = function (e) {
return e >= 0 && e < this._numCascades ? this._projectionMatrices[e] : null;
}),
(t.prototype.getCascadeTransformMatrix = function (e) {
return e >= 0 && e < this._numCascades ? this._transformMatrices[e] : null;
}),
(t.prototype.setDepthRenderer = function (e) {
(this._depthRenderer = e), this._depthReducer && this._depthReducer.setDepthRenderer(this._depthRenderer);
}),
Object.defineProperty(t.prototype, "autoCalcDepthBounds", {
get: function () {
return this._autoCalcDepthBounds;
},
set: function (e) {
var t = this,
n = this._scene.activeCamera;
if (n) {
if (((this._autoCalcDepthBounds = e), !e)) return this._depthReducer && this._depthReducer.deactivate(), void this.setMinMaxDistance(0, 1);
this._depthReducer ||
((this._depthReducer = new pa(n)),
this._depthReducer.onAfterReductionPerformed.add(function (e) {
var n = e.min,
i = e.max;
n >= i && ((n = 0), (i = 1)), (n == t._minDistance && i == t._maxDistance) || t.setMinMaxDistance(n, i);
}),
this._depthReducer.setDepthRenderer(this._depthRenderer)),
this._depthReducer.activate();
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "autoCalcDepthBoundsRefreshRate", {
get: function () {
var e, t, n;
return null != (n = null === (t = null === (e = this._depthReducer) || void 0 === e ? void 0 : e.depthRenderer) || void 0 === t ? void 0 : t.getDepthMap().refreshRate) ? n : -1;
},
set: function (e) {
var t;
(null === (t = this._depthReducer) || void 0 === t ? void 0 : t.depthRenderer) && (this._depthReducer.depthRenderer.getDepthMap().refreshRate = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.splitFrustum = function () {
this._breaksAreDirty = !0;
}),
(t.prototype._splitFrustum = function () {
var e = this._scene.activeCamera;
if (e) {
for (
var t = e.minZ,
n = e.maxZ,
i = n - t,
r = this._minDistance,
o = t + r * i,
a = t + (this._shadowMaxZ < n && this._shadowMaxZ >= t ? Math.min((this._shadowMaxZ - t) / (n - t), this._maxDistance) : this._maxDistance) * i,
s = a - o,
c = a / o,
l = 0;
l < this._cascades.length;
++l
) {
var u = (l + 1) / this._numCascades,
h = o * Math.pow(c, u),
d = o + s * u,
p = this._lambda * (h - d) + d;
(this._cascades[l].prevBreakDistance = 0 === l ? r : this._cascades[l - 1].breakDistance),
(this._cascades[l].breakDistance = (p - t) / i),
(this._viewSpaceFrustumsZ[l] = t + this._cascades[l].breakDistance * i),
(this._frustumLengths[l] = (this._cascades[l].breakDistance - this._cascades[l].prevBreakDistance) * i);
}
this._breaksAreDirty = !1;
}
}),
(t.prototype._computeMatrices = function () {
if (this._scene.activeCamera) {
a.e.NormalizeToRef(this._light.getShadowDirection(0), this._lightDirection),
1 === Math.abs(a.e.Dot(this._lightDirection, a.e.Up())) && (this._lightDirection.z = 1e-13),
this._cachedDirection.copyFrom(this._lightDirection);
for (var e = 0; e < this._numCascades; ++e) {
this._computeFrustumInWorldSpace(e),
this._computeCascadeFrustum(e),
this._cascadeMaxExtents[e].subtractToRef(this._cascadeMinExtents[e], ga),
this._frustumCenter[e].addToRef(this._lightDirection.scale(this._cascadeMinExtents[e].z), this._shadowCameraPos[e]),
a.a.LookAtLHToRef(this._shadowCameraPos[e], this._frustumCenter[e], fa, this._viewMatrices[e]);
var t = 0,
n = ga.z,
i = this._shadowCastersBoundingInfo;
i.update(this._viewMatrices[e]),
(n = Math.min(n, i.boundingBox.maximumWorld.z)),
(t = this._depthClamp && this.filter !== aa.FILTER_PCSS ? Math.max(t, i.boundingBox.minimumWorld.z) : Math.min(t, i.boundingBox.minimumWorld.z)),
a.a.OrthoOffCenterLHToRef(this._cascadeMinExtents[e].x, this._cascadeMaxExtents[e].x, this._cascadeMinExtents[e].y, this._cascadeMaxExtents[e].y, t, n, this._projectionMatrices[e]),
(this._cascadeMinExtents[e].z = t),
(this._cascadeMaxExtents[e].z = n),
this._viewMatrices[e].multiplyToRef(this._projectionMatrices[e], this._transformMatrices[e]),
a.e.TransformCoordinatesToRef(ma, this._transformMatrices[e], ga),
ga.scaleInPlace(this._mapSize / 2),
ba.copyFromFloats(Math.round(ga.x), Math.round(ga.y), Math.round(ga.z)),
ba.subtractInPlace(ga).scaleInPlace(2 / this._mapSize),
a.a.TranslationToRef(ba.x, ba.y, 0, _a),
this._projectionMatrices[e].multiplyToRef(_a, this._projectionMatrices[e]),
this._viewMatrices[e].multiplyToRef(this._projectionMatrices[e], this._transformMatrices[e]),
this._transformMatrices[e].copyToArray(this._transformMatricesAsArray, 16 * e);
}
}
}),
(t.prototype._computeFrustumInWorldSpace = function (e) {
if (this._scene.activeCamera) {
var n = this._cascades[e].prevBreakDistance,
i = this._cascades[e].breakDistance;
this._scene.activeCamera.getViewMatrix();
for (var r = a.a.Invert(this._scene.activeCamera.getTransformationMatrix()), o = 0; o < t.frustumCornersNDCSpace.length; ++o)
a.e.TransformCoordinatesToRef(t.frustumCornersNDCSpace[o], r, this._frustumCornersWorldSpace[e][o]);
for (o = 0; o < t.frustumCornersNDCSpace.length / 2; ++o)
ga.copyFrom(this._frustumCornersWorldSpace[e][o + 4]).subtractInPlace(this._frustumCornersWorldSpace[e][o]),
ba.copyFrom(ga).scaleInPlace(n),
ga.scaleInPlace(i),
ga.addInPlace(this._frustumCornersWorldSpace[e][o]),
this._frustumCornersWorldSpace[e][o + 4].copyFrom(ga),
this._frustumCornersWorldSpace[e][o].addInPlace(ba);
}
}),
(t.prototype._computeCascadeFrustum = function (e) {
if (
(this._cascadeMinExtents[e].copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE),
this._cascadeMaxExtents[e].copyFromFloats(Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE),
this._frustumCenter[e].copyFromFloats(0, 0, 0),
this._scene.activeCamera)
) {
for (var t = 0; t < this._frustumCornersWorldSpace[e].length; ++t) this._frustumCenter[e].addInPlace(this._frustumCornersWorldSpace[e][t]);
if ((this._frustumCenter[e].scaleInPlace(1 / this._frustumCornersWorldSpace[e].length), this.stabilizeCascades)) {
var n = 0;
for (t = 0; t < this._frustumCornersWorldSpace[e].length; ++t) {
var i = this._frustumCornersWorldSpace[e][t].subtractToRef(this._frustumCenter[e], ga).length();
n = Math.max(n, i);
}
(n = Math.ceil(16 * n) / 16), this._cascadeMaxExtents[e].copyFromFloats(n, n, n), this._cascadeMinExtents[e].copyFromFloats(-n, -n, -n);
} else {
var r = this._frustumCenter[e];
this._frustumCenter[e].addToRef(this._lightDirection, ga), a.a.LookAtLHToRef(r, ga, fa, _a);
for (t = 0; t < this._frustumCornersWorldSpace[e].length; ++t)
a.e.TransformCoordinatesToRef(this._frustumCornersWorldSpace[e][t], _a, ga), this._cascadeMinExtents[e].minimizeInPlace(ga), this._cascadeMaxExtents[e].maximizeInPlace(ga);
}
}
}),
(t.prototype._initializeGenerator = function () {
var n, i, r, o, s, c, l, u, h, d, p, f, m, g, b, _, v, y, C, P;
(this.penumbraDarkness = null != (n = this.penumbraDarkness) ? n : 1),
(this._numCascades = null != (i = this._numCascades) ? i : t.DEFAULT_CASCADES_COUNT),
(this.stabilizeCascades = null != (r = this.stabilizeCascades) && r),
(this._freezeShadowCastersBoundingInfoObservable = null != (o = this._freezeShadowCastersBoundingInfoObservable) ? o : null),
(this.freezeShadowCastersBoundingInfo = null != (s = this.freezeShadowCastersBoundingInfo) && s),
(this._scbiMin = null != (c = this._scbiMin) ? c : new a.e(0, 0, 0)),
(this._scbiMax = null != (l = this._scbiMax) ? l : new a.e(0, 0, 0)),
(this._shadowCastersBoundingInfo = null != (u = this._shadowCastersBoundingInfo) ? u : new ti.a(new a.e(0, 0, 0), new a.e(0, 0, 0))),
(this._breaksAreDirty = null == (h = this._breaksAreDirty) || h),
(this._minDistance = null != (d = this._minDistance) ? d : 0),
(this._maxDistance = null != (p = this._maxDistance) ? p : 1),
(this._currentLayer = null != (f = this._currentLayer) ? f : 0),
(this._shadowMaxZ = null != (b = null != (m = this._shadowMaxZ) ? m : null === (g = this._scene.activeCamera) || void 0 === g ? void 0 : g.maxZ) ? b : 1e4),
(this._debug = null != (_ = this._debug) && _),
(this._depthClamp = null == (v = this._depthClamp) || v),
(this._cascadeBlendPercentage = null != (y = this._cascadeBlendPercentage) ? y : 0.1),
(this._lambda = null != (C = this._lambda) ? C : 0.5),
(this._autoCalcDepthBounds = null != (P = this._autoCalcDepthBounds) && P),
e.prototype._initializeGenerator.call(this);
}),
(t.prototype._createTargetRenderTexture = function () {
var e = { width: this._mapSize, height: this._mapSize, layers: this.numCascades };
(this._shadowMap = new mn.a(this._light.name + "_shadowMap", e, this._scene, !1, !0, this._textureType, !1, void 0, !1, !1, void 0)), this._shadowMap.createDepthStencilTexture(513, !0);
}),
(t.prototype._initializeShadowMap = function () {
var n = this;
if ((e.prototype._initializeShadowMap.call(this), null !== this._shadowMap)) {
(this._transformMatricesAsArray = new Float32Array(16 * this._numCascades)),
(this._viewSpaceFrustumsZ = new Array(this._numCascades)),
(this._frustumLengths = new Array(this._numCascades)),
(this._lightSizeUVCorrection = new Array(2 * this._numCascades)),
(this._depthCorrection = new Array(this._numCascades)),
(this._cascades = []),
(this._viewMatrices = []),
(this._projectionMatrices = []),
(this._transformMatrices = []),
(this._cascadeMinExtents = []),
(this._cascadeMaxExtents = []),
(this._frustumCenter = []),
(this._shadowCameraPos = []),
(this._frustumCornersWorldSpace = []);
for (var i = 0; i < this._numCascades; ++i) {
(this._cascades[i] = { prevBreakDistance: 0, breakDistance: 0 }),
(this._viewMatrices[i] = a.a.Zero()),
(this._projectionMatrices[i] = a.a.Zero()),
(this._transformMatrices[i] = a.a.Zero()),
(this._cascadeMinExtents[i] = new a.e()),
(this._cascadeMaxExtents[i] = new a.e()),
(this._frustumCenter[i] = new a.e()),
(this._shadowCameraPos[i] = new a.e()),
(this._frustumCornersWorldSpace[i] = new Array(t.frustumCornersNDCSpace.length));
for (var r = 0; r < t.frustumCornersNDCSpace.length; ++r) this._frustumCornersWorldSpace[i][r] = new a.e();
}
this._shadowMap.onBeforeRenderObservable.add(function (e) {
n._currentLayer = e;
}),
this._shadowMap.onBeforeBindObservable.add(function () {
n._breaksAreDirty && n._splitFrustum(), n._computeMatrices();
}),
this._splitFrustum();
}
}),
(t.prototype._bindCustomEffectForRenderSubMeshForShadowMap = function (e, t) {
t.setMatrix("viewProjection", this.getCascadeTransformMatrix(this._currentLayer));
}),
(t.prototype._isReadyCustomDefines = function (e, t, n) {
this._depthClamp && this._filter !== aa.FILTER_PCSS && e.push("#define DEPTHCLAMP");
}),
(t.prototype.prepareDefines = function (t, n) {
e.prototype.prepareDefines.call(this, t, n);
var i = this._scene,
r = this._light;
if (i.shadowsEnabled && r.shadowEnabled) {
(t["SHADOWCSM" + n] = !0), (t["SHADOWCSMDEBUG" + n] = this.debug), (t["SHADOWCSMNUM_CASCADES" + n] = this.numCascades), (t["SHADOWCSM_RIGHTHANDED" + n] = i.useRightHandedSystem);
var o = i.activeCamera;
o && this._shadowMaxZ < o.maxZ && (t["SHADOWCSMUSESHADOWMAXZ" + n] = !0), 0 === this.cascadeBlendPercentage && (t["SHADOWCSMNOBLEND" + n] = !0);
}
}),
(t.prototype.bindShadowLight = function (e, t) {
var n = this._light,
i = this._scene;
if (i.shadowsEnabled && n.shadowEnabled) {
var r = i.activeCamera;
if (r) {
var o = this.getShadowMap();
if (o) {
var a = o.getSize().width;
if (
(t.setMatrices("lightMatrix" + e, this._transformMatricesAsArray),
t.setArray("viewFrustumZ" + e, this._viewSpaceFrustumsZ),
t.setFloat("cascadeBlendFactor" + e, 0 === this.cascadeBlendPercentage ? 1e4 : 1 / this.cascadeBlendPercentage),
t.setArray("frustumLengths" + e, this._frustumLengths),
this._filter === aa.FILTER_PCF)
)
t.setDepthStencilTexture("shadowSampler" + e, o), n._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), a, 1 / a, this.frustumEdgeFalloff, e);
else if (this._filter === aa.FILTER_PCSS) {
for (var s = 0; s < this._numCascades; ++s)
(this._lightSizeUVCorrection[2 * s + 0] = 0 === s ? 1 : (this._cascadeMaxExtents[0].x - this._cascadeMinExtents[0].x) / (this._cascadeMaxExtents[s].x - this._cascadeMinExtents[s].x)),
(this._lightSizeUVCorrection[2 * s + 1] = 0 === s ? 1 : (this._cascadeMaxExtents[0].y - this._cascadeMinExtents[0].y) / (this._cascadeMaxExtents[s].y - this._cascadeMinExtents[s].y)),
(this._depthCorrection[s] = 0 === s ? 1 : (this._cascadeMaxExtents[s].z - this._cascadeMinExtents[s].z) / (this._cascadeMaxExtents[0].z - this._cascadeMinExtents[0].z));
t.setDepthStencilTexture("shadowSampler" + e, o),
t.setTexture("depthSampler" + e, o),
t.setArray2("lightSizeUVCorrection" + e, this._lightSizeUVCorrection),
t.setArray("depthCorrection" + e, this._depthCorrection),
t.setFloat("penumbraDarkness" + e, this.penumbraDarkness),
n._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), 1 / a, this._contactHardeningLightSizeUVRatio * a, this.frustumEdgeFalloff, e);
} else t.setTexture("shadowSampler" + e, o), n._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), a, 1 / a, this.frustumEdgeFalloff, e);
n._uniformBuffer.updateFloat2("depthValues", this.getLight().getDepthMinZ(r), this.getLight().getDepthMinZ(r) + this.getLight().getDepthMaxZ(r), e);
}
}
}
}),
(t.prototype.getTransformMatrix = function () {
return this.getCascadeTransformMatrix(0);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this),
this._freezeShadowCastersBoundingInfoObservable && (this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable), (this._freezeShadowCastersBoundingInfoObservable = null)),
this._depthReducer && (this._depthReducer.dispose(), (this._depthReducer = null));
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this),
n = this.getShadowMap();
if (!n) return t;
if (
((t.numCascades = this._numCascades),
(t.debug = this._debug),
(t.stabilizeCascades = this.stabilizeCascades),
(t.lambda = this._lambda),
(t.cascadeBlendPercentage = this.cascadeBlendPercentage),
(t.depthClamp = this._depthClamp),
(t.autoCalcDepthBounds = this.autoCalcDepthBounds),
(t.shadowMaxZ = this._shadowMaxZ),
(t.penumbraDarkness = this.penumbraDarkness),
(t.freezeShadowCastersBoundingInfo = this._freezeShadowCastersBoundingInfo),
(t.minDistance = this.minDistance),
(t.maxDistance = this.maxDistance),
(t.renderList = []),
n.renderList)
)
for (var i = 0; i < n.renderList.length; i++) {
var r = n.renderList[i];
t.renderList.push(r.id);
}
return t;
}),
(t.Parse = function (e, n) {
var i = aa.Parse(e, n, function (e, n) {
return new t(e, n);
});
return (
void 0 !== e.numCascades && (i.numCascades = e.numCascades),
void 0 !== e.debug && (i.debug = e.debug),
void 0 !== e.stabilizeCascades && (i.stabilizeCascades = e.stabilizeCascades),
void 0 !== e.lambda && (i.lambda = e.lambda),
void 0 !== e.cascadeBlendPercentage && (i.cascadeBlendPercentage = e.cascadeBlendPercentage),
void 0 !== e.depthClamp && (i.depthClamp = e.depthClamp),
void 0 !== e.autoCalcDepthBounds && (i.autoCalcDepthBounds = e.autoCalcDepthBounds),
void 0 !== e.shadowMaxZ && (i.shadowMaxZ = e.shadowMaxZ),
void 0 !== e.penumbraDarkness && (i.penumbraDarkness = e.penumbraDarkness),
void 0 !== e.freezeShadowCastersBoundingInfo && (i.freezeShadowCastersBoundingInfo = e.freezeShadowCastersBoundingInfo),
void 0 !== e.minDistance && void 0 !== e.maxDistance && i.setMinMaxDistance(e.minDistance, e.maxDistance),
i
);
}),
(t.frustumCornersNDCSpace = [new a.e(-1, 1, -1), new a.e(1, 1, -1), new a.e(1, -1, -1), new a.e(-1, -1, -1), new a.e(-1, 1, 1), new a.e(1, 1, 1), new a.e(1, -1, 1), new a.e(-1, -1, 1)]),
(t.CLASSNAME = "CascadedShadowGenerator"),
(t.DEFAULT_CASCADES_COUNT = 4),
(t.MIN_CASCADES_COUNT = 2),
(t.MAX_CASCADES_COUNT = 4),
(t._SceneComponentInitialization = function (e) {
throw zo.a.WarnImport("ShadowGeneratorSceneComponent");
}),
t
);
})(aa);
i.a.AddParser(me.a.NAME_SHADOWGENERATOR, function (e, t) {
if (void 0 !== e.shadowGenerators && null !== e.shadowGenerators)
for (var n = 0, i = e.shadowGenerators.length; n < i; n++) {
var r = e.shadowGenerators[n];
r.className === va.CLASSNAME ? va.Parse(r, t) : aa.Parse(r, t);
}
});
var ya = (function () {
function e(e) {
(this.name = me.a.NAME_SHADOWGENERATOR), (this.scene = e);
}
return (
(e.prototype.register = function () {
this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR, this, this._gatherRenderTargets);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.serialize = function (e) {
e.shadowGenerators = [];
for (var t = 0, n = this.scene.lights; t < n.length; t++) {
var i = n[t].getShadowGenerator();
i && e.shadowGenerators.push(i.serialize());
}
}),
(e.prototype.addFromContainer = function (e) {}),
(e.prototype.removeFromContainer = function (e, t) {}),
(e.prototype.dispose = function () {}),
(e.prototype._gatherRenderTargets = function (e) {
var t = this.scene;
if (this.scene.shadowsEnabled)
for (var n = 0; n < t.lights.length; n++) {
var i = t.lights[n],
r = i.getShadowGenerator();
if (i.isEnabled() && i.shadowEnabled && r) {
var o = r.getShadowMap();
-1 !== t.textures.indexOf(o) && e.push(o);
}
}
}),
e
);
})();
aa._SceneComponentInitialization = function (e) {
var t = e._getComponent(me.a.NAME_SHADOWGENERATOR);
t || ((t = new ya(e)), e._addComponent(t));
};
var Ca = n(123),
Pa = (function () {
function e(e, t, n) {
var i = this;
void 0 === t && (t = ""),
void 0 === n && (n = "black"),
(this._renderingCanvas = e),
(this._loadingText = t),
(this._loadingDivBackgroundColor = n),
(this._resizeLoadingUI = function () {
var e = i._renderingCanvas.getBoundingClientRect(),
t = window.getComputedStyle(i._renderingCanvas).position;
i._loadingDiv &&
((i._loadingDiv.style.position = "fixed" === t ? "fixed" : "absolute"),
(i._loadingDiv.style.left = e.left + "px"),
(i._loadingDiv.style.top = e.top + "px"),
(i._loadingDiv.style.width = e.width + "px"),
(i._loadingDiv.style.height = e.height + "px"));
});
}
return (
(e.prototype.displayLoadingUI = function () {
if (!this._loadingDiv) {
(this._loadingDiv = document.createElement("div")),
(this._loadingDiv.id = "babylonjsLoadingDiv"),
(this._loadingDiv.style.opacity = "0"),
(this._loadingDiv.style.transition = "opacity 1.5s ease"),
(this._loadingDiv.style.pointerEvents = "none"),
(this._loadingTextDiv = document.createElement("div")),
(this._loadingTextDiv.style.position = "absolute"),
(this._loadingTextDiv.style.left = "0"),
(this._loadingTextDiv.style.top = "50%"),
(this._loadingTextDiv.style.marginTop = "80px"),
(this._loadingTextDiv.style.width = "100%"),
(this._loadingTextDiv.style.height = "20px"),
(this._loadingTextDiv.style.fontFamily = "Arial"),
(this._loadingTextDiv.style.fontSize = "14px"),
(this._loadingTextDiv.style.color = "white"),
(this._loadingTextDiv.style.textAlign = "center"),
(this._loadingTextDiv.innerHTML = "Loading"),
this._loadingDiv.appendChild(this._loadingTextDiv),
(this._loadingTextDiv.innerHTML = this._loadingText);
var t = document.createElement("style");
t.type = "text/css";
(t.innerHTML =
"@-webkit-keyframes spin1 { 0% { -webkit-transform: rotate(0deg);}\n 100% { -webkit-transform: rotate(360deg);}\n } @keyframes spin1 { 0% { transform: rotate(0deg);}\n 100% { transform: rotate(360deg);}\n }"),
document.getElementsByTagName("head")[0].appendChild(t);
var n = !!window.SVGSVGElement,
i = new Image();
e.DefaultLogoUrl
? (i.src = e.DefaultLogoUrl)
: (i.src = n
? "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODAuMTcgMjA4LjA0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6I2UwNjg0Yjt9LmNscy0ze2ZpbGw6I2JiNDY0Yjt9LmNscy00e2ZpbGw6I2UwZGVkODt9LmNscy01e2ZpbGw6I2Q1ZDJjYTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkJhYnlsb25Mb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iUGFnZV9FbGVtZW50cyIgZGF0YS1uYW1lPSJQYWdlIEVsZW1lbnRzIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05MC4wOSwwLDAsNTJWMTU2bDkwLjA5LDUyLDkwLjA4LTUyVjUyWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxODAuMTcgNTIuMDEgMTUxLjk3IDM1LjczIDEyNC44NSA1MS4zOSAxNTMuMDUgNjcuNjcgMTgwLjE3IDUyLjAxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjI3LjEyIDY3LjY3IDExNy4yMSAxNS42NiA5MC4wOCAwIDAgNTIuMDEgMjcuMTIgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iNjEuODkgMTIwLjMgOTAuMDggMTM2LjU4IDExOC4yOCAxMjAuMyA5MC4wOCAxMDQuMDIgNjEuODkgMTIwLjMiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDE1My4wNSAxNDAuMzcgOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyAwIDUyLjAxIDAgMTU2LjAzIDkwLjA4IDIwOC4wNCAxODAuMTcgMTU2LjAzIDE4MC4xNyA1Mi4wMSAxNTMuMDUgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iOTAuMDggNzEuNDYgNjEuODkgODcuNzQgNjEuODkgMTIwLjMgOTAuMDggMTA0LjAyIDExOC4yOCAxMjAuMyAxMTguMjggODcuNzQgOTAuMDggNzEuNDYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDExOC4yOCA4Ny43NCAxMTguMjggMTIwLjMgOTAuMDggMTM2LjU4IDkwLjA4IDE3Ni43MiAxNTMuMDUgMTQwLjM3IDE1My4wNSA2Ny42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSIyNy4xMiA2Ny42NyA2MS44OSA4Ny43NCA2MS44OSAxMjAuMyA5MC4wOCAxMzYuNTggOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyIvPjwvZz48L2c+PC9zdmc+"
: "https://cdn.babylonjs.com/Assets/babylonLogo.png"),
(i.style.position = "absolute"),
(i.style.left = "40%"),
(i.style.top = "40%"),
(i.style.width = "20%"),
(i.style.height = "20%");
var r = new Image();
if (
(e.DefaultSpinnerUrl
? (r.src = e.DefaultSpinnerUrl)
: (r.src = n
? "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOTIgMzkyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2UwNjg0Yjt9LmNscy0ye2ZpbGw6bm9uZTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPlNwaW5uZXJJY29uPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iU3Bpbm5lciI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDAuMjEsMTI2LjQzYzMuNy03LjMxLDcuNjctMTQuNDQsMTItMjEuMzJsMy4zNi01LjEsMy41Mi01YzEuMjMtMS42MywyLjQxLTMuMjksMy42NS00LjkxczIuNTMtMy4yMSwzLjgyLTQuNzlBMTg1LjIsMTg1LjIsMCwwLDEsODMuNCw2Ny40M2EyMDgsMjA4LDAsMCwxLDE5LTE1LjY2YzMuMzUtMi40MSw2Ljc0LTQuNzgsMTAuMjUtN3M3LjExLTQuMjgsMTAuNzUtNi4zMmM3LjI5LTQsMTQuNzMtOCwyMi41My0xMS40OSwzLjktMS43Miw3Ljg4LTMuMywxMi00LjY0YTEwNC4yMiwxMDQuMjIsMCwwLDEsMTIuNDQtMy4yMyw2Mi40NCw2Mi40NCwwLDAsMSwxMi43OC0xLjM5QTI1LjkyLDI1LjkyLDAsMCwxLDE5NiwyMS40NGE2LjU1LDYuNTUsMCwwLDEsMi4wNSw5LDYuNjYsNi42NiwwLDAsMS0xLjY0LDEuNzhsLS40MS4yOWEyMi4wNywyMi4wNywwLDAsMS01Ljc4LDMsMzAuNDIsMzAuNDIsMCwwLDEtNS42NywxLjYyLDM3LjgyLDM3LjgyLDAsMCwxLTUuNjkuNzFjLTEsMC0xLjkuMTgtMi44NS4yNmwtMi44NS4yNHEtNS43Mi41MS0xMS40OCwxLjFjLTMuODQuNC03LjcxLjgyLTExLjU4LDEuNGExMTIuMzQsMTEyLjM0LDAsMCwwLTIyLjk0LDUuNjFjLTMuNzIsMS4zNS03LjM0LDMtMTAuOTQsNC42NHMtNy4xNCwzLjUxLTEwLjYsNS41MUExNTEuNiwxNTEuNiwwLDAsMCw2OC41Niw4N0M2Ny4yMyw4OC40OCw2Niw5MCw2NC42NCw5MS41NnMtMi41MSwzLjE1LTMuNzUsNC43M2wtMy41NCw0LjljLTEuMTMsMS42Ni0yLjIzLDMuMzUtMy4zMyw1YTEyNywxMjcsMCwwLDAtMTAuOTMsMjEuNDksMS41OCwxLjU4LDAsMSwxLTMtMS4xNVM0MC4xOSwxMjYuNDcsNDAuMjEsMTI2LjQzWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIzOTIiLz48L2c+PC9nPjwvc3ZnPg=="
: "https://cdn.babylonjs.com/Assets/loadingIcon.png"),
(r.style.position = "absolute"),
(r.style.left = "30%"),
(r.style.top = "30%"),
(r.style.width = "40%"),
(r.style.height = "40%"),
(r.style.animation = "spin1 0.75s infinite linear"),
(r.style.webkitAnimation = "spin1 0.75s infinite linear"),
(r.style.transformOrigin = "50% 50%"),
(r.style.webkitTransformOrigin = "50% 50%"),
!n)
) {
var o = { w: 16, h: 18.5 },
a = { w: 30, h: 30 };
(i.style.width = o.w + "vh"),
(i.style.height = o.h + "vh"),
(i.style.left = "calc(50% - " + o.w / 2 + "vh)"),
(i.style.top = "calc(50% - " + o.h / 2 + "vh)"),
(r.style.width = a.w + "vh"),
(r.style.height = a.h + "vh"),
(r.style.left = "calc(50% - " + a.w / 2 + "vh)"),
(r.style.top = "calc(50% - " + a.h / 2 + "vh)");
}
this._loadingDiv.appendChild(i),
this._loadingDiv.appendChild(r),
this._resizeLoadingUI(),
window.addEventListener("resize", this._resizeLoadingUI),
(this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor),
document.body.appendChild(this._loadingDiv),
(this._loadingDiv.style.opacity = "1");
}
}),
(e.prototype.hideLoadingUI = function () {
var e = this;
if (this._loadingDiv) {
(this._loadingDiv.style.opacity = "0"),
this._loadingDiv.addEventListener("transitionend", function () {
e._loadingDiv && (e._loadingDiv.parentElement && e._loadingDiv.parentElement.removeChild(e._loadingDiv), window.removeEventListener("resize", e._resizeLoadingUI), (e._loadingDiv = null));
});
}
}),
Object.defineProperty(e.prototype, "loadingUIText", {
get: function () {
return this._loadingText;
},
set: function (e) {
(this._loadingText = e), this._loadingTextDiv && (this._loadingTextDiv.innerHTML = this._loadingText);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "loadingUIBackgroundColor", {
get: function () {
return this._loadingDivBackgroundColor;
},
set: function (e) {
(this._loadingDivBackgroundColor = e), this._loadingDiv && (this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor);
},
enumerable: !0,
configurable: !0,
}),
(e.DefaultLogoUrl = ""),
(e.DefaultSpinnerUrl = ""),
e
);
})();
ue.a.DefaultLoadingScreenFactory = function (e) {
return new Pa(e);
};
var xa = n(79),
Ta = n(94),
Sa = (function () {
function e() {}
return (
(e.ConvertPanoramaToCubemap = function (e, t, n, i) {
if (!e) throw "ConvertPanoramaToCubemap: input cannot be null";
if (e.length != t * n * 3) throw "ConvertPanoramaToCubemap: input size is wrong";
return {
front: this.CreateCubemapTexture(i, this.FACE_FRONT, e, t, n),
back: this.CreateCubemapTexture(i, this.FACE_BACK, e, t, n),
left: this.CreateCubemapTexture(i, this.FACE_LEFT, e, t, n),
right: this.CreateCubemapTexture(i, this.FACE_RIGHT, e, t, n),
up: this.CreateCubemapTexture(i, this.FACE_UP, e, t, n),
down: this.CreateCubemapTexture(i, this.FACE_DOWN, e, t, n),
size: i,
type: 1,
format: 4,
gammaSpace: !1,
};
}),
(e.CreateCubemapTexture = function (e, t, n, i, r) {
for (var o = new ArrayBuffer(e * e * 4 * 3), a = new Float32Array(o), s = t[1].subtract(t[0]).scale(1 / e), c = t[3].subtract(t[2]).scale(1 / e), l = 1 / e, u = 0, h = 0; h < e; h++) {
for (var d = t[0], p = t[2], f = 0; f < e; f++) {
var m = p.subtract(d).scale(u).add(d);
m.normalize();
var g = this.CalcProjectionSpherical(m, n, i, r);
(a[h * e * 3 + 3 * f + 0] = g.r), (a[h * e * 3 + 3 * f + 1] = g.g), (a[h * e * 3 + 3 * f + 2] = g.b), (d = d.add(s)), (p = p.add(c));
}
u += l;
}
return a;
}),
(e.CalcProjectionSpherical = function (e, t, n, i) {
for (var r = Math.atan2(e.z, e.x), o = Math.acos(e.y); r < -Math.PI; ) r += 2 * Math.PI;
for (; r > Math.PI; ) r -= 2 * Math.PI;
var a = r / Math.PI,
s = o / Math.PI;
a = 0.5 * a + 0.5;
var c = Math.round(a * n);
c < 0 ? (c = 0) : c >= n && (c = n - 1);
var l = Math.round(s * i);
l < 0 ? (l = 0) : l >= i && (l = i - 1);
var u = i - l - 1;
return { r: t[u * n * 3 + 3 * c + 0], g: t[u * n * 3 + 3 * c + 1], b: t[u * n * 3 + 3 * c + 2] };
}),
(e.FACE_FRONT = [new a.e(-1, -1, -1), new a.e(1, -1, -1), new a.e(-1, 1, -1), new a.e(1, 1, -1)]),
(e.FACE_BACK = [new a.e(1, -1, 1), new a.e(-1, -1, 1), new a.e(1, 1, 1), new a.e(-1, 1, 1)]),
(e.FACE_RIGHT = [new a.e(1, -1, -1), new a.e(1, -1, 1), new a.e(1, 1, -1), new a.e(1, 1, 1)]),
(e.FACE_LEFT = [new a.e(-1, -1, 1), new a.e(-1, -1, -1), new a.e(-1, 1, 1), new a.e(-1, 1, -1)]),
(e.FACE_DOWN = [new a.e(-1, 1, -1), new a.e(1, 1, -1), new a.e(-1, 1, 1), new a.e(1, 1, 1)]),
(e.FACE_UP = [new a.e(-1, -1, 1), new a.e(1, -1, 1), new a.e(-1, -1, -1), new a.e(1, -1, -1)]),
e
);
})(),
Oa = (function () {
function e() {}
return (
(e.Ldexp = function (e, t) {
return t > 1023 ? e * Math.pow(2, 1023) * Math.pow(2, t - 1023) : t < -1074 ? e * Math.pow(2, -1074) * Math.pow(2, t + 1074) : e * Math.pow(2, t);
}),
(e.Rgbe2float = function (e, t, n, i, r, o) {
r > 0 ? ((r = this.Ldexp(1, r - 136)), (e[o + 0] = t * r), (e[o + 1] = n * r), (e[o + 2] = i * r)) : ((e[o + 0] = 0), (e[o + 1] = 0), (e[o + 2] = 0));
}),
(e.readStringLine = function (e, t) {
for (var n = "", i = "", r = t; r < e.length - t && "\n" != (i = String.fromCharCode(e[r])); r++) n += i;
return n;
}),
(e.RGBE_ReadHeader = function (e) {
var t,
n,
i = this.readStringLine(e, 0);
if ("#" != i[0] || "?" != i[1]) throw "Bad HDR Format.";
var r = !1,
o = !1,
a = 0;
do {
(a += i.length + 1), "FORMAT=32-bit_rle_rgbe" == (i = this.readStringLine(e, a)) ? (o = !0) : 0 == i.length && (r = !0);
} while (!r);
if (!o) throw "HDR Bad header format, unsupported FORMAT";
(a += i.length + 1), (i = this.readStringLine(e, a));
var s = /^\-Y (.*) \+X (.*)$/g.exec(i);
if (!s || s.length < 3) throw "HDR Bad header format, no size";
if (((n = parseInt(s[2])), (t = parseInt(s[1])), n < 8 || n > 32767)) throw "HDR Bad header format, unsupported size";
return { height: t, width: n, dataPosition: (a += i.length + 1) };
}),
(e.GetCubeMapTextureData = function (e, t) {
var n = new Uint8Array(e),
i = this.RGBE_ReadHeader(n),
r = this.RGBE_ReadPixels_RLE(n, i);
return Sa.ConvertPanoramaToCubemap(r, i.width, i.height, t);
}),
(e.RGBE_ReadPixels = function (e, t) {
return this.RGBE_ReadPixels_RLE(e, t);
}),
(e.RGBE_ReadPixels_RLE = function (e, t) {
for (
var n, i, r, o, a, s = t.height, c = t.width, l = t.dataPosition, u = 0, h = 0, d = 0, p = new ArrayBuffer(4 * c), f = new Uint8Array(p), m = new ArrayBuffer(t.width * t.height * 4 * 3), g = new Float32Array(m);
s > 0;
) {
if (((n = e[l++]), (i = e[l++]), (r = e[l++]), (o = e[l++]), 2 != n || 2 != i || 128 & r)) throw "HDR Bad header format, not RLE";
if (((r << 8) | o) != c) throw "HDR Bad header format, wrong scan line width";
for (u = 0, d = 0; d < 4; d++)
for (h = (d + 1) * c; u < h; )
if (((n = e[l++]), (i = e[l++]), n > 128)) {
if (0 == (a = n - 128) || a > h - u) throw "HDR Bad Format, bad scanline data (run)";
for (; a-- > 0; ) f[u++] = i;
} else {
if (0 == (a = n) || a > h - u) throw "HDR Bad Format, bad scanline data (non-run)";
if (((f[u++] = i), --a > 0)) for (var b = 0; b < a; b++) f[u++] = e[l++];
}
for (d = 0; d < c; d++) (n = f[d]), (i = f[d + c]), (r = f[d + 2 * c]), (o = f[d + 3 * c]), this.Rgbe2float(g, n, i, r, o, (t.height - s) * c * 3 + 3 * d);
s--;
}
return g;
}),
e
);
})(),
Ea =
(n(155),
n(213),
(function (e) {
function t(t, n, i, r, o, s, c, l, u) {
void 0 === r && (r = !1), void 0 === o && (o = !0), void 0 === s && (s = !1), void 0 === c && (c = !1), void 0 === l && (l = null), void 0 === u && (u = null);
var h = e.call(this, n) || this;
return (
(h._generateHarmonics = !0),
(h._onLoad = null),
(h._onError = null),
(h.coordinatesMode = ln.a.CUBIC_MODE),
(h._isBlocking = !0),
(h._rotationY = 0),
(h.boundingBoxPosition = a.e.Zero()),
t
? ((h.name = t),
(h.url = t),
(h.hasAlpha = !1),
(h.isCube = !0),
(h._textureMatrix = a.a.Identity()),
(h._onLoad = l),
(h._onError = u),
(h.gammaSpace = s),
(h._noMipmap = r),
(h._size = i),
(h._generateHarmonics = o),
(h._texture = h._getFromCache(t, h._noMipmap)),
h._texture
? l &&
(h._texture.isReady
? $e.b.SetImmediate(function () {
return l();
})
: h._texture.onLoadedObservable.add(l))
: n.useDelayedTextureLoading
? (h.delayLoadState = 4)
: h.loadTexture(),
h)
: h
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "isBlocking", {
get: function () {
return this._isBlocking;
},
set: function (e) {
this._isBlocking = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rotationY", {
get: function () {
return this._rotationY;
},
set: function (e) {
(this._rotationY = e), this.setReflectionTextureMatrix(a.a.RotationY(this._rotationY));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "boundingBoxSize", {
get: function () {
return this._boundingBoxSize;
},
set: function (e) {
if (!this._boundingBoxSize || !this._boundingBoxSize.equals(e)) {
this._boundingBoxSize = e;
var t = this.getScene();
t && t.markAllMaterialsAsDirty(1);
}
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "HDRCubeTexture";
}),
(t.prototype.loadTexture = function () {
var e = this,
n = this.getScene();
n &&
(this._texture = n.getEngine().createRawCubeTextureFromUrl(
this.url,
n,
this._size,
4,
n.getEngine().getCaps().textureFloat ? 1 : 0,
this._noMipmap,
function (n) {
(e.lodGenerationOffset = 0), (e.lodGenerationScale = 0.8);
var i = e.getScene();
if (!i) return null;
var r = Oa.GetCubeMapTextureData(n, e._size);
if (e._generateHarmonics) {
var o = Xr.a.ConvertCubeMapToSphericalPolynomial(r);
e.sphericalPolynomial = o;
}
for (var a = [], s = null, c = 0; c < 6; c++) {
if (!i.getEngine().getCaps().textureFloat) {
var l = new ArrayBuffer(e._size * e._size * 3);
s = new Uint8Array(l);
}
var u = r[t._facesMapping[c]];
if (e.gammaSpace || s)
for (var h = 0; h < e._size * e._size; h++)
if ((e.gammaSpace && ((u[3 * h + 0] = Math.pow(u[3 * h + 0], j.b)), (u[3 * h + 1] = Math.pow(u[3 * h + 1], j.b)), (u[3 * h + 2] = Math.pow(u[3 * h + 2], j.b))), s)) {
var d = Math.max(255 * u[3 * h + 0], 0),
p = Math.max(255 * u[3 * h + 1], 0),
f = Math.max(255 * u[3 * h + 2], 0),
m = Math.max(Math.max(d, p), f);
if (m > 255) {
var g = 255 / m;
(d *= g), (p *= g), (f *= g);
}
(s[3 * h + 0] = d), (s[3 * h + 1] = p), (s[3 * h + 2] = f);
}
s ? a.push(s) : a.push(u);
}
return a;
},
null,
this._onLoad,
this._onError
));
}),
(t.prototype.clone = function () {
var e = this.getScene();
if (!e) return this;
var n = new t(this.url, e, this._size, this._noMipmap, this._generateHarmonics, this.gammaSpace);
return (n.level = this.level), (n.wrapU = this.wrapU), (n.wrapV = this.wrapV), (n.coordinatesIndex = this.coordinatesIndex), (n.coordinatesMode = this.coordinatesMode), n;
}),
(t.prototype.delayLoad = function () {
4 === this.delayLoadState && ((this.delayLoadState = 1), (this._texture = this._getFromCache(this.url, this._noMipmap)), this._texture || this.loadTexture());
}),
(t.prototype.getReflectionTextureMatrix = function () {
return this._textureMatrix;
}),
(t.prototype.setReflectionTextureMatrix = function (e) {
var t = this;
(this._textureMatrix = e),
e.updateFlag !== this._textureMatrix.updateFlag &&
e.isIdentity() !== this._textureMatrix.isIdentity() &&
this.getScene().markAllMaterialsAsDirty(1, function (e) {
return -1 !== e.getActiveTextures().indexOf(t);
});
}),
(t.Parse = function (e, n, i) {
var r = null;
return (
e.name &&
!e.isRenderTarget &&
(((r = new t(i + e.name, n, e.size, e.noMipmap, e.generateHarmonics, e.useInGammaSpace)).name = e.name),
(r.hasAlpha = e.hasAlpha),
(r.level = e.level),
(r.coordinatesMode = e.coordinatesMode),
(r.isBlocking = e.isBlocking)),
r &&
(e.boundingBoxPosition && (r.boundingBoxPosition = a.e.FromArray(e.boundingBoxPosition)),
e.boundingBoxSize && (r.boundingBoxSize = a.e.FromArray(e.boundingBoxSize)),
e.rotationY && (r.rotationY = e.rotationY)),
r
);
}),
(t.prototype.serialize = function () {
if (!this.name) return null;
var e = {};
return (
(e.name = this.name),
(e.hasAlpha = this.hasAlpha),
(e.isCube = !0),
(e.level = this.level),
(e.size = this._size),
(e.coordinatesMode = this.coordinatesMode),
(e.useInGammaSpace = this.gammaSpace),
(e.generateHarmonics = this._generateHarmonics),
(e.customType = "BABYLON.HDRCubeTexture"),
(e.noMipmap = this._noMipmap),
(e.isBlocking = this._isBlocking),
(e.rotationY = this._rotationY),
e
);
}),
(t._facesMapping = ["right", "left", "up", "down", "front", "back"]),
t
);
})(Cr.a));
c.a.RegisteredTypes["BABYLON.HDRCubeTexture"] = Ea;
var Ma = n(154),
Aa = (function () {
function e(t, n) {
if ((void 0 === n && (n = e.DefaultPluginFactory()), (this._physicsPlugin = n), (this._impostors = []), (this._joints = []), (this._subTimeStep = 0), !this._physicsPlugin.isSupported()))
throw new Error("Physics Engine " + this._physicsPlugin.name + " cannot be found. Please make sure it is included.");
(t = t || new a.e(0, -9.807, 0)), this.setGravity(t), this.setTimeStep();
}
return (
(e.DefaultPluginFactory = function () {
throw zo.a.WarnImport("CannonJSPlugin");
}),
(e.prototype.setGravity = function (e) {
(this.gravity = e), this._physicsPlugin.setGravity(this.gravity);
}),
(e.prototype.setTimeStep = function (e) {
void 0 === e && (e = 1 / 60), this._physicsPlugin.setTimeStep(e);
}),
(e.prototype.getTimeStep = function () {
return this._physicsPlugin.getTimeStep();
}),
(e.prototype.setSubTimeStep = function (e) {
void 0 === e && (e = 0), (this._subTimeStep = e);
}),
(e.prototype.getSubTimeStep = function () {
return this._subTimeStep;
}),
(e.prototype.dispose = function () {
this._impostors.forEach(function (e) {
e.dispose();
}),
this._physicsPlugin.dispose();
}),
(e.prototype.getPhysicsPluginName = function () {
return this._physicsPlugin.name;
}),
(e.prototype.addImpostor = function (e) {
(e.uniqueId = this._impostors.push(e)), e.parent || this._physicsPlugin.generatePhysicsBody(e);
}),
(e.prototype.removeImpostor = function (e) {
var t = this._impostors.indexOf(e);
t > -1 && this._impostors.splice(t, 1).length && this.getPhysicsPlugin().removePhysicsBody(e);
}),
(e.prototype.addJoint = function (e, t, n) {
var i = { mainImpostor: e, connectedImpostor: t, joint: n };
(n.physicsPlugin = this._physicsPlugin), this._joints.push(i), this._physicsPlugin.generateJoint(i);
}),
(e.prototype.removeJoint = function (e, t, n) {
var i = this._joints.filter(function (i) {
return i.connectedImpostor === t && i.joint === n && i.mainImpostor === e;
});
i.length && this._physicsPlugin.removeJoint(i[0]);
}),
(e.prototype._step = function (e) {
var t = this;
this._impostors.forEach(function (e) {
e.isBodyInitRequired() && t._physicsPlugin.generatePhysicsBody(e);
}),
e > 0.1 ? (e = 0.1) : e <= 0 && (e = 1 / 60),
this._physicsPlugin.executeStep(e, this._impostors);
}),
(e.prototype.getPhysicsPlugin = function () {
return this._physicsPlugin;
}),
(e.prototype.getImpostors = function () {
return this._impostors;
}),
(e.prototype.getImpostorForPhysicsObject = function (e) {
for (var t = 0; t < this._impostors.length; ++t) if (this._impostors[t].object === e) return this._impostors[t];
return null;
}),
(e.prototype.getImpostorWithPhysicsBody = function (e) {
for (var t = 0; t < this._impostors.length; ++t) if (this._impostors[t].physicsBody === e) return this._impostors[t];
return null;
}),
(e.prototype.raycast = function (e, t) {
return this._physicsPlugin.raycast(e, t);
}),
(e.Epsilon = 0.001),
e
);
})(),
Ia = (function () {
function e() {
(this._hasHit = !1), (this._hitDistance = 0), (this._hitNormalWorld = a.e.Zero()), (this._hitPointWorld = a.e.Zero()), (this._rayFromWorld = a.e.Zero()), (this._rayToWorld = a.e.Zero());
}
return (
Object.defineProperty(e.prototype, "hasHit", {
get: function () {
return this._hasHit;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hitDistance", {
get: function () {
return this._hitDistance;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hitNormalWorld", {
get: function () {
return this._hitNormalWorld;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hitPointWorld", {
get: function () {
return this._hitPointWorld;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rayFromWorld", {
get: function () {
return this._rayFromWorld;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rayToWorld", {
get: function () {
return this._rayToWorld;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setHitData = function (e, t) {
(this._hasHit = !0), (this._hitNormalWorld = new a.e(e.x, e.y, e.z)), (this._hitPointWorld = new a.e(t.x, t.y, t.z));
}),
(e.prototype.setHitDistance = function (e) {
this._hitDistance = e;
}),
(e.prototype.calculateHitDistance = function () {
this._hitDistance = a.e.Distance(this._rayFromWorld, this._hitPointWorld);
}),
(e.prototype.reset = function (e, t) {
void 0 === e && (e = a.e.Zero()),
void 0 === t && (t = a.e.Zero()),
(this._rayFromWorld = e),
(this._rayToWorld = t),
(this._hasHit = !1),
(this._hitDistance = 0),
(this._hitNormalWorld = a.e.Zero()),
(this._hitPointWorld = a.e.Zero());
}),
e
);
})(),
Da = (function () {
function e(e, t, n) {
void 0 === e && (e = !0),
void 0 === t && (t = 10),
void 0 === n && (n = CANNON),
(this._useDeltaForWorldStep = e),
(this.name = "CannonJSPlugin"),
(this._physicsMaterials = new Array()),
(this._fixedTimeStep = 1 / 60),
(this._physicsBodysToRemoveAfterStep = new Array()),
(this._minus90X = new a.b(-0.7071067811865475, 0, 0, 0.7071067811865475)),
(this._plus90X = new a.b(0.7071067811865475, 0, 0, 0.7071067811865475)),
(this._tmpPosition = a.e.Zero()),
(this._tmpDeltaPosition = a.e.Zero()),
(this._tmpUnityRotation = new a.b()),
(this.BJSCANNON = n),
this.isSupported()
? (this._extendNamespace(),
(this.world = new this.BJSCANNON.World()),
(this.world.broadphase = new this.BJSCANNON.NaiveBroadphase()),
(this.world.solver.iterations = t),
(this._cannonRaycastResult = new this.BJSCANNON.RaycastResult()),
(this._raycastResult = new Ia()))
: g.a.Error("CannonJS is not available. Please make sure you included the js file.");
}
return (
(e.prototype.setGravity = function (e) {
this.world.gravity.copy(e);
}),
(e.prototype.setTimeStep = function (e) {
this._fixedTimeStep = e;
}),
(e.prototype.getTimeStep = function () {
return this._fixedTimeStep;
}),
(e.prototype.executeStep = function (e) {
this.world.step(this._fixedTimeStep, this._useDeltaForWorldStep ? e : 0, 3), this._removeMarkedPhysicsBodiesFromWorld();
}),
(e.prototype._removeMarkedPhysicsBodiesFromWorld = function () {
var e = this;
this._physicsBodysToRemoveAfterStep.length > 0 &&
(this._physicsBodysToRemoveAfterStep.forEach(function (t) {
e.world.remove(t);
}),
(this._physicsBodysToRemoveAfterStep = []));
}),
(e.prototype.applyImpulse = function (e, t, n) {
var i = new this.BJSCANNON.Vec3(n.x, n.y, n.z),
r = new this.BJSCANNON.Vec3(t.x, t.y, t.z);
e.physicsBody.applyImpulse(r, i);
}),
(e.prototype.applyForce = function (e, t, n) {
var i = new this.BJSCANNON.Vec3(n.x, n.y, n.z),
r = new this.BJSCANNON.Vec3(t.x, t.y, t.z);
e.physicsBody.applyForce(r, i);
}),
(e.prototype.generatePhysicsBody = function (e) {
if ((this._removeMarkedPhysicsBodiesFromWorld(), e.parent)) e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate());
else {
if (e.isBodyInitRequired()) {
var t = this._createShape(e),
n = e.physicsBody;
n && this.removePhysicsBody(e);
var i = this._addMaterial("mat-" + e.uniqueId, e.getParam("friction"), e.getParam("restitution")),
r = { mass: e.getParam("mass"), material: i },
o = e.getParam("nativeOptions");
for (var a in o) o.hasOwnProperty(a) && (r[a] = o[a]);
(e.physicsBody = new this.BJSCANNON.Body(r)),
e.physicsBody.addEventListener("collide", e.onCollide),
this.world.addEventListener("preStep", e.beforeStep),
this.world.addEventListener("postStep", e.afterStep),
e.physicsBody.addShape(t),
this.world.add(e.physicsBody),
n &&
["force", "torque", "velocity", "angularVelocity"].forEach(function (t) {
e.physicsBody[t].copy(n[t]);
}),
this._processChildMeshes(e);
}
this._updatePhysicsBodyTransformation(e);
}
}),
(e.prototype._processChildMeshes = function (e) {
var t = this,
n = e.object.getChildMeshes ? e.object.getChildMeshes(!0) : [],
i = e.object.rotationQuaternion;
if (n.length) {
var r = function (n, o) {
if (i && o.rotationQuaternion) {
var s = o.getPhysicsImpostor();
if (s)
if (s.parent !== e) {
var c = o.position.clone(),
l = o.rotationQuaternion.multiply(a.b.Inverse(i));
s.physicsBody && (t.removePhysicsBody(s), (s.physicsBody = null)),
(s.parent = e),
s.resetUpdateFlags(),
e.physicsBody.addShape(t._createShape(s), new t.BJSCANNON.Vec3(c.x, c.y, c.z), new t.BJSCANNON.Quaternion(l.x, l.y, l.z, l.w)),
(e.physicsBody.mass += s.getParam("mass"));
}
i.multiplyInPlace(o.rotationQuaternion),
o
.getChildMeshes(!0)
.filter(function (e) {
return !!e.physicsImpostor;
})
.forEach(r.bind(t, o.getAbsolutePosition()));
}
};
n.filter(function (e) {
return !!e.physicsImpostor;
}).forEach(r.bind(this, e.object.getAbsolutePosition()));
}
}),
(e.prototype.removePhysicsBody = function (e) {
e.physicsBody.removeEventListener("collide", e.onCollide),
this.world.removeEventListener("preStep", e.beforeStep),
this.world.removeEventListener("postStep", e.afterStep),
-1 === this._physicsBodysToRemoveAfterStep.indexOf(e.physicsBody) && this._physicsBodysToRemoveAfterStep.push(e.physicsBody);
}),
(e.prototype.generateJoint = function (e) {
var t = e.mainImpostor.physicsBody,
n = e.connectedImpostor.physicsBody;
if (t && n) {
var i,
r = e.joint.jointData,
o = {
pivotA: r.mainPivot ? new this.BJSCANNON.Vec3().copy(r.mainPivot) : null,
pivotB: r.connectedPivot ? new this.BJSCANNON.Vec3().copy(r.connectedPivot) : null,
axisA: r.mainAxis ? new this.BJSCANNON.Vec3().copy(r.mainAxis) : null,
axisB: r.connectedAxis ? new this.BJSCANNON.Vec3().copy(r.connectedAxis) : null,
maxForce: r.nativeParams.maxForce,
collideConnected: !!r.collision,
};
switch (e.joint.type) {
case gi.HingeJoint:
case gi.Hinge2Joint:
i = new this.BJSCANNON.HingeConstraint(t, n, o);
break;
case gi.DistanceJoint:
i = new this.BJSCANNON.DistanceConstraint(t, n, r.maxDistance || 2);
break;
case gi.SpringJoint:
var a = r;
i = new this.BJSCANNON.Spring(t, n, { restLength: a.length, stiffness: a.stiffness, damping: a.damping, localAnchorA: o.pivotA, localAnchorB: o.pivotB });
break;
case gi.LockJoint:
i = new this.BJSCANNON.LockConstraint(t, n, o);
break;
case gi.PointToPointJoint:
case gi.BallAndSocketJoint:
default:
i = new this.BJSCANNON.PointToPointConstraint(t, o.pivotA, n, o.pivotB, o.maxForce);
}
(i.collideConnected = !!r.collision),
(e.joint.physicsJoint = i),
e.joint.type !== gi.SpringJoint
? this.world.addConstraint(i)
: ((e.joint.jointData.forceApplicationCallback =
e.joint.jointData.forceApplicationCallback ||
function () {
i.applyForce();
}),
e.mainImpostor.registerAfterPhysicsStep(e.joint.jointData.forceApplicationCallback));
}
}),
(e.prototype.removeJoint = function (e) {
e.joint.type !== gi.SpringJoint ? this.world.removeConstraint(e.joint.physicsJoint) : e.mainImpostor.unregisterAfterPhysicsStep(e.joint.jointData.forceApplicationCallback);
}),
(e.prototype._addMaterial = function (e, t, n) {
var i, r;
for (i = 0; i < this._physicsMaterials.length; i++) if ((r = this._physicsMaterials[i]).friction === t && r.restitution === n) return r;
var o = new this.BJSCANNON.Material(e);
return (o.friction = t), (o.restitution = n), this._physicsMaterials.push(o), o;
}),
(e.prototype._checkWithEpsilon = function (e) {
return e < Aa.Epsilon ? Aa.Epsilon : e;
}),
(e.prototype._createShape = function (e) {
var t,
n = e.object,
i = e.getObjectExtendSize();
switch (e.type) {
case Ci.SphereImpostor:
var r = i.x,
o = i.y,
s = i.z;
t = new this.BJSCANNON.Sphere(Math.max(this._checkWithEpsilon(r), this._checkWithEpsilon(o), this._checkWithEpsilon(s)) / 2);
break;
case Ci.CylinderImpostor:
var c = e.getParam("nativeOptions");
c || (c = {});
var l = void 0 !== c.radiusTop ? c.radiusTop : this._checkWithEpsilon(i.x) / 2,
u = void 0 !== c.radiusBottom ? c.radiusBottom : this._checkWithEpsilon(i.x) / 2,
h = void 0 !== c.height ? c.height : this._checkWithEpsilon(i.y),
d = void 0 !== c.numSegments ? c.numSegments : 16;
t = new this.BJSCANNON.Cylinder(l, u, h, d);
var p = new this.BJSCANNON.Quaternion();
p.setFromAxisAngle(new this.BJSCANNON.Vec3(1, 0, 0), -Math.PI / 2);
var f = new this.BJSCANNON.Vec3(0, 0, 0);
t.transformAllPoints(f, p);
break;
case Ci.BoxImpostor:
var m = i.scale(0.5);
t = new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(this._checkWithEpsilon(m.x), this._checkWithEpsilon(m.y), this._checkWithEpsilon(m.z)));
break;
case Ci.PlaneImpostor:
g.a.Warn("Attention, PlaneImposter might not behave as you expect. Consider using BoxImposter instead"), (t = new this.BJSCANNON.Plane());
break;
case Ci.MeshImpostor:
var b = n.getVerticesData ? n.getVerticesData(wn.b.PositionKind) : [],
_ = n.getIndices ? n.getIndices() : [];
if (!b) return;
var v = n.position.clone(),
y = n.rotation && n.rotation.clone(),
C = n.rotationQuaternion && n.rotationQuaternion.clone();
n.position.copyFromFloats(0, 0, 0),
n.rotation && n.rotation.copyFromFloats(0, 0, 0),
n.rotationQuaternion && n.rotationQuaternion.copyFrom(e.getParentsRotation()),
n.rotationQuaternion && n.parent && n.rotationQuaternion.conjugateInPlace();
var P,
x = n.computeWorldMatrix(!0),
T = new Array();
for (P = 0; P < b.length; P += 3) a.e.TransformCoordinates(a.e.FromArray(b, P), x).toArray(T, P);
g.a.Warn("MeshImpostor only collides against spheres."),
(t = new this.BJSCANNON.Trimesh(T, _)),
n.position.copyFrom(v),
y && n.rotation && n.rotation.copyFrom(y),
C && n.rotationQuaternion && n.rotationQuaternion.copyFrom(C);
break;
case Ci.HeightmapImpostor:
var S = n.position.clone(),
O = n.rotation && n.rotation.clone(),
E = n.rotationQuaternion && n.rotationQuaternion.clone();
n.position.copyFromFloats(0, 0, 0),
n.rotation && n.rotation.copyFromFloats(0, 0, 0),
n.rotationQuaternion && n.rotationQuaternion.copyFrom(e.getParentsRotation()),
n.rotationQuaternion && n.parent && n.rotationQuaternion.conjugateInPlace(),
n.rotationQuaternion && n.rotationQuaternion.multiplyInPlace(this._minus90X),
(t = this._createHeightmap(n)),
n.position.copyFrom(S),
O && n.rotation && n.rotation.copyFrom(O),
E && n.rotationQuaternion && n.rotationQuaternion.copyFrom(E),
n.computeWorldMatrix(!0);
break;
case Ci.ParticleImpostor:
t = new this.BJSCANNON.Particle();
break;
case Ci.NoImpostor:
t = new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(0, 0, 0));
}
return t;
}),
(e.prototype._createHeightmap = function (e, t) {
var n,
i = e.getVerticesData(wn.b.PositionKind),
r = e.computeWorldMatrix(!0),
o = new Array();
for (n = 0; n < i.length; n += 3) a.e.TransformCoordinates(a.e.FromArray(i, n), r).toArray(o, n);
i = o;
for (
var s = new Array(),
c = t || ~~(Math.sqrt(i.length / 3) - 1),
l = e.getBoundingInfo(),
u = Math.min(l.boundingBox.extendSizeWorld.x, l.boundingBox.extendSizeWorld.y),
h = l.boundingBox.extendSizeWorld.z,
d = (2 * u) / c,
p = 0;
p < i.length;
p += 3
) {
var f = Math.round(i[p + 0] / d + c / 2),
m = Math.round(-1 * (i[p + 1] / d - c / 2)),
g = -i[p + 2] + h;
s[f] || (s[f] = []), s[f][m] || (s[f][m] = g), (s[f][m] = Math.max(g, s[f][m]));
}
for (f = 0; f <= c; ++f) {
if (!s[f]) {
for (var b = 1; !s[(f + b) % c]; ) b++;
s[f] = s[(f + b) % c].slice();
}
for (m = 0; m <= c; ++m)
if (!s[f][m]) {
var _;
for (b = 1; void 0 === _; ) _ = s[f][(m + b++) % c];
s[f][m] = _;
}
}
var v = new this.BJSCANNON.Heightfield(s, { elementSize: d });
return (v.minY = h), v;
}),
(e.prototype._updatePhysicsBodyTransformation = function (e) {
var t = e.object;
if ((t.computeWorldMatrix && t.computeWorldMatrix(!0), t.getBoundingInfo())) {
var n = e.getObjectCenter();
this._tmpDeltaPosition.copyFrom(t.getAbsolutePivotPoint().subtract(n)), this._tmpDeltaPosition.divideInPlace(e.object.scaling), this._tmpPosition.copyFrom(n);
var i = t.rotationQuaternion;
if (i) {
if (((e.type !== Ci.PlaneImpostor && e.type !== Ci.HeightmapImpostor) || ((i = i.multiply(this._minus90X)), e.setDeltaRotation(this._plus90X)), e.type === Ci.HeightmapImpostor)) {
var r = t,
o = r.getBoundingInfo(),
s = r.rotationQuaternion;
(r.rotationQuaternion = this._tmpUnityRotation), r.computeWorldMatrix(!0);
var c = n.clone(),
l = r.getPivotMatrix();
l = l ? l.clone() : a.a.Identity();
var u = a.a.Translation(o.boundingBox.extendSizeWorld.x, 0, -o.boundingBox.extendSizeWorld.z);
r.setPreTransformMatrix(u), r.computeWorldMatrix(!0);
var h = o.boundingBox.centerWorld.subtract(n).subtract(r.position).negate();
this._tmpPosition.copyFromFloats(h.x, h.y - o.boundingBox.extendSizeWorld.y, h.z),
this._tmpDeltaPosition.copyFrom(o.boundingBox.centerWorld.subtract(c)),
(this._tmpDeltaPosition.y += o.boundingBox.extendSizeWorld.y),
(r.rotationQuaternion = s),
r.setPreTransformMatrix(l),
r.computeWorldMatrix(!0);
} else e.type === Ci.MeshImpostor && this._tmpDeltaPosition.copyFromFloats(0, 0, 0);
e.setDeltaPosition(this._tmpDeltaPosition), e.physicsBody.position.copy(this._tmpPosition), e.physicsBody.quaternion.copy(i);
}
}
}),
(e.prototype.setTransformationFromPhysicsBody = function (e) {
e.object.position.copyFrom(e.physicsBody.position), e.object.rotationQuaternion && e.object.rotationQuaternion.copyFrom(e.physicsBody.quaternion);
}),
(e.prototype.setPhysicsBodyTransformation = function (e, t, n) {
e.physicsBody.position.copy(t), e.physicsBody.quaternion.copy(n);
}),
(e.prototype.isSupported = function () {
return void 0 !== this.BJSCANNON;
}),
(e.prototype.setLinearVelocity = function (e, t) {
e.physicsBody.velocity.copy(t);
}),
(e.prototype.setAngularVelocity = function (e, t) {
e.physicsBody.angularVelocity.copy(t);
}),
(e.prototype.getLinearVelocity = function (e) {
var t = e.physicsBody.velocity;
return t ? new a.e(t.x, t.y, t.z) : null;
}),
(e.prototype.getAngularVelocity = function (e) {
var t = e.physicsBody.angularVelocity;
return t ? new a.e(t.x, t.y, t.z) : null;
}),
(e.prototype.setBodyMass = function (e, t) {
(e.physicsBody.mass = t), e.physicsBody.updateMassProperties();
}),
(e.prototype.getBodyMass = function (e) {
return e.physicsBody.mass;
}),
(e.prototype.getBodyFriction = function (e) {
return e.physicsBody.material.friction;
}),
(e.prototype.setBodyFriction = function (e, t) {
e.physicsBody.material.friction = t;
}),
(e.prototype.getBodyRestitution = function (e) {
return e.physicsBody.material.restitution;
}),
(e.prototype.setBodyRestitution = function (e, t) {
e.physicsBody.material.restitution = t;
}),
(e.prototype.sleepBody = function (e) {
e.physicsBody.sleep();
}),
(e.prototype.wakeUpBody = function (e) {
e.physicsBody.wakeUp();
}),
(e.prototype.updateDistanceJoint = function (e, t) {
e.physicsJoint.distance = t;
}),
(e.prototype.setMotor = function (e, t, n, i) {
i || (e.physicsJoint.enableMotor(), e.physicsJoint.setMotorSpeed(t), n && this.setLimit(e, n));
}),
(e.prototype.setLimit = function (e, t, n) {
(e.physicsJoint.motorEquation.maxForce = t), (e.physicsJoint.motorEquation.minForce = void 0 === n ? -t : n);
}),
(e.prototype.syncMeshWithImpostor = function (e, t) {
var n = t.physicsBody;
(e.position.x = n.position.x),
(e.position.y = n.position.y),
(e.position.z = n.position.z),
e.rotationQuaternion && ((e.rotationQuaternion.x = n.quaternion.x), (e.rotationQuaternion.y = n.quaternion.y), (e.rotationQuaternion.z = n.quaternion.z), (e.rotationQuaternion.w = n.quaternion.w));
}),
(e.prototype.getRadius = function (e) {
return e.physicsBody.shapes[0].boundingSphereRadius;
}),
(e.prototype.getBoxSizeToRef = function (e, t) {
var n = e.physicsBody.shapes[0];
(t.x = 2 * n.halfExtents.x), (t.y = 2 * n.halfExtents.y), (t.z = 2 * n.halfExtents.z);
}),
(e.prototype.dispose = function () {}),
(e.prototype._extendNamespace = function () {
var e = new this.BJSCANNON.Vec3(),
t = this.BJSCANNON;
this.BJSCANNON.World.prototype.step = function (n, i, r) {
if (((r = r || 10), 0 === (i = i || 0))) this.internalStep(n), (this.time += n);
else {
var o = Math.floor((this.time + i) / n) - Math.floor(this.time / n);
o = Math.min(o, r) || 1;
for (var a = performance.now(), s = 0; s !== o && (this.internalStep(n), !(performance.now() - a > 1e3 * n)); s++);
this.time += i;
for (var c = (this.time % n) / n, l = e, u = this.bodies, h = 0; h !== u.length; h++) {
var d = u[h];
d.type !== t.Body.STATIC && d.sleepState !== t.Body.SLEEPING
? (d.position.vsub(d.previousPosition, l), l.scale(c, l), d.position.vadd(l, d.interpolatedPosition))
: (d.interpolatedPosition.copy(d.position), d.interpolatedQuaternion.copy(d.quaternion));
}
}
};
}),
(e.prototype.raycast = function (e, t) {
return (
this._cannonRaycastResult.reset(),
this.world.raycastClosest(e, t, {}, this._cannonRaycastResult),
this._raycastResult.reset(e, t),
this._cannonRaycastResult.hasHit &&
(this._raycastResult.setHitData(
{ x: this._cannonRaycastResult.hitNormalWorld.x, y: this._cannonRaycastResult.hitNormalWorld.y, z: this._cannonRaycastResult.hitNormalWorld.z },
{ x: this._cannonRaycastResult.hitPointWorld.x, y: this._cannonRaycastResult.hitPointWorld.y, z: this._cannonRaycastResult.hitPointWorld.z }
),
this._raycastResult.setHitDistance(this._cannonRaycastResult.distance)),
this._raycastResult
);
}),
e
);
})();
Aa.DefaultPluginFactory = function () {
return new Da();
};
var Ra = (function () {
function e(e, t) {
void 0 === t && (t = OIMO),
(this.name = "OimoJSPlugin"),
(this._tmpImpostorsArray = []),
(this._tmpPositionVector = a.e.Zero()),
(this.BJSOIMO = t),
(this.world = new this.BJSOIMO.World({ iterations: e })),
this.world.clear(),
(this._raycastResult = new Ia());
}
return (
(e.prototype.setGravity = function (e) {
this.world.gravity.copy(e);
}),
(e.prototype.setTimeStep = function (e) {
this.world.timeStep = e;
}),
(e.prototype.getTimeStep = function () {
return this.world.timeStep;
}),
(e.prototype.executeStep = function (e, t) {
var n = this;
t.forEach(function (e) {
e.beforeStep();
}),
this.world.step(),
t.forEach(function (e) {
e.afterStep(), (n._tmpImpostorsArray[e.uniqueId] = e);
});
for (var i = this.world.contacts; null !== i; )
if (!i.touching || i.body1.sleeping || i.body2.sleeping) {
var r = this._tmpImpostorsArray[+i.body1.name],
o = this._tmpImpostorsArray[+i.body2.name];
r && o ? (r.onCollide({ body: o.physicsBody }), o.onCollide({ body: r.physicsBody }), (i = i.next)) : (i = i.next);
} else i = i.next;
}),
(e.prototype.applyImpulse = function (e, t, n) {
var i = e.physicsBody.mass;
e.physicsBody.applyImpulse(n.scale(this.world.invScale), t.scale(this.world.invScale * i));
}),
(e.prototype.applyForce = function (e, t, n) {
g.a.Warn("Oimo doesn't support applying force. Using impule instead."), this.applyImpulse(e, t, n);
}),
(e.prototype.generatePhysicsBody = function (e) {
var t = this;
if (e.parent) e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate());
else {
if (e.isBodyInitRequired()) {
var n = {
name: e.uniqueId,
config: [e.getParam("mass") || 0.001, e.getParam("friction"), e.getParam("restitution")],
size: [],
type: [],
pos: [],
posShape: [],
rot: [],
rotShape: [],
move: 0 !== e.getParam("mass"),
density: e.getParam("mass"),
friction: e.getParam("friction"),
restitution: e.getParam("restitution"),
world: this.world,
},
i = [e];
(s = e.object).getChildMeshes &&
s.getChildMeshes().forEach(function (e) {
e.physicsImpostor && i.push(e.physicsImpostor);
});
var r = function (e) {
return Math.max(e, Aa.Epsilon);
},
o = new a.b();
i.forEach(function (i) {
if (i.object.rotationQuaternion) {
var a = i.object.rotationQuaternion;
(o = a.clone()), i.object.rotationQuaternion.set(0, 0, 0, 1), i.object.computeWorldMatrix(!0);
var s = a.toEulerAngles(),
c = i.getObjectExtendSize();
if (i === e) {
var l = e.getObjectCenter();
e.object.getAbsolutePivotPoint().subtractToRef(l, t._tmpPositionVector),
t._tmpPositionVector.divideInPlace(e.object.scaling),
n.pos.push(l.x),
n.pos.push(l.y),
n.pos.push(l.z),
n.posShape.push(0, 0, 0),
n.rotShape.push(0, 0, 0);
} else {
var u = i.object.position.clone();
n.posShape.push(u.x), n.posShape.push(u.y), n.posShape.push(u.z), n.rotShape.push(57.29577951308232 * s.x), n.rotShape.push(57.29577951308232 * s.y), n.rotShape.push(57.29577951308232 * s.z);
}
switch ((i.object.rotationQuaternion.copyFrom(o), i.type)) {
case Ci.ParticleImpostor:
g.a.Warn("No Particle support in OIMO.js. using SphereImpostor instead");
case Ci.SphereImpostor:
var h = c.x,
d = c.y,
p = c.z,
f = Math.max(r(h), r(d), r(p)) / 2;
n.type.push("sphere"), n.size.push(f), n.size.push(f), n.size.push(f);
break;
case Ci.CylinderImpostor:
var m = r(c.x) / 2,
b = r(c.y);
n.type.push("cylinder"), n.size.push(m), n.size.push(b), n.size.push(b);
break;
case Ci.PlaneImpostor:
case Ci.BoxImpostor:
default:
(m = r(c.x)), (b = r(c.y));
var _ = r(c.z);
n.type.push("box"), n.size.push(m), n.size.push(b), n.size.push(_);
}
i.object.rotationQuaternion = a;
}
}),
(e.physicsBody = this.world.add(n)),
e.physicsBody.resetQuaternion(o),
e.physicsBody.updatePosition(0);
} else this._tmpPositionVector.copyFromFloats(0, 0, 0);
var s;
e.setDeltaPosition(this._tmpPositionVector);
}
}),
(e.prototype.removePhysicsBody = function (e) {
this.world.removeRigidBody(e.physicsBody);
}),
(e.prototype.generateJoint = function (e) {
var t = e.mainImpostor.physicsBody,
n = e.connectedImpostor.physicsBody;
if (t && n) {
var i,
r = e.joint.jointData,
o = r.nativeParams || {},
a = {
body1: t,
body2: n,
axe1: o.axe1 || (r.mainAxis ? r.mainAxis.asArray() : null),
axe2: o.axe2 || (r.connectedAxis ? r.connectedAxis.asArray() : null),
pos1: o.pos1 || (r.mainPivot ? r.mainPivot.asArray() : null),
pos2: o.pos2 || (r.connectedPivot ? r.connectedPivot.asArray() : null),
min: o.min,
max: o.max,
collision: o.collision || r.collision,
spring: o.spring,
world: this.world,
};
switch (e.joint.type) {
case gi.BallAndSocketJoint:
i = "jointBall";
break;
case gi.SpringJoint:
g.a.Warn("OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead");
var s = r;
(a.min = s.length || a.min), (a.max = Math.max(a.min, a.max));
case gi.DistanceJoint:
(i = "jointDistance"), (a.max = r.maxDistance);
break;
case gi.PrismaticJoint:
i = "jointPrisme";
break;
case gi.SliderJoint:
i = "jointSlide";
break;
case gi.WheelJoint:
i = "jointWheel";
break;
case gi.HingeJoint:
default:
i = "jointHinge";
}
(a.type = i), (e.joint.physicsJoint = this.world.add(a));
}
}),
(e.prototype.removeJoint = function (e) {
try {
this.world.removeJoint(e.joint.physicsJoint);
} catch (e) {
g.a.Warn(e);
}
}),
(e.prototype.isSupported = function () {
return void 0 !== this.BJSOIMO;
}),
(e.prototype.setTransformationFromPhysicsBody = function (e) {
if (!e.physicsBody.sleeping) {
if (e.physicsBody.shapes.next) {
for (var t = e.physicsBody.shapes; t.next; ) t = t.next;
e.object.position.copyFrom(t.position);
} else e.object.position.copyFrom(e.physicsBody.getPosition());
e.object.rotationQuaternion && e.object.rotationQuaternion.copyFrom(e.physicsBody.getQuaternion());
}
}),
(e.prototype.setPhysicsBodyTransformation = function (e, t, n) {
var i = e.physicsBody;
e.physicsBody.shapes.next || (i.position.copy(t), i.orientation.copy(n), i.syncShapes(), i.awake());
}),
(e.prototype.setLinearVelocity = function (e, t) {
e.physicsBody.linearVelocity.copy(t);
}),
(e.prototype.setAngularVelocity = function (e, t) {
e.physicsBody.angularVelocity.copy(t);
}),
(e.prototype.getLinearVelocity = function (e) {
var t = e.physicsBody.linearVelocity;
return t ? new a.e(t.x, t.y, t.z) : null;
}),
(e.prototype.getAngularVelocity = function (e) {
var t = e.physicsBody.angularVelocity;
return t ? new a.e(t.x, t.y, t.z) : null;
}),
(e.prototype.setBodyMass = function (e, t) {
var n = 0 === t;
(e.physicsBody.shapes.density = n ? 1 : t), e.physicsBody.setupMass(n ? 2 : 1);
}),
(e.prototype.getBodyMass = function (e) {
return e.physicsBody.shapes.density;
}),
(e.prototype.getBodyFriction = function (e) {
return e.physicsBody.shapes.friction;
}),
(e.prototype.setBodyFriction = function (e, t) {
e.physicsBody.shapes.friction = t;
}),
(e.prototype.getBodyRestitution = function (e) {
return e.physicsBody.shapes.restitution;
}),
(e.prototype.setBodyRestitution = function (e, t) {
e.physicsBody.shapes.restitution = t;
}),
(e.prototype.sleepBody = function (e) {
e.physicsBody.sleep();
}),
(e.prototype.wakeUpBody = function (e) {
e.physicsBody.awake();
}),
(e.prototype.updateDistanceJoint = function (e, t, n) {
(e.physicsJoint.limitMotor.upperLimit = t), void 0 !== n && (e.physicsJoint.limitMotor.lowerLimit = n);
}),
(e.prototype.setMotor = function (e, t, n, i) {
void 0 !== n ? g.a.Warn("OimoJS plugin currently has unexpected behavior when using setMotor with force parameter") : (n = 1e6), (t *= -1);
var r = i ? e.physicsJoint.rotationalLimitMotor2 : e.physicsJoint.rotationalLimitMotor1 || e.physicsJoint.rotationalLimitMotor || e.physicsJoint.limitMotor;
r && r.setMotor(t, n);
}),
(e.prototype.setLimit = function (e, t, n, i) {
var r = i ? e.physicsJoint.rotationalLimitMotor2 : e.physicsJoint.rotationalLimitMotor1 || e.physicsJoint.rotationalLimitMotor || e.physicsJoint.limitMotor;
r && r.setLimit(t, void 0 === n ? -t : n);
}),
(e.prototype.syncMeshWithImpostor = function (e, t) {
var n = t.physicsBody;
(e.position.x = n.position.x),
(e.position.y = n.position.y),
(e.position.z = n.position.z),
e.rotationQuaternion && ((e.rotationQuaternion.x = n.orientation.x), (e.rotationQuaternion.y = n.orientation.y), (e.rotationQuaternion.z = n.orientation.z), (e.rotationQuaternion.w = n.orientation.s));
}),
(e.prototype.getRadius = function (e) {
return e.physicsBody.shapes.radius;
}),
(e.prototype.getBoxSizeToRef = function (e, t) {
var n = e.physicsBody.shapes;
(t.x = 2 * n.halfWidth), (t.y = 2 * n.halfHeight), (t.z = 2 * n.halfDepth);
}),
(e.prototype.dispose = function () {
this.world.clear();
}),
(e.prototype.raycast = function (e, t) {
return g.a.Warn("raycast is not currently supported by the Oimo physics plugin"), this._raycastResult.reset(e, t), this._raycastResult;
}),
e
);
})();
(Rn.a.CreateRibbon = function (e) {
var t = e.pathArray,
n = e.closeArray || !1,
i = e.closePath || !1,
r = e.invertUV || !1,
o = Math.floor(t[0].length / 2),
a = e.offset || o;
a = a > o ? o : Math.floor(a);
var s,
c,
l,
u,
h = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE,
d = e.uvs,
p = e.colors,
f = [],
m = [],
g = [],
b = [],
_ = [],
v = [],
y = [],
C = [],
P = [],
x = [];
if (t.length < 2) {
var T = [],
S = [];
for (l = 0; l < t[0].length - a; l++) T.push(t[0][l]), S.push(t[0][l + a]);
t = [T, S];
}
var O,
E,
M,
A,
I,
D = 0,
R = i ? 1 : 0;
for (s = t[0].length, c = 0; c < t.length; c++) {
for (y[c] = 0, _[c] = [0], s = s < (E = (O = t[c]).length) ? s : E, u = 0; u < E; ) f.push(O[u].x, O[u].y, O[u].z), u > 0 && ((M = O[u].subtract(O[u - 1]).length() + y[c]), _[c].push(M), (y[c] = M)), u++;
i && (u--, f.push(O[0].x, O[0].y, O[0].z), (M = O[u].subtract(O[0]).length() + y[c]), _[c].push(M), (y[c] = M)), (P[c] = E + R), (x[c] = D), (D += E + R);
}
var w,
L,
F = null,
N = null;
for (l = 0; l < s + R; l++) {
for (C[l] = 0, v[l] = [0], c = 0; c < t.length - 1; c++) (A = t[c]), (I = t[c + 1]), l === s ? ((F = A[0]), (N = I[0])) : ((F = A[l]), (N = I[l])), (M = N.subtract(F).length() + C[l]), v[l].push(M), (C[l] = M);
n && N && F && ((A = t[c]), (I = t[0]), l === s && (N = I[0]), (M = N.subtract(F).length() + C[l]), (C[l] = M));
}
if (d) for (c = 0; c < d.length; c++) b.push(d[c].x, d[c].y);
else for (c = 0; c < t.length; c++) for (l = 0; l < s + R; l++) (w = 0 != y[c] ? _[c][l] / y[c] : 0), (L = 0 != C[l] ? v[l][c] / C[l] : 0), r ? b.push(L, w) : b.push(w, L);
for (var k = 0, z = P[(c = 0)] - 1, j = P[c + 1] - 1, B = z < j ? z : j, V = x[1] - x[0], G = n ? P.length : P.length - 1; k <= B && c < G; )
m.push(k, k + V, k + 1),
m.push(k + V + 1, k + 1, k + V),
(k += 1) === B && (++c === P.length - 1 ? ((V = x[0] - x[c]), (z = P[c] - 1), (j = P[0] - 1)) : ((V = x[c + 1] - x[c]), (z = P[c] - 1), (j = P[c + 1] - 1)), (k = x[c]), (B = z < j ? z + k : j + k));
if ((Rn.a.ComputeNormals(f, m, g), i)) {
var U = 0,
H = 0;
for (c = 0; c < t.length; c++)
(U = 3 * x[c]),
(H = c + 1 < t.length ? 3 * (x[c + 1] - 1) : g.length - 3),
(g[U] = 0.5 * (g[U] + g[H])),
(g[U + 1] = 0.5 * (g[U + 1] + g[H + 1])),
(g[U + 2] = 0.5 * (g[U + 2] + g[H + 2])),
(g[H] = g[U]),
(g[H + 1] = g[U + 1]),
(g[H + 2] = g[U + 2]);
}
Rn.a._ComputeSides(h, f, m, g, b, e.frontUVs, e.backUVs);
var W = null;
if (p) {
W = new Float32Array(4 * p.length);
for (var X = 0; X < p.length; X++) (W[4 * X] = p[X].r), (W[4 * X + 1] = p[X].g), (W[4 * X + 2] = p[X].b), (W[4 * X + 3] = p[X].a);
}
var Y = new Rn.a(),
K = new Float32Array(f),
Z = new Float32Array(g),
q = new Float32Array(b);
return (Y.indices = m), (Y.positions = K), (Y.normals = Z), (Y.uvs = q), W && Y.set(W, wn.b.ColorKind), i && (Y._idx = x), Y;
}),
(Ee.a.CreateRibbon = function (e, t, n, i, r, o, a, s, c) {
return void 0 === n && (n = !1), void 0 === a && (a = !1), wa.CreateRibbon(e, { pathArray: t, closeArray: n, closePath: i, offset: r, updatable: a, sideOrientation: s, instance: c }, o);
});
var wa = (function () {
function e() {}
return (
(e.CreateRibbon = function (e, t, n) {
void 0 === n && (n = null);
var i = t.pathArray,
r = t.closeArray,
o = t.closePath,
s = Ee.a._GetDefaultSideOrientation(t.sideOrientation),
c = t.instance,
l = t.updatable;
if (c) {
var u = a.c.Vector3[0].setAll(Number.MAX_VALUE),
h = a.c.Vector3[1].setAll(-Number.MAX_VALUE),
d = c.getVerticesData(wn.b.PositionKind);
if (
((function (e) {
for (var t = i[0].length, n = c, r = 0, o = n._originalBuilderSideOrientation === Ee.a.DOUBLESIDE ? 2 : 1, a = 1; a <= o; ++a)
for (var s = 0; s < i.length; ++s) {
var l = i[s],
d = l.length;
t = t < d ? t : d;
for (var p = 0; p < t; ++p) {
var f = l[p];
(e[r] = f.x), (e[r + 1] = f.y), (e[r + 2] = f.z), u.minimizeInPlaceFromFloats(f.x, f.y, f.z), h.maximizeInPlaceFromFloats(f.x, f.y, f.z), (r += 3);
}
if (n._creationDataStorage && n._creationDataStorage.closePath) {
f = l[0];
(e[r] = f.x), (e[r + 1] = f.y), (e[r + 2] = f.z), (r += 3);
}
}
})(d),
c._boundingInfo ? c._boundingInfo.reConstruct(u, h, c._worldMatrix) : (c._boundingInfo = new ti.a(u, h, c._worldMatrix)),
c.updateVerticesData(wn.b.PositionKind, d, !1, !1),
t.colors)
) {
for (var p = c.getVerticesData(wn.b.ColorKind), f = 0, m = 0; f < t.colors.length; f++, m += 4) {
var g = t.colors[f];
(p[m] = g.r), (p[m + 1] = g.g), (p[m + 2] = g.b), (p[m + 3] = g.a);
}
c.updateVerticesData(wn.b.ColorKind, p, !1, !1);
}
if (t.uvs) {
for (var b = c.getVerticesData(wn.b.UVKind), _ = 0; _ < t.uvs.length; _++) (b[2 * _] = t.uvs[_].x), (b[2 * _ + 1] = t.uvs[_].y);
c.updateVerticesData(wn.b.UVKind, b, !1, !1);
}
if (!c.areNormalsFrozen || c.isFacetDataEnabled) {
var v = c.getIndices(),
y = c.getVerticesData(wn.b.NormalKind),
C = c.isFacetDataEnabled ? c.getFacetDataParameters() : null;
if ((Rn.a.ComputeNormals(d, v, y, C), c._creationDataStorage && c._creationDataStorage.closePath))
for (var P = 0, x = 0, T = 0; T < i.length; T++)
(P = 3 * c._creationDataStorage.idx[T]),
(x = T + 1 < i.length ? 3 * (c._creationDataStorage.idx[T + 1] - 1) : y.length - 3),
(y[P] = 0.5 * (y[P] + y[x])),
(y[P + 1] = 0.5 * (y[P + 1] + y[x + 1])),
(y[P + 2] = 0.5 * (y[P + 2] + y[x + 2])),
(y[x] = y[P]),
(y[x + 1] = y[P + 1]),
(y[x + 2] = y[P + 2]);
c.areNormalsFrozen || c.updateVerticesData(wn.b.NormalKind, y, !1, !1);
}
return c;
}
var S = new Ee.a(e, n);
(S._originalBuilderSideOrientation = s), (S._creationDataStorage = new Ee.b());
var O = Rn.a.CreateRibbon(t);
return o && (S._creationDataStorage.idx = O._idx), (S._creationDataStorage.closePath = o), (S._creationDataStorage.closeArray = r), O.applyToMesh(S, l), S;
}),
e
);
})();
(Ee.a.ExtrudeShape = function (e, t, n, i, r, o, a, s, c, l) {
void 0 === a && (a = null);
var u = { shape: t, path: n, scale: i, rotation: r, cap: 0 === o ? 0 : o || Ee.a.NO_CAP, sideOrientation: c, instance: l, updatable: s };
return La.ExtrudeShape(e, u, a);
}),
(Ee.a.ExtrudeShapeCustom = function (e, t, n, i, r, o, a, s, c, l, u, h) {
var d = { shape: t, path: n, scaleFunction: i, rotationFunction: r, ribbonCloseArray: o, ribbonClosePath: a, cap: 0 === s ? 0 : s || Ee.a.NO_CAP, sideOrientation: u, instance: h, updatable: l };
return La.ExtrudeShapeCustom(e, d, c);
});
var La = (function () {
function e() {}
return (
(e.ExtrudeShape = function (t, n, i) {
void 0 === i && (i = null);
var r = n.path,
o = n.shape,
a = n.scale || 1,
s = n.rotation || 0,
c = 0 === n.cap ? 0 : n.cap || Ee.a.NO_CAP,
l = n.updatable,
u = Ee.a._GetDefaultSideOrientation(n.sideOrientation),
h = n.instance || null,
d = n.invertUV || !1;
return e._ExtrudeShapeGeneric(t, o, r, a, s, null, null, !1, !1, c, !1, i, !!l, u, h, d, n.frontUVs || null, n.backUVs || null);
}),
(e.ExtrudeShapeCustom = function (t, n, i) {
void 0 === i && (i = null);
var r = n.path,
o = n.shape,
a =
n.scaleFunction ||
function () {
return 1;
},
s =
n.rotationFunction ||
function () {
return 0;
},
c = n.ribbonCloseArray || !1,
l = n.ribbonClosePath || !1,
u = 0 === n.cap ? 0 : n.cap || Ee.a.NO_CAP,
h = n.updatable,
d = Ee.a._GetDefaultSideOrientation(n.sideOrientation),
p = n.instance,
f = n.invertUV || !1;
return e._ExtrudeShapeGeneric(t, o, r, null, null, a, s, c, l, u, !0, i, !!h, d, p || null, f, n.frontUVs || null, n.backUVs || null);
}),
(e._ExtrudeShapeGeneric = function (e, t, n, i, r, o, s, c, l, u, h, d, p, f, m, g, b, _) {
var v,
y,
C = function (e, t, n, i, r, o, s, c, l, u) {
for (
var h = n.getTangents(),
d = n.getNormals(),
p = n.getBinormals(),
f = n.getDistances(),
m = 0,
g =
u && c
? c
: function () {
return null !== o ? o : 0;
},
b =
u && s
? s
: function () {
return null !== r ? r : 1;
},
_ = l === Ee.a.NO_CAP || l === Ee.a.CAP_END ? 0 : 2,
v = a.c.Matrix[0],
y = 0;
y < t.length;
y++
) {
for (var C = new Array(), P = g(y, f[y]), x = b(y, f[y]), T = 0; T < e.length; T++) {
a.a.RotationAxisToRef(h[y], m, v);
var S = h[y].scale(e[T].z).add(d[y].scale(e[T].x)).add(p[y].scale(e[T].y)),
O = C[T] ? C[T] : a.e.Zero();
a.e.TransformCoordinatesToRef(S, v, O), O.scaleInPlace(x).addInPlace(t[y]), (C[T] = O);
}
(i[_] = C), (m += P), _++;
}
var E = function (e) {
var t,
n = Array(),
i = a.e.Zero();
for (t = 0; t < e.length; t++) i.addInPlace(e[t]);
for (i.scaleInPlace(1 / e.length), t = 0; t < e.length; t++) n.push(i);
return n;
};
switch (l) {
case Ee.a.NO_CAP:
break;
case Ee.a.CAP_START:
(i[0] = E(i[2])), (i[1] = i[2]);
break;
case Ee.a.CAP_END:
(i[_] = i[_ - 1]), (i[_ + 1] = E(i[_ - 1]));
break;
case Ee.a.CAP_ALL:
(i[0] = E(i[2])), (i[1] = i[2]), (i[_] = i[_ - 1]), (i[_ + 1] = E(i[_ - 1]));
}
return i;
};
if (m) {
var P = m._creationDataStorage;
return (v = P.path3D.update(n)), (y = C(t, n, P.path3D, P.pathArray, i, r, o, s, P.cap, h)), (m = Ee.a.CreateRibbon("", y, !1, !1, 0, d || void 0, !1, 0, m));
}
y = C(t, n, (v = new H(n)), new Array(), i, r, o, s, (u = u < 0 || u > 3 ? 0 : u), h);
var x = wa.CreateRibbon(e, { pathArray: y, closeArray: c, closePath: l, updatable: p, sideOrientation: f, invertUV: g, frontUVs: b || void 0, backUVs: _ || void 0 }, d);
return (x._creationDataStorage.pathArray = y), (x._creationDataStorage.path3D = v), (x._creationDataStorage.cap = u), x;
}),
e
);
})(),
Fa = (function () {
function e(e, t, n) {
var i = this;
void 0 === e && (e = !0),
void 0 === t && (t = Ammo),
void 0 === n && (n = null),
(this._useDeltaForWorldStep = e),
(this.bjsAMMO = {}),
(this.name = "AmmoJSPlugin"),
(this._timeStep = 1 / 60),
(this._fixedTimeStep = 1 / 60),
(this._maxSteps = 5),
(this._tmpQuaternion = new a.b()),
(this._tmpContactCallbackResult = !1),
(this._tmpVector = new a.e()),
(this._tmpMatrix = new a.a()),
"function" == typeof t ? t(this.bjsAMMO) : (this.bjsAMMO = t),
this.isSupported()
? ((this._collisionConfiguration = new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration()),
(this._dispatcher = new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration)),
(this._overlappingPairCache = n || new this.bjsAMMO.btDbvtBroadphase()),
(this._solver = new this.bjsAMMO.btSequentialImpulseConstraintSolver()),
(this._softBodySolver = new this.bjsAMMO.btDefaultSoftBodySolver()),
(this.world = new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher, this._overlappingPairCache, this._solver, this._collisionConfiguration, this._softBodySolver)),
(this._tmpAmmoConcreteContactResultCallback = new this.bjsAMMO.ConcreteContactResultCallback()),
(this._tmpAmmoConcreteContactResultCallback.addSingleResult = function () {
i._tmpContactCallbackResult = !0;
}),
(this._raycastResult = new Ia()),
(this._tmpAmmoTransform = new this.bjsAMMO.btTransform()),
this._tmpAmmoTransform.setIdentity(),
(this._tmpAmmoQuaternion = new this.bjsAMMO.btQuaternion(0, 0, 0, 1)),
(this._tmpAmmoVectorA = new this.bjsAMMO.btVector3(0, 0, 0)),
(this._tmpAmmoVectorB = new this.bjsAMMO.btVector3(0, 0, 0)),
(this._tmpAmmoVectorC = new this.bjsAMMO.btVector3(0, 0, 0)),
(this._tmpAmmoVectorD = new this.bjsAMMO.btVector3(0, 0, 0)))
: g.a.Error("AmmoJS is not available. Please make sure you included the js file.");
}
return (
(e.prototype.setGravity = function (e) {
this._tmpAmmoVectorA.setValue(e.x, e.y, e.z), this.world.setGravity(this._tmpAmmoVectorA), this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA);
}),
(e.prototype.setTimeStep = function (e) {
this._timeStep = e;
}),
(e.prototype.setFixedTimeStep = function (e) {
this._fixedTimeStep = e;
}),
(e.prototype.setMaxSteps = function (e) {
this._maxSteps = e;
}),
(e.prototype.getTimeStep = function () {
return this._timeStep;
}),
(e.prototype._isImpostorInContact = function (e) {
return (this._tmpContactCallbackResult = !1), this.world.contactTest(e.physicsBody, this._tmpAmmoConcreteContactResultCallback), this._tmpContactCallbackResult;
}),
(e.prototype._isImpostorPairInContact = function (e, t) {
return (this._tmpContactCallbackResult = !1), this.world.contactPairTest(e.physicsBody, t.physicsBody, this._tmpAmmoConcreteContactResultCallback), this._tmpContactCallbackResult;
}),
(e.prototype._stepSimulation = function (e, t, n) {
if ((void 0 === e && (e = 1 / 60), void 0 === t && (t = 10), void 0 === n && (n = 1 / 60), 0 == t)) this.world.stepSimulation(e, 0);
else for (; t > 0 && e > 0; ) e - n < n ? (this.world.stepSimulation(e, 0), (e = 0)) : ((e -= n), this.world.stepSimulation(n, 0)), t--;
}),
(e.prototype.executeStep = function (e, t) {
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
r.soft || r.beforeStep();
}
this._stepSimulation(this._useDeltaForWorldStep ? e : this._timeStep, this._maxSteps, this._fixedTimeStep);
for (var o = 0, a = t; o < a.length; o++) {
var s = a[o];
if ((s.soft ? this._afterSoftStep(s) : s.afterStep(), s._onPhysicsCollideCallbacks.length > 0 && this._isImpostorInContact(s)))
for (var c = 0, l = s._onPhysicsCollideCallbacks; c < l.length; c++)
for (var u = 0, h = l[c].otherImpostors; u < h.length; u++) {
var d = h[u];
(s.physicsBody.isActive() || d.physicsBody.isActive()) && this._isImpostorPairInContact(s, d) && (s.onCollide({ body: d.physicsBody }), d.onCollide({ body: s.physicsBody }));
}
}
}),
(e.prototype._afterSoftStep = function (e) {
e.type === Ci.RopeImpostor ? this._ropeStep(e) : this._softbodyOrClothStep(e);
}),
(e.prototype._ropeStep = function (e) {
for (var t, n, i, r, o = e.physicsBody.get_m_nodes(), s = o.size(), c = new Array(), l = 0; l < s; l++) (n = (t = o.at(l).get_m_x()).x()), (i = t.y()), (r = t.z()), c.push(new a.e(n, i, r));
var u = e.object,
h = e.getParam("shape");
e._isFromLine ? (e.object = Ti.CreateLines("lines", { points: c, instance: u })) : (e.object = La.ExtrudeShape("ext", { shape: h, path: c, instance: u }));
}),
(e.prototype._softbodyOrClothStep = function (e) {
var t = e.type === Ci.ClothImpostor ? 1 : -1,
n = e.object,
i = n.getVerticesData(wn.b.PositionKind);
i || (i = []);
var r = n.getVerticesData(wn.b.NormalKind);
r || (r = []);
for (var o, a, s, c, l, u, h, d, p = i.length / 3, f = e.physicsBody.get_m_nodes(), m = 0; m < p; m++) {
var g;
(s = (a = (o = f.at(m)).get_m_x()).x()),
(c = a.y()),
(l = a.z() * t),
(u = (g = o.get_m_n()).x()),
(h = g.y()),
(d = g.z() * t),
(i[3 * m] = s),
(i[3 * m + 1] = c),
(i[3 * m + 2] = l),
(r[3 * m] = u),
(r[3 * m + 1] = h),
(r[3 * m + 2] = d);
}
var b = new Rn.a();
(b.positions = i), (b.normals = r), (b.uvs = n.getVerticesData(wn.b.UVKind)), (b.colors = n.getVerticesData(wn.b.ColorKind)), n && n.getIndices && (b.indices = n.getIndices()), b.applyToMesh(n);
}),
(e.prototype.applyImpulse = function (e, t, n) {
if (e.soft) g.a.Warn("Cannot be applied to a soft body");
else {
e.physicsBody.activate();
var i = this._tmpAmmoVectorA,
r = this._tmpAmmoVectorB;
e.object && e.object.getWorldMatrix && (e.object.getWorldMatrix().invertToRef(this._tmpMatrix), a.e.TransformCoordinatesToRef(n, this._tmpMatrix, this._tmpVector), (n = this._tmpVector)),
i.setValue(n.x, n.y, n.z),
r.setValue(t.x, t.y, t.z),
e.physicsBody.applyImpulse(r, i);
}
}),
(e.prototype.applyForce = function (e, t, n) {
if (e.soft) g.a.Warn("Cannot be applied to a soft body");
else {
e.physicsBody.activate();
var i = this._tmpAmmoVectorA,
r = this._tmpAmmoVectorB;
e.object && e.object.getWorldMatrix && (e.object.getWorldMatrix().invertToRef(this._tmpMatrix), a.e.TransformCoordinatesToRef(n, this._tmpMatrix, this._tmpVector), (n = this._tmpVector)),
i.setValue(n.x, n.y, n.z),
r.setValue(t.x, t.y, t.z),
e.physicsBody.applyForce(r, i);
}
}),
(e.prototype.generatePhysicsBody = function (t) {
if (((t._pluginData.toDispose = []), t.parent)) t.physicsBody && (this.removePhysicsBody(t), t.forceUpdate());
else if (t.isBodyInitRequired()) {
var n = this._createShape(t),
i = t.getParam("mass");
if (((t._pluginData.mass = i), t.soft))
n.get_m_cfg().set_collisions(17),
n.get_m_cfg().set_kDP(t.getParam("damping")),
this.bjsAMMO.castObject(n, this.bjsAMMO.btCollisionObject).getCollisionShape().setMargin(t.getParam("margin")),
n.setActivationState(e.DISABLE_DEACTIVATION_FLAG),
this.world.addSoftBody(n, 1, -1),
(t.physicsBody = n),
t._pluginData.toDispose.push(n),
this.setBodyPressure(t, 0),
t.type === Ci.SoftbodyImpostor && this.setBodyPressure(t, t.getParam("pressure")),
this.setBodyStiffness(t, t.getParam("stiffness")),
this.setBodyVelocityIterations(t, t.getParam("velocityIterations")),
this.setBodyPositionIterations(t, t.getParam("positionIterations"));
else {
var r = new this.bjsAMMO.btVector3(0, 0, 0),
o = new this.bjsAMMO.btTransform();
o.setIdentity(),
0 !== i && n.calculateLocalInertia(i, r),
this._tmpAmmoVectorA.setValue(t.object.position.x, t.object.position.y, t.object.position.z),
this._tmpAmmoQuaternion.setValue(t.object.rotationQuaternion.x, t.object.rotationQuaternion.y, t.object.rotationQuaternion.z, t.object.rotationQuaternion.w),
o.setOrigin(this._tmpAmmoVectorA),
o.setRotation(this._tmpAmmoQuaternion);
var a = new this.bjsAMMO.btDefaultMotionState(o),
s = new this.bjsAMMO.btRigidBodyConstructionInfo(i, a, n, r),
c = new this.bjsAMMO.btRigidBody(s);
0 === i && (c.setCollisionFlags(c.getCollisionFlags() | e.KINEMATIC_FLAG), c.setActivationState(e.DISABLE_DEACTIVATION_FLAG)),
t.type != Ci.NoImpostor || n.getChildShape || c.setCollisionFlags(c.getCollisionFlags() | e.DISABLE_COLLISION_FLAG),
this.world.addRigidBody(c),
(t.physicsBody = c),
(t._pluginData.toDispose = t._pluginData.toDispose.concat([c, s, a, o, r, n]));
}
this.setBodyRestitution(t, t.getParam("restitution")), this.setBodyFriction(t, t.getParam("friction"));
}
}),
(e.prototype.removePhysicsBody = function (e) {
var t = this;
this.world &&
(e.soft ? this.world.removeSoftBody(e.physicsBody) : this.world.removeRigidBody(e.physicsBody),
e._pluginData &&
(e._pluginData.toDispose.forEach(function (e) {
t.bjsAMMO.destroy(e);
}),
(e._pluginData.toDispose = [])));
}),
(e.prototype.generateJoint = function (e) {
var t = e.mainImpostor.physicsBody,
n = e.connectedImpostor.physicsBody;
if (t && n) {
var i,
r = e.joint.jointData;
switch ((r.mainPivot || (r.mainPivot = new a.e(0, 0, 0)), r.connectedPivot || (r.connectedPivot = new a.e(0, 0, 0)), e.joint.type)) {
case gi.DistanceJoint:
var o = r.maxDistance;
o && ((r.mainPivot = new a.e(0, -o / 2, 0)), (r.connectedPivot = new a.e(0, o / 2, 0))),
(i = new this.bjsAMMO.btPoint2PointConstraint(
t,
n,
new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z),
new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z)
));
break;
case gi.HingeJoint:
r.mainAxis || (r.mainAxis = new a.e(0, 0, 0)), r.connectedAxis || (r.connectedAxis = new a.e(0, 0, 0));
var s = new this.bjsAMMO.btVector3(r.mainAxis.x, r.mainAxis.y, r.mainAxis.z),
c = new this.bjsAMMO.btVector3(r.connectedAxis.x, r.connectedAxis.y, r.connectedAxis.z);
i = new this.bjsAMMO.btHingeConstraint(
t,
n,
new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z),
new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z),
s,
c
);
break;
case gi.BallAndSocketJoint:
i = new this.bjsAMMO.btPoint2PointConstraint(
t,
n,
new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z),
new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z)
);
break;
default:
g.a.Warn("JointType not currently supported by the Ammo plugin, falling back to PhysicsJoint.BallAndSocketJoint"),
(i = new this.bjsAMMO.btPoint2PointConstraint(
t,
n,
new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z),
new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z)
));
}
this.world.addConstraint(i, !e.joint.jointData.collision), (e.joint.physicsJoint = i);
}
}),
(e.prototype.removeJoint = function (e) {
this.world && this.world.removeConstraint(e.joint.physicsJoint);
}),
(e.prototype._addMeshVerts = function (e, t, n) {
var i = this,
r = 0;
if (n && n.getIndices && n.getWorldMatrix && n.getChildMeshes) {
var o = n.getIndices();
o || (o = []);
var s = n.getVerticesData(wn.b.PositionKind);
s || (s = []), n.computeWorldMatrix(!1);
for (var c = o.length / 3, l = 0; l < c; l++) {
for (var u = [], h = 0; h < 3; h++) {
var d,
p = new a.e(s[3 * o[3 * l + h] + 0], s[3 * o[3 * l + h] + 1], s[3 * o[3 * l + h] + 2]);
a.a.ScalingToRef(n.scaling.x, n.scaling.y, n.scaling.z, this._tmpMatrix),
(p = a.e.TransformCoordinates(p, this._tmpMatrix)),
(d = 0 == h ? this._tmpAmmoVectorA : 1 == h ? this._tmpAmmoVectorB : this._tmpAmmoVectorC).setValue(p.x, p.y, p.z),
u.push(d);
}
e.addTriangle(u[0], u[1], u[2]), r++;
}
n.getChildMeshes().forEach(function (n) {
r += i._addMeshVerts(e, t, n);
});
}
return r;
}),
(e.prototype._softVertexData = function (e) {
var t = e.object;
if (t && t.getIndices && t.getWorldMatrix && t.getChildMeshes) {
var n = t.getIndices();
n || (n = []);
var i = t.getVerticesData(wn.b.PositionKind);
i || (i = []);
var r = t.getVerticesData(wn.b.NormalKind);
r || (r = []), t.computeWorldMatrix(!1);
for (var o = [], s = [], c = 0; c < i.length; c += 3) {
var l = new a.e(i[c], i[c + 1], i[c + 2]),
u = new a.e(r[c], r[c + 1], r[c + 2]);
(l = a.e.TransformCoordinates(l, t.getWorldMatrix())), (u = a.e.TransformNormal(u, t.getWorldMatrix())), o.push(l.x, l.y, l.z), s.push(u.x, u.y, u.z);
}
var h = new Rn.a();
return (
(h.positions = o),
(h.normals = s),
(h.uvs = t.getVerticesData(wn.b.UVKind)),
(h.colors = t.getVerticesData(wn.b.ColorKind)),
t && t.getIndices && (h.indices = t.getIndices()),
h.applyToMesh(t),
(t.position = a.e.Zero()),
(t.rotationQuaternion = null),
(t.rotation = a.e.Zero()),
t.computeWorldMatrix(!0),
h
);
}
return Rn.a.ExtractFromMesh(t);
}),
(e.prototype._createSoftbody = function (e) {
var t = e.object;
if (t && t.getIndices) {
var n = t.getIndices();
n || (n = []);
var i = this._softVertexData(e),
r = i.positions,
o = i.normals;
if (null === r || null === o) return new this.bjsAMMO.btCompoundShape();
for (var s = [], c = [], l = 0; l < r.length; l += 3) {
var u = new a.e(r[l], r[l + 1], r[l + 2]),
h = new a.e(o[l], o[l + 1], o[l + 2]);
s.push(u.x, u.y, -u.z), c.push(h.x, h.y, -h.z);
}
var d = new this.bjsAMMO.btSoftBodyHelpers().CreateFromTriMesh(this.world.getWorldInfo(), s, t.getIndices(), n.length / 3, !0),
p = r.length / 3,
f = d.get_m_nodes();
for (l = 0; l < p; l++) {
var m;
(m = f.at(l).get_m_n()).setX(c[3 * l]), m.setY(c[3 * l + 1]), m.setZ(c[3 * l + 2]);
}
return d;
}
}),
(e.prototype._createCloth = function (e) {
var t = e.object;
if (t && t.getIndices) {
var n = t.getIndices();
n || (n = []);
var i = this._softVertexData(e),
r = i.positions,
o = i.normals;
if (null === r || null === o) return new this.bjsAMMO.btCompoundShape();
var a = r.length,
s = Math.sqrt(a / 3);
e.segments = s;
var c = s - 1;
return (
this._tmpAmmoVectorA.setValue(r[0], r[1], r[2]),
this._tmpAmmoVectorB.setValue(r[3 * c], r[3 * c + 1], r[3 * c + 2]),
this._tmpAmmoVectorD.setValue(r[a - 3], r[a - 2], r[a - 1]),
this._tmpAmmoVectorC.setValue(r[a - 3 - 3 * c], r[a - 2 - 3 * c], r[a - 1 - 3 * c]),
new this.bjsAMMO.btSoftBodyHelpers().CreatePatch(this.world.getWorldInfo(), this._tmpAmmoVectorA, this._tmpAmmoVectorB, this._tmpAmmoVectorC, this._tmpAmmoVectorD, s, s, e.getParam("fixedPoints"), !0)
);
}
}),
(e.prototype._createRope = function (e) {
var t,
n,
i = this._softVertexData(e),
r = i.positions,
o = i.normals;
if (null === r || null === o) return new this.bjsAMMO.btCompoundShape();
i.applyToMesh(e.object, !0), (e._isFromLine = !0);
if (
0 ===
o
.map(function (e) {
return e * e;
})
.reduce(function (e, t) {
return e + t;
})
)
(n = (t = r.length) / 3 - 1), this._tmpAmmoVectorA.setValue(r[0], r[1], r[2]), this._tmpAmmoVectorB.setValue(r[t - 3], r[t - 2], r[t - 1]);
else {
e._isFromLine = !1;
var a = e.getParam("path");
if (null === e.getParam("shape")) return g.a.Warn("No shape available for extruded mesh"), new this.bjsAMMO.btCompoundShape();
if (r.length % (3 * a.length) != 0) return g.a.Warn("Path does not match extrusion"), new this.bjsAMMO.btCompoundShape();
(n = (t = a.length) - 1), this._tmpAmmoVectorA.setValue(a[0].x, a[0].y, a[0].z), this._tmpAmmoVectorB.setValue(a[t - 1].x, a[t - 1].y, a[t - 1].z);
}
e.segments = n;
var s = e.getParam("fixedPoints");
s = s > 3 ? 3 : s;
var c = new this.bjsAMMO.btSoftBodyHelpers().CreateRope(this.world.getWorldInfo(), this._tmpAmmoVectorA, this._tmpAmmoVectorB, n - 1, s);
return c.get_m_cfg().set_collisions(17), c;
}),
(e.prototype._createCustom = function (e) {
var t = null;
return this.onCreateCustomShape && (t = this.onCreateCustomShape(e)), null == t && (t = new this.bjsAMMO.btCompoundShape()), t;
}),
(e.prototype._addHullVerts = function (e, t, n) {
var i = this,
r = 0;
if (n && n.getIndices && n.getWorldMatrix && n.getChildMeshes) {
var o = n.getIndices();
o || (o = []);
var s = n.getVerticesData(wn.b.PositionKind);
s || (s = []), n.computeWorldMatrix(!1);
for (var c = o.length / 3, l = 0; l < c; l++) {
for (var u = [], h = 0; h < 3; h++) {
var d,
p = new a.e(s[3 * o[3 * l + h] + 0], s[3 * o[3 * l + h] + 1], s[3 * o[3 * l + h] + 2]);
a.a.ScalingToRef(n.scaling.x, n.scaling.y, n.scaling.z, this._tmpMatrix),
(p = a.e.TransformCoordinates(p, this._tmpMatrix)),
(d = 0 == h ? this._tmpAmmoVectorA : 1 == h ? this._tmpAmmoVectorB : this._tmpAmmoVectorC).setValue(p.x, p.y, p.z),
u.push(d);
}
e.addPoint(u[0], !0), e.addPoint(u[1], !0), e.addPoint(u[2], !0), r++;
}
n.getChildMeshes().forEach(function (n) {
r += i._addHullVerts(e, t, n);
});
}
return r;
}),
(e.prototype._createShape = function (e, t) {
var n = this;
void 0 === t && (t = !1);
var i,
r = e.object,
o = e.getObjectExtendSize();
if (!t) {
var s = e.object.getChildMeshes ? e.object.getChildMeshes(!0) : [];
i = new this.bjsAMMO.btCompoundShape();
var c = 0;
if (
(s.forEach(function (e) {
var t = e.getPhysicsImpostor();
if (t) {
if (t.type == Ci.MeshImpostor) throw "A child MeshImpostor is not supported. Only primitive impostors are supported as children (eg. box or sphere)";
var r = n._createShape(t),
o = e.parent.getWorldMatrix().clone(),
s = new a.e();
o.decompose(s),
n._tmpAmmoTransform.getOrigin().setValue(e.position.x * s.x, e.position.y * s.y, e.position.z * s.z),
n._tmpAmmoQuaternion.setValue(e.rotationQuaternion.x, e.rotationQuaternion.y, e.rotationQuaternion.z, e.rotationQuaternion.w),
n._tmpAmmoTransform.setRotation(n._tmpAmmoQuaternion),
i.addChildShape(n._tmpAmmoTransform, r),
t.dispose(),
c++;
}
}),
c > 0)
) {
if (e.type != Ci.NoImpostor) {
var l = this._createShape(e, !0);
l &&
(this._tmpAmmoTransform.getOrigin().setValue(0, 0, 0),
this._tmpAmmoQuaternion.setValue(0, 0, 0, 1),
this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion),
i.addChildShape(this._tmpAmmoTransform, l));
}
return i;
}
this.bjsAMMO.destroy(i), (i = null);
}
switch (e.type) {
case Ci.SphereImpostor:
if (z.a.WithinEpsilon(o.x, o.y, 1e-4) && z.a.WithinEpsilon(o.x, o.z, 1e-4)) i = new this.bjsAMMO.btSphereShape(o.x / 2);
else {
var u = [new this.bjsAMMO.btVector3(0, 0, 0)];
(i = new this.bjsAMMO.btMultiSphereShape(u, [1], 1)).setLocalScaling(new this.bjsAMMO.btVector3(o.x / 2, o.y / 2, o.z / 2));
}
break;
case Ci.CapsuleImpostor:
i = new this.bjsAMMO.btCapsuleShape(o.x / 2, o.y / 2);
break;
case Ci.CylinderImpostor:
this._tmpAmmoVectorA.setValue(o.x / 2, o.y / 2, o.z / 2), (i = new this.bjsAMMO.btCylinderShape(this._tmpAmmoVectorA));
break;
case Ci.PlaneImpostor:
case Ci.BoxImpostor:
this._tmpAmmoVectorA.setValue(o.x / 2, o.y / 2, o.z / 2), (i = new this.bjsAMMO.btBoxShape(this._tmpAmmoVectorA));
break;
case Ci.MeshImpostor:
if (0 == e.getParam("mass")) {
var h = new this.bjsAMMO.btTriangleMesh();
e._pluginData.toDispose.push(h);
var d = this._addMeshVerts(h, r, r);
i = 0 == d ? new this.bjsAMMO.btCompoundShape() : new this.bjsAMMO.btBvhTriangleMeshShape(h);
break;
}
case Ci.ConvexHullImpostor:
var p = new this.bjsAMMO.btConvexHullShape();
0 == (d = this._addHullVerts(p, r, r)) ? (e._pluginData.toDispose.push(p), (i = new this.bjsAMMO.btCompoundShape())) : (i = p);
break;
case Ci.NoImpostor:
i = new this.bjsAMMO.btSphereShape(o.x / 2);
break;
case Ci.CustomImpostor:
i = this._createCustom(e);
break;
case Ci.SoftbodyImpostor:
i = this._createSoftbody(e);
break;
case Ci.ClothImpostor:
i = this._createCloth(e);
break;
case Ci.RopeImpostor:
i = this._createRope(e);
break;
default:
g.a.Warn("The impostor type is not currently supported by the ammo plugin.");
}
return i;
}),
(e.prototype.setTransformationFromPhysicsBody = function (e) {
e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),
e.object.position.set(this._tmpAmmoTransform.getOrigin().x(), this._tmpAmmoTransform.getOrigin().y(), this._tmpAmmoTransform.getOrigin().z()),
e.object.rotationQuaternion
? e.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(), this._tmpAmmoTransform.getRotation().y(), this._tmpAmmoTransform.getRotation().z(), this._tmpAmmoTransform.getRotation().w())
: e.object.rotation &&
(this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(), this._tmpAmmoTransform.getRotation().y(), this._tmpAmmoTransform.getRotation().z(), this._tmpAmmoTransform.getRotation().w()),
this._tmpQuaternion.toEulerAnglesToRef(e.object.rotation));
}),
(e.prototype.setPhysicsBodyTransformation = function (e, t, n) {
var i = e.physicsBody.getWorldTransform();
if (i.getOrigin().x() != t.x || i.getOrigin().y() != t.y || i.getOrigin().z() != t.z || i.getRotation().x() != n.x || i.getRotation().y() != n.y || i.getRotation().z() != n.z || i.getRotation().w() != n.w)
if (
(this._tmpAmmoVectorA.setValue(t.x, t.y, t.z),
i.setOrigin(this._tmpAmmoVectorA),
this._tmpAmmoQuaternion.setValue(n.x, n.y, n.z, n.w),
i.setRotation(this._tmpAmmoQuaternion),
e.physicsBody.setWorldTransform(i),
0 == e.mass)
) {
var r = e.physicsBody.getMotionState();
r && r.setWorldTransform(i);
} else e.physicsBody.activate();
}),
(e.prototype.isSupported = function () {
return void 0 !== this.bjsAMMO;
}),
(e.prototype.setLinearVelocity = function (e, t) {
this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), e.soft ? e.physicsBody.linearVelocity(this._tmpAmmoVectorA) : e.physicsBody.setLinearVelocity(this._tmpAmmoVectorA);
}),
(e.prototype.setAngularVelocity = function (e, t) {
this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), e.soft ? e.physicsBody.angularVelocity(this._tmpAmmoVectorA) : e.physicsBody.setAngularVelocity(this._tmpAmmoVectorA);
}),
(e.prototype.getLinearVelocity = function (e) {
if (e.soft) var t = e.physicsBody.linearVelocity();
else t = e.physicsBody.getLinearVelocity();
if (!t) return null;
var n = new a.e(t.x(), t.y(), t.z());
return this.bjsAMMO.destroy(t), n;
}),
(e.prototype.getAngularVelocity = function (e) {
if (e.soft) var t = e.physicsBody.angularVelocity();
else t = e.physicsBody.getAngularVelocity();
if (!t) return null;
var n = new a.e(t.x(), t.y(), t.z());
return this.bjsAMMO.destroy(t), n;
}),
(e.prototype.setBodyMass = function (e, t) {
e.soft ? e.physicsBody.setTotalMass(t, !1) : e.physicsBody.setMassProps(t), (e._pluginData.mass = t);
}),
(e.prototype.getBodyMass = function (e) {
return e._pluginData.mass || 0;
}),
(e.prototype.getBodyFriction = function (e) {
return e._pluginData.friction || 0;
}),
(e.prototype.setBodyFriction = function (e, t) {
e.soft ? e.physicsBody.get_m_cfg().set_kDF(t) : e.physicsBody.setFriction(t), (e._pluginData.friction = t);
}),
(e.prototype.getBodyRestitution = function (e) {
return e._pluginData.restitution || 0;
}),
(e.prototype.setBodyRestitution = function (e, t) {
e.physicsBody.setRestitution(t), (e._pluginData.restitution = t);
}),
(e.prototype.getBodyPressure = function (e) {
return e.soft ? e._pluginData.pressure || 0 : (g.a.Warn("Pressure is not a property of a rigid body"), 0);
}),
(e.prototype.setBodyPressure = function (e, t) {
e.soft
? e.type === Ci.SoftbodyImpostor
? (e.physicsBody.get_m_cfg().set_kPR(t), (e._pluginData.pressure = t))
: (e.physicsBody.get_m_cfg().set_kPR(0), (e._pluginData.pressure = 0))
: g.a.Warn("Pressure can only be applied to a softbody");
}),
(e.prototype.getBodyStiffness = function (e) {
return e.soft ? e._pluginData.stiffness || 0 : (g.a.Warn("Stiffness is not a property of a rigid body"), 0);
}),
(e.prototype.setBodyStiffness = function (e, t) {
e.soft ? ((t = (t = t < 0 ? 0 : t) > 1 ? 1 : t), e.physicsBody.get_m_materials().at(0).set_m_kLST(t), (e._pluginData.stiffness = t)) : g.a.Warn("Stiffness cannot be applied to a rigid body");
}),
(e.prototype.getBodyVelocityIterations = function (e) {
return e.soft ? e._pluginData.velocityIterations || 0 : (g.a.Warn("Velocity iterations is not a property of a rigid body"), 0);
}),
(e.prototype.setBodyVelocityIterations = function (e, t) {
e.soft ? ((t = t < 0 ? 0 : t), e.physicsBody.get_m_cfg().set_viterations(t), (e._pluginData.velocityIterations = t)) : g.a.Warn("Velocity iterations cannot be applied to a rigid body");
}),
(e.prototype.getBodyPositionIterations = function (e) {
return e.soft ? e._pluginData.positionIterations || 0 : (g.a.Warn("Position iterations is not a property of a rigid body"), 0);
}),
(e.prototype.setBodyPositionIterations = function (e, t) {
e.soft ? ((t = t < 0 ? 0 : t), e.physicsBody.get_m_cfg().set_piterations(t), (e._pluginData.positionIterations = t)) : g.a.Warn("Position iterations cannot be applied to a rigid body");
}),
(e.prototype.appendAnchor = function (e, t, n, i, r, o) {
void 0 === r && (r = 1), void 0 === o && (o = !1);
var a = e.segments,
s = Math.round((a - 1) * n) + a * (a - 1 - Math.round((a - 1) * i));
e.physicsBody.appendAnchor(s, t.physicsBody, o, r);
}),
(e.prototype.appendHook = function (e, t, n, i, r) {
void 0 === i && (i = 1), void 0 === r && (r = !1);
var o = Math.round(e.segments * n);
e.physicsBody.appendAnchor(o, t.physicsBody, r, i);
}),
(e.prototype.sleepBody = function (e) {
g.a.Warn("sleepBody is not currently supported by the Ammo physics plugin");
}),
(e.prototype.wakeUpBody = function (e) {
e.physicsBody.activate();
}),
(e.prototype.updateDistanceJoint = function (e, t, n) {
g.a.Warn("updateDistanceJoint is not currently supported by the Ammo physics plugin");
}),
(e.prototype.setMotor = function (e, t, n, i) {
e.physicsJoint.enableAngularMotor(!0, t, n);
}),
(e.prototype.setLimit = function (e, t, n) {
g.a.Warn("setLimit is not currently supported by the Ammo physics plugin");
}),
(e.prototype.syncMeshWithImpostor = function (e, t) {
t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),
(e.position.x = this._tmpAmmoTransform.getOrigin().x()),
(e.position.y = this._tmpAmmoTransform.getOrigin().y()),
(e.position.z = this._tmpAmmoTransform.getOrigin().z()),
e.rotationQuaternion &&
((e.rotationQuaternion.x = this._tmpAmmoTransform.getRotation().x()),
(e.rotationQuaternion.y = this._tmpAmmoTransform.getRotation().y()),
(e.rotationQuaternion.z = this._tmpAmmoTransform.getRotation().z()),
(e.rotationQuaternion.w = this._tmpAmmoTransform.getRotation().w()));
}),
(e.prototype.getRadius = function (e) {
return e.getObjectExtendSize().x / 2;
}),
(e.prototype.getBoxSizeToRef = function (e, t) {
var n = e.getObjectExtendSize();
(t.x = n.x), (t.y = n.y), (t.z = n.z);
}),
(e.prototype.dispose = function () {
this.bjsAMMO.destroy(this.world),
this.bjsAMMO.destroy(this._solver),
this.bjsAMMO.destroy(this._overlappingPairCache),
this.bjsAMMO.destroy(this._dispatcher),
this.bjsAMMO.destroy(this._collisionConfiguration),
this.bjsAMMO.destroy(this._tmpAmmoVectorA),
this.bjsAMMO.destroy(this._tmpAmmoVectorB),
this.bjsAMMO.destroy(this._tmpAmmoVectorC),
this.bjsAMMO.destroy(this._tmpAmmoTransform),
this.bjsAMMO.destroy(this._tmpAmmoQuaternion),
this.bjsAMMO.destroy(this._tmpAmmoConcreteContactResultCallback),
(this.world = null);
}),
(e.prototype.raycast = function (e, t) {
(this._tmpAmmoVectorRCA = new this.bjsAMMO.btVector3(e.x, e.y, e.z)), (this._tmpAmmoVectorRCB = new this.bjsAMMO.btVector3(t.x, t.y, t.z));
var n = new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA, this._tmpAmmoVectorRCB);
return (
this.world.rayTest(this._tmpAmmoVectorRCA, this._tmpAmmoVectorRCB, n),
this._raycastResult.reset(e, t),
n.hasHit() &&
(this._raycastResult.setHitData(
{ x: n.get_m_hitNormalWorld().x(), y: n.get_m_hitNormalWorld().y(), z: n.get_m_hitNormalWorld().z() },
{ x: n.get_m_hitPointWorld().x(), y: n.get_m_hitPointWorld().y(), z: n.get_m_hitPointWorld().z() }
),
this._raycastResult.calculateHitDistance()),
this.bjsAMMO.destroy(n),
this.bjsAMMO.destroy(this._tmpAmmoVectorRCA),
this.bjsAMMO.destroy(this._tmpAmmoVectorRCB),
this._raycastResult
);
}),
(e.DISABLE_COLLISION_FLAG = 4),
(e.KINEMATIC_FLAG = 2),
(e.DISABLE_DEACTIVATION_FLAG = 4),
e
);
})();
(i.a.prototype.removeReflectionProbe = function (e) {
if (!this.reflectionProbes) return -1;
var t = this.reflectionProbes.indexOf(e);
return -1 !== t && this.reflectionProbes.splice(t, 1), t;
}),
(i.a.prototype.addReflectionProbe = function (e) {
this.reflectionProbes || (this.reflectionProbes = []), this.reflectionProbes.push(e);
});
var Na = (function () {
function e(e, t, n, i, r) {
var o = this;
void 0 === i && (i = !0),
void 0 === r && (r = !1),
(this.name = e),
(this._viewMatrix = a.a.Identity()),
(this._target = a.e.Zero()),
(this._add = a.e.Zero()),
(this._invertYAxis = !1),
(this.position = a.e.Zero()),
(this._scene = n),
this._scene.reflectionProbes || (this._scene.reflectionProbes = new Array()),
this._scene.reflectionProbes.push(this),
(this._renderTargetTexture = new mn.a(e, t, n, i, !0, r ? 1 : 0, !0)),
this._renderTargetTexture.onBeforeRenderObservable.add(function (e) {
switch (e) {
case 0:
o._add.copyFromFloats(1, 0, 0);
break;
case 1:
o._add.copyFromFloats(-1, 0, 0);
break;
case 2:
o._add.copyFromFloats(0, o._invertYAxis ? 1 : -1, 0);
break;
case 3:
o._add.copyFromFloats(0, o._invertYAxis ? -1 : 1, 0);
break;
case 4:
o._add.copyFromFloats(0, 0, 1);
break;
case 5:
o._add.copyFromFloats(0, 0, -1);
}
o._attachedMesh && o.position.copyFrom(o._attachedMesh.getAbsolutePosition()),
o.position.addToRef(o._add, o._target),
a.a.LookAtLHToRef(o.position, o._target, a.e.Up(), o._viewMatrix),
n.activeCamera && ((o._projectionMatrix = a.a.PerspectiveFovLH(Math.PI / 2, 1, n.activeCamera.minZ, n.activeCamera.maxZ)), n.setTransformMatrix(o._viewMatrix, o._projectionMatrix)),
(n._forcedViewPosition = o.position);
}),
this._renderTargetTexture.onAfterUnbindObservable.add(function () {
(n._forcedViewPosition = null), n.updateTransformMatrix(!0);
});
}
return (
Object.defineProperty(e.prototype, "samples", {
get: function () {
return this._renderTargetTexture.samples;
},
set: function (e) {
this._renderTargetTexture.samples = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "refreshRate", {
get: function () {
return this._renderTargetTexture.refreshRate;
},
set: function (e) {
this._renderTargetTexture.refreshRate = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getScene = function () {
return this._scene;
}),
Object.defineProperty(e.prototype, "cubeTexture", {
get: function () {
return this._renderTargetTexture;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "renderList", {
get: function () {
return this._renderTargetTexture.renderList;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.attachToMesh = function (e) {
this._attachedMesh = e;
}),
(e.prototype.setRenderingAutoClearDepthStencil = function (e, t) {
this._renderTargetTexture.setRenderingAutoClearDepthStencil(e, t);
}),
(e.prototype.dispose = function () {
var e = this._scene.reflectionProbes.indexOf(this);
-1 !== e && this._scene.reflectionProbes.splice(e, 1), this._renderTargetTexture && (this._renderTargetTexture.dispose(), (this._renderTargetTexture = null));
}),
(e.prototype.toString = function (e) {
var t = "Name: " + this.name;
return e && ((t += ", position: " + this.position.toString()), this._attachedMesh && (t += ", attached mesh: " + this._attachedMesh.name)), t;
}),
(e.prototype.getClassName = function () {
return "ReflectionProbe";
}),
(e.prototype.serialize = function () {
var e = He.a.Serialize(this, this._renderTargetTexture.serialize());
return (e.isReflectionProbe = !0), e;
}),
(e.Parse = function (t, n, i) {
var r = null;
if (n.reflectionProbes)
for (var o = 0; o < n.reflectionProbes.length; o++) {
var a = n.reflectionProbes[o];
if (a.name === t.name) {
r = a;
break;
}
}
return (
((r = He.a.Parse(
function () {
return r || new e(t.name, t.renderTargetSize, n, t._generateMipMaps);
},
t,
n,
i
)).cubeTexture._waitingRenderList = t.renderList),
t._attachedMesh && r.attachToMesh(n.getMeshByID(t._attachedMesh)),
r
);
}),
Object(h.c)([Object(He.k)()], e.prototype, "_attachedMesh", void 0),
Object(h.c)([Object(He.o)()], e.prototype, "position", void 0),
e
);
})(),
ka = !0,
za = (function () {
function e() {}
return (e.LoaderInjectedPhysicsEngine = void 0), e;
})(),
ja = function (e, t, n, i) {
for (var r = 0, o = t.materials.length; r < o; r++) {
var a = t.materials[r];
if (a.id === e) return Fo.a.Parse(a, n, i);
}
return null;
},
Ba = function (e, t, n) {
for (var i in t) if (e.name === t[i]) return n.push(e.id), !0;
return !(!e.parentId || -1 === n.indexOf(e.parentId)) && (n.push(e.id), !0);
},
Va = function (e, t) {
return e + " of " + (t ? t.file + " from " + t.name + " version: " + t.version + ", exporter version: " + t.exporter_version : "unknown");
},
Ga = function (e, t) {
var n = t;
if (t._waitingData.lods) {
if (t._waitingData.lods.ids && t._waitingData.lods.ids.length > 0) {
var i = t._waitingData.lods.ids,
r = n.isEnabled(!1);
if (t._waitingData.lods.distances) {
var o = t._waitingData.lods.distances;
if (o.length >= i.length) {
var a = o.length > i.length ? o[o.length - 1] : 0;
n.setEnabled(!1);
for (var s = 0; s < i.length; s++) {
var c = i[s],
l = e.getMeshByID(c);
null != l && n.addLODLevel(o[s], l);
}
a > 0 && n.addLODLevel(a, null), !0 === r && n.setEnabled(!0);
} else $e.b.Warn("Invalid level of detail distances for " + t.name);
}
}
t._waitingData.lods = null;
}
},
Ua = function (e, t, n, r, o) {
void 0 === o && (o = !1);
var a = new le.a(e),
s = "importScene has failed JSON parse";
try {
var l = JSON.parse(t);
s = "";
var u,
h,
d = $i.a.loggingLevel === $i.a.DETAILED_LOGGING;
if (void 0 !== l.environmentTexture && null !== l.environmentTexture) {
var p = void 0 === l.isPBR || l.isPBR;
if (l.environmentTextureType && "BABYLON.HDRCubeTexture" === l.environmentTextureType) {
var f = l.environmentTextureSize ? l.environmentTextureSize : 128,
m = new Ea((l.environmentTexture.match(/https?:\/\//g) ? "" : n) + l.environmentTexture, e, f, !0, !p);
l.environmentTextureRotationY && (m.rotationY = l.environmentTextureRotationY), (e.environmentTexture = m);
} else if ($r.a.EndsWith(l.environmentTexture, ".env")) {
var b = new Ar.a((l.environmentTexture.match(/https?:\/\//g) ? "" : n) + l.environmentTexture, e);
l.environmentTextureRotationY && (b.rotationY = l.environmentTextureRotationY), (e.environmentTexture = b);
} else {
var _ = Ar.a.CreateFromPrefilteredData((l.environmentTexture.match(/https?:\/\//g) ? "" : n) + l.environmentTexture, e);
l.environmentTextureRotationY && (_.rotationY = l.environmentTextureRotationY), (e.environmentTexture = _);
}
if (!0 === l.createDefaultSkybox) {
var v = void 0 !== e.activeCamera && null !== e.activeCamera ? (e.activeCamera.maxZ - e.activeCamera.minZ) / 2 : 1e3,
y = l.skyboxBlurLevel || 0;
e.createDefaultSkybox(e.environmentTexture, p, v, y);
}
a.environmentTexture = e.environmentTexture;
}
if ((void 0 !== l.environmentIntensity && null !== l.environmentIntensity && (e.environmentIntensity = l.environmentIntensity), void 0 !== l.lights && null !== l.lights))
for (u = 0, h = l.lights.length; u < h; u++) {
var C = l.lights[u],
P = ea.a.Parse(C, e);
P && (a.lights.push(P), (s += 0 === u ? "\n\tLights:" : ""), (s += "\n\t\t" + P.toString(d)));
}
if (void 0 !== l.reflectionProbes && null !== l.reflectionProbes)
for (u = 0, h = l.reflectionProbes.length; u < h; u++) {
var x = l.reflectionProbes[u],
T = Na.Parse(x, e, n);
T && (a.reflectionProbes.push(T), (s += 0 === u ? "\n\tReflection Probes:" : ""), (s += "\n\t\t" + T.toString(d)));
}
if (void 0 !== l.animations && null !== l.animations)
for (u = 0, h = l.animations.length; u < h; u++) {
var S = l.animations[u],
O = c.a.GetClass("BABYLON.Animation");
if (O) {
var E = O.Parse(S);
e.animations.push(E), a.animations.push(E), (s += 0 === u ? "\n\tAnimations:" : ""), (s += "\n\t\t" + E.toString(d));
}
}
if (void 0 !== l.materials && null !== l.materials)
for (u = 0, h = l.materials.length; u < h; u++) {
var M = l.materials[u],
I = Fo.a.Parse(M, e, n);
if (I)
a.materials.push(I),
(s += 0 === u ? "\n\tMaterials:" : ""),
(s += "\n\t\t" + I.toString(d)),
I.getActiveTextures().forEach(function (e) {
-1 == a.textures.indexOf(e) && a.textures.push(e);
});
}
if (void 0 !== l.multiMaterials && null !== l.multiMaterials)
for (u = 0, h = l.multiMaterials.length; u < h; u++) {
var D = l.multiMaterials[u],
R = Ta.a.ParseMultiMaterial(D, e);
a.multiMaterials.push(R),
(s += 0 === u ? "\n\tMultiMaterials:" : ""),
(s += "\n\t\t" + R.toString(d)),
R.getActiveTextures().forEach(function (e) {
-1 == a.textures.indexOf(e) && a.textures.push(e);
});
}
if (void 0 !== l.morphTargetManagers && null !== l.morphTargetManagers)
for (var w = 0, L = l.morphTargetManagers; w < L.length; w++) {
var F = L[w];
a.morphTargetManagers.push(Ma.a.Parse(F, e));
}
if (void 0 !== l.skeletons && null !== l.skeletons)
for (u = 0, h = l.skeletons.length; u < h; u++) {
var k = l.skeletons[u],
z = Ue.a.Parse(k, e);
a.skeletons.push(z), (s += 0 === u ? "\n\tSkeletons:" : ""), (s += "\n\t\t" + z.toString(d));
}
var j = l.geometries;
if (null != j) {
var B = new Array(),
V = j.vertexData;
if (null != V)
for (u = 0, h = V.length; u < h; u++) {
var G = V[u];
B.push(xa.a.Parse(G, e, n));
}
B.forEach(function (e) {
e && a.geometries.push(e);
});
}
if (void 0 !== l.transformNodes && null !== l.transformNodes)
for (u = 0, h = l.transformNodes.length; u < h; u++) {
var U = l.transformNodes[u],
H = si.a.Parse(U, e, n);
a.transformNodes.push(H);
}
if (void 0 !== l.meshes && null !== l.meshes)
for (u = 0, h = l.meshes.length; u < h; u++) {
var W = l.meshes[u],
X = Ee.a.Parse(W, e, n);
a.meshes.push(X), (s += 0 === u ? "\n\tMeshes:" : ""), (s += "\n\t\t" + X.toString(d));
}
if (void 0 !== l.cameras && null !== l.cameras)
for (u = 0, h = l.cameras.length; u < h; u++) {
var Y = l.cameras[u],
K = De.a.Parse(Y, e);
a.cameras.push(K), (s += 0 === u ? "\n\tCameras:" : ""), (s += "\n\t\t" + K.toString(d));
}
if (void 0 !== l.animationGroups && null !== l.animationGroups)
for (u = 0, h = l.animationGroups.length; u < h; u++) {
var Z = l.animationGroups[u],
q = N.a.Parse(Z, e);
a.animationGroups.push(q), (s += 0 === u ? "\n\tAnimationGroups:" : ""), (s += "\n\t\t" + q.toString(d));
}
for (u = 0, h = e.cameras.length; u < h; u++) {
(K = e.cameras[u])._waitingParentId && ((K.parent = e.getLastEntryByID(K._waitingParentId)), (K._waitingParentId = null));
}
for (u = 0, h = e.lights.length; u < h; u++) {
var Q = e.lights[u];
Q && Q._waitingParentId && ((Q.parent = e.getLastEntryByID(Q._waitingParentId)), (Q._waitingParentId = null));
}
for (u = 0, h = e.transformNodes.length; u < h; u++) {
var J = e.transformNodes[u];
J._waitingParentId && ((J.parent = e.getLastEntryByID(J._waitingParentId)), (J._waitingParentId = null));
}
for (u = 0, h = e.meshes.length; u < h; u++) {
(X = e.meshes[u])._waitingParentId && ((X.parent = e.getLastEntryByID(X._waitingParentId)), (X._waitingParentId = null)), X._waitingData.lods && Ga(e, X);
}
for (u = 0, h = e.skeletons.length; u < h; u++) {
(z = e.skeletons[u])._hasWaitingData &&
(null != z.bones &&
z.bones.forEach(function (t) {
if (t._waitingTransformNodeId) {
var n = e.getLastEntryByID(t._waitingTransformNodeId);
n && t.linkTransformNode(n), (t._waitingTransformNodeId = null);
}
}),
(z._hasWaitingData = null));
}
for (u = 0, h = e.meshes.length; u < h; u++) {
var $ = e.meshes[u];
$._waitingData.freezeWorldMatrix ? ($.freezeWorldMatrix(), ($._waitingData.freezeWorldMatrix = null)) : $.computeWorldMatrix(!0);
}
for (u = 0, h = e.lights.length; u < h; u++) {
var ee = e.lights[u];
if (ee._excludedMeshesIds.length > 0) {
for (var te = 0; te < ee._excludedMeshesIds.length; te++) {
var ne = e.getMeshByID(ee._excludedMeshesIds[te]);
ne && ee.excludedMeshes.push(ne);
}
ee._excludedMeshesIds = [];
}
if (ee._includedOnlyMeshesIds.length > 0) {
for (var ie = 0; ie < ee._includedOnlyMeshesIds.length; ie++) {
var re = e.getMeshByID(ee._includedOnlyMeshesIds[ie]);
re && ee.includedOnlyMeshes.push(re);
}
ee._includedOnlyMeshesIds = [];
}
}
for (i.a.Parse(l, e, a, n), u = 0, h = e.meshes.length; u < h; u++) {
(X = e.meshes[u])._waitingData.actions && (A.Parse(X._waitingData.actions, X, e), (X._waitingData.actions = null));
}
void 0 !== l.actions && null !== l.actions && A.Parse(l.actions, null, e);
} catch (e) {
var oe = Va("loadAssets", l ? l.producer : "Unknown") + s;
if (!r) throw (g.a.Log(oe), e);
r(oe, e);
} finally {
o || a.removeAllFromScene(), null !== s && $i.a.loggingLevel !== $i.a.NO_LOGGING && g.a.Log(Va("loadAssets", l ? l.producer : "Unknown") + ($i.a.loggingLevel !== $i.a.MINIMAL_LOGGING ? s : ""));
}
return a;
};
$i.a.RegisterPlugin({
name: "babylon.js",
extensions: ".babylon",
canDirectLoad: function (e) {
return -1 !== e.indexOf("babylon");
},
importMesh: function (e, t, n, r, o, a, s, c) {
var l = "importMesh has failed JSON parse";
try {
var u = JSON.parse(n);
l = "";
var h = $i.a.loggingLevel === $i.a.DETAILED_LOGGING;
e ? Array.isArray(e) || (e = [e]) : (e = null);
var d = new Array();
if (void 0 !== u.meshes && null !== u.meshes) {
var p,
f,
m,
b = [],
_ = [];
for (p = 0, f = u.meshes.length; p < f; p++) {
var v = u.meshes[p];
if (null === e || Ba(v, e, d)) {
if ((null !== e && delete e[e.indexOf(v.name)], void 0 !== v.geometryId && null !== v.geometryId && void 0 !== u.geometries && null !== u.geometries)) {
var y = !1;
["boxes", "spheres", "cylinders", "toruses", "grounds", "planes", "torusKnots", "vertexData"].forEach(function (e) {
!0 !== y &&
u.geometries[e] &&
Array.isArray(u.geometries[e]) &&
u.geometries[e].forEach(function (n) {
if (n.id === v.geometryId) {
switch (e) {
case "vertexData":
xa.a.Parse(n, t, r);
}
y = !0;
}
});
}),
!1 === y && g.a.Warn("Geometry not found for mesh " + v.id);
}
if (v.materialId) {
var C = -1 !== _.indexOf(v.materialId);
if (!1 === C && void 0 !== u.multiMaterials && null !== u.multiMaterials)
for (var P = 0, x = u.multiMaterials.length; P < x; P++) {
var T = u.multiMaterials[P];
if (T.id === v.materialId) {
for (var S = 0, O = T.materials.length; S < O; S++) {
var E,
M = T.materials[S];
_.push(M), (E = ja(M, u, t, r)) && (l += "\n\tMaterial " + E.toString(h));
}
_.push(T.id);
var A = Ta.a.ParseMultiMaterial(T, t);
A && ((C = !0), (l += "\n\tMulti-Material " + A.toString(h)));
break;
}
}
if (!1 === C) _.push(v.materialId), (E = ja(v.materialId, u, t, r)) ? (l += "\n\tMaterial " + E.toString(h)) : g.a.Warn("Material not found for mesh " + v.id);
}
if (v.skeletonId > -1 && void 0 !== u.skeletons && null !== u.skeletons)
if (!1 === b.indexOf(v.skeletonId) > -1)
for (var I = 0, D = u.skeletons.length; I < D; I++) {
var R = u.skeletons[I];
if (R.id === v.skeletonId) {
var w = Ue.a.Parse(R, t);
s.push(w), b.push(R.id), (l += "\n\tSkeleton " + w.toString(h));
}
}
if (void 0 !== u.morphTargetManagers && null !== u.morphTargetManagers)
for (var L = 0, F = u.morphTargetManagers; L < F.length; L++) {
var N = F[L];
Ma.a.Parse(N, t);
}
var k = Ee.a.Parse(v, t, r);
o.push(k), (l += "\n\tMesh " + k.toString(h));
}
}
for (p = 0, f = t.meshes.length; p < f; p++) (m = t.meshes[p])._waitingParentId && ((m.parent = t.getLastEntryByID(m._waitingParentId)), (m._waitingParentId = null)), m._waitingData.lods && Ga(t, m);
for (p = 0, f = t.skeletons.length; p < f; p++) {
(w = t.skeletons[p])._hasWaitingData &&
(null != w.bones &&
w.bones.forEach(function (e) {
if (e._waitingTransformNodeId) {
var n = t.getLastEntryByID(e._waitingTransformNodeId);
n && e.linkTransformNode(n), (e._waitingTransformNodeId = null);
}
}),
(w._hasWaitingData = null));
}
for (p = 0, f = t.meshes.length; p < f; p++) (m = t.meshes[p])._waitingData.freezeWorldMatrix ? (m.freezeWorldMatrix(), (m._waitingData.freezeWorldMatrix = null)) : m.computeWorldMatrix(!0);
}
if (void 0 !== u.particleSystems && null !== u.particleSystems) {
var z = i.a.GetIndividualParser(me.a.NAME_PARTICLESYSTEM);
if (z)
for (p = 0, f = u.particleSystems.length; p < f; p++) {
var j = u.particleSystems[p];
-1 !== d.indexOf(j.emitterId) && a.push(z(j, t, r));
}
}
return !0;
} catch (e) {
var B = Va("importMesh", u ? u.producer : "Unknown") + l;
if (!c) throw (g.a.Log(B), e);
c(B, e);
} finally {
null !== l && $i.a.loggingLevel !== $i.a.NO_LOGGING && g.a.Log(Va("importMesh", u ? u.producer : "Unknown") + ($i.a.loggingLevel !== $i.a.MINIMAL_LOGGING ? l : ""));
}
return !1;
},
load: function (e, t, n, i) {
var r = "importScene has failed JSON parse";
try {
var o = JSON.parse(t);
if (
((r = ""),
void 0 !== o.useDelayedTextureLoading && null !== o.useDelayedTextureLoading && (e.useDelayedTextureLoading = o.useDelayedTextureLoading && !$i.a.ForceFullSceneLoadingForIncremental),
void 0 !== o.autoClear && null !== o.autoClear && (e.autoClear = o.autoClear),
void 0 !== o.clearColor && null !== o.clearColor && (e.clearColor = s.b.FromArray(o.clearColor)),
void 0 !== o.ambientColor && null !== o.ambientColor && (e.ambientColor = s.a.FromArray(o.ambientColor)),
void 0 !== o.gravity && null !== o.gravity && (e.gravity = a.e.FromArray(o.gravity)),
o.fogMode && 0 !== o.fogMode)
)
switch (((e.fogMode = o.fogMode), (e.fogColor = s.a.FromArray(o.fogColor)), (e.fogStart = o.fogStart), (e.fogEnd = o.fogEnd), (e.fogDensity = o.fogDensity), (r += "\tFog mode for scene: "), e.fogMode)) {
case 1:
r += "exp\n";
break;
case 2:
r += "exp2\n";
break;
case 3:
r += "linear\n";
}
if (o.physicsEnabled) {
var c;
"cannon" === o.physicsEngine
? (c = new Da(void 0, void 0, za.LoaderInjectedPhysicsEngine))
: "oimo" === o.physicsEngine
? (c = new Ra(void 0, za.LoaderInjectedPhysicsEngine))
: "ammo" === o.physicsEngine && (c = new Fa(void 0, za.LoaderInjectedPhysicsEngine, void 0)),
(r = "\tPhysics engine " + (o.physicsEngine ? o.physicsEngine : "oimo") + " enabled\n");
var l = o.physicsGravity ? a.e.FromArray(o.physicsGravity) : null;
e.enablePhysics(l, c);
}
if ((void 0 !== o.metadata && null !== o.metadata && (e.metadata = o.metadata), void 0 !== o.collisionsEnabled && null !== o.collisionsEnabled && (e.collisionsEnabled = o.collisionsEnabled), !Ua(e, t, n, i, !0)))
return !1;
if (
(o.autoAnimate && e.beginAnimation(e, o.autoAnimateFrom, o.autoAnimateTo, o.autoAnimateLoop, o.autoAnimateSpeed || 1),
void 0 !== o.activeCameraID && null !== o.activeCameraID && e.setActiveCameraByID(o.activeCameraID),
void 0 !== o.environmentTexture && null !== o.environmentTexture)
) {
var u = void 0 === o.isPBR || o.isPBR;
if (o.environmentTextureType && "BABYLON.HDRCubeTexture" === o.environmentTextureType) {
var h = o.environmentTextureSize ? o.environmentTextureSize : 128,
d = new Ea(n + o.environmentTexture, e, h, !0, !u);
o.environmentTextureRotationY && (d.rotationY = o.environmentTextureRotationY), (e.environmentTexture = d);
} else if ($r.a.EndsWith(o.environmentTexture, ".env")) {
var p = new Ar.a(n + o.environmentTexture, e);
o.environmentTextureRotationY && (p.rotationY = o.environmentTextureRotationY), (e.environmentTexture = p);
} else {
var f = Ar.a.CreateFromPrefilteredData(n + o.environmentTexture, e);
o.environmentTextureRotationY && (f.rotationY = o.environmentTextureRotationY), (e.environmentTexture = f);
}
if (!0 === o.createDefaultSkybox) {
var m = void 0 !== e.activeCamera && null !== e.activeCamera ? (e.activeCamera.maxZ - e.activeCamera.minZ) / 2 : 1e3,
b = o.skyboxBlurLevel || 0;
e.createDefaultSkybox(e.environmentTexture, u, m, b);
}
}
return !0;
} catch (e) {
var _ = Va("importScene", o ? o.producer : "Unknown") + r;
if (!i) throw (g.a.Log(_), e);
i(_, e);
} finally {
null !== r && $i.a.loggingLevel !== $i.a.NO_LOGGING && g.a.Log(Va("importScene", o ? o.producer : "Unknown") + ($i.a.loggingLevel !== $i.a.MINIMAL_LOGGING ? r : ""));
}
return !1;
},
loadAssetContainer: function (e, t, n, i) {
return Ua(e, t, n, i);
},
});
var Ha = n(103),
Wa = n(162),
Xa = (function () {
function e() {
(this._isEnabled = !0), (this.leftColor = s.a.White()), (this.rightColor = s.a.Black()), (this.bias = 0), (this.power = 1);
}
return (
Object.defineProperty(e.prototype, "isEnabled", {
get: function () {
return this._isEnabled;
},
set: function (e) {
this._isEnabled !== e && ((this._isEnabled = e), ue.a.MarkAllMaterialsAsDirty(20));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.clone = function () {
var t = new e();
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.serialize = function () {
var e = {};
return (e.isEnabled = this.isEnabled), (e.leftColor = this.leftColor.asArray()), (e.rightColor = this.rightColor.asArray()), (e.bias = this.bias), (e.power = this.power), e;
}),
(e.Parse = function (t) {
var n = new e();
return (n.isEnabled = t.isEnabled), (n.leftColor = s.a.FromArray(t.leftColor)), (n.rightColor = s.a.FromArray(t.rightColor)), (n.bias = t.bias), (n.power = t.power || 1), n;
}),
e
);
})();
He.a._FresnelParametersParser = Xa.Parse;
var Ya = n(95),
Ka = n(160),
Za = n(199),
qa = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (i._useMicroSurfaceFromReflectivityMapAlpha = !0), i;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "PBRSpecularGlossinessMaterial";
}),
(t.prototype.clone = function (e) {
var n = this,
i = He.a.Clone(function () {
return new t(e, n.getScene());
}, this);
return (i.id = e), (i.name = e), this.clearCoat.copyTo(i.clearCoat), this.anisotropy.copyTo(i.anisotropy), this.brdf.copyTo(i.brdf), this.sheen.copyTo(i.sheen), this.subSurface.copyTo(i.subSurface), i;
}),
(t.prototype.serialize = function () {
var e = He.a.Serialize(this);
return (
(e.customType = "BABYLON.PBRSpecularGlossinessMaterial"),
(e.clearCoat = this.clearCoat.serialize()),
(e.anisotropy = this.anisotropy.serialize()),
(e.brdf = this.brdf.serialize()),
(e.sheen = this.sheen.serialize()),
(e.subSurface = this.subSurface.serialize()),
e
);
}),
(t.Parse = function (e, n, i) {
var r = He.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
return (
e.clearCoat && r.clearCoat.parse(e.clearCoat, n, i),
e.anisotropy && r.anisotropy.parse(e.anisotropy, n, i),
e.brdf && r.brdf.parse(e.brdf, n, i),
e.sheen && r.sheen.parse(e.sheen, n, i),
e.subSurface && r.subSurface.parse(e.subSurface, n, i),
r
);
}),
Object(h.c)([Object(He.e)("diffuse"), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_albedoColor")], t.prototype, "diffuseColor", void 0),
Object(h.c)([Object(He.m)(), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_albedoTexture")], t.prototype, "diffuseTexture", void 0),
Object(h.c)([Object(He.e)("specular"), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_reflectivityColor")], t.prototype, "specularColor", void 0),
Object(h.c)([Object(He.c)(), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_microSurface")], t.prototype, "glossiness", void 0),
Object(h.c)([Object(He.m)(), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_reflectivityTexture")], t.prototype, "specularGlossinessTexture", void 0),
t
);
})(Ka.a);
c.a.RegisteredTypes["BABYLON.PBRSpecularGlossinessMaterial"] = qa;
var Qa = n(106),
Ja = (function (e) {
function t(t, n) {
var i = e.call(this, n) || this;
return t
? ((i._engine = n.getEngine()),
(i._textureMatrix = a.a.Identity()),
(i.name = t),
(i.url = t),
(i.hasAlpha = !1),
(i.isCube = !1),
(i.is3D = i._engine.webGLVersion > 1),
(i.wrapU = 0),
(i.wrapV = 0),
(i.wrapR = 0),
(i.anisotropicFilteringLevel = 1),
(i._texture = i._getFromCache(t, !0)),
i._texture || (n.useDelayedTextureLoading ? (i.delayLoadState = 4) : i.loadTexture()),
i)
: i;
}
return (
Object(h.d)(t, e),
(t.prototype.getTextureMatrix = function () {
return this._textureMatrix;
}),
(t.prototype.load3dlTexture = function () {
var e,
n = this._engine;
(e = 1 === n.webGLVersion ? n.createRawTexture(null, 1, 1, 5, !1, !1, 2, null, 0) : n.createRawTexture3D(null, 1, 1, 1, 5, !1, !1, 2, null, 0)), (this._texture = e);
var i = function (i) {
if ("string" == typeof i) {
for (var r, o = null, a = null, s = i.split("\n"), c = 0, l = 0, u = 0, h = 0, d = 0, p = 0; p < s.length; p++)
if (((r = s[p]), t._noneEmptyLineRegex.test(r) && 0 !== r.indexOf("#"))) {
var f = r.split(" ");
if (0 !== c) {
if (0 != c) {
var m = Math.max(parseInt(f[0]), 0),
g = Math.max(parseInt(f[1]), 0),
b = Math.max(parseInt(f[2]), 0);
(d = Math.max(m, d)), (d = Math.max(g, d)), (d = Math.max(b, d));
var _ = 4 * (l + h * c + u * c * c);
a && ((a[_ + 0] = m), (a[_ + 1] = g), (a[_ + 2] = b)), ++u % c == 0 && ((u = 0), ++h % c == 0 && (l++, (h = 0)));
}
} else (c = f.length), (o = new Uint8Array(c * c * c * 4)), (a = new Float32Array(c * c * c * 4));
}
if (a && o)
for (p = 0; p < a.length; p++)
if (p > 0 && (p + 1) % 4 == 0) o[p] = 255;
else {
var v = a[p];
o[p] = (v / d) * 255;
}
e.is3D ? (e.updateSize(c, c, c), n.updateRawTexture3D(e, o, 5, !1)) : (e.updateSize(c * c, c), n.updateRawTexture(e, o, 5, !1));
}
},
r = this.getScene();
return r ? r._loadFile(this.url, i) : this._engine._loadFile(this.url, i), this._texture;
}),
(t.prototype.loadTexture = function () {
this.url && this.url.toLocaleLowerCase().indexOf(".3dl") == this.url.length - 4 && this.load3dlTexture();
}),
(t.prototype.clone = function () {
var e = new t(this.url, this.getScene());
return (e.level = this.level), e;
}),
(t.prototype.delayLoad = function () {
4 === this.delayLoadState && ((this.delayLoadState = 1), (this._texture = this._getFromCache(this.url, !0)), this._texture || this.loadTexture());
}),
(t.Parse = function (e, n) {
var i = null;
return e.name && !e.isRenderTarget && (((i = new t(e.name, n)).name = e.name), (i.level = e.level)), i;
}),
(t.prototype.serialize = function () {
if (!this.name) return null;
var e = {};
return (e.name = this.name), (e.level = this.level), (e.customType = "BABYLON.ColorGradingTexture"), e;
}),
(t._noneEmptyLineRegex = /\S+/),
t
);
})(Cr.a);
c.a.RegisteredTypes["BABYLON.ColorGradingTexture"] = Ja;
var $a = (function (e) {
function t(t, n, i, r, o, a, s) {
void 0 === r && (r = !1), void 0 === o && (o = !0), void 0 === a && (a = null), void 0 === s && (s = null);
var c = e.call(this, n) || this;
if (((c._onLoad = null), (c._onError = null), (c.coordinatesMode = ln.a.CUBIC_MODE), !t)) throw new Error("Image url is not set");
return (
(c.name = t),
(c.url = t),
(c._size = i),
(c._noMipmap = r),
(c.gammaSpace = o),
(c._onLoad = a),
(c._onError = s),
(c.hasAlpha = !1),
(c.isCube = !0),
(c._texture = c._getFromCache(t, c._noMipmap)),
c._texture
? a &&
(c._texture.isReady
? $e.b.SetImmediate(function () {
return a();
})
: c._texture.onLoadedObservable.add(a))
: n.useDelayedTextureLoading
? (c.delayLoadState = 4)
: c.loadImage(c.loadTexture.bind(c), c._onError),
c
);
}
return (
Object(h.d)(t, e),
(t.prototype.loadImage = function (e, t) {
var n = this,
i = document.createElement("canvas"),
r = new Image();
r.addEventListener("load", function () {
(n._width = r.width), (n._height = r.height), (i.width = n._width), (i.height = n._height);
var t = i.getContext("2d");
t.drawImage(r, 0, 0);
var o = t.getImageData(0, 0, r.width, r.height);
(n._buffer = o.data.buffer), i.remove(), e();
}),
r.addEventListener("error", function (e) {
t && t(n.getClassName() + " could not be loaded", e);
}),
(r.src = this.url);
}),
(t.prototype.loadTexture = function () {
var e = this,
n = this.getScene();
n &&
(this._texture = n.getEngine().createRawCubeTextureFromUrl(
this.url,
n,
this._size,
4,
n.getEngine().getCaps().textureFloat ? 1 : 7,
this._noMipmap,
function () {
for (var n = e.getFloat32ArrayFromArrayBuffer(e._buffer), i = Sa.ConvertPanoramaToCubemap(n, e._width, e._height, e._size), r = [], o = 0; o < 6; o++) {
var a = i[t._FacesMapping[o]];
r.push(a);
}
return r;
},
null,
this._onLoad,
this._onError
));
}),
(t.prototype.getFloat32ArrayFromArrayBuffer = function (e) {
for (var t = new DataView(e), n = new Float32Array((3 * e.byteLength) / 4), i = 0, r = 0; r < e.byteLength; r++) (r + 1) % 4 != 0 && (n[i++] = t.getUint8(r) / 255);
return n;
}),
(t.prototype.getClassName = function () {
return "EquiRectangularCubeTexture";
}),
(t.prototype.clone = function () {
var e = this.getScene();
if (!e) return this;
var n = new t(this.url, e, this._size, this._noMipmap, this.gammaSpace);
return (n.level = this.level), (n.wrapU = this.wrapU), (n.wrapV = this.wrapV), (n.coordinatesIndex = this.coordinatesIndex), (n.coordinatesMode = this.coordinatesMode), n;
}),
(t._FacesMapping = ["right", "left", "up", "down", "front", "back"]),
t
);
})(Cr.a),
es = (function () {
function e() {}
return (
(e.GetTGAHeader = function (e) {
var t = 0;
return {
id_length: e[t++],
colormap_type: e[t++],
image_type: e[t++],
colormap_index: e[t++] | (e[t++] << 8),
colormap_length: e[t++] | (e[t++] << 8),
colormap_size: e[t++],
origin: [e[t++] | (e[t++] << 8), e[t++] | (e[t++] << 8)],
width: e[t++] | (e[t++] << 8),
height: e[t++] | (e[t++] << 8),
pixel_size: e[t++],
flags: e[t++],
};
}),
(e.UploadContent = function (t, n) {
if (n.length < 19) g.a.Error("Unable to load TGA file - Not enough data to contain header");
else {
var i = 18,
r = e.GetTGAHeader(n);
if (r.id_length + i > n.length) g.a.Error("Unable to load TGA file - Not enough data");
else {
i += r.id_length;
var o,
a = !1,
s = !1,
c = !1;
switch (r.image_type) {
case e._TYPE_RLE_INDEXED:
a = !0;
case e._TYPE_INDEXED:
s = !0;
break;
case e._TYPE_RLE_RGB:
a = !0;
case e._TYPE_RGB:
break;
case e._TYPE_RLE_GREY:
a = !0;
case e._TYPE_GREY:
c = !0;
}
var l,
u,
h,
d,
p,
f,
m,
b = r.pixel_size >> 3,
_ = r.width * r.height * b;
if ((s && (l = n.subarray(i, (i += r.colormap_length * (r.colormap_size >> 3)))), a)) {
var v, y, C;
o = new Uint8Array(_);
for (var P = 0, x = new Uint8Array(b); i < _ && P < _; )
if (((y = 1 + (127 & (v = n[i++]))), 128 & v)) {
for (C = 0; C < b; ++C) x[C] = n[i++];
for (C = 0; C < y; ++C) o.set(x, P + C * b);
P += b * y;
} else {
for (y *= b, C = 0; C < y; ++C) o[P + C] = n[i++];
P += y;
}
} else o = n.subarray(i, (i += s ? r.width * r.height : _));
switch ((r.flags & e._ORIGIN_MASK) >> e._ORIGIN_SHIFT) {
default:
case e._ORIGIN_UL:
(u = 0), (d = 1), (m = r.width), (h = 0), (p = 1), (f = r.height);
break;
case e._ORIGIN_BL:
(u = 0), (d = 1), (m = r.width), (h = r.height - 1), (p = -1), (f = -1);
break;
case e._ORIGIN_UR:
(u = r.width - 1), (d = -1), (m = -1), (h = 0), (p = 1), (f = r.height);
break;
case e._ORIGIN_BR:
(u = r.width - 1), (d = -1), (m = -1), (h = r.height - 1), (p = -1), (f = -1);
}
var T = e["_getImageData" + (c ? "Grey" : "") + r.pixel_size + "bits"](r, l, o, h, p, f, u, d, m);
t.getEngine()._uploadDataToTextureDirectly(t, T);
}
}
}),
(e._getImageData8bits = function (e, t, n, i, r, o, a, s, c) {
var l,
u,
h,
d = n,
p = t,
f = e.width,
m = e.height,
g = 0,
b = new Uint8Array(f * m * 4);
for (h = i; h !== o; h += r)
for (u = a; u !== c; u += s, g++) (l = d[g]), (b[4 * (u + f * h) + 3] = 255), (b[4 * (u + f * h) + 2] = p[3 * l + 0]), (b[4 * (u + f * h) + 1] = p[3 * l + 1]), (b[4 * (u + f * h) + 0] = p[3 * l + 2]);
return b;
}),
(e._getImageData16bits = function (e, t, n, i, r, o, a, s, c) {
var l,
u,
h,
d = n,
p = e.width,
f = e.height,
m = 0,
g = new Uint8Array(p * f * 4);
for (h = i; h !== o; h += r)
for (u = a; u !== c; u += s, m += 2) {
var b = ((255 * ((31744 & (l = d[m + 0] + (d[m + 1] << 8))) >> 10)) / 31) | 0,
_ = ((255 * ((992 & l) >> 5)) / 31) | 0,
v = ((255 * (31 & l)) / 31) | 0;
(g[4 * (u + p * h) + 0] = b), (g[4 * (u + p * h) + 1] = _), (g[4 * (u + p * h) + 2] = v), (g[4 * (u + p * h) + 3] = 32768 & l ? 0 : 255);
}
return g;
}),
(e._getImageData24bits = function (e, t, n, i, r, o, a, s, c) {
var l,
u,
h = n,
d = e.width,
p = e.height,
f = 0,
m = new Uint8Array(d * p * 4);
for (u = i; u !== o; u += r) for (l = a; l !== c; l += s, f += 3) (m[4 * (l + d * u) + 3] = 255), (m[4 * (l + d * u) + 2] = h[f + 0]), (m[4 * (l + d * u) + 1] = h[f + 1]), (m[4 * (l + d * u) + 0] = h[f + 2]);
return m;
}),
(e._getImageData32bits = function (e, t, n, i, r, o, a, s, c) {
var l,
u,
h = n,
d = e.width,
p = e.height,
f = 0,
m = new Uint8Array(d * p * 4);
for (u = i; u !== o; u += r) for (l = a; l !== c; l += s, f += 4) (m[4 * (l + d * u) + 2] = h[f + 0]), (m[4 * (l + d * u) + 1] = h[f + 1]), (m[4 * (l + d * u) + 0] = h[f + 2]), (m[4 * (l + d * u) + 3] = h[f + 3]);
return m;
}),
(e._getImageDataGrey8bits = function (e, t, n, i, r, o, a, s, c) {
var l,
u,
h,
d = n,
p = e.width,
f = e.height,
m = 0,
g = new Uint8Array(p * f * 4);
for (h = i; h !== o; h += r) for (u = a; u !== c; u += s, m++) (l = d[m]), (g[4 * (u + p * h) + 0] = l), (g[4 * (u + p * h) + 1] = l), (g[4 * (u + p * h) + 2] = l), (g[4 * (u + p * h) + 3] = 255);
return g;
}),
(e._getImageDataGrey16bits = function (e, t, n, i, r, o, a, s, c) {
var l,
u,
h = n,
d = e.width,
p = e.height,
f = 0,
m = new Uint8Array(d * p * 4);
for (u = i; u !== o; u += r) for (l = a; l !== c; l += s, f += 2) (m[4 * (l + d * u) + 0] = h[f + 0]), (m[4 * (l + d * u) + 1] = h[f + 0]), (m[4 * (l + d * u) + 2] = h[f + 0]), (m[4 * (l + d * u) + 3] = h[f + 1]);
return m;
}),
(e._TYPE_INDEXED = 1),
(e._TYPE_RGB = 2),
(e._TYPE_GREY = 3),
(e._TYPE_RLE_INDEXED = 9),
(e._TYPE_RLE_RGB = 10),
(e._TYPE_RLE_GREY = 11),
(e._ORIGIN_MASK = 48),
(e._ORIGIN_SHIFT = 4),
(e._ORIGIN_BL = 0),
(e._ORIGIN_BR = 1),
(e._ORIGIN_UL = 2),
(e._ORIGIN_UR = 3),
e
);
})(),
ts = (function () {
function e() {
this.supportCascades = !1;
}
return (
(e.prototype.canLoad = function (e) {
return $r.a.EndsWith(e, ".tga");
}),
(e.prototype.loadCubeData = function (e, t, n, i, r) {
throw ".env not supported in Cube.";
}),
(e.prototype.loadData = function (e, t, n) {
var i = new Uint8Array(e.buffer, e.byteOffset, e.byteLength),
r = es.GetTGAHeader(i);
n(r.width, r.height, t.generateMipMaps, !1, function () {
es.UploadContent(t, i);
});
}),
e
);
})();
ue.a._TextureLoaders.push(new ts());
var ns,
is = function () {};
!(function (e) {
(e[(e.cTFETC1 = 0)] = "cTFETC1"),
(e[(e.cTFBC1 = 1)] = "cTFBC1"),
(e[(e.cTFBC4 = 2)] = "cTFBC4"),
(e[(e.cTFPVRTC1_4_OPAQUE_ONLY = 3)] = "cTFPVRTC1_4_OPAQUE_ONLY"),
(e[(e.cTFBC7_M6_OPAQUE_ONLY = 4)] = "cTFBC7_M6_OPAQUE_ONLY"),
(e[(e.cTFETC2 = 5)] = "cTFETC2"),
(e[(e.cTFBC3 = 6)] = "cTFBC3"),
(e[(e.cTFBC5 = 7)] = "cTFBC5");
})(ns || (ns = {}));
var rs = (function () {
function e() {}
return (
(e.GetInternalFormatFromBasisFormat = function (e) {
if (e === ns.cTFETC1) return 36196;
if (e === ns.cTFBC1) return 33776;
if (e === ns.cTFBC3) return 33779;
throw "The chosen Basis transcoder format is not currently supported";
}),
(e._CreateWorkerAsync = function () {
var t = this;
return (
this._WorkerPromise ||
(this._WorkerPromise = new Promise(function (n) {
t._Worker
? n(t._Worker)
: $e.b.LoadFileAsync(e.WasmModuleURL).then(function (i) {
var r = URL.createObjectURL(new Blob(["(" + os + ")()"], { type: "application/javascript" }));
t._Worker = new Worker(r);
var o = function (e) {
"init" === e.data.action && (t._Worker.removeEventListener("message", o), n(t._Worker));
};
t._Worker.addEventListener("message", o), t._Worker.postMessage({ action: "init", url: e.JSModuleURL, wasmBinary: i });
});
})),
this._WorkerPromise
);
}),
(e.TranscodeAsync = function (e, t) {
var n = this,
i = e instanceof ArrayBuffer ? new Uint8Array(e) : e;
return new Promise(function (e, r) {
n._CreateWorkerAsync().then(function () {
var o = n._actionId++,
a = function (t) {
"transcode" === t.data.action && t.data.id === o && (n._Worker.removeEventListener("message", a), t.data.success ? e(t.data) : r("Transcode is not supported on this device"));
};
n._Worker.addEventListener("message", a);
var s = new Uint8Array(i.byteLength);
s.set(new Uint8Array(i.buffer, i.byteOffset, i.byteLength)), n._Worker.postMessage({ action: "transcode", id: o, imageData: s, config: t, ignoreSupportedFormats: n._IgnoreSupportedFormats }, [s.buffer]);
});
});
}),
(e.LoadTextureFromTranscodeResult = function (t, n) {
for (
var i,
r = t.getEngine(),
o = function () {
if (((i = n.fileInfo.images[a].levels[0]), (t._invertVScale = t.invertY), -1 === n.format))
if (((t.type = 10), (t.format = 4), r.webGLVersion < 2 && (z.a.Log2(i.width) % 1 != 0 || z.a.Log2(i.height) % 1 != 0))) {
var o = new pn.a(r, pn.b.Temp);
(t._invertVScale = t.invertY),
(o.type = 10),
(o.format = 4),
(o.width = (i.width + 3) & -4),
(o.height = (i.height + 3) & -4),
r._bindTextureDirectly(r._gl.TEXTURE_2D, o, !0),
r._uploadDataToTextureDirectly(o, i.transcodedPixels, a, 0, 4, !0),
r._rescaleTexture(o, t, r.scenes[0], r._getInternalFormat(4), function () {
r._releaseTexture(o), r._bindTextureDirectly(r._gl.TEXTURE_2D, t, !0);
});
} else (t._invertVScale = !t.invertY), (t.width = (i.width + 3) & -4), (t.height = (i.height + 3) & -4), r._uploadDataToTextureDirectly(t, i.transcodedPixels, a, 0, 4, !0);
else
(t.width = i.width),
(t.height = i.height),
n.fileInfo.images[a].levels.forEach(function (i, o) {
r._uploadCompressedDataToTextureDirectly(t, e.GetInternalFormatFromBasisFormat(n.format), i.width, i.height, i.transcodedPixels, a, o);
}),
r.webGLVersion < 2 &&
(z.a.Log2(t.width) % 1 != 0 || z.a.Log2(t.height) % 1 != 0) &&
($e.b.Warn(
"Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1."
),
(t._cachedWrapU = ln.a.CLAMP_ADDRESSMODE),
(t._cachedWrapV = ln.a.CLAMP_ADDRESSMODE));
},
a = 0;
a < n.fileInfo.images.length;
a++
)
o();
}),
(e._IgnoreSupportedFormats = !1),
(e.JSModuleURL = "assets/babylonjs/basis_transcoder.js"),
(e.WasmModuleURL = "assets/babylonjs/basis_transcoder.wasm"),
(e._WorkerPromise = null),
(e._Worker = null),
(e._actionId = 0),
e
);
})();
function os() {
var e = 0,
t = 1,
n = 5,
i = 6,
r = null;
function o(e, t, n, i, r) {
var o = e.getImageTranscodedSizeInBytes(t, n, i),
a = new Uint8Array(o);
if (!e.transcodeImage(a, t, n, i, 1, 0)) return null;
r &&
(a = (function (e, t, n, i) {
for (var r = new Uint16Array(4), o = new Uint16Array(n * i), a = n / 4, s = i / 4, c = 0; c < s; c++)
for (var l = 0; l < a; l++) {
var u = t + 8 * (c * a + l);
(r[0] = e[u] | (e[u + 1] << 8)),
(r[1] = e[u + 2] | (e[u + 3] << 8)),
(r[2] = ((2 * (31 & r[0]) + 1 * (31 & r[1])) / 3) | (((2 * (2016 & r[0]) + 1 * (2016 & r[1])) / 3) & 2016) | (((2 * (63488 & r[0]) + 1 * (63488 & r[1])) / 3) & 63488)),
(r[3] = ((2 * (31 & r[1]) + 1 * (31 & r[0])) / 3) | (((2 * (2016 & r[1]) + 1 * (2016 & r[0])) / 3) & 2016) | (((2 * (63488 & r[1]) + 1 * (63488 & r[0])) / 3) & 63488));
for (var h = 0; h < 4; h++) {
var d = e[u + 4 + h],
p = (4 * c + h) * n + 4 * l;
(o[p++] = r[3 & d]), (o[p++] = r[(d >> 2) & 3]), (o[p++] = r[(d >> 4) & 3]), (o[p++] = r[(d >> 6) & 3]);
}
}
return o;
})(a, 0, (e.getImageWidth(t, n) + 3) & -4, (e.getImageHeight(t, n) + 3) & -4));
return a;
}
onmessage = function (a) {
if ("init" === a.data.action)
r ||
((Module = { wasmBinary: a.data.wasmBinary }),
importScripts(a.data.url),
(r = new Promise(function (e) {
Module.onRuntimeInitialized = function () {
Module.initializeBasis(), e();
};
}))),
r.then(function () {
postMessage({ action: "init" });
});
else if ("transcode" === a.data.action) {
var s = a.data.config,
c = a.data.imageData,
l = new Module.BasisFile(c),
u = (function (e) {
for (var t = e.getHasAlpha(), n = e.getNumImages(), i = [], r = 0; r < n; r++) {
for (var o = { levels: [] }, a = e.getNumLevels(r), s = 0; s < a; s++) {
var c = { width: e.getImageWidth(r, s), height: e.getImageHeight(r, s) };
o.levels.push(c);
}
i.push(o);
}
return { hasAlpha: t, images: i };
})(l),
h = a.data.ignoreSupportedFormats
? null
: (function (r, o) {
var a = null;
r.supportedCompressionFormats &&
(r.supportedCompressionFormats.etc1 ? (a = e) : r.supportedCompressionFormats.s3tc ? (a = o.hasAlpha ? i : t) : r.supportedCompressionFormats.pvrtc || (r.supportedCompressionFormats.etc2 && (a = n)));
return a;
})(a.data.config, u),
d = !1;
null === h && ((d = !0), (h = u.hasAlpha ? i : t));
var p = !0;
l.startTranscoding() || (p = !1);
for (var f = [], m = 0; m < u.images.length && p; m++) {
var g = u.images[m];
if (void 0 === s.loadSingleImage || s.loadSingleImage === m) {
var b = g.levels.length;
!1 === s.loadMipmapLevels && (b = 1);
for (var _ = 0; _ < b; _++) {
var v = g.levels[_],
y = o(l, m, _, h, d);
if (!y) {
p = !1;
break;
}
(v.transcodedPixels = y), f.push(v.transcodedPixels.buffer);
}
}
}
l.close(), l.delete(), d && (h = -1), p ? postMessage({ action: "transcode", success: p, id: a.data.id, fileInfo: u, format: h }, f) : postMessage({ action: "transcode", success: p, id: a.data.id });
}
};
}
var as = (function () {
function e() {
this.supportCascades = !0;
}
return (
(e.prototype.canLoad = function (e) {
return $r.a.EndsWith(e, ".basis");
}),
(e.prototype.loadCubeData = function (e, t, n, i, r) {
if (!Array.isArray(e)) {
var o = t.getEngine().getCaps(),
a = { supportedCompressionFormats: { etc1: !!o.etc1, s3tc: !!o.s3tc, pvrtc: !!o.pvrtc, etc2: !!o.etc2 } };
rs.TranscodeAsync(e, a)
.then(function (e) {
var n = e.fileInfo.images[0].levels.length > 1 && t.generateMipMaps;
rs.LoadTextureFromTranscodeResult(t, e), t.getEngine()._setCubeMapTextureParams(n), (t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i();
})
.catch(function (e) {
$e.b.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"), (t.isReady = !0);
});
}
}),
(e.prototype.loadData = function (e, t, n) {
var i = t.getEngine().getCaps(),
r = { supportedCompressionFormats: { etc1: !!i.etc1, s3tc: !!i.s3tc, pvrtc: !!i.pvrtc, etc2: !!i.etc2 } };
rs.TranscodeAsync(e, r)
.then(function (e) {
var i = e.fileInfo.images[0].levels[0],
r = e.fileInfo.images[0].levels.length > 1 && t.generateMipMaps;
n(i.width, i.height, r, -1 !== e.format, function () {
rs.LoadTextureFromTranscodeResult(t, e);
});
})
.catch(function (e) {
$e.b.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"), n(0, 0, !1, !1, function () {});
});
}),
e
);
})();
ue.a._TextureLoaders.push(new as()),
(Mi.a.prototype.unBindMultiColorAttachmentFramebuffer = function (e, t, n) {
void 0 === t && (t = !1), (this._currentRenderTarget = null);
var i = this._gl;
if (e[0]._MSAAFramebuffer) {
i.bindFramebuffer(i.READ_FRAMEBUFFER, e[0]._MSAAFramebuffer), i.bindFramebuffer(i.DRAW_FRAMEBUFFER, e[0]._framebuffer);
var r = e[0]._attachments;
r || ((r = new Array(e.length)), (e[0]._attachments = r));
for (var o = 0; o < e.length; o++) {
for (var a = e[o], s = 0; s < r.length; s++) r[s] = i.NONE;
(r[o] = i[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + o : "COLOR_ATTACHMENT" + o + "_WEBGL"]),
i.readBuffer(r[o]),
i.drawBuffers(r),
i.blitFramebuffer(0, 0, a.width, a.height, 0, 0, a.width, a.height, i.COLOR_BUFFER_BIT, i.NEAREST);
}
for (o = 0; o < r.length; o++) r[o] = i[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + o : "COLOR_ATTACHMENT" + o + "_WEBGL"];
i.drawBuffers(r);
}
for (o = 0; o < e.length; o++) {
!(a = e[o]).generateMipMaps || t || a.isCube || (this._bindTextureDirectly(i.TEXTURE_2D, a, !0), i.generateMipmap(i.TEXTURE_2D), this._bindTextureDirectly(i.TEXTURE_2D, null));
}
n && (e[0]._MSAAFramebuffer && this._bindUnboundFramebuffer(e[0]._framebuffer), n()), this._bindUnboundFramebuffer(null);
}),
(Mi.a.prototype.createMultipleRenderTarget = function (e, t) {
var n = !1,
i = !0,
r = !1,
o = !1,
a = 1,
s = new Array(),
c = new Array();
void 0 !== t &&
((n = void 0 !== t.generateMipMaps && t.generateMipMaps),
(i = void 0 === t.generateDepthBuffer || t.generateDepthBuffer),
(r = void 0 !== t.generateStencilBuffer && t.generateStencilBuffer),
(o = void 0 !== t.generateDepthTexture && t.generateDepthTexture),
(a = t.textureCount || 1),
t.types && (s = t.types),
t.samplingModes && (c = t.samplingModes));
var l = this._gl,
u = l.createFramebuffer();
this._bindUnboundFramebuffer(u);
for (var h = e.width || e, d = e.height || e, p = [], f = [], m = this._setupFramebufferDepthAttachments(r, i, h, d), b = 0; b < a; b++) {
var _ = c[b] || 3,
v = s[b] || 0;
((1 !== v || this._caps.textureFloatLinearFiltering) && (2 !== v || this._caps.textureHalfFloatLinearFiltering)) || (_ = 1);
var y = this._getSamplingParameters(_, n);
1 !== v || this._caps.textureFloat || ((v = 0), g.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type"));
var C = new pn.a(this, pn.b.MultiRenderTarget),
P = l[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + b : "COLOR_ATTACHMENT" + b + "_WEBGL"];
p.push(C),
f.push(P),
l.activeTexture(l["TEXTURE" + b]),
l.bindTexture(l.TEXTURE_2D, C._webGLTexture),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MAG_FILTER, y.mag),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, y.min),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_S, l.CLAMP_TO_EDGE),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_T, l.CLAMP_TO_EDGE),
l.texImage2D(l.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(v), h, d, 0, l.RGBA, this._getWebGLTextureType(v), null),
l.framebufferTexture2D(l.DRAW_FRAMEBUFFER, P, l.TEXTURE_2D, C._webGLTexture, 0),
n && this._gl.generateMipmap(this._gl.TEXTURE_2D),
this._bindTextureDirectly(l.TEXTURE_2D, null),
(C._framebuffer = u),
(C._depthStencilBuffer = m),
(C.baseWidth = h),
(C.baseHeight = d),
(C.width = h),
(C.height = d),
(C.isReady = !0),
(C.samples = 1),
(C.generateMipMaps = n),
(C.samplingMode = _),
(C.type = v),
(C._generateDepthBuffer = i),
(C._generateStencilBuffer = r),
(C._attachments = f),
this._internalTexturesCache.push(C);
}
if (o && this._caps.depthTextureExtension) {
var x = new pn.a(this, pn.b.MultiRenderTarget);
l.activeTexture(l.TEXTURE0),
l.bindTexture(l.TEXTURE_2D, x._webGLTexture),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MAG_FILTER, l.NEAREST),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, l.NEAREST),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_S, l.CLAMP_TO_EDGE),
l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_T, l.CLAMP_TO_EDGE),
l.texImage2D(l.TEXTURE_2D, 0, this.webGLVersion < 2 ? l.DEPTH_COMPONENT : l.DEPTH_COMPONENT16, h, d, 0, l.DEPTH_COMPONENT, l.UNSIGNED_SHORT, null),
l.framebufferTexture2D(l.FRAMEBUFFER, l.DEPTH_ATTACHMENT, l.TEXTURE_2D, x._webGLTexture, 0),
(x._framebuffer = u),
(x.baseWidth = h),
(x.baseHeight = d),
(x.width = h),
(x.height = d),
(x.isReady = !0),
(x.samples = 1),
(x.generateMipMaps = n),
(x.samplingMode = l.NEAREST),
(x._generateDepthBuffer = i),
(x._generateStencilBuffer = r),
p.push(x),
this._internalTexturesCache.push(x);
}
return l.drawBuffers(f), this._bindUnboundFramebuffer(null), this.resetTextureCache(), p;
}),
(Mi.a.prototype.updateMultipleRenderTargetTextureSampleCount = function (e, t) {
if (this.webGLVersion < 2 || !e || 0 == e.length) return 1;
if (e[0].samples === t) return t;
var n = this._gl;
(t = Math.min(t, this.getCaps().maxMSAASamples)),
e[0]._depthStencilBuffer && (n.deleteRenderbuffer(e[0]._depthStencilBuffer), (e[0]._depthStencilBuffer = null)),
e[0]._MSAAFramebuffer && (n.deleteFramebuffer(e[0]._MSAAFramebuffer), (e[0]._MSAAFramebuffer = null));
for (var i = 0; i < e.length; i++) e[i]._MSAARenderBuffer && (n.deleteRenderbuffer(e[i]._MSAARenderBuffer), (e[i]._MSAARenderBuffer = null));
if (t > 1 && n.renderbufferStorageMultisample) {
var r = n.createFramebuffer();
if (!r) throw new Error("Unable to create multi sampled framebuffer");
this._bindUnboundFramebuffer(r);
var o = this._setupFramebufferDepthAttachments(e[0]._generateStencilBuffer, e[0]._generateDepthBuffer, e[0].width, e[0].height, t),
a = [];
for (i = 0; i < e.length; i++) {
var s = e[i],
c = n[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + i : "COLOR_ATTACHMENT" + i + "_WEBGL"],
l = n.createRenderbuffer();
if (!l) throw new Error("Unable to create multi sampled framebuffer");
n.bindRenderbuffer(n.RENDERBUFFER, l),
n.renderbufferStorageMultisample(n.RENDERBUFFER, t, this._getRGBAMultiSampleBufferFormat(s.type), s.width, s.height),
n.framebufferRenderbuffer(n.FRAMEBUFFER, c, n.RENDERBUFFER, l),
(s._MSAAFramebuffer = r),
(s._MSAARenderBuffer = l),
(s.samples = t),
(s._depthStencilBuffer = o),
n.bindRenderbuffer(n.RENDERBUFFER, null),
a.push(c);
}
n.drawBuffers(a);
} else this._bindUnboundFramebuffer(e[0]._framebuffer);
return this._bindUnboundFramebuffer(null), t;
});
var ss = (function (e) {
function t(t, n, i, r, o) {
var a = this,
s = !(!o || !o.generateMipMaps) && o.generateMipMaps,
c = !(!o || !o.generateDepthTexture) && o.generateDepthTexture,
l = !o || void 0 === o.doNotChangeAspectRatio || o.doNotChangeAspectRatio;
if ((((a = e.call(this, t, n, r, s, l) || this)._engine = r.getEngine()), a.isSupported)) {
for (var u = [], h = [], d = 0; d < i; d++)
o && o.types && void 0 !== o.types[d] ? u.push(o.types[d]) : u.push(o && o.defaultType ? o.defaultType : 0),
o && o.samplingModes && void 0 !== o.samplingModes[d] ? h.push(o.samplingModes[d]) : h.push(ln.a.BILINEAR_SAMPLINGMODE);
var p = !o || void 0 === o.generateDepthBuffer || o.generateDepthBuffer,
f = !(!o || void 0 === o.generateStencilBuffer) && o.generateStencilBuffer;
return (
(a._size = n),
(a._multiRenderTargetOptions = { samplingModes: h, generateMipMaps: s, generateDepthBuffer: p, generateStencilBuffer: f, generateDepthTexture: c, types: u, textureCount: i }),
a._createInternalTextures(),
a._createTextures(),
a
);
}
a.dispose();
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "isSupported", {
get: function () {
return this._engine.webGLVersion > 1 || this._engine.getCaps().drawBuffersExtension;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "textures", {
get: function () {
return this._textures;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "depthTexture", {
get: function () {
return this._textures[this._textures.length - 1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "wrapU", {
set: function (e) {
if (this._textures) for (var t = 0; t < this._textures.length; t++) this._textures[t].wrapU = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "wrapV", {
set: function (e) {
if (this._textures) for (var t = 0; t < this._textures.length; t++) this._textures[t].wrapV = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._rebuild = function () {
this.releaseInternalTextures(), this._createInternalTextures();
for (var e = 0; e < this._internalTextures.length; e++) {
this._textures[e]._texture = this._internalTextures[e];
}
this._texture = this._internalTextures[0];
}),
(t.prototype._createInternalTextures = function () {
this._internalTextures = this._engine.createMultipleRenderTarget(this._size, this._multiRenderTargetOptions);
}),
(t.prototype._createTextures = function () {
this._textures = [];
for (var e = 0; e < this._internalTextures.length; e++) {
var t = new ln.a(null, this.getScene());
(t._texture = this._internalTextures[e]), this._textures.push(t);
}
this._texture = this._internalTextures[0];
}),
Object.defineProperty(t.prototype, "samples", {
get: function () {
return this._samples;
},
set: function (e) {
this._samples !== e && (this._samples = this._engine.updateMultipleRenderTargetTextureSampleCount(this._internalTextures, e));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.resize = function (e) {
this.releaseInternalTextures(), (this._size = e), this._createInternalTextures();
}),
(t.prototype.unbindFrameBuffer = function (e, t) {
var n = this;
e.unBindMultiColorAttachmentFramebuffer(this._internalTextures, this.isCube, function () {
n.onAfterRenderObservable.notifyObservers(t);
});
}),
(t.prototype.dispose = function () {
this.releaseInternalTextures(), e.prototype.dispose.call(this);
}),
(t.prototype.releaseInternalTextures = function () {
if (this._internalTextures) for (var e = this._internalTextures.length - 1; e >= 0; e--) void 0 !== this._internalTextures[e] && (this._internalTextures[e].dispose(), this._internalTextures.splice(e, 1));
}),
t
);
})(mn.a),
cs = n(125),
ls = n(97),
us = (function (e) {
function t(t, n, i, r, o, a) {
var s = e.call(this, t, i, null, r, o, a) || this;
return (s._animate = !0), (s._time = 0), (s._texturePath = n), s._loadJson(n), (s.refreshRate = 1), s;
}
return (
Object(h.d)(t, e),
(t.prototype._loadJson = function (e) {
var t = this,
n = function () {
g.a.Log("No config file found in " + e + " trying to use ShadersStore or DOM element");
try {
t.setFragment(t._texturePath);
} catch (e) {
g.a.Error("No json or ShaderStore or DOM element found for CustomProceduralTexture");
}
},
i = e + "/config.json",
r = new ls.a();
r.open("GET", i),
r.addEventListener(
"load",
function () {
if (200 === r.status || (r.responseText && r.responseText.length > 0))
try {
(t._config = JSON.parse(r.response)),
t.updateShaderUniforms(),
t.updateTextures(),
t.setFragment(t._texturePath + "/custom"),
(t._animate = t._config.animate),
(t.refreshRate = t._config.refreshrate);
} catch (e) {
n();
}
else n();
},
!1
),
r.addEventListener(
"error",
function () {
n();
},
!1
);
try {
r.send();
} catch (e) {
g.a.Error("CustomProceduralTexture: Error on XHR send request.");
}
}),
(t.prototype.isReady = function () {
if (!e.prototype.isReady.call(this)) return !1;
for (var t in this._textures) {
if (!this._textures[t].isReady()) return !1;
}
return !0;
}),
(t.prototype.render = function (t) {
var n = this.getScene();
this._animate && n && ((this._time += 0.03 * n.getAnimationRatio()), this.updateShaderUniforms()), e.prototype.render.call(this, t);
}),
(t.prototype.updateTextures = function () {
for (var e = 0; e < this._config.sampler2Ds.length; e++) this.setTexture(this._config.sampler2Ds[e].sample2Dname, new ln.a(this._texturePath + "/" + this._config.sampler2Ds[e].textureRelativeUrl, this.getScene()));
}),
(t.prototype.updateShaderUniforms = function () {
if (this._config)
for (var e = 0; e < this._config.uniforms.length; e++) {
var t = this._config.uniforms[e];
switch (t.type) {
case "float":
this.setFloat(t.name, t.value);
break;
case "color3":
this.setColor3(t.name, new s.a(t.r, t.g, t.b));
break;
case "color4":
this.setColor4(t.name, new s.b(t.r, t.g, t.b, t.a));
break;
case "vector2":
this.setVector2(t.name, new a.d(t.x, t.y));
break;
case "vector3":
this.setVector3(t.name, new a.e(t.x, t.y, t.z));
}
}
this.setFloat("time", this._time);
}),
Object.defineProperty(t.prototype, "animate", {
get: function () {
return this._animate;
},
set: function (e) {
this._animate = e;
},
enumerable: !0,
configurable: !0,
}),
t
);
})(cs.a),
hs =
"\n\nuniform float brightness;\nuniform float persistence;\nuniform float timeScale;\n\nvarying vec2 vUV;\n\nvec2 hash22(vec2 p)\n{\np=p*mat2(127.1,311.7,269.5,183.3);\np=-1.0+2.0*fract(sin(p)*43758.5453123);\nreturn sin(p*6.283+timeScale);\n}\nfloat interpolationNoise(vec2 p)\n{\nvec2 pi=floor(p);\nvec2 pf=p-pi;\nvec2 w=pf*pf*(3.-2.*pf);\nfloat f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));\nfloat f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));\nfloat f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));\nfloat f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));\nfloat xm1=mix(f00,f10,w.x);\nfloat xm2=mix(f01,f11,w.x);\nfloat ym=mix(xm1,xm2,w.y);\nreturn ym;\n}\nfloat perlinNoise2D(float x,float y)\n{\nfloat sum=0.0;\nfloat frequency=0.0;\nfloat amplitude=0.0;\nfor(int i=0; i 0;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isConnectedInVertexShader", {
get: function () {
if (this.target === ps.Vertex) return !0;
if (!this.hasEndpoints) return !1;
for (var e = 0, t = this._endpoints; e < t.length; e++) {
var n = t[e];
if (n.ownerBlock.target === ps.Vertex) return !0;
if (n.target === ps.Vertex) return !0;
if (
(n.ownerBlock.target === ps.Neutral || n.ownerBlock.target === ps.VertexAndFragment) &&
n.ownerBlock.outputs.some(function (e) {
return e.isConnectedInVertexShader;
})
)
return !0;
}
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isConnectedInFragmentShader", {
get: function () {
if (this.target === ps.Fragment) return !0;
if (!this.hasEndpoints) return !1;
for (var e = 0, t = this._endpoints; e < t.length; e++) {
var n = t[e];
if (n.ownerBlock.target === ps.Fragment) return !0;
if (
(n.ownerBlock.target === ps.Neutral || n.ownerBlock.target === ps.VertexAndFragment) &&
n.ownerBlock.outputs.some(function (e) {
return e.isConnectedInFragmentShader;
})
)
return !0;
}
return !1;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "NodeMaterialConnectionPoint";
}),
(e.prototype.canConnectTo = function (e) {
return this.checkCompatibilityState(e) === bs.Compatible;
}),
(e.prototype.checkCompatibilityState = function (e) {
if (this._ownerBlock.target === ps.Fragment) {
var t = e.ownerBlock;
if (t.target === ps.Vertex) return bs.TargetIncompatible;
for (var n = 0, i = t.outputs; n < i.length; n++) {
if (i[n].isConnectedInVertexShader) return bs.TargetIncompatible;
}
}
if (this.type !== e.type && e.innerType !== fs.AutoDetect) {
switch (this.type) {
case fs.Vector3:
if (e.type === fs.Color3) return bs.Compatible;
break;
case fs.Vector4:
if (e.type === fs.Color4) return bs.Compatible;
break;
case fs.Color3:
if (e.type === fs.Vector3) return bs.Compatible;
break;
case fs.Color4:
if (e.type === fs.Vector4) return bs.Compatible;
}
return e.acceptedConnectionPointTypes && -1 !== e.acceptedConnectionPointTypes.indexOf(this.type) ? bs.Compatible : bs.TypeIncompatible;
}
return e.excludedConnectionPointTypes && -1 !== e.excludedConnectionPointTypes.indexOf(this.type) ? 1 : bs.Compatible;
}),
(e.prototype.connectTo = function (e, t) {
if ((void 0 === t && (t = !1), !t && !this.canConnectTo(e))) throw "Cannot connect these two connectors.";
return this._endpoints.push(e), (e._connectedPoint = this), (this._enforceAssociatedVariableName = !1), this.onConnectionObservable.notifyObservers(e), e.onConnectionObservable.notifyObservers(this), this;
}),
(e.prototype.disconnectFrom = function (e) {
var t = this._endpoints.indexOf(e);
return -1 === t || (this._endpoints.splice(t, 1), (e._connectedPoint = null), (this._enforceAssociatedVariableName = !1), (e._enforceAssociatedVariableName = !1)), this;
}),
(e.prototype.serialize = function () {
var e = {};
return (e.name = this.name), this.connectedPoint && ((e.inputName = this.name), (e.targetBlockId = this.connectedPoint.ownerBlock.uniqueId), (e.targetConnectionName = this.connectedPoint.name)), e;
}),
(e.prototype.dispose = function () {
this.onConnectionObservable.clear();
}),
e
);
})(),
As = n(205),
Is = (function () {
function e(e, t, n, i) {
void 0 === t && (t = ps.Vertex),
void 0 === n && (n = !1),
void 0 === i && (i = !1),
(this._isFinalMerger = !1),
(this._isInput = !1),
(this._isUnique = !1),
(this.inputsAreExclusive = !1),
(this._codeVariableName = ""),
(this._inputs = new Array()),
(this._outputs = new Array()),
(this.comments = ""),
(this.name = e),
(this._target = t),
(this._isFinalMerger = n),
(this._isInput = i),
(this.uniqueId = As.a.UniqueId);
}
return (
Object.defineProperty(e.prototype, "isUnique", {
get: function () {
return this._isUnique;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isFinalMerger", {
get: function () {
return this._isFinalMerger;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isInput", {
get: function () {
return this._isInput;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "buildId", {
get: function () {
return this._buildId;
},
set: function (e) {
this._buildId = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "target", {
get: function () {
return this._target;
},
set: function (e) {
0 == (this._target & e) && (this._target = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "inputs", {
get: function () {
return this._inputs;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "outputs", {
get: function () {
return this._outputs;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getInputByName = function (e) {
var t = this._inputs.filter(function (t) {
return t.name === e;
});
return t.length ? t[0] : null;
}),
(e.prototype.getOutputByName = function (e) {
var t = this._outputs.filter(function (t) {
return t.name === e;
});
return t.length ? t[0] : null;
}),
(e.prototype.initialize = function (e) {}),
(e.prototype.bind = function (e, t, n) {}),
(e.prototype._declareOutput = function (e, t) {
return t._getGLType(e.type) + " " + e.associatedVariableName;
}),
(e.prototype._writeVariable = function (e) {
return e.connectedPoint ? "" + e.associatedVariableName : "0.";
}),
(e.prototype._writeFloat = function (e) {
var t = e.toString();
return -1 === t.indexOf(".") && (t += ".0"), "" + t;
}),
(e.prototype.getClassName = function () {
return "NodeMaterialBlock";
}),
(e.prototype.registerInput = function (e, t, n, i) {
void 0 === n && (n = !1);
var r = new Ms(e, this, _s.Input);
return (r.type = t), (r.isOptional = n), i && (r.target = i), this._inputs.push(r), this;
}),
(e.prototype.registerOutput = function (e, t, n) {
var i = new Ms(e, this, _s.Output);
return (i.type = t), n && (i.target = n), this._outputs.push(i), this;
}),
(e.prototype.getFirstAvailableInput = function (e) {
void 0 === e && (e = null);
for (var t = 0, n = this._inputs; t < n.length; t++) {
var i = n[t];
if (!(i.connectedPoint || (e && e.type !== i.type && i.type !== fs.AutoDetect))) return i;
}
return null;
}),
(e.prototype.getFirstAvailableOutput = function (e) {
void 0 === e && (e = null);
for (var t = 0, n = this._outputs; t < n.length; t++) {
var i = n[t];
if (!e || !e.target || e.target === ps.Neutral || 0 != (e.target & i.target)) return i;
}
return null;
}),
(e.prototype.getSiblingOutput = function (e) {
var t = this._outputs.indexOf(e);
return -1 === t || t >= this._outputs.length ? null : this._outputs[t + 1];
}),
(e.prototype.connectTo = function (e, t) {
if (0 !== this._outputs.length) {
for (var n = t && t.output ? this.getOutputByName(t.output) : this.getFirstAvailableOutput(e), i = !0; i; ) {
var r = t && t.input ? e.getInputByName(t.input) : e.getFirstAvailableInput(n);
if (n && r && n.canConnectTo(r)) n.connectTo(r), (i = !1);
else {
if (!n) throw "Unable to find a compatible match";
n = this.getSiblingOutput(n);
}
}
return this;
}
}),
(e.prototype._buildBlock = function (e) {}),
(e.prototype.updateUniformsAndSamples = function (e, t, n, i) {}),
(e.prototype.provideFallbacks = function (e, t) {}),
(e.prototype.initializeDefines = function (e, t, n, i) {
void 0 === i && (i = !1);
}),
(e.prototype.prepareDefines = function (e, t, n, i) {
void 0 === i && (i = !1);
}),
(e.prototype.autoConfigure = function (e) {}),
(e.prototype.replaceRepeatableContent = function (e, t, n, i) {}),
(e.prototype.isReady = function (e, t, n, i) {
return void 0 === i && (i = !1), !0;
}),
(e.prototype._linkConnectionTypes = function (e, t) {
(this._inputs[e]._linkedConnectionSource = this._inputs[t]), (this._inputs[t]._linkedConnectionSource = this._inputs[e]);
}),
(e.prototype._processBuild = function (e, t, n, i) {
e.build(t, i);
var r = null != t._vertexState,
o = e._buildTarget === ps.Vertex && e.target !== ps.VertexAndFragment;
if (r && (0 == (e.target & e._buildTarget) || 0 == (e.target & n.target) || (this.target !== ps.VertexAndFragment && o)) && ((!e.isInput && t.target !== e._buildTarget) || (e.isInput && e.isAttribute))) {
var a = n.connectedPoint;
t._vertexState._emitVaryingFromString("v_" + a.associatedVariableName, t._getGLType(a.type)) && (t._vertexState.compilationString += "v_" + a.associatedVariableName + " = " + a.associatedVariableName + ";\r\n"),
(n.associatedVariableName = "v_" + a.associatedVariableName),
(n._enforceAssociatedVariableName = !0);
}
}),
(e.prototype.build = function (e, t) {
if (this._buildId === e.sharedData.buildId) return !0;
if (!this.isInput)
for (var n = 0, i = this._outputs; n < i.length; n++) {
(l = i[n]).associatedVariableName || (l.associatedVariableName = e._getFreeVariableName(l.name));
}
for (var r = 0, o = this._inputs; r < o.length; r++) {
var a = o[r];
if (a.connectedPoint) {
if (this.target !== ps.Neutral) {
if (0 == (a.target & this.target)) continue;
if (0 == (a.target & e.target)) continue;
}
(d = a.connectedPoint.ownerBlock) && d !== this && this._processBuild(d, e, a, t);
} else a.isOptional || e.sharedData.checks.notConnectedNonOptionalInputs.push(a);
}
if (this._buildId === e.sharedData.buildId) return !0;
if ((e.sharedData.verbose, this.isFinalMerger))
switch (e.target) {
case ps.Vertex:
e.sharedData.checks.emitVertex = !0;
break;
case ps.Fragment:
e.sharedData.checks.emitFragment = !0;
}
!this.isInput && e.sharedData.emitComments && (e.compilationString += "\r\n//" + this.name + "\r\n"), this._buildBlock(e), (this._buildId = e.sharedData.buildId), (this._buildTarget = e.target);
for (var s = 0, c = this._outputs; s < c.length; s++) {
var l;
if (0 != ((l = c[s]).target & e.target))
for (var u = 0, h = l.endpoints; u < h.length; u++) {
var d,
p = h[u];
(d = p.ownerBlock) && 0 != (d.target & e.target) && -1 !== t.indexOf(d) && this._processBuild(d, e, p, t);
}
}
return !1;
}),
(e.prototype._inputRename = function (e) {
return e;
}),
(e.prototype._outputRename = function (e) {
return e;
}),
(e.prototype._dumpPropertiesCode = function () {
return "";
}),
(e.prototype._dumpCode = function (e, t) {
var n;
t.push(this);
var i = this.name.replace(/[^A-Za-z_]+/g, "");
if (((this._codeVariableName = i || this.getClassName() + "_" + this.uniqueId), -1 !== e.indexOf(this._codeVariableName))) {
var r = 0;
do {
r++, (this._codeVariableName = i + r);
} while (-1 !== e.indexOf(this._codeVariableName));
}
e.push(this._codeVariableName),
(n = "\r\n// " + this.getClassName() + "\r\n"),
this.comments && (n += "// " + this.comments + "\r\n"),
(n += "var " + this._codeVariableName + " = new BABYLON." + this.getClassName() + '("' + this.name + '");\r\n'),
(n += this._dumpPropertiesCode());
for (var o = 0, a = this.inputs; o < a.length; o++) {
var s = a[o];
if (s.isConnected) {
var c = s.connectedPoint.ownerBlock;
-1 === t.indexOf(c) && (n += c._dumpCode(e, t));
}
}
for (var l = 0, u = this.outputs; l < u.length; l++) {
var h = u[l];
if (h.hasEndpoints)
for (var d = 0, p = h.endpoints; d < p.length; d++) {
(c = p[d].ownerBlock) && -1 === t.indexOf(c) && (n += c._dumpCode(e, t));
}
}
return n;
}),
(e.prototype._dumpCodeForOutputConnections = function (e) {
var t = "";
if (-1 !== e.indexOf(this)) return t;
e.push(this);
for (var n = 0, i = this.inputs; n < i.length; n++) {
var r = i[n];
if (r.isConnected) {
var o = r.connectedPoint,
a = o.ownerBlock;
(t += a._dumpCodeForOutputConnections(e)), (t += a._codeVariableName + "." + a._outputRename(o.name) + ".connectTo(" + this._codeVariableName + "." + this._inputRename(r.name) + ");\r\n");
}
}
return t;
}),
(e.prototype.clone = function (e, t) {
void 0 === t && (t = "");
var n = this.serialize(),
i = c.a.GetClass(n.customType);
if (i) {
var r = new i();
return r._deserialize(n, e, t), r;
}
return null;
}),
(e.prototype.serialize = function () {
var e = {};
(e.customType = "BABYLON." + this.getClassName()), (e.id = this.uniqueId), (e.name = this.name), (e.comments = this.comments), (e.inputs = []);
for (var t = 0, n = this.inputs; t < n.length; t++) {
var i = n[t];
e.inputs.push(i.serialize());
}
return e;
}),
(e.prototype._deserialize = function (e, t, n) {
(this.name = e.name), (this.comments = e.comments);
}),
(e.prototype.dispose = function () {
for (var e = 0, t = this.inputs; e < t.length; e++) {
t[e].dispose();
}
for (var n = 0, i = this.outputs; n < i.length; n++) {
i[n].dispose();
}
}),
e
);
})(),
Ds = (function () {
function e() {
(this.supportUniformBuffers = !1),
(this.attributes = new Array()),
(this.uniforms = new Array()),
(this.constants = new Array()),
(this.samplers = new Array()),
(this.functions = {}),
(this.extensions = {}),
(this.counters = {}),
(this._attributeDeclaration = ""),
(this._uniformDeclaration = ""),
(this._constantDeclaration = ""),
(this._samplerDeclaration = ""),
(this._varyingTransfer = ""),
(this._repeatableContentAnchorIndex = 0),
(this._builtCompilationString = ""),
(this.compilationString = "");
}
return (
(e.prototype.finalize = function (e) {
var t = e.sharedData.emitComments,
n = this.target === ps.Fragment;
(this.compilationString = "\r\n" + (t ? "//Entry point\r\n" : "") + "void main(void) {\r\n" + this.compilationString),
this._constantDeclaration && (this.compilationString = "\r\n" + (t ? "//Constants\r\n" : "") + this._constantDeclaration + "\r\n" + this.compilationString);
var i = "";
for (var r in this.functions) i += this.functions[r] + "\r\n";
for (var o in ((this.compilationString = "\r\n" + i + "\r\n" + this.compilationString),
!n && this._varyingTransfer && (this.compilationString = this.compilationString + "\r\n" + this._varyingTransfer),
(this.compilationString = this.compilationString + "\r\n}"),
this.sharedData.varyingDeclaration && (this.compilationString = "\r\n" + (t ? "//Varyings\r\n" : "") + this.sharedData.varyingDeclaration + "\r\n" + this.compilationString),
this._samplerDeclaration && (this.compilationString = "\r\n" + (t ? "//Samplers\r\n" : "") + this._samplerDeclaration + "\r\n" + this.compilationString),
this._uniformDeclaration && (this.compilationString = "\r\n" + (t ? "//Uniforms\r\n" : "") + this._uniformDeclaration + "\r\n" + this.compilationString),
this._attributeDeclaration && !n && (this.compilationString = "\r\n" + (t ? "//Attributes\r\n" : "") + this._attributeDeclaration + "\r\n" + this.compilationString),
this.extensions)) {
var a = this.extensions[o];
this.compilationString = "\r\n" + a + "\r\n" + this.compilationString;
}
this._builtCompilationString = this.compilationString;
}),
Object.defineProperty(e.prototype, "_repeatableContentAnchor", {
get: function () {
return "###___ANCHOR" + this._repeatableContentAnchorIndex++ + "___###";
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._getFreeVariableName = function (e) {
return (
(e = e.replace(/[^a-zA-Z_]+/g, "")),
void 0 === this.sharedData.variableNames[e]
? ((this.sharedData.variableNames[e] = 0), "output" === e || "texture" === e ? e + this.sharedData.variableNames[e] : e)
: (this.sharedData.variableNames[e]++, e + this.sharedData.variableNames[e])
);
}),
(e.prototype._getFreeDefineName = function (e) {
return void 0 === this.sharedData.defineNames[e] ? (this.sharedData.defineNames[e] = 0) : this.sharedData.defineNames[e]++, e + this.sharedData.defineNames[e];
}),
(e.prototype._excludeVariableName = function (e) {
this.sharedData.variableNames[e] = 0;
}),
(e.prototype._emit2DSampler = function (e) {
(this._samplerDeclaration += "uniform sampler2D " + e + ";\r\n"), this.samplers.push(e);
}),
(e.prototype._getGLType = function (e) {
switch (e) {
case fs.Float:
return "float";
case fs.Int:
return "int";
case fs.Vector2:
return "vec2";
case fs.Color3:
case fs.Vector3:
return "vec3";
case fs.Color4:
case fs.Vector4:
return "vec4";
case fs.Matrix:
return "mat4";
}
return "";
}),
(e.prototype._emitExtension = function (e, t) {
this.extensions[e] || (this.extensions[e] = t);
}),
(e.prototype._emitFunction = function (e, t, n) {
this.functions[e] || (this.sharedData.emitComments && (t = n + "\r\n" + t), (this.functions[e] = t));
}),
(e.prototype._emitCodeFromInclude = function (e, t, n) {
if (n && n.repeatKey) return "#include<" + e + ">[0.." + n.repeatKey + "]\r\n";
var i = Xt.a.IncludesShadersStore[e] + "\r\n";
if ((this.sharedData.emitComments && (i = t + "\r\n" + i), !n)) return i;
if (n.replaceStrings)
for (var r = 0; r < n.replaceStrings.length; r++) {
var o = n.replaceStrings[r];
i = i.replace(o.search, o.replace);
}
return i;
}),
(e.prototype._emitFunctionFromInclude = function (e, t, n, i) {
void 0 === i && (i = "");
var r = e + i;
if (!this.functions[r]) {
if (!(n && (n.removeAttributes || n.removeUniforms || n.removeVaryings || n.removeIfDef || n.replaceStrings)))
return (
n && n.repeatKey ? (this.functions[r] = "#include<" + e + ">[0.." + n.repeatKey + "]\r\n") : (this.functions[r] = "#include<" + e + ">\r\n"),
void (this.sharedData.emitComments && (this.functions[r] = t + "\r\n" + this.functions[r]))
);
if (
((this.functions[r] = Xt.a.IncludesShadersStore[e]),
this.sharedData.emitComments && (this.functions[r] = t + "\r\n" + this.functions[r]),
n.removeIfDef &&
((this.functions[r] = this.functions[r].replace(/^\s*?#ifdef.+$/gm, "")),
(this.functions[r] = this.functions[r].replace(/^\s*?#endif.*$/gm, "")),
(this.functions[r] = this.functions[r].replace(/^\s*?#else.*$/gm, "")),
(this.functions[r] = this.functions[r].replace(/^\s*?#elif.*$/gm, ""))),
n.removeAttributes && (this.functions[r] = this.functions[r].replace(/^\s*?attribute.+$/gm, "")),
n.removeUniforms && (this.functions[r] = this.functions[r].replace(/^\s*?uniform.+$/gm, "")),
n.removeVaryings && (this.functions[r] = this.functions[r].replace(/^\s*?varying.+$/gm, "")),
n.replaceStrings)
)
for (var o = 0; o < n.replaceStrings.length; o++) {
var a = n.replaceStrings[o];
this.functions[r] = this.functions[r].replace(a.search, a.replace);
}
}
}),
(e.prototype._registerTempVariable = function (e) {
return -1 === this.sharedData.temps.indexOf(e) && (this.sharedData.temps.push(e), !0);
}),
(e.prototype._emitVaryingFromString = function (e, t, n, i) {
return (
void 0 === n && (n = ""),
void 0 === i && (i = !1),
-1 === this.sharedData.varyings.indexOf(e) &&
(this.sharedData.varyings.push(e),
n && ($r.a.StartsWith(n, "defined(") ? (this.sharedData.varyingDeclaration += "#if " + n + "\r\n") : (this.sharedData.varyingDeclaration += (i ? "#ifndef" : "#ifdef") + " " + n + "\r\n")),
(this.sharedData.varyingDeclaration += "varying " + t + " " + e + ";\r\n"),
n && (this.sharedData.varyingDeclaration += "#endif\r\n"),
!0)
);
}),
(e.prototype._emitUniformFromString = function (e, t, n, i) {
void 0 === n && (n = ""),
void 0 === i && (i = !1),
-1 === this.uniforms.indexOf(e) &&
(this.uniforms.push(e),
n && (this._uniformDeclaration += (i ? "#ifndef" : "#ifdef") + " " + n + "\r\n"),
(this._uniformDeclaration += "uniform " + t + " " + e + ";\r\n"),
n && (this._uniformDeclaration += "#endif\r\n"));
}),
(e.prototype._emitFloat = function (e) {
return e.toString() === e.toFixed(0) ? e + ".0" : e.toString();
}),
e
);
})(),
Rs = (function () {
function e() {
(this.temps = new Array()),
(this.varyings = new Array()),
(this.varyingDeclaration = ""),
(this.inputBlocks = new Array()),
(this.textureBlocks = new Array()),
(this.bindableBlocks = new Array()),
(this.blocksWithFallbacks = new Array()),
(this.blocksWithDefines = new Array()),
(this.repeatableContentBlocks = new Array()),
(this.dynamicUniformBlocks = new Array()),
(this.blockingBlocks = new Array()),
(this.animatedInputs = new Array()),
(this.variableNames = {}),
(this.defineNames = {}),
(this.hints = { needWorldViewMatrix: !1, needWorldViewProjectionMatrix: !1, needAlphaBlending: !1, needAlphaTesting: !1 }),
(this.checks = { emitVertex: !1, emitFragment: !1, notConnectedNonOptionalInputs: new Array() }),
(this.variableNames.position = 0),
(this.variableNames.normal = 0),
(this.variableNames.tangent = 0),
(this.variableNames.uv = 0),
(this.variableNames.uv2 = 0),
(this.variableNames.uv3 = 0),
(this.variableNames.uv4 = 0),
(this.variableNames.uv4 = 0),
(this.variableNames.uv5 = 0),
(this.variableNames.uv6 = 0),
(this.variableNames.color = 0),
(this.variableNames.matricesIndices = 0),
(this.variableNames.matricesWeights = 0),
(this.variableNames.matricesIndicesExtra = 0),
(this.variableNames.matricesWeightsExtra = 0),
(this.variableNames.diffuseBase = 0),
(this.variableNames.specularBase = 0),
(this.variableNames.worldPos = 0),
(this.variableNames.shadow = 0),
(this.variableNames.vTBN = 0),
(this.defineNames.MAINUV0 = 0),
(this.defineNames.MAINUV1 = 0),
(this.defineNames.MAINUV2 = 0),
(this.defineNames.MAINUV3 = 0),
(this.defineNames.MAINUV4 = 0),
(this.defineNames.MAINUV5 = 0),
(this.defineNames.MAINUV6 = 0),
(this.defineNames.MAINUV7 = 0);
}
return (
(e.prototype.emitErrors = function () {
var e = "";
this.checks.emitVertex || (e += "NodeMaterial does not have a vertex output. You need to at least add a block that generates a glPosition value.\r\n"),
this.checks.emitFragment || (e += "NodeMaterial does not have a fragment output. You need to at least add a block that generates a glFragColor value.\r\n");
for (var t = 0, n = this.checks.notConnectedNonOptionalInputs; t < n.length; t++) {
var i = n[t];
e += "input " + i.name + " from block " + i.ownerBlock.name + "[" + i.ownerBlock.getClassName() + "] is not connected and is not optional.\r\n";
}
if (e) throw "Build of NodeMaterial failed:\r\n" + e;
}),
e
);
})(),
ws = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Vertex) || this;
return (
(n.complementW = 1),
(n.complementZ = 0),
n.registerInput("vector", fs.AutoDetect),
n.registerInput("transform", fs.Matrix),
n.registerOutput("output", fs.Vector4),
n.registerOutput("xyz", fs.Vector3),
n._inputs[0].onConnectionObservable.add(function (e) {
if (e.ownerBlock.isInput) {
var t = e.ownerBlock;
("normal" !== t.name && "tangent" !== t.name) || (n.complementW = 0);
}
}),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "TransformBlock";
}),
Object.defineProperty(t.prototype, "vector", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyz", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "transform", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.vector,
i = this.transform;
if (n.connectedPoint) {
switch (n.connectedPoint.type) {
case fs.Vector2:
t.compilationString +=
this._declareOutput(this.output, t) +
" = " +
i.associatedVariableName +
" * vec4(" +
n.associatedVariableName +
", " +
this._writeFloat(this.complementZ) +
", " +
this._writeFloat(this.complementW) +
");\r\n";
break;
case fs.Vector3:
case fs.Color3:
t.compilationString += this._declareOutput(this.output, t) + " = " + i.associatedVariableName + " * vec4(" + n.associatedVariableName + ", " + this._writeFloat(this.complementW) + ");\r\n";
break;
default:
t.compilationString += this._declareOutput(this.output, t) + " = " + i.associatedVariableName + " * " + n.associatedVariableName + ";\r\n";
}
this.xyz.hasEndpoints && (t.compilationString += this._declareOutput(this.xyz, t) + " = " + this.output.associatedVariableName + ".xyz;\r\n");
}
return this;
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.complementZ = this.complementZ), (t.complementW = this.complementW), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.complementZ = void 0 !== t.complementZ ? t.complementZ : 0), (this.complementW = void 0 !== t.complementW ? t.complementW : 1);
}),
(t.prototype._dumpPropertiesCode = function () {
var e = this._codeVariableName + ".complementZ = " + this.complementZ + ";\r\n";
return (e += this._codeVariableName + ".complementW = " + this.complementW + ";\r\n");
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.TransformBlock"] = ws;
var Ls = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Vertex, !0) || this;
return n.registerInput("vector", fs.Vector4), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VertexOutputBlock";
}),
Object.defineProperty(t.prototype, "vector", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.vector;
return (t.compilationString += "gl_Position = " + n.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.VertexOutputBlock"] = Ls;
var Fs,
Ns = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Fragment, !0) || this;
return n.registerInput("rgba", fs.Color4, !0), n.registerInput("rgb", fs.Color3, !0), n.registerInput("a", fs.Float, !0), n.rgb.acceptedConnectionPointTypes.push(fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "FragmentOutputBlock";
}),
Object.defineProperty(t.prototype, "rgba", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgb", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "a", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.rgba,
i = this.rgb,
r = this.a;
if (((t.sharedData.hints.needAlphaBlending = n.isConnected || r.isConnected), n.connectedPoint))
r.isConnected
? (t.compilationString += "gl_FragColor = vec4(" + n.associatedVariableName + ".rgb, " + r.associatedVariableName + ");\r\n")
: (t.compilationString += "gl_FragColor = " + n.associatedVariableName + ";\r\n");
else if (i.connectedPoint) {
var o = "1.0";
r.connectedPoint && (o = r.associatedVariableName),
i.connectedPoint.type === fs.Float
? (t.compilationString += "gl_FragColor = vec4(" + i.associatedVariableName + ", " + i.associatedVariableName + ", " + i.associatedVariableName + ", " + o + ");\r\n")
: (t.compilationString += "gl_FragColor = vec4(" + i.associatedVariableName + ", " + o + ");\r\n");
} else t.sharedData.checks.notConnectedNonOptionalInputs.push(n);
return this;
}),
t
);
})(Is);
(c.a.RegisteredTypes["BABYLON.FragmentOutputBlock"] = Ns),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.Time = 1)] = "Time");
})(Fs || (Fs = {}));
var ks = (function (e) {
function t(t, n, i) {
void 0 === n && (n = ps.Vertex), void 0 === i && (i = fs.AutoDetect);
var r = e.call(this, t, n, !1, !0) || this;
return (
(r._mode = ms.Undefined),
(r._animationType = Fs.None),
(r.min = 0),
(r.max = 0),
(r.isBoolean = !1),
(r.matrixMode = 0),
(r._systemValue = null),
(r.visibleInInspector = !1),
(r.isConstant = !1),
(r.groupInInspector = ""),
(r.onValueChangedObservable = new o.c()),
(r._type = i),
r.setDefaultValue(),
r.registerOutput("output", i),
r
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "type", {
get: function () {
if (this._type === fs.AutoDetect) {
if (this.isUniform && null != this.value) {
if (!isNaN(this.value)) return (this._type = fs.Float), this._type;
switch (this.value.getClassName()) {
case "Vector2":
return (this._type = fs.Vector2), this._type;
case "Vector3":
return (this._type = fs.Vector3), this._type;
case "Vector4":
return (this._type = fs.Vector4), this._type;
case "Color3":
return (this._type = fs.Color3), this._type;
case "Color4":
return (this._type = fs.Color4), this._type;
case "Matrix":
return (this._type = fs.Matrix), this._type;
}
}
if (this.isAttribute)
switch (this.name) {
case "position":
case "normal":
case "tangent":
return (this._type = fs.Vector3), this._type;
case "uv":
case "uv2":
return (this._type = fs.Vector2), this._type;
case "matricesIndices":
case "matricesWeights":
case "world0":
case "world1":
case "world2":
case "world3":
return (this._type = fs.Vector4), this._type;
case "color":
return (this._type = fs.Color4), this._type;
}
if (this.isSystemValue)
switch (this._systemValue) {
case gs.World:
case gs.WorldView:
case gs.WorldViewProjection:
case gs.View:
case gs.ViewProjection:
case gs.Projection:
return (this._type = fs.Matrix), this._type;
case gs.CameraPosition:
return (this._type = fs.Vector3), this._type;
case gs.FogColor:
return (this._type = fs.Color3), this._type;
case gs.DeltaTime:
return (this._type = fs.Float), this._type;
}
}
return this._type;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setAsAttribute = function (e) {
return e && (this.name = e), (this._mode = ms.Attribute), this;
}),
(t.prototype.setAsSystemValue = function (e) {
return (this.systemValue = e), this;
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._storedValue;
},
set: function (e) {
this.type === fs.Float && (this.isBoolean ? (e = e ? 1 : 0) : this.min !== this.max && ((e = Math.max(this.min, e)), (e = Math.min(this.max, e)))),
(this._storedValue = e),
(this._mode = ms.Uniform),
this.onValueChangedObservable.notifyObservers(this);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "valueCallback", {
get: function () {
return this._valueCallback;
},
set: function (e) {
(this._valueCallback = e), (this._mode = ms.Uniform);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "associatedVariableName", {
get: function () {
return this._associatedVariableName;
},
set: function (e) {
this._associatedVariableName = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "animationType", {
get: function () {
return this._animationType;
},
set: function (e) {
this._animationType = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isUndefined", {
get: function () {
return this._mode === ms.Undefined;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isUniform", {
get: function () {
return this._mode === ms.Uniform;
},
set: function (e) {
(this._mode = e ? ms.Uniform : ms.Undefined), (this.associatedVariableName = "");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isAttribute", {
get: function () {
return this._mode === ms.Attribute;
},
set: function (e) {
(this._mode = e ? ms.Attribute : ms.Undefined), (this.associatedVariableName = "");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isVarying", {
get: function () {
return this._mode === ms.Varying;
},
set: function (e) {
(this._mode = e ? ms.Varying : ms.Undefined), (this.associatedVariableName = "");
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isSystemValue", {
get: function () {
return null != this._systemValue;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "systemValue", {
get: function () {
return this._systemValue;
},
set: function (e) {
(this._mode = ms.Uniform), (this.associatedVariableName = ""), (this._systemValue = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "InputBlock";
}),
(t.prototype.animate = function (e) {
switch (this._animationType) {
case Fs.Time:
this.type === fs.Float && (this.value += 0.01 * e.getAnimationRatio());
}
}),
(t.prototype._emitDefine = function (e) {
return "!" === e[0] ? "#ifndef " + e.substring(1) + "\r\n" : "#ifdef " + e + "\r\n";
}),
(t.prototype.initialize = function (e) {
this.associatedVariableName = "";
}),
(t.prototype.setDefaultValue = function () {
switch (this.type) {
case fs.Float:
this.value = 0;
break;
case fs.Vector2:
this.value = a.d.Zero();
break;
case fs.Vector3:
this.value = a.e.Zero();
break;
case fs.Vector4:
this.value = a.f.Zero();
break;
case fs.Color3:
this.value = s.a.White();
break;
case fs.Color4:
this.value = new s.b(1, 1, 1, 1);
break;
case fs.Matrix:
this.value = a.a.Identity();
}
}),
(t.prototype._emitConstant = function (e) {
switch (this.type) {
case fs.Float:
return "" + e._emitFloat(this.value);
case fs.Vector2:
return "vec2(" + this.value.x + ", " + this.value.y + ")";
case fs.Vector3:
return "vec3(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ")";
case fs.Vector4:
return "vec4(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ", " + this.value.w + ")";
case fs.Color3:
return "vec3(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ")";
case fs.Color4:
return "vec4(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ", " + this.value.a + ")";
}
return "";
}),
(t.prototype._emit = function (e, t) {
if (this.isUniform) {
if ((this.associatedVariableName || (this.associatedVariableName = e._getFreeVariableName("u_" + this.name)), this.isConstant)) {
if (-1 !== e.constants.indexOf(this.associatedVariableName)) return;
return e.constants.push(this.associatedVariableName), void (e._constantDeclaration += this._declareOutput(this.output, e) + " = " + this._emitConstant(e) + ";\r\n");
}
if (-1 !== e.uniforms.indexOf(this.associatedVariableName)) return;
e.uniforms.push(this.associatedVariableName),
t && (e._uniformDeclaration += this._emitDefine(t)),
(e._uniformDeclaration += "uniform " + e._getGLType(this.type) + " " + this.associatedVariableName + ";\r\n"),
t && (e._uniformDeclaration += "#endif\r\n");
var n = e.sharedData.hints;
if (null !== this._systemValue && void 0 !== this._systemValue)
switch (this._systemValue) {
case gs.WorldView:
n.needWorldViewMatrix = !0;
break;
case gs.WorldViewProjection:
n.needWorldViewProjectionMatrix = !0;
}
else this._animationType !== Fs.None && e.sharedData.animatedInputs.push(this);
} else if (this.isAttribute) {
if (((this.associatedVariableName = this.name), this.target === ps.Vertex && e._vertexState)) return void this._emit(e._vertexState, t);
if (-1 !== e.attributes.indexOf(this.associatedVariableName)) return;
e.attributes.push(this.associatedVariableName),
t && (e._attributeDeclaration += this._emitDefine(t)),
(e._attributeDeclaration += "attribute " + e._getGLType(this.type) + " " + this.associatedVariableName + ";\r\n"),
t && (e._attributeDeclaration += "#endif\r\n");
}
}),
(t.prototype._transmitWorld = function (e, t, n, i) {
if (this._systemValue) {
var r = this.associatedVariableName;
switch (this._systemValue) {
case gs.World:
e.setMatrix(r, t);
break;
case gs.WorldView:
e.setMatrix(r, n);
break;
case gs.WorldViewProjection:
e.setMatrix(r, i);
}
}
}),
(t.prototype._transmit = function (e, t) {
if (!this.isAttribute) {
var n = this.associatedVariableName;
if (this._systemValue)
switch (this._systemValue) {
case gs.World:
case gs.WorldView:
case gs.WorldViewProjection:
return;
case gs.View:
e.setMatrix(n, t.getViewMatrix());
break;
case gs.Projection:
e.setMatrix(n, t.getProjectionMatrix());
break;
case gs.ViewProjection:
e.setMatrix(n, t.getTransformMatrix());
break;
case gs.CameraPosition:
e.setVector3(n, t.activeCamera.globalPosition);
break;
case gs.FogColor:
e.setColor3(n, t.fogColor);
break;
case gs.DeltaTime:
e.setFloat(n, t.deltaTime / 1e3);
}
else {
var i = this._valueCallback ? this._valueCallback() : this._storedValue;
if (null !== i)
switch (this.type) {
case fs.Float:
e.setFloat(n, i);
break;
case fs.Int:
e.setInt(n, i);
break;
case fs.Color3:
e.setColor3(n, i);
break;
case fs.Color4:
e.setDirectColor4(n, i);
break;
case fs.Vector2:
e.setVector2(n, i);
break;
case fs.Vector3:
e.setVector3(n, i);
break;
case fs.Vector4:
e.setVector4(n, i);
break;
case fs.Matrix:
e.setMatrix(n, i);
}
}
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t), (this.isUniform || this.isSystemValue) && t.sharedData.inputBlocks.push(this), this._emit(t);
}),
(t.prototype._dumpPropertiesCode = function () {
var e = this._codeVariableName;
if (this.isAttribute) return e + '.setAsAttribute("' + this.name + '");\r\n';
if (this.isSystemValue) return e + ".setAsSystemValue(BABYLON.NodeMaterialSystemValues." + gs[this._systemValue] + ");\r\n";
if (this.isUniform) {
var t = "";
switch (this.type) {
case fs.Float:
var n = e + ".value = " + this.value + ";\r\n";
return (
(n += e + ".min = " + this.min + ";\r\n"),
(n += e + ".max = " + this.max + ";\r\n"),
(n += e + ".isBoolean = " + this.isBoolean + ";\r\n"),
(n += e + ".matrixMode = " + this.matrixMode + ";\r\n"),
(n += e + ".animationType = BABYLON.AnimatedInputBlockTypes." + Fs[this.animationType] + ";\r\n")
);
case fs.Vector2:
t = "new BABYLON.Vector2(" + this.value.x + ", " + this.value.y + ")";
break;
case fs.Vector3:
t = "new BABYLON.Vector3(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ")";
break;
case fs.Vector4:
t = "new BABYLON.Vector4(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ", " + this.value.w + ")";
break;
case fs.Color3:
t = "new BABYLON.Color3(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ")";
break;
case fs.Color4:
t = "new BABYLON.Color4(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ", " + this.value.a + ")";
break;
case fs.Matrix:
t = "BABYLON.Matrix.FromArray([" + this.value.m.toString() + "])";
}
var i = e + ".value = " + t + ";\r\n";
return (i += e + ".isConstant = " + (this.isConstant ? "true" : "false") + ";\r\n"), (i += e + ".visibleInInspector = " + (this.visibleInInspector ? "true" : "false") + ";\r\n");
}
return "";
}),
(t.prototype.dispose = function () {
this.onValueChangedObservable.clear(), e.prototype.dispose.call(this);
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (
(t.type = this.type),
(t.mode = this._mode),
(t.systemValue = this._systemValue),
(t.animationType = this._animationType),
(t.visibleInInspector = this.visibleInInspector),
(t.min = this.min),
(t.max = this.max),
(t.isBoolean = this.isBoolean),
(t.matrixMode = this.matrixMode),
(t.isConstant = this.isConstant),
(t.groupInInspector = this.groupInInspector),
null != this._storedValue &&
this._mode === ms.Uniform &&
(this._storedValue.asArray ? ((t.valueType = "BABYLON." + this._storedValue.getClassName()), (t.value = this._storedValue.asArray())) : ((t.valueType = "number"), (t.value = this._storedValue))),
t
);
}),
(t.prototype._deserialize = function (t, n, i) {
if (
(e.prototype._deserialize.call(this, t, n, i),
(this._type = t.type),
(this._mode = t.mode),
(this._systemValue = t.systemValue || t.wellKnownValue),
(this._animationType = t.animationType),
(this.visibleInInspector = t.visibleInInspector),
(this.min = t.min || 0),
(this.max = t.max || 0),
(this.isBoolean = !!t.isBoolean),
(this.matrixMode = t.matrixMode || 0),
(this.isConstant = !!t.isConstant),
(this.groupInInspector = t.groupInInspector || ""),
t.valueType)
)
if ("number" === t.valueType) this._storedValue = t.value;
else {
var r = c.a.GetClass(t.valueType);
r && (this._storedValue = r.FromArray(t.value));
}
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.InputBlock"] = ks;
var zs = (function (e) {
function t() {
var t = e.call(this) || this;
return (
(t.NORMAL = !1),
(t.TANGENT = !1),
(t.UV1 = !1),
(t.NUM_BONE_INFLUENCERS = 0),
(t.BonesPerMesh = 0),
(t.BONETEXTURE = !1),
(t.MORPHTARGETS = !1),
(t.MORPHTARGETS_NORMAL = !1),
(t.MORPHTARGETS_TANGENT = !1),
(t.MORPHTARGETS_UV = !1),
(t.NUM_MORPH_INFLUENCERS = 0),
(t.IMAGEPROCESSING = !1),
(t.VIGNETTE = !1),
(t.VIGNETTEBLENDMODEMULTIPLY = !1),
(t.VIGNETTEBLENDMODEOPAQUE = !1),
(t.TONEMAPPING = !1),
(t.TONEMAPPING_ACES = !1),
(t.CONTRAST = !1),
(t.EXPOSURE = !1),
(t.COLORCURVES = !1),
(t.COLORGRADING = !1),
(t.COLORGRADING3D = !1),
(t.SAMPLER3DGREENDEPTH = !1),
(t.SAMPLER3DBGRMAP = !1),
(t.IMAGEPROCESSINGPOSTPROCESS = !1),
(t.BUMPDIRECTUV = 0),
t.rebuild(),
t
);
}
return (
Object(h.d)(t, e),
(t.prototype.setValue = function (e, t) {
void 0 === this[e] && this._keys.push(e), (this[e] = t);
}),
t
);
})(Dr.a),
js = (function (e) {
function t(n, i, r) {
void 0 === r && (r = {});
var s = e.call(this, n, i || ue.a.LastCreatedScene) || this;
return (
(s._buildId = t._BuildIdGenerator++),
(s._buildWasSuccessful = !1),
(s._cachedWorldViewMatrix = new a.a()),
(s._cachedWorldViewProjectionMatrix = new a.a()),
(s._optimizers = new Array()),
(s._animationFrame = -1),
(s.BJSNODEMATERIALEDITOR = s._getGlobalNodeMaterialEditor()),
(s.editorData = null),
(s.ignoreAlpha = !1),
(s.maxSimultaneousLights = 4),
(s.onBuildObservable = new o.c()),
(s._vertexOutputNodes = new Array()),
(s._fragmentOutputNodes = new Array()),
(s.attachedBlocks = new Array()),
(s._options = Object(h.a)({ emitComments: !1 }, r)),
s._attachImageProcessingConfiguration(null),
s
);
}
return (
Object(h.d)(t, e),
(t.prototype._getGlobalNodeMaterialEditor = function () {
return "undefined" != typeof NODEEDITOR ? NODEEDITOR : "undefined" != typeof BABYLON && void 0 !== BABYLON.NodeEditor ? BABYLON : void 0;
}),
Object.defineProperty(t.prototype, "options", {
get: function () {
return this._options;
},
set: function (e) {
this._options = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
set: function (e) {
this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "NodeMaterial";
}),
(t.prototype._attachImageProcessingConfiguration = function (e) {
var t = this;
e !== this._imageProcessingConfiguration &&
(this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
(this._imageProcessingConfiguration = e || this.getScene().imageProcessingConfiguration),
this._imageProcessingConfiguration &&
(this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () {
t._markAllSubMeshesAsImageProcessingDirty();
})));
}),
(t.prototype.getBlockByName = function (e) {
for (var t = 0, n = this.attachedBlocks; t < n.length; t++) {
var i = n[t];
if (i.name === e) return i;
}
return null;
}),
(t.prototype.getBlockByPredicate = function (e) {
for (var t = 0, n = this.attachedBlocks; t < n.length; t++) {
var i = n[t];
if (e(i)) return i;
}
return null;
}),
(t.prototype.getInputBlockByPredicate = function (e) {
for (var t = 0, n = this.attachedBlocks; t < n.length; t++) {
var i = n[t];
if (i.isInput && e(i)) return i;
}
return null;
}),
(t.prototype.getInputBlocks = function () {
for (var e = [], t = 0, n = this.attachedBlocks; t < n.length; t++) {
var i = n[t];
i.isInput && e.push(i);
}
return e;
}),
(t.prototype.registerOptimizer = function (e) {
if (!(this._optimizers.indexOf(e) > -1)) return this._optimizers.push(e), this;
}),
(t.prototype.unregisterOptimizer = function (e) {
var t = this._optimizers.indexOf(e);
if (-1 !== t) return this._optimizers.splice(t, 1), this;
}),
(t.prototype.addOutputNode = function (e) {
if (null === e.target) throw "This node is not meant to be an output node. You may want to explicitly set its target value.";
return 0 != (e.target & ps.Vertex) && this._addVertexOutputNode(e), 0 != (e.target & ps.Fragment) && this._addFragmentOutputNode(e), this;
}),
(t.prototype.removeOutputNode = function (e) {
return null === e.target || (0 != (e.target & ps.Vertex) && this._removeVertexOutputNode(e), 0 != (e.target & ps.Fragment) && this._removeFragmentOutputNode(e)), this;
}),
(t.prototype._addVertexOutputNode = function (e) {
if (-1 === this._vertexOutputNodes.indexOf(e)) return (e.target = ps.Vertex), this._vertexOutputNodes.push(e), this;
}),
(t.prototype._removeVertexOutputNode = function (e) {
var t = this._vertexOutputNodes.indexOf(e);
if (-1 !== t) return this._vertexOutputNodes.splice(t, 1), this;
}),
(t.prototype._addFragmentOutputNode = function (e) {
if (-1 === this._fragmentOutputNodes.indexOf(e)) return (e.target = ps.Fragment), this._fragmentOutputNodes.push(e), this;
}),
(t.prototype._removeFragmentOutputNode = function (e) {
var t = this._fragmentOutputNodes.indexOf(e);
if (-1 !== t) return this._fragmentOutputNodes.splice(t, 1), this;
}),
(t.prototype.needAlphaBlending = function () {
return !this.ignoreAlpha && (this.alpha < 1 || (this._sharedData && this._sharedData.hints.needAlphaBlending));
}),
(t.prototype.needAlphaTesting = function () {
return this._sharedData && this._sharedData.hints.needAlphaTesting;
}),
(t.prototype._initializeBlock = function (e, t, n) {
if ((e.initialize(t), e.autoConfigure(this), (e._preparationId = this._buildId), -1 === this.attachedBlocks.indexOf(e))) {
if (e.isUnique)
for (var i = e.getClassName(), r = 0, o = this.attachedBlocks; r < o.length; r++) {
if (o[r].getClassName() === i) throw "Cannot have multiple blocks of type " + i + " in the same NodeMaterial";
}
this.attachedBlocks.push(e);
}
for (var a = 0, s = e.inputs; a < s.length; a++) {
var c = s[a];
c.associatedVariableName = "";
var l = c.connectedPoint;
if (l) {
var u = l.ownerBlock;
u !== e && ((u.target === ps.VertexAndFragment || (t.target === ps.Fragment && u.target === ps.Vertex && u._preparationId !== this._buildId)) && n.push(u), this._initializeBlock(u, t, n));
}
}
for (var h = 0, d = e.outputs; h < d.length; h++) {
d[h].associatedVariableName = "";
}
}),
(t.prototype._resetDualBlocks = function (e, t) {
e.target === ps.VertexAndFragment && (e.buildId = t);
for (var n = 0, i = e.inputs; n < i.length; n++) {
var r = i[n].connectedPoint;
if (r) {
var o = r.ownerBlock;
o !== e && this._resetDualBlocks(o, t);
}
}
}),
(t.prototype.removeBlock = function (e) {
var t = this.attachedBlocks.indexOf(e);
t > -1 && this.attachedBlocks.splice(t, 1), e.isFinalMerger && this.removeOutputNode(e);
}),
(t.prototype.build = function (e) {
void 0 === e && (e = !1), (this._buildWasSuccessful = !1);
var n = this.getScene().getEngine();
if (0 === this._vertexOutputNodes.length) throw "You must define at least one vertexOutputNode";
if (0 === this._fragmentOutputNodes.length) throw "You must define at least one fragmentOutputNode";
(this._vertexCompilationState = new Ds()),
(this._vertexCompilationState.supportUniformBuffers = n.supportsUniformBuffers),
(this._vertexCompilationState.target = ps.Vertex),
(this._fragmentCompilationState = new Ds()),
(this._fragmentCompilationState.supportUniformBuffers = n.supportsUniformBuffers),
(this._fragmentCompilationState.target = ps.Fragment),
(this._sharedData = new Rs()),
(this._vertexCompilationState.sharedData = this._sharedData),
(this._fragmentCompilationState.sharedData = this._sharedData),
(this._sharedData.buildId = this._buildId),
(this._sharedData.emitComments = this._options.emitComments),
(this._sharedData.verbose = e),
(this._sharedData.scene = this.getScene());
for (var i = [], r = [], o = 0, a = this._vertexOutputNodes; o < a.length; o++) {
var s = a[o];
i.push(s), this._initializeBlock(s, this._vertexCompilationState, r);
}
for (var c = 0, l = this._fragmentOutputNodes; c < l.length; c++) {
var u = l[c];
r.push(u), this._initializeBlock(u, this._fragmentCompilationState, i);
}
this.optimize();
for (var h = 0, d = i; h < d.length; h++) {
(s = d[h]).build(this._vertexCompilationState, i);
}
(this._fragmentCompilationState.uniforms = this._vertexCompilationState.uniforms.slice(0)),
(this._fragmentCompilationState._uniformDeclaration = this._vertexCompilationState._uniformDeclaration),
(this._fragmentCompilationState._constantDeclaration = this._vertexCompilationState._constantDeclaration),
(this._fragmentCompilationState._vertexState = this._vertexCompilationState);
for (var p = 0, f = r; p < f.length; p++) {
u = f[p];
this._resetDualBlocks(u, this._buildId - 1);
}
for (var m = 0, g = r; m < g.length; m++) {
(u = g[m]).build(this._fragmentCompilationState, r);
}
this._vertexCompilationState.finalize(this._vertexCompilationState),
this._fragmentCompilationState.finalize(this._fragmentCompilationState),
(this._buildId = t._BuildIdGenerator++),
this._sharedData.emitErrors(),
(this._buildWasSuccessful = !0),
this.onBuildObservable.notifyObservers(this);
for (var b = 0, _ = this.getScene().meshes; b < _.length; b++) {
var v = _[b];
if (v.subMeshes)
for (var y = 0, C = v.subMeshes; y < C.length; y++) {
var P = C[y];
if (P.getMaterial() === this && P._materialDefines) {
var x = P._materialDefines;
x.markAllAsDirty(), x.reset();
}
}
}
}),
(t.prototype.optimize = function () {
for (var e = 0, t = this._optimizers; e < t.length; e++) {
t[e].optimize(this._vertexOutputNodes, this._fragmentOutputNodes);
}
}),
(t.prototype._prepareDefinesForAttributes = function (e, t) {
var n = t.NORMAL,
i = t.TANGENT,
r = t.UV1;
(t.NORMAL = e.isVerticesDataPresent(wn.b.NormalKind)),
(t.TANGENT = e.isVerticesDataPresent(wn.b.TangentKind)),
(t.UV1 = e.isVerticesDataPresent(wn.b.UVKind)),
(n === t.NORMAL && i === t.TANGENT && r === t.UV1) || t.markAsAttributesDirty();
}),
(t.prototype.isReadyForSubMesh = function (e, t, n) {
var i = this;
if ((void 0 === n && (n = !1), !this._buildWasSuccessful)) return !1;
var r = this.getScene();
if (this._sharedData.animatedInputs) {
var o = r.getFrameId();
if (this._animationFrame !== o) {
for (var a = 0, s = this._sharedData.animatedInputs; a < s.length; a++) {
s[a].animate(r);
}
this._animationFrame = o;
}
}
if (t.effect && this.isFrozen && t.effect._wasPreviouslyReady) return !0;
t._materialDefines || (t._materialDefines = new zs());
var c = t._materialDefines;
if (!this.checkReadyOnEveryCall && t.effect && c._renderId === r.getRenderId()) return !0;
var l = r.getEngine();
if (
(this._prepareDefinesForAttributes(e, c),
this._sharedData.blockingBlocks.some(function (t) {
return !t.isReady(e, i, c, n);
}))
)
return !1;
if (
(this._sharedData.blocksWithDefines.forEach(function (t) {
t.initializeDefines(e, i, c, n);
}),
this._sharedData.blocksWithDefines.forEach(function (t) {
t.prepareDefines(e, i, c, n);
}),
c.isDirty)
) {
c.markAsProcessed(),
(this._vertexCompilationState.compilationString = this._vertexCompilationState._builtCompilationString),
(this._fragmentCompilationState.compilationString = this._fragmentCompilationState._builtCompilationString),
this._sharedData.repeatableContentBlocks.forEach(function (t) {
t.replaceRepeatableContent(i._vertexCompilationState, i._fragmentCompilationState, e, c);
});
var u = [];
this._sharedData.dynamicUniformBlocks.forEach(function (e) {
e.updateUniformsAndSamples(i._vertexCompilationState, i, c, u);
});
var h = this._vertexCompilationState.uniforms;
this._fragmentCompilationState.uniforms.forEach(function (e) {
-1 === h.indexOf(e) && h.push(e);
});
var d = this._vertexCompilationState.samplers;
this._fragmentCompilationState.samplers.forEach(function (e) {
-1 === d.indexOf(e) && d.push(e);
});
var p = new jr.a();
this._sharedData.blocksWithFallbacks.forEach(function (t) {
t.provideFallbacks(e, p);
});
var f = t.effect,
m = c.toString(),
g = l.createEffect(
{
vertex: "nodeMaterial" + this._buildId,
fragment: "nodeMaterial" + this._buildId,
vertexSource: this._vertexCompilationState.compilationString,
fragmentSource: this._fragmentCompilationState.compilationString,
},
{
attributes: this._vertexCompilationState.attributes,
uniformsNames: h,
uniformBuffersNames: u,
samplers: d,
defines: m,
fallbacks: p,
onCompiled: this.onCompiled,
onError: this.onError,
indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights, maxSimultaneousMorphTargets: c.NUM_MORPH_INFLUENCERS },
},
l
);
g && (this.allowShaderHotSwapping && f && !g.isReady() ? ((g = f), c.markAsUnprocessed()) : (r.resetCachedMaterial(), t.setEffect(g, c)));
}
return !(!t.effect || !t.effect.isReady()) && ((c._renderId = r.getRenderId()), (t.effect._wasPreviouslyReady = !0), !0);
}),
Object.defineProperty(t.prototype, "compiledShaders", {
get: function () {
return "// Vertex shader\r\n" + this._vertexCompilationState.compilationString + "\r\n\r\n// Fragment shader\r\n" + this._fragmentCompilationState.compilationString;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.bindOnlyWorldMatrix = function (e) {
var t = this.getScene();
if (this._activeEffect) {
var n = this._sharedData.hints;
n.needWorldViewMatrix && e.multiplyToRef(t.getViewMatrix(), this._cachedWorldViewMatrix), n.needWorldViewProjectionMatrix && e.multiplyToRef(t.getTransformMatrix(), this._cachedWorldViewProjectionMatrix);
for (var i = 0, r = this._sharedData.inputBlocks; i < r.length; i++) {
r[i]._transmitWorld(this._activeEffect, e, this._cachedWorldViewMatrix, this._cachedWorldViewProjectionMatrix);
}
}
}),
(t.prototype.bindForSubMesh = function (e, t, n) {
var i = this.getScene(),
r = n.effect;
if (r) {
if (((this._activeEffect = r), this.bindOnlyWorldMatrix(e), this._mustRebind(i, r, t.visibility))) {
var o = this._sharedData;
if (r && i.getCachedEffect() !== r) {
for (var a = 0, s = o.bindableBlocks; a < s.length; a++) {
s[a].bind(r, this, t);
}
for (var c = 0, l = o.inputBlocks; c < l.length; c++) {
l[c]._transmit(r, i);
}
}
}
this._afterBind(t, this._activeEffect);
}
}),
(t.prototype.getActiveTextures = function () {
var t = e.prototype.getActiveTextures.call(this);
return (
this._sharedData &&
t.push.apply(
t,
this._sharedData.textureBlocks
.filter(function (e) {
return e.texture;
})
.map(function (e) {
return e.texture;
})
),
t
);
}),
(t.prototype.getTextureBlocks = function () {
return this._sharedData ? this._sharedData.textureBlocks : [];
}),
(t.prototype.hasTexture = function (t) {
if (e.prototype.hasTexture.call(this, t)) return !0;
if (!this._sharedData) return !1;
for (var n = 0, i = this._sharedData.textureBlocks; n < i.length; n++) {
if (i[n].texture === t) return !0;
}
return !1;
}),
(t.prototype.dispose = function (t, n, i) {
if (n)
for (
var r = 0,
o = this._sharedData.textureBlocks
.filter(function (e) {
return e.texture;
})
.map(function (e) {
return e.texture;
});
r < o.length;
r++
) {
o[r].dispose();
}
for (var a = 0, s = this.attachedBlocks; a < s.length; a++) {
s[a].dispose();
}
this.onBuildObservable.clear(), e.prototype.dispose.call(this, t, n, i);
}),
(t.prototype._createNodeEditor = function () {
(this.BJSNODEMATERIALEDITOR = this.BJSNODEMATERIALEDITOR || this._getGlobalNodeMaterialEditor()), this.BJSNODEMATERIALEDITOR.NodeEditor.Show({ nodeMaterial: this });
}),
(t.prototype.edit = function (e) {
var n = this;
return new Promise(function (i, r) {
if (void 0 === n.BJSNODEMATERIALEDITOR) {
var o = e && e.editorURL ? e.editorURL : t.EditorURL;
$e.b.LoadScript(o, function () {
n._createNodeEditor(), i();
});
} else n._createNodeEditor(), i();
});
}),
(t.prototype.clear = function () {
(this._vertexOutputNodes = []), (this._fragmentOutputNodes = []), (this.attachedBlocks = []);
}),
(t.prototype.setToDefault = function () {
this.clear(), (this.editorData = null);
var e = new ks("Position");
e.setAsAttribute("position");
var t = new ks("World");
t.setAsSystemValue(BABYLON.NodeMaterialSystemValues.World);
var n = new ws("WorldPos");
e.connectTo(n), t.connectTo(n);
var i = new ks("ViewProjection");
i.setAsSystemValue(BABYLON.NodeMaterialSystemValues.ViewProjection);
var r = new ws("WorldPos * ViewProjectionTransform");
n.connectTo(r), i.connectTo(r);
var o = new Ls("VertexOutput");
r.connectTo(o);
var a = new ks("color");
a.value = new s.b(0.8, 0.8, 0.8, 1);
var c = new Ns("FragmentOutput");
a.connectTo(c), this.addOutputNode(o), this.addOutputNode(c);
}),
(t.prototype.loadAsync = function (e) {
var t = this;
return this.getScene()
._loadFileAsync(e)
.then(function (e) {
var n = JSON.parse(e);
t.loadFromSerialization(n, "");
});
}),
(t.prototype._gatherBlocks = function (e, t) {
if (-1 === t.indexOf(e)) {
t.push(e);
for (var n = 0, i = e.inputs; n < i.length; n++) {
var r = i[n].connectedPoint;
if (r) {
var o = r.ownerBlock;
o !== e && this._gatherBlocks(o, t);
}
}
}
}),
(t.prototype.generateCode = function () {
for (var e = [], t = [], n = [], i = 0, r = this._vertexOutputNodes; i < r.length; i++) {
var o = r[i];
this._gatherBlocks(o, t);
}
for (var a = [], s = 0, c = this._fragmentOutputNodes; s < c.length; s++) {
o = c[s];
this._gatherBlocks(o, a);
}
for (var l = 'var nodeMaterial = new BABYLON.NodeMaterial("' + (this.name || "node material") + '");\r\n', u = 0, h = t; u < h.length; u++) {
(P = h[u]).isInput && -1 === e.indexOf(P) && (l += P._dumpCode(n, e));
}
for (var d = 0, p = a; d < p.length; d++) {
(P = p[d]).isInput && -1 === e.indexOf(P) && (l += P._dumpCode(n, e));
}
(e = []), (l += "\r\n// Connections\r\n");
for (var f = 0, m = this._vertexOutputNodes; f < m.length; f++) {
l += (P = m[f])._dumpCodeForOutputConnections(e);
}
for (var g = 0, b = this._fragmentOutputNodes; g < b.length; g++) {
l += (P = b[g])._dumpCodeForOutputConnections(e);
}
l += "\r\n// Output nodes\r\n";
for (var _ = 0, v = this._vertexOutputNodes; _ < v.length; _++) {
l += "nodeMaterial.addOutputNode(" + (P = v[_])._codeVariableName + ");\r\n";
}
for (var y = 0, C = this._fragmentOutputNodes; y < C.length; y++) {
var P;
l += "nodeMaterial.addOutputNode(" + (P = C[y])._codeVariableName + ");\r\n";
}
return (l += "nodeMaterial.build();\r\n");
}),
(t.prototype.serialize = function (e) {
var t = e ? {} : He.a.Serialize(this);
t.editorData = JSON.parse(JSON.stringify(this.editorData));
var n = [];
if (e) n = e;
else {
(t.customType = "BABYLON.NodeMaterial"), (t.outputNodes = []);
for (var i = 0, r = this._vertexOutputNodes; i < r.length; i++) {
var o = r[i];
this._gatherBlocks(o, n), t.outputNodes.push(o.uniqueId);
}
for (var a = 0, s = this._fragmentOutputNodes; a < s.length; a++) {
o = s[a];
this._gatherBlocks(o, n), -1 === t.outputNodes.indexOf(o.uniqueId) && t.outputNodes.push(o.uniqueId);
}
}
t.blocks = [];
for (var c = 0, l = n; c < l.length; c++) {
var u = l[c];
t.blocks.push(u.serialize());
}
if (!e)
for (var h = 0, d = this.attachedBlocks; h < d.length; h++) {
u = d[h];
-1 === n.indexOf(u) && t.blocks.push(u.serialize());
}
return t;
}),
(t.prototype._restoreConnections = function (e, t, n) {
for (var i = 0, r = e.outputs; i < r.length; i++)
for (var o = r[i], a = 0, s = t.blocks; a < s.length; a++)
for (var c = s[a], l = n[c.id], u = 0, h = c.inputs; u < h.length; u++) {
var d = h[u];
if (n[d.targetBlockId] !== e || d.targetConnectionName !== o.name);
else {
var p = l.getInputByName(d.inputName);
if (!p || p.isConnected) continue;
o.connectTo(p, !0), this._restoreConnections(l, t, n);
}
}
}),
(t.prototype.loadFromSerialization = function (e, t) {
void 0 === t && (t = ""), this.clear();
for (var n = {}, i = 0, r = e.blocks; i < r.length; i++) {
var o = r[i],
a = c.a.GetClass(o.customType);
if (a) (l = new a())._deserialize(o, this.getScene(), t), (n[o.id] = l), this.attachedBlocks.push(l);
}
for (var s = 0; s < e.blocks.length; s++) {
var l;
(l = n[e.blocks[s].id]).inputs.length || this._restoreConnections(l, e, n);
}
for (var u = 0, h = e.outputNodes; u < h.length; u++) {
var d = h[u];
this.addOutputNode(n[d]);
}
if (e.locations || (e.editorData && e.editorData.locations)) {
for (var p = e.locations || e.editorData.locations, f = 0, m = p; f < m.length; f++) {
var g = m[f];
n[g.blockId] && (g.blockId = n[g.blockId].uniqueId);
}
e.locations ? (this.editorData = { locations: p }) : ((this.editorData = e.editorData), (this.editorData.locations = p));
var b = [];
for (var _ in n) b[_] = n[_].uniqueId;
this.editorData.map = b;
}
}),
(t.Parse = function (e, n, i) {
void 0 === i && (i = "");
var r = He.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
return r.loadFromSerialization(e, i), r.build(), r;
}),
(t.ParseFromFileAsync = function (e, n, i) {
var r = new t(e, i);
return new Promise(function (e, t) {
return r
.loadAsync(n)
.then(function () {
return e(r);
})
.catch(t);
});
}),
(t.ParseFromSnippetAsync = function (e, n, i) {
var r = this;
return (
void 0 === i && (i = ""),
new Promise(function (o, a) {
var s = new ls.a();
s.addEventListener("readystatechange", function () {
if (4 == s.readyState)
if (200 == s.status) {
var r = JSON.parse(JSON.parse(s.responseText).jsonPayload),
c = JSON.parse(r.nodeMaterial),
l = He.a.Parse(
function () {
return new t(e, n);
},
c,
n,
i
);
l.loadFromSerialization(c);
try {
l.build(!0), o(l);
} catch (e) {
a(e);
}
} else a("Unable to load the snippet " + e);
}),
s.open("GET", r.SnippetUrl + "/" + e.replace("#", "/")),
s.send();
})
);
}),
(t.CreateDefault = function (e, n) {
var i = new t(e, n);
return i.setToDefault(), i.build(), i;
}),
(t._BuildIdGenerator = 0),
(t.EditorURL = "https://unpkg.com/babylonjs-node-editor@" + ue.a.Version + "/babylon.nodeEditor.js"),
(t.SnippetUrl = "https://snippet.babylonjs.com"),
t
);
})(Rr.a);
c.a.RegisteredTypes["BABYLON.NodeMaterial"] = js;
var Bs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Vertex) || this;
return (
n.registerInput("matricesIndices", fs.Vector4),
n.registerInput("matricesWeights", fs.Vector4),
n.registerInput("matricesIndicesExtra", fs.Vector4, !0),
n.registerInput("matricesWeightsExtra", fs.Vector4, !0),
n.registerInput("world", fs.Matrix),
n.registerOutput("output", fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.initialize = function (e) {
e._excludeVariableName("boneSampler"), e._excludeVariableName("boneTextureWidth"), e._excludeVariableName("mBones"), e._excludeVariableName("BonesPerMesh");
}),
(t.prototype.getClassName = function () {
return "BonesBlock";
}),
Object.defineProperty(t.prototype, "matricesIndices", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "matricesWeights", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "matricesIndicesExtra", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "matricesWeightsExtra", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "world", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.matricesIndices.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "matricesIndices" === e.name;
});
t || (t = new ks("matricesIndices")).setAsAttribute("matricesIndices"), t.output.connectTo(this.matricesIndices);
}
if (!this.matricesWeights.isConnected) {
var n = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "matricesWeights" === e.name;
});
n || (n = new ks("matricesWeights")).setAsAttribute("matricesWeights"), n.output.connectTo(this.matricesWeights);
}
if (!this.world.isConnected) {
var i = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.World;
});
i || (i = new ks("world")).setAsSystemValue(gs.World), i.output.connectTo(this.world);
}
}),
(t.prototype.provideFallbacks = function (e, t) {
e && e.useBones && e.computeBonesUsingShaders && e.skeleton && t.addCPUSkinningFallback(0, e);
}),
(t.prototype.bind = function (e, t, n) {
Ir.a.BindBonesParameters(n, e);
}),
(t.prototype.prepareDefines = function (e, t, n) {
n._areAttributesDirty && Ir.a.PrepareDefinesForBones(e, n);
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t),
t.sharedData.blocksWithFallbacks.push(this),
t.sharedData.bindableBlocks.push(this),
t.sharedData.blocksWithDefines.push(this),
t.uniforms.push("boneTextureWidth"),
t.uniforms.push("mBones"),
t.samplers.push("boneSampler");
var n = "//" + this.name;
t._emitFunctionFromInclude("bonesDeclaration", n, { removeAttributes: !0, removeUniforms: !1, removeVaryings: !0, removeIfDef: !1 });
var i = t._getFreeVariableName("influence");
t.compilationString += t._emitCodeFromInclude("bonesVertex", n, {
replaceStrings: [
{ search: /finalWorld=finalWorld\*influence;/, replace: "" },
{ search: /influence/gm, replace: i },
],
});
var r = this._outputs[0],
o = this.world;
return (
(t.compilationString += "#if NUM_BONE_INFLUENCERS>0\r\n"),
(t.compilationString += this._declareOutput(r, t) + " = " + o.associatedVariableName + " * " + i + ";\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += this._declareOutput(r, t) + " = " + o.associatedVariableName + ";\r\n"),
(t.compilationString += "#endif\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.BonesBlock"] = Bs;
var Vs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Vertex) || this;
return (
n.registerInput("world0", fs.Vector4),
n.registerInput("world1", fs.Vector4),
n.registerInput("world2", fs.Vector4),
n.registerInput("world3", fs.Vector4),
n.registerInput("world", fs.Matrix, !0),
n.registerOutput("output", fs.Matrix),
n.registerOutput("instanceID", fs.Float),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "InstancesBlock";
}),
Object.defineProperty(t.prototype, "world0", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "world1", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "world2", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "world3", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "world", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "instanceID", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.world0.connectedPoint) {
var t = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "world0" === e.name;
});
t || (t = new ks("world0")).setAsAttribute("world0"), t.output.connectTo(this.world0);
}
if (!this.world1.connectedPoint) {
var n = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "world1" === e.name;
});
n || (n = new ks("world1")).setAsAttribute("world1"), n.output.connectTo(this.world1);
}
if (!this.world2.connectedPoint) {
var i = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "world2" === e.name;
});
i || (i = new ks("world2")).setAsAttribute("world2"), i.output.connectTo(this.world2);
}
if (!this.world3.connectedPoint) {
var r = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "world3" === e.name;
});
r || (r = new ks("world3")).setAsAttribute("world3"), r.output.connectTo(this.world3);
}
if (!this.world.connectedPoint) {
var o = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "world" === e.name;
});
o || (o = new ks("world")).setAsSystemValue(gs.World), o.output.connectTo(this.world);
}
this.world.define = "!INSTANCES";
}),
(t.prototype.prepareDefines = function (e, t, n, i) {
void 0 === i && (i = !1);
var r = !1;
n.INSTANCES !== i && (n.setValue("INSTANCES", i), (r = !0)), r && n.markAsUnprocessed();
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t), t.sharedData.blocksWithDefines.push(this);
var n = this._outputs[0],
i = this._outputs[1],
r = this.world0,
o = this.world1,
a = this.world2,
s = this.world3;
return (
(t.compilationString += "#ifdef INSTANCES\r\n"),
(t.compilationString += this._declareOutput(n, t) + " = mat4(" + r.associatedVariableName + ", " + o.associatedVariableName + ", " + a.associatedVariableName + ", " + s.associatedVariableName + ");\r\n"),
(t.compilationString += this._declareOutput(i, t) + " = float(gl_InstanceID);\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += this._declareOutput(n, t) + " = " + this.world.associatedVariableName + ";\r\n"),
(t.compilationString += this._declareOutput(i, t) + " = 0.0;\r\n"),
(t.compilationString += "#endif\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.InstancesBlock"] = Vs;
var Gs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Vertex) || this;
return (
n.registerInput("position", fs.Vector3),
n.registerInput("normal", fs.Vector3),
n.registerInput("tangent", fs.Vector3),
n.registerInput("uv", fs.Vector2),
n.registerOutput("positionOutput", fs.Vector3),
n.registerOutput("normalOutput", fs.Vector3),
n.registerOutput("tangentOutput", fs.Vector3),
n.registerOutput("uvOutput", fs.Vector2),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "MorphTargetsBlock";
}),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "normal", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "tangent", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "uv", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "positionOutput", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "normalOutput", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "tangentOutput", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "uvOutput", {
get: function () {
return this._outputs[3];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.initialize = function (e) {
e._excludeVariableName("morphTargetInfluences");
}),
(t.prototype.autoConfigure = function (e) {
if (!this.position.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "position" === e.name;
});
t || (t = new ks("position")).setAsAttribute(), t.output.connectTo(this.position);
}
if (!this.normal.isConnected) {
var n = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "normal" === e.name;
});
n || (n = new ks("normal")).setAsAttribute("normal"), n.output.connectTo(this.normal);
}
if (!this.tangent.isConnected) {
var i = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "tangent" === e.name;
});
i || (i = new ks("tangent")).setAsAttribute("tangent"), i.output.connectTo(this.tangent);
}
if (!this.uv.isConnected) {
var r = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "uv" === e.name;
});
r || (r = new ks("uv")).setAsAttribute("uv"), r.output.connectTo(this.uv);
}
}),
(t.prototype.prepareDefines = function (e, t, n) {
n._areAttributesDirty && Ir.a.PrepareDefinesForMorphTargets(e, n);
}),
(t.prototype.bind = function (e, t, n) {
n && n.morphTargetManager && n.morphTargetManager.numInfluencers > 0 && Ir.a.BindMorphTargetParameters(n, e);
}),
(t.prototype.replaceRepeatableContent = function (e, t, n, i) {
for (
var r = this.position,
o = this.normal,
a = this.tangent,
s = this.uv,
c = this.positionOutput,
l = this.normalOutput,
u = this.tangentOutput,
h = this.uvOutput,
d = e,
p = i.NUM_MORPH_INFLUENCERS,
f = n.morphTargetManager,
m = f && f.supportsNormals && i.NORMAL,
g = f && f.supportsTangents && i.TANGENT,
b = f && f.supportsUVs && i.UV1,
_ = "",
v = 0;
v < p;
v++
)
(_ += "#ifdef MORPHTARGETS\r\n"),
(_ += c.associatedVariableName + " += (position" + v + " - " + r.associatedVariableName + ") * morphTargetInfluences[" + v + "];\r\n"),
m && ((_ += "#ifdef MORPHTARGETS_NORMAL\r\n"), (_ += l.associatedVariableName + " += (normal" + v + " - " + o.associatedVariableName + ") * morphTargetInfluences[" + v + "];\r\n"), (_ += "#endif\r\n")),
g && ((_ += "#ifdef MORPHTARGETS_TANGENT\r\n"), (_ += u.associatedVariableName + ".xyz += (tangent" + v + " - " + a.associatedVariableName + ".xyz) * morphTargetInfluences[" + v + "];\r\n"), (_ += "#endif\r\n")),
b && ((_ += "#ifdef MORPHTARGETS_UV\r\n"), (_ += h.associatedVariableName + ".xy += (uv_" + v + " - " + s.associatedVariableName + ".xy) * morphTargetInfluences[" + v + "];\r\n"), (_ += "#endif\r\n")),
(_ += "#endif\r\n");
if (((d.compilationString = d.compilationString.replace(this._repeatableContentAnchor, _)), p > 0))
for (v = 0; v < p; v++) d.attributes.push(wn.b.PositionKind + v), m && d.attributes.push(wn.b.NormalKind + v), g && d.attributes.push(wn.b.TangentKind + v), b && d.attributes.push(wn.b.UVKind + "_" + v);
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t), t.sharedData.blocksWithDefines.push(this), t.sharedData.bindableBlocks.push(this), t.sharedData.repeatableContentBlocks.push(this);
var n = this.position,
i = this.normal,
r = this.tangent,
o = this.uv,
a = this.positionOutput,
s = this.normalOutput,
c = this.tangentOutput,
l = this.uvOutput,
u = "//" + this.name;
return (
t.uniforms.push("morphTargetInfluences"),
t._emitFunctionFromInclude("morphTargetsVertexGlobalDeclaration", u),
t._emitFunctionFromInclude("morphTargetsVertexDeclaration", u, { repeatKey: "maxSimultaneousMorphTargets" }),
(t.compilationString += this._declareOutput(a, t) + " = " + n.associatedVariableName + ";\r\n"),
(t.compilationString += "#ifdef NORMAL\r\n"),
(t.compilationString += this._declareOutput(s, t) + " = " + i.associatedVariableName + ";\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += this._declareOutput(s, t) + " = vec3(0., 0., 0.);\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef TANGENT\r\n"),
(t.compilationString += this._declareOutput(c, t) + " = " + r.associatedVariableName + ";\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += this._declareOutput(c, t) + " = vec3(0., 0., 0.);\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef UV1\r\n"),
(t.compilationString += this._declareOutput(l, t) + " = " + o.associatedVariableName + ";\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += this._declareOutput(l, t) + " = vec2(0., 0.);\r\n"),
(t.compilationString += "#endif\r\n"),
(this._repeatableContentAnchor = t._repeatableContentAnchor),
(t.compilationString += this._repeatableContentAnchor),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.MorphTargetsBlock"] = Gs;
var Us = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Vertex) || this;
return n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex), n.registerOutput("direction", fs.Vector3), n.registerOutput("color", fs.Color3), n.registerOutput("intensity", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "LightInformationBlock";
}),
Object.defineProperty(t.prototype, "worldPosition", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "direction", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "color", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "intensity", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.bind = function (e, t, n) {
if (n) {
this.light && this.light.isDisposed && (this.light = null);
var i = this.light,
r = t.getScene();
if ((!i && r.lights.length && (i = r.lights[0]), !i || !i.isEnabled)) return e.setFloat3(this._lightDataUniformName, 0, 0, 0), void e.setFloat4(this._lightColorUniformName, 0, 0, 0, 0);
i.transferToNodeMaterialEffect(e, this._lightDataUniformName), e.setColor4(this._lightColorUniformName, i.diffuse, i.intensity);
}
}),
(t.prototype.prepareDefines = function (e, t, n) {
if (n._areLightsDirty) {
var i = this.light;
n.setValue(this._lightTypeDefineName, !!(i && i instanceof Ca.a));
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t), t.sharedData.bindableBlocks.push(this), t.sharedData.blocksWithDefines.push(this);
var n = this.direction,
i = this.color,
r = this.intensity;
return (
(this._lightDataUniformName = t._getFreeVariableName("lightData")),
(this._lightColorUniformName = t._getFreeVariableName("lightColor")),
(this._lightTypeDefineName = t._getFreeDefineName("LIGHTPOINTTYPE")),
t._emitUniformFromString(this._lightDataUniformName, "vec3"),
t._emitUniformFromString(this._lightColorUniformName, "vec4"),
(t.compilationString += "#ifdef " + this._lightTypeDefineName + "\r\n"),
(t.compilationString += this._declareOutput(n, t) + " = normalize(" + this.worldPosition.associatedVariableName + ".xyz - " + this._lightDataUniformName + ");\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += this._declareOutput(n, t) + " = " + this._lightDataUniformName + ";\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += this._declareOutput(i, t) + " = " + this._lightColorUniformName + ".rgb;\r\n"),
(t.compilationString += this._declareOutput(r, t) + " = " + this._lightColorUniformName + ".a;\r\n"),
this
);
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return this.light && (t.lightId = this.light.id), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), t.lightId && (this.light = n.getLightByID(t.lightId));
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.LightInformationBlock"] = Us;
var Hs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Fragment) || this;
return n.registerInput("color", fs.Color4), n.registerOutput("output", fs.Color4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ImageProcessingBlock";
}),
Object.defineProperty(t.prototype, "color", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.initialize = function (e) {
e._excludeVariableName("exposureLinear"),
e._excludeVariableName("contrast"),
e._excludeVariableName("vInverseScreenSize"),
e._excludeVariableName("vignetteSettings1"),
e._excludeVariableName("vignetteSettings2"),
e._excludeVariableName("vCameraColorCurveNegative"),
e._excludeVariableName("vCameraColorCurveNeutral"),
e._excludeVariableName("vCameraColorCurvePositive"),
e._excludeVariableName("txColorTransform"),
e._excludeVariableName("colorTransformSettings");
}),
(t.prototype.isReady = function (e, t, n) {
return !(n._areImageProcessingDirty && t.imageProcessingConfiguration && !t.imageProcessingConfiguration.isReady());
}),
(t.prototype.prepareDefines = function (e, t, n) {
n._areImageProcessingDirty && t.imageProcessingConfiguration && t.imageProcessingConfiguration.prepareDefines(n);
}),
(t.prototype.bind = function (e, t, n) {
n && t.imageProcessingConfiguration && t.imageProcessingConfiguration.bind(e);
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t),
t.sharedData.blocksWithDefines.push(this),
t.sharedData.blockingBlocks.push(this),
t.sharedData.bindableBlocks.push(this),
t.uniforms.push("exposureLinear"),
t.uniforms.push("contrast"),
t.uniforms.push("vInverseScreenSize"),
t.uniforms.push("vignetteSettings1"),
t.uniforms.push("vignetteSettings2"),
t.uniforms.push("vCameraColorCurveNegative"),
t.uniforms.push("vCameraColorCurveNeutral"),
t.uniforms.push("vCameraColorCurvePositive"),
t.uniforms.push("txColorTransform"),
t.uniforms.push("colorTransformSettings");
var n = this.color,
i = this._outputs[0],
r = "//" + this.name;
return (
t._emitFunctionFromInclude("helperFunctions", r),
t._emitFunctionFromInclude("imageProcessingDeclaration", r),
t._emitFunctionFromInclude("imageProcessingFunctions", r),
n.connectedPoint.type === fs.Color4 || n.connectedPoint.type === fs.Vector4
? (t.compilationString += this._declareOutput(i, t) + " = " + n.associatedVariableName + ";\r\n")
: (t.compilationString += this._declareOutput(i, t) + " = vec4(" + n.associatedVariableName + ", 1.0);\r\n"),
(t.compilationString += "#ifdef IMAGEPROCESSINGPOSTPROCESS\r\n"),
(t.compilationString += i.associatedVariableName + ".rgb = toLinearSpace(" + n.associatedVariableName + ".rgb);\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += "#ifdef IMAGEPROCESSING\r\n"),
(t.compilationString += i.associatedVariableName + ".rgb = toLinearSpace(" + n.associatedVariableName + ".rgb);\r\n"),
(t.compilationString += i.associatedVariableName + " = applyImageProcessing(" + i.associatedVariableName + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#endif\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ImageProcessingBlock"] = Hs;
n(172), n(173);
var Ws = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Fragment) || this;
return (
(n._tangentSpaceParameterName = ""),
(n.invertX = !1),
(n.invertY = !1),
n.registerInput("worldPosition", fs.Vector4, !1),
n.registerInput("worldNormal", fs.Vector4, !1),
n.registerInput("worldTangent", fs.Vector4, !0),
n.registerInput("uv", fs.Vector2, !1),
n.registerInput("normalMapColor", fs.Color3, !1),
n.registerInput("strength", fs.Float, !1),
n.registerOutput("output", fs.Vector4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "PerturbNormalBlock";
}),
Object.defineProperty(t.prototype, "worldPosition", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "worldNormal", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "worldTangent", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "uv", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "normalMapColor", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "strength", {
get: function () {
return this._inputs[5];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.prepareDefines = function (e, t, n) {
n.setValue("BUMP", !0);
}),
(t.prototype.bind = function (e, t, n) {
t.getScene()._mirroredCameraPosition
? e.setFloat2(this._tangentSpaceParameterName, this.invertX ? 1 : -1, this.invertY ? 1 : -1)
: e.setFloat2(this._tangentSpaceParameterName, this.invertX ? -1 : 1, this.invertY ? -1 : 1);
}),
(t.prototype.autoConfigure = function (e) {
if (!this.uv.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "uv" === e.name;
});
t || (t = new ks("uv")).setAsAttribute(), t.output.connectTo(this.uv);
}
if (!this.strength.isConnected) {
var n = new ks("strength");
(n.value = 1), n.output.connectTo(this.strength);
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = "//" + this.name,
i = this.uv,
r = this.worldPosition,
o = this.worldNormal,
a = this.worldTangent;
t.sharedData.blocksWithDefines.push(this),
t.sharedData.bindableBlocks.push(this),
(this._tangentSpaceParameterName = t._getFreeDefineName("tangentSpaceParameter")),
t._emitUniformFromString(this._tangentSpaceParameterName, "vec2");
var s = this.strength.isConnectedToInputBlock && this.strength.connectInputBlock.isConstant ? "" + t._emitFloat(1 / this.strength.connectInputBlock.value) : "1.0 / " + this.strength.associatedVariableName;
t._emitExtension("derivatives", "#extension GL_OES_standard_derivatives : enable");
var c = { search: /defined\(TANGENT\)/g, replace: a.isConnected ? "defined(TANGENT)" : "defined(IGNORE)" };
return (
a.isConnected &&
((t.compilationString += "vec3 tbnNormal = normalize(" + o.associatedVariableName + ".xyz);\r\n"),
(t.compilationString += "vec3 tbnTangent = normalize(" + a.associatedVariableName + ".xyz);\r\n"),
(t.compilationString += "vec3 tbnBitangent = cross(tbnNormal, tbnTangent);\r\n"),
(t.compilationString += "mat3 vTBN = mat3(tbnTangent, tbnBitangent, tbnNormal);\r\n")),
t._emitFunctionFromInclude("bumpFragmentFunctions", n, {
replaceStrings: [{ search: /vBumpInfos.y/g, replace: s }, { search: /vTangentSpaceParams/g, replace: this._tangentSpaceParameterName }, { search: /vPositionW/g, replace: r.associatedVariableName + ".xyz" }, c],
}),
(t.compilationString += this._declareOutput(this.output, t) + " = vec4(0.);\r\n"),
(t.compilationString += t._emitCodeFromInclude("bumpFragment", n, {
replaceStrings: [
{ search: /perturbNormal\(TBN,vBumpUV\+uvOffset\)/g, replace: "perturbNormal(TBN, " + this.normalMapColor.associatedVariableName + ")" },
{ search: /vBumpInfos.y/g, replace: s },
{ search: /vBumpUV/g, replace: i.associatedVariableName },
{ search: /vPositionW/g, replace: r.associatedVariableName + ".xyz" },
{ search: /normalW=/g, replace: this.output.associatedVariableName + ".xyz = " },
{ search: /normalW/g, replace: o.associatedVariableName + ".xyz" },
c,
],
})),
this
);
}),
(t.prototype._dumpPropertiesCode = function () {
var e = this._codeVariableName + ".invertX = " + this.invertX + ";\r\n";
return (e += this._codeVariableName + ".invertY = " + this.invertY + ";\r\n");
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.invertX = this.invertX), (t.invertY = this.invertY), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.invertX = t.invertX), (this.invertY = t.invertY);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.PerturbNormalBlock"] = Ws;
var Xs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Fragment, !0) || this;
return n.registerInput("value", fs.Float, !0), n.registerInput("cutoff", fs.Float, !0), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "DiscardBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cutoff", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
return (
e.prototype._buildBlock.call(this, t),
(t.sharedData.hints.needAlphaTesting = !0),
(t.compilationString += "if (" + this.value.associatedVariableName + " < " + this.cutoff.associatedVariableName + ") discard;\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.DiscardBlock"] = Xs;
var Ys = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Fragment) || this;
return n.registerOutput("output", fs.Float, ps.Fragment), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "FrontFacingBlock";
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
if ((e.prototype._buildBlock.call(this, t), t.target === ps.Vertex)) throw "FrontFacingBlock must only be used in a fragment shader";
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = gl_FrontFacing ? 1.0 : 0.0;\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.FrontFacingBlock"] = Ys;
var Ks = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Fragment) || this;
return (
n.registerInput("input", fs.AutoDetect, !1),
n.registerOutput("dx", fs.BasedOnInput),
n.registerOutput("dy", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
(n._outputs[1]._typeConnectionSource = n._inputs[0]),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "DerivativeBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dx", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dy", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = this._outputs[1];
return (
t._emitExtension("derivatives", "#extension GL_OES_standard_derivatives : enable"),
n.hasEndpoints && (t.compilationString += this._declareOutput(n, t) + " = dFdx(" + this.input.associatedVariableName + ");\r\n"),
i.hasEndpoints && (t.compilationString += this._declareOutput(i, t) + " = dFdy(" + this.input.associatedVariableName + ");\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.DerivativeBlock"] = Ks;
var Zs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.VertexAndFragment, !0) || this;
return (
n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex),
n.registerInput("view", fs.Matrix, !1, ps.Vertex),
n.registerInput("input", fs.Color3, !1, ps.Fragment),
n.registerInput("fogColor", fs.Color3, !1, ps.Fragment),
n.registerOutput("output", fs.Color3, ps.Fragment),
n.input.acceptedConnectionPointTypes.push(fs.Color4),
n.fogColor.acceptedConnectionPointTypes.push(fs.Color4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "FogBlock";
}),
Object.defineProperty(t.prototype, "worldPosition", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "view", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fogColor", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.view.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.View;
});
t || (t = new ks("view")).setAsSystemValue(gs.View), t.output.connectTo(this.view);
}
if (!this.fogColor.isConnected) {
var n = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.FogColor;
});
n || (n = new ks("fogColor", void 0, fs.Color3)).setAsSystemValue(gs.FogColor), n.output.connectTo(this.fogColor);
}
}),
(t.prototype.prepareDefines = function (e, t, n) {
var i = e.getScene();
n.setValue("FOG", t.fogEnabled && Ir.a.GetFogState(e, i));
}),
(t.prototype.bind = function (e, t, n) {
if (n) {
var i = n.getScene();
e.setFloat4(this._fogParameters, i.fogMode, i.fogStart, i.fogEnd, i.fogDensity);
}
}),
(t.prototype._buildBlock = function (t) {
if ((e.prototype._buildBlock.call(this, t), t.target === ps.Fragment)) {
t.sharedData.blocksWithDefines.push(this),
t.sharedData.bindableBlocks.push(this),
t._emitFunctionFromInclude("fogFragmentDeclaration", "//" + this.name, {
removeUniforms: !0,
removeVaryings: !0,
removeIfDef: !1,
replaceStrings: [{ search: /float CalcFogFactor\(\)/, replace: "float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)" }],
});
var n = t._getFreeVariableName("fog"),
i = this.input,
r = this.fogColor;
this._fogParameters = t._getFreeVariableName("fogParameters");
var o = this._outputs[0];
t._emitUniformFromString(this._fogParameters, "vec4"),
(t.compilationString += "#ifdef FOG\r\n"),
(t.compilationString += "float " + n + " = CalcFogFactor(" + this._fogDistanceName + ", " + this._fogParameters + ");\r\n"),
(t.compilationString += this._declareOutput(o, t) + " = " + n + " * " + i.associatedVariableName + ".rgb + (1.0 - " + n + ") * " + r.associatedVariableName + ".rgb;\r\n"),
(t.compilationString += "#else\r\n" + this._declareOutput(o, t) + " = " + i.associatedVariableName + ".rgb;\r\n"),
(t.compilationString += "#endif\r\n");
} else {
var a = this.worldPosition,
s = this.view;
(this._fogDistanceName = t._getFreeVariableName("vFogDistance")),
t._emitVaryingFromString(this._fogDistanceName, "vec3"),
(t.compilationString += this._fogDistanceName + " = (" + s.associatedVariableName + " * " + a.associatedVariableName + ").xyz;\r\n");
}
return this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.FogBlock"] = Zs;
var qs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.VertexAndFragment) || this;
return (
(n._isUnique = !0),
n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex),
n.registerInput("worldNormal", fs.Vector4, !1, ps.Fragment),
n.registerInput("cameraPosition", fs.Vector3, !1, ps.Fragment),
n.registerInput("glossiness", fs.Float, !0, ps.Fragment),
n.registerInput("glossPower", fs.Float, !0, ps.Fragment),
n.registerInput("diffuseColor", fs.Color3, !0, ps.Fragment),
n.registerInput("specularColor", fs.Color3, !0, ps.Fragment),
n.registerOutput("diffuseOutput", fs.Color3, ps.Fragment),
n.registerOutput("specularOutput", fs.Color3, ps.Fragment),
n.registerOutput("shadow", fs.Float, ps.Fragment),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "LightBlock";
}),
Object.defineProperty(t.prototype, "worldPosition", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "worldNormal", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraPosition", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "glossiness", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "glossPower", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "diffuseColor", {
get: function () {
return this._inputs[5];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "specularColor", {
get: function () {
return this._inputs[6];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "diffuseOutput", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "specularOutput", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadow", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.cameraPosition.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.CameraPosition;
});
t || (t = new ks("cameraPosition")).setAsSystemValue(gs.CameraPosition), t.output.connectTo(this.cameraPosition);
}
}),
(t.prototype.prepareDefines = function (e, t, n) {
if (n._areLightsDirty) {
var i = e.getScene();
if (this.light) {
var r = { needNormals: !1, needRebuild: !1, lightmapMode: !1, shadowEnabled: !1, specularEnabled: !1 };
Ir.a.PrepareDefinesForLight(i, e, this.light, this._lightId, n, !0, r), r.needRebuild && n.rebuild();
} else Ir.a.PrepareDefinesForLights(i, e, n, !0, t.maxSimultaneousLights);
}
}),
(t.prototype.updateUniformsAndSamples = function (e, t, n, i) {
for (var r = 0; r < t.maxSimultaneousLights && n["LIGHT" + r]; r++) Ir.a.PrepareUniformsAndSamplersForLight(r, e.uniforms, e.samplers, n["PROJECTEDLIGHTTEXTURE" + r], i);
}),
(t.prototype.bind = function (e, t, n) {
if (n) {
var i = n.getScene();
this.light ? Ir.a.BindLight(this.light, this._lightId, i, e, !0) : Ir.a.BindLights(i, n, e, !0, t.maxSimultaneousLights);
}
}),
(t.prototype._injectVertexCode = function (e) {
var t = this.worldPosition,
n = "//" + this.name;
this.light
? ((this._lightId = (void 0 !== e.counters.lightCounter ? e.counters.lightCounter : -1) + 1),
(e.counters.lightCounter = this._lightId),
e._emitFunctionFromInclude(e.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }] }, this._lightId.toString()))
: (e._emitFunctionFromInclude(e.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { repeatKey: "maxSimultaneousLights" }),
(this._lightId = 0),
e.sharedData.dynamicUniformBlocks.push(this));
var i = "v_" + t.associatedVariableName;
e._emitVaryingFromString(i, "vec4") && (e.compilationString += i + " = " + t.associatedVariableName + ";\r\n"),
this.light
? (e.compilationString += e._emitCodeFromInclude("shadowsVertex", n, {
replaceStrings: [
{ search: /{X}/g, replace: this._lightId.toString() },
{ search: /worldPos/g, replace: t.associatedVariableName },
],
}))
: ((e.compilationString += "vec4 worldPos = " + t.associatedVariableName + ";\r\n"), (e.compilationString += e._emitCodeFromInclude("shadowsVertex", n, { repeatKey: "maxSimultaneousLights" })));
}),
(t.prototype._buildBlock = function (t) {
if ((e.prototype._buildBlock.call(this, t), t.target === ps.Fragment)) {
t.sharedData.bindableBlocks.push(this), t.sharedData.blocksWithDefines.push(this);
var n = "//" + this.name,
i = this.worldPosition;
t._emitFunctionFromInclude("helperFunctions", n),
t._emitFunctionFromInclude("lightsFragmentFunctions", n, { replaceStrings: [{ search: /vPositionW/g, replace: "v_" + i.associatedVariableName + ".xyz" }] }),
t._emitFunctionFromInclude("shadowsFragmentFunctions", n, { replaceStrings: [{ search: /vPositionW/g, replace: "v_" + i.associatedVariableName + ".xyz" }] }),
this.light
? t._emitFunctionFromInclude(
t.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration",
n,
{ replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }] },
this._lightId.toString()
)
: t._emitFunctionFromInclude(t.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { repeatKey: "maxSimultaneousLights" }),
0 === this._lightId &&
(t._registerTempVariable("viewDirectionW") && (t.compilationString += "vec3 viewDirectionW = normalize(" + this.cameraPosition.associatedVariableName + " - v_" + i.associatedVariableName + ".xyz);\r\n"),
(t.compilationString += "lightingInfo info;\r\n"),
(t.compilationString += "float shadow = 1.;\r\n"),
(t.compilationString +=
"float glossiness = " +
(this.glossiness.isConnected ? this.glossiness.associatedVariableName : "1.0") +
" * " +
(this.glossPower.isConnected ? this.glossPower.associatedVariableName : "1024.0") +
";\r\n"),
(t.compilationString += "vec3 diffuseBase = vec3(0., 0., 0.);\r\n"),
(t.compilationString += "vec3 specularBase = vec3(0., 0., 0.);\r\n"),
(t.compilationString += "vec3 normalW = " + this.worldNormal.associatedVariableName + ".xyz;\r\n")),
this.light
? (t.compilationString += t._emitCodeFromInclude("lightFragment", n, { replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }] }))
: (t.compilationString += t._emitCodeFromInclude("lightFragment", n, { repeatKey: "maxSimultaneousLights" }));
var r = this.diffuseOutput,
o = this.specularOutput;
return (
(t.compilationString += this._declareOutput(r, t) + " = diffuseBase" + (this.diffuseColor.isConnected ? " * " + this.diffuseColor.associatedVariableName : "") + ";\r\n"),
o.hasEndpoints && (t.compilationString += this._declareOutput(o, t) + " = specularBase" + (this.specularColor.isConnected ? " * " + this.specularColor.associatedVariableName : "") + ";\r\n"),
this.shadow.hasEndpoints && (t.compilationString += this._declareOutput(this.shadow, t) + " = shadow;\r\n"),
this
);
}
this._injectVertexCode(t);
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return this.light && (t.lightId = this.light.id), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), t.lightId && (this.light = n.getLightByID(t.lightId));
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.LightBlock"] = qs;
var Qs = (function (e) {
function t(t) {
var n = e.call(this, t, ps.VertexAndFragment) || this;
return (
(n.convertToGammaSpace = !1),
n.registerInput("uv", fs.Vector2, !1, ps.VertexAndFragment),
n.registerOutput("rgba", fs.Color4, ps.Neutral),
n.registerOutput("rgb", fs.Color3, ps.Neutral),
n.registerOutput("r", fs.Float, ps.Neutral),
n.registerOutput("g", fs.Float, ps.Neutral),
n.registerOutput("b", fs.Float, ps.Neutral),
n.registerOutput("a", fs.Float, ps.Neutral),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
(n._inputs[0]._prioritizeVertex = !0),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "TextureBlock";
}),
Object.defineProperty(t.prototype, "uv", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgba", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgb", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "r", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "g", {
get: function () {
return this._outputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "b", {
get: function () {
return this._outputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "a", {
get: function () {
return this._outputs[5];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "target", {
get: function () {
if (!this.uv.isConnected) return ps.VertexAndFragment;
if (this.uv.sourceBlock.isInput) return ps.VertexAndFragment;
for (var e = this.uv.connectedPoint; e; ) {
if (e.target === ps.Fragment) return ps.Fragment;
if (e.target === ps.Vertex) return ps.VertexAndFragment;
if (e.target === ps.Neutral || e.target === ps.VertexAndFragment) {
var t = e.ownerBlock;
e = null;
for (var n = 0, i = t.inputs; n < i.length; n++) {
var r = i[n];
if (r.connectedPoint) {
e = r.connectedPoint;
break;
}
}
}
}
return ps.VertexAndFragment;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.uv.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "uv" === e.name;
});
t || (t = new ks("uv")).setAsAttribute(), t.output.connectTo(this.uv);
}
}),
(t.prototype.initializeDefines = function (e, t, n, i) {
void 0 === i && (i = !1), n._areTexturesDirty && n.setValue(this._mainUVDefineName, !1);
}),
(t.prototype.prepareDefines = function (e, t, n) {
if (n._areTexturesDirty) {
if (!this.texture || !this.texture.getTextureMatrix) return n.setValue(this._defineName, !1), void n.setValue(this._mainUVDefineName, !0);
n.setValue(this._linearDefineName, this.convertToGammaSpace),
this._isMixed && (this.texture.getTextureMatrix().isIdentityAs3x2() ? (n.setValue(this._defineName, !1), n.setValue(this._mainUVDefineName, !0)) : n.setValue(this._defineName, !0));
}
}),
(t.prototype.isReady = function () {
return !(this.texture && !this.texture.isReadyOrNotBlocking());
}),
(t.prototype.bind = function (e, t, n) {
n && this.texture && (this._isMixed && (e.setFloat(this._textureInfoName, this.texture.level), e.setMatrix(this._textureTransformName, this.texture.getTextureMatrix())), e.setTexture(this._samplerName, this.texture));
}),
Object.defineProperty(t.prototype, "_isMixed", {
get: function () {
return this.target !== ps.Fragment;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._injectVertexCode = function (e) {
var t = this.uv;
((this._defineName = e._getFreeDefineName("UVTRANSFORM")), (this._mainUVDefineName = "VMAIN" + t.associatedVariableName.toUpperCase()), t.connectedPoint.ownerBlock.isInput) &&
(t.connectedPoint.ownerBlock.isAttribute || e._emitUniformFromString(t.associatedVariableName, "vec2"));
if (
((this._mainUVName = "vMain" + t.associatedVariableName),
(this._transformedUVName = e._getFreeVariableName("transformedUV")),
(this._textureTransformName = e._getFreeVariableName("textureTransform")),
(this._textureInfoName = e._getFreeVariableName("textureInfoName")),
e._emitVaryingFromString(this._transformedUVName, "vec2", this._defineName),
e._emitVaryingFromString(this._mainUVName, "vec2", this._mainUVDefineName),
e._emitUniformFromString(this._textureTransformName, "mat4", this._defineName),
(e.compilationString += "#ifdef " + this._defineName + "\r\n"),
(e.compilationString += this._transformedUVName + " = vec2(" + this._textureTransformName + " * vec4(" + t.associatedVariableName + ".xy, 1.0, 0.0));\r\n"),
(e.compilationString += "#elif defined(" + this._mainUVDefineName + ")\r\n"),
(e.compilationString += this._mainUVName + " = " + t.associatedVariableName + ".xy;\r\n"),
(e.compilationString += "#endif\r\n"),
this._outputs.some(function (e) {
return e.isConnectedInVertexShader;
}))
) {
this._writeTextureRead(e, !0);
for (var n = 0, i = this._outputs; n < i.length; n++) {
var r = i[n];
r.hasEndpoints && this._writeOutput(e, r, r.name, !0);
}
}
}),
(t.prototype._writeTextureRead = function (e, t) {
void 0 === t && (t = !1);
var n = this.uv;
if (t) {
if (e.target === ps.Fragment) return;
e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + n.associatedVariableName + ");\r\n";
} else
this.uv.ownerBlock.target !== ps.Fragment
? ((e.compilationString += "#ifdef " + this._defineName + "\r\n"),
(e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + this._transformedUVName + ");\r\n"),
(e.compilationString += "#elif defined(" + this._mainUVDefineName + ")\r\n"),
(e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + this._mainUVName + ");\r\n"),
(e.compilationString += "#endif\r\n"))
: (e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + n.associatedVariableName + ");\r\n");
}),
(t.prototype._writeOutput = function (e, t, n, i) {
if ((void 0 === i && (i = !1), i)) {
if (e.target === ps.Fragment) return;
e.compilationString += this._declareOutput(t, e) + " = " + this._tempTextureRead + "." + n + ";\r\n";
} else if (this.uv.ownerBlock.target !== ps.Fragment) {
var r = " * " + this._textureInfoName;
(e.compilationString += this._declareOutput(t, e) + " = " + this._tempTextureRead + "." + n + r + ";\r\n"),
(e.compilationString += "#ifdef " + this._linearDefineName + "\r\n"),
(e.compilationString += t.associatedVariableName + " = toGammaSpace(" + t.associatedVariableName + ");\r\n"),
(e.compilationString += "#endif\r\n");
} else e.compilationString += this._declareOutput(t, e) + " = " + this._tempTextureRead + "." + n + ";\r\n";
}),
(t.prototype._buildBlock = function (t) {
if (
(e.prototype._buildBlock.call(this, t),
t.target === ps.Vertex && (this._tempTextureRead = t._getFreeVariableName("tempTextureRead")),
((!this._isMixed && t.target === ps.Fragment) || (this._isMixed && t.target === ps.Vertex)) &&
((this._samplerName = t._getFreeVariableName(this.name + "Sampler")),
t._emit2DSampler(this._samplerName),
t.sharedData.blockingBlocks.push(this),
t.sharedData.textureBlocks.push(this),
t.sharedData.blocksWithDefines.push(this),
t.sharedData.bindableBlocks.push(this)),
t.target === ps.Fragment)
) {
if (
this._outputs.some(function (e) {
return e.isConnectedInFragmentShader;
})
) {
this._isMixed && t._emit2DSampler(this._samplerName), (this._linearDefineName = t._getFreeDefineName("ISLINEAR"));
var n = "//" + this.name;
t._emitFunctionFromInclude("helperFunctions", n), this._isMixed && t._emitUniformFromString(this._textureInfoName, "float"), this._writeTextureRead(t);
for (var i = 0, r = this._outputs; i < r.length; i++) {
var o = r[i];
o.hasEndpoints && this._writeOutput(t, o, o.name);
}
return this;
}
} else this._injectVertexCode(t);
}),
(t.prototype._dumpPropertiesCode = function () {
if (!this.texture) return "";
var e = this._codeVariableName + '.texture = new BABYLON.Texture("' + this.texture.name + '");\r\n';
return (
(e += this._codeVariableName + ".texture.wrapU = " + this.texture.wrapU + ";\r\n"),
(e += this._codeVariableName + ".texture.wrapV = " + this.texture.wrapV + ";\r\n"),
(e += this._codeVariableName + ".texture.uAng = " + this.texture.uAng + ";\r\n"),
(e += this._codeVariableName + ".texture.vAng = " + this.texture.vAng + ";\r\n"),
(e += this._codeVariableName + ".texture.wAng = " + this.texture.wAng + ";\r\n"),
(e += this._codeVariableName + ".texture.uOffset = " + this.texture.uOffset + ";\r\n"),
(e += this._codeVariableName + ".texture.vOffset = " + this.texture.vOffset + ";\r\n"),
(e += this._codeVariableName + ".texture.uScale = " + this.texture.uScale + ";\r\n"),
(e += this._codeVariableName + ".texture.vScale = " + this.texture.vScale + ";\r\n"),
(e += this._codeVariableName + ".convertToGammaSpace = " + this.convertToGammaSpace + ";\r\n")
);
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.convertToGammaSpace = this.convertToGammaSpace), this.texture && (t.texture = this.texture.serialize()), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.convertToGammaSpace = t.convertToGammaSpace), t.texture && ((i = 0 === t.texture.url.indexOf("data:") ? "" : i), (this.texture = ln.a.Parse(t.texture, n, i)));
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.TextureBlock"] = Qs;
var Js = (function (e) {
function t(t) {
var n = e.call(this, t, ps.VertexAndFragment) || this;
return (
n.registerInput("position", fs.Vector3, !1, ps.Vertex),
n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex),
n.registerInput("worldNormal", fs.Vector4, !1, ps.Fragment),
n.registerInput("world", fs.Matrix, !1, ps.Vertex),
n.registerInput("cameraPosition", fs.Vector3, !1, ps.Fragment),
n.registerInput("view", fs.Matrix, !1, ps.Fragment),
n.registerOutput("rgb", fs.Color3, ps.Fragment),
n.registerOutput("r", fs.Float, ps.Fragment),
n.registerOutput("g", fs.Float, ps.Fragment),
n.registerOutput("b", fs.Float, ps.Fragment),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ReflectionTextureBlock";
}),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "worldPosition", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "worldNormal", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "world", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraPosition", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "view", {
get: function () {
return this._inputs[5];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgb", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "r", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "g", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "b", {
get: function () {
return this._outputs[3];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.position.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.isAttribute && "position" === e.name;
});
t || (t = new ks("position")).setAsAttribute(), t.output.connectTo(this.position);
}
if (!this.world.isConnected) {
var n = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.World;
});
n || (n = new ks("world")).setAsSystemValue(gs.World), n.output.connectTo(this.world);
}
if (!this.cameraPosition.isConnected) {
var i = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.CameraPosition;
});
i || (i = new ks("cameraPosition")).setAsSystemValue(gs.CameraPosition), i.output.connectTo(this.cameraPosition);
}
if (!this.view.isConnected) {
var r = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.View;
});
r || (r = new ks("view")).setAsSystemValue(gs.View), r.output.connectTo(this.view);
}
}),
(t.prototype.prepareDefines = function (e, t, n) {
n._areTexturesDirty &&
this.texture &&
this.texture.getTextureMatrix &&
(n.setValue(this._define3DName, this.texture.isCube),
n.setValue(this._defineLocalCubicName, !!this.texture.boundingBoxSize),
n.setValue(this._defineExplicitName, 0 === this.texture.coordinatesMode),
n.setValue(this._defineSkyboxName, 5 === this.texture.coordinatesMode),
n.setValue(this._defineCubicName, 3 === this.texture.coordinatesMode),
n.setValue(this._defineSphericalName, 1 === this.texture.coordinatesMode),
n.setValue(this._definePlanarName, 2 === this.texture.coordinatesMode),
n.setValue(this._defineProjectionName, 4 === this.texture.coordinatesMode),
n.setValue(this._defineEquirectangularName, 7 === this.texture.coordinatesMode),
n.setValue(this._defineEquirectangularFixedName, 8 === this.texture.coordinatesMode),
n.setValue(this._defineMirroredEquirectangularFixedName, 9 === this.texture.coordinatesMode));
}),
(t.prototype.isReady = function () {
return !(this.texture && !this.texture.isReadyOrNotBlocking());
}),
(t.prototype.bind = function (e, t, n) {
n &&
this.texture &&
(e.setMatrix(this._reflectionMatrixName, this.texture.getReflectionTextureMatrix()), this.texture.isCube ? e.setTexture(this._cubeSamplerName, this.texture) : e.setTexture(this._2DSamplerName, this.texture));
}),
(t.prototype._injectVertexCode = function (e) {
var t = "v_" + this.worldPosition.associatedVariableName;
e._emitVaryingFromString(t, "vec4") && (e.compilationString += t + " = " + this.worldPosition.associatedVariableName + ";\r\n"),
(this._positionUVWName = e._getFreeVariableName("positionUVW")),
(this._directionWName = e._getFreeVariableName("directionW")),
e._emitVaryingFromString(this._positionUVWName, "vec3", this._defineSkyboxName) &&
((e.compilationString += "#ifdef " + this._defineSkyboxName + "\r\n"),
(e.compilationString += this._positionUVWName + " = " + this.position.associatedVariableName + ".xyz;\r\n"),
(e.compilationString += "#endif\r\n")),
e._emitVaryingFromString(this._directionWName, "vec3", "defined(" + this._defineEquirectangularFixedName + ") || defined(" + this._defineMirroredEquirectangularFixedName + ")") &&
((e.compilationString += "#if defined(" + this._defineEquirectangularFixedName + ") || defined(" + this._defineMirroredEquirectangularFixedName + ")\r\n"),
(e.compilationString += this._directionWName + " = normalize(vec3(" + this.world.associatedVariableName + " * vec4(" + this.position.associatedVariableName + ".xyz, 0.0)));\r\n"),
(e.compilationString += "#endif\r\n"));
}),
(t.prototype._writeOutput = function (e, t, n) {
e.compilationString += this._declareOutput(t, e) + " = " + this._reflectionColorName + "." + n + ";\r\n";
}),
(t.prototype._buildBlock = function (t) {
if ((e.prototype._buildBlock.call(this, t), this.texture)) {
if (t.target !== ps.Fragment)
return (
(this._define3DName = t._getFreeDefineName("REFLECTIONMAP_3D")),
(this._defineCubicName = t._getFreeDefineName("REFLECTIONMAP_CUBIC")),
(this._defineSphericalName = t._getFreeDefineName("REFLECTIONMAP_SPHERICAL")),
(this._definePlanarName = t._getFreeDefineName("REFLECTIONMAP_PLANAR")),
(this._defineProjectionName = t._getFreeDefineName("REFLECTIONMAP_PROJECTION")),
(this._defineExplicitName = t._getFreeDefineName("REFLECTIONMAP_EXPLICIT")),
(this._defineEquirectangularName = t._getFreeDefineName("REFLECTIONMAP_EQUIRECTANGULAR")),
(this._defineLocalCubicName = t._getFreeDefineName("USE_LOCAL_REFLECTIONMAP_CUBIC")),
(this._defineMirroredEquirectangularFixedName = t._getFreeDefineName("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED")),
(this._defineEquirectangularFixedName = t._getFreeDefineName("REFLECTIONMAP_EQUIRECTANGULAR_FIXED")),
(this._defineSkyboxName = t._getFreeDefineName("REFLECTIONMAP_SKYBOX")),
void this._injectVertexCode(t)
);
t.sharedData.blockingBlocks.push(this),
t.sharedData.textureBlocks.push(this),
(this._cubeSamplerName = t._getFreeVariableName(this.name + "CubeSampler")),
t.samplers.push(this._cubeSamplerName),
(this._2DSamplerName = t._getFreeVariableName(this.name + "2DSampler")),
t.samplers.push(this._2DSamplerName),
(t._samplerDeclaration += "#ifdef " + this._define3DName + "\r\n"),
(t._samplerDeclaration += "uniform samplerCube " + this._cubeSamplerName + ";\r\n"),
(t._samplerDeclaration += "#else\r\n"),
(t._samplerDeclaration += "uniform sampler2D " + this._2DSamplerName + ";\r\n"),
(t._samplerDeclaration += "#endif\r\n"),
t.sharedData.blocksWithDefines.push(this),
t.sharedData.bindableBlocks.push(this);
var n = "//" + this.name;
t._emitFunction("ReciprocalPI", "#define RECIPROCAL_PI2 0.15915494", ""),
t._emitFunctionFromInclude("reflectionFunction", n),
(this._reflectionColorName = t._getFreeVariableName("reflectionColor")),
(this._reflectionCoordsName = t._getFreeVariableName("reflectionUVW")),
(this._reflection2DCoordsName = t._getFreeVariableName("reflectionUV")),
(this._reflectionMatrixName = t._getFreeVariableName("reflectionMatrix")),
t._emitUniformFromString(this._reflectionMatrixName, "mat4");
var i = "v_" + this.worldPosition.associatedVariableName,
r = this.worldNormal.associatedVariableName + ".xyz",
o = this._reflectionMatrixName,
a = "normalize(" + this._directionWName + ")",
s = "" + this._positionUVWName,
c = "" + this.cameraPosition.associatedVariableName,
l = "" + this.view.associatedVariableName;
(t.compilationString += "vec3 " + this._reflectionColorName + ";\r\n"),
(t.compilationString += "#ifdef " + this._defineMirroredEquirectangularFixedName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeMirroredFixedEquirectangularCoords(" + i + ", " + r + ", " + a + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._defineEquirectangularFixedName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeFixedEquirectangularCoords(" + i + ", " + r + ", " + a + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._defineEquirectangularName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeEquirectangularCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ");\r\n"),
(t.compilationString += " #endif\r\n"),
(t.compilationString += "#ifdef " + this._defineSphericalName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeSphericalCoords(" + i + ", " + r + ", " + l + ", " + o + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._definePlanarName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computePlanarCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._defineCubicName + "\r\n"),
(t.compilationString += " #ifdef " + this._defineLocalCubicName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeCubicLocalCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ", vReflectionSize, vReflectionPosition);\r\n"),
(t.compilationString += " #else\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeCubicCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ");\r\n"),
(t.compilationString += " #endif\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._defineProjectionName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeProjectionCoords(" + i + ", " + l + ", " + o + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._defineSkyboxName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeSkyBoxCoords(" + s + ", " + o + ");\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._defineExplicitName + "\r\n"),
(t.compilationString += " vec3 " + this._reflectionCoordsName + " = vec3(0, 0, 0);\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += "#ifdef " + this._define3DName + "\r\n"),
(t.compilationString += this._reflectionColorName + " = textureCube(" + this._cubeSamplerName + ", " + this._reflectionCoordsName + ").rgb;\r\n"),
(t.compilationString += "#else\r\n"),
(t.compilationString += "vec2 " + this._reflection2DCoordsName + " = " + this._reflectionCoordsName + ".xy;\r\n"),
(t.compilationString += "#ifdef " + this._defineProjectionName + "\r\n"),
(t.compilationString += this._reflection2DCoordsName + " /= " + this._reflectionCoordsName + ".z;\r\n"),
(t.compilationString += "#endif\r\n"),
(t.compilationString += this._reflection2DCoordsName + ".y = 1.0 - " + this._reflection2DCoordsName + ".y;\r\n"),
(t.compilationString += this._reflectionColorName + " = texture2D(" + this._2DSamplerName + ", " + this._reflection2DCoordsName + ").rgb;\r\n"),
(t.compilationString += "#endif\r\n");
for (var u = 0, h = this._outputs; u < h.length; u++) {
(f = h[u]).hasEndpoints && this._writeOutput(t, f, f.name);
}
return this;
}
if (t.target === ps.Fragment)
for (var d = 0, p = this._outputs; d < p.length; d++) {
var f;
(f = p[d]).hasEndpoints && (t.compilationString += this._declareOutput(f, t) + " = vec3(0.)." + f.name + ";\r\n");
}
}),
(t.prototype._dumpPropertiesCode = function () {
return this.texture
? ((e = this.texture.isCube
? this._codeVariableName + '.texture = new BABYLON.CubeTexture("' + this.texture.name + '");\r\n'
: this._codeVariableName + '.texture = new BABYLON.Texture("' + this.texture.name + '");\r\n'),
(e += this._codeVariableName + ".texture.coordinatesMode = " + this.texture.coordinatesMode + ";\r\n"))
: "";
var e;
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return this.texture && (t.texture = this.texture.serialize()), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i),
t.texture && ((i = 0 === t.texture.url.indexOf("data:") ? "" : i), t.texture.isCube ? (this.texture = Ar.a.Parse(t.texture, n, i)) : (this.texture = ln.a.Parse(t.texture, n, i)));
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ReflectionTextureBlock"] = Js;
var $s = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "MultiplyBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " * " + this.right.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.MultiplyBlock"] = $s;
var ec = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "AddBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " + " + this.right.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.AddBlock"] = ec;
var tc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("input", fs.AutoDetect), n.registerInput("factor", fs.Float), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ScaleBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "factor", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = " + this.input.associatedVariableName + " * " + this.factor.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ScaleBlock"] = tc;
var nc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (n.minimum = 0), (n.maximum = 1), n.registerInput("value", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ClampBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = clamp(" + this.value.associatedVariableName + ", " + this._writeFloat(this.minimum) + ", " + this._writeFloat(this.maximum) + ");\r\n"), this;
}),
(t.prototype._dumpPropertiesCode = function () {
var e = this._codeVariableName + ".minimum = " + this.minimum + ";\r\n";
return (e += this._codeVariableName + ".maximum = " + this.maximum + ";\r\n");
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.minimum = this.minimum), (t.maximum = this.maximum), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.minimum = t.minimum), (this.maximum = t.maximum);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ClampBlock"] = nc;
var ic = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("left", fs.AutoDetect),
n.registerInput("right", fs.AutoDetect),
n.registerOutput("output", fs.Vector3),
n._linkConnectionTypes(0, 1),
n._inputs[0].excludedConnectionPointTypes.push(fs.Float),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[0].excludedConnectionPointTypes.push(fs.Vector2),
n._inputs[1].excludedConnectionPointTypes.push(fs.Float),
n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[1].excludedConnectionPointTypes.push(fs.Vector2),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "CrossBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = cross(" + this.left.associatedVariableName + ".xyz, " + this.right.associatedVariableName + ".xyz);\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.CrossBlock"] = ic;
var rc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("left", fs.AutoDetect),
n.registerInput("right", fs.AutoDetect),
n.registerOutput("output", fs.Float),
n._linkConnectionTypes(0, 1),
n._inputs[0].excludedConnectionPointTypes.push(fs.Float),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[1].excludedConnectionPointTypes.push(fs.Float),
n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "DotBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = dot(" + this.left.associatedVariableName + ", " + this.right.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.DotBlock"] = rc;
var oc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
(n.sourceRange = new a.d(-1, 1)),
(n.targetRange = new a.d(0, 1)),
n.registerInput("input", fs.AutoDetect),
n.registerInput("sourceMin", fs.Float, !0),
n.registerInput("sourceMax", fs.Float, !0),
n.registerInput("targetMin", fs.Float, !0),
n.registerInput("targetMax", fs.Float, !0),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "RemapBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "sourceMin", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "sourceMax", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "targetMin", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "targetMax", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = this.sourceMin.isConnected ? this.sourceMin.associatedVariableName : this._writeFloat(this.sourceRange.x),
r = this.sourceMax.isConnected ? this.sourceMax.associatedVariableName : this._writeFloat(this.sourceRange.y),
o = this.targetMin.isConnected ? this.targetMin.associatedVariableName : this._writeFloat(this.targetRange.x),
a = this.targetMax.isConnected ? this.targetMax.associatedVariableName : this._writeFloat(this.targetRange.y);
return (t.compilationString += this._declareOutput(n, t) + " = " + o + " + (" + this._inputs[0].associatedVariableName + " - " + i + ") * (" + a + " - " + o + ") / (" + r + " - " + i + ");\r\n"), this;
}),
(t.prototype._dumpPropertiesCode = function () {
var e = this._codeVariableName + ".sourceRange = new BABYLON.Vector2(" + this.sourceRange.x + ", " + this.sourceRange.y + ");\r\n";
return (e += this._codeVariableName + ".targetRange = new BABYLON.Vector2(" + this.targetRange.x + ", " + this.targetRange.y + ");\r\n");
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.sourceRange = this.sourceRange.asArray()), (t.targetRange = this.targetRange.asArray()), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.sourceRange = a.d.FromArray(t.sourceRange)), (this.targetRange = a.d.FromArray(t.targetRange));
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.RemapBlock"] = oc;
var ac,
sc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("input", fs.AutoDetect),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n._inputs[0].excludedConnectionPointTypes.push(fs.Float),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "NormalizeBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = this._inputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = normalize(" + i.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
(c.a.RegisteredTypes["BABYLON.NormalizeBlock"] = sc),
(function (e) {
(e[(e.Cos = 0)] = "Cos"),
(e[(e.Sin = 1)] = "Sin"),
(e[(e.Abs = 2)] = "Abs"),
(e[(e.Exp = 3)] = "Exp"),
(e[(e.Exp2 = 4)] = "Exp2"),
(e[(e.Round = 5)] = "Round"),
(e[(e.Floor = 6)] = "Floor"),
(e[(e.Ceiling = 7)] = "Ceiling"),
(e[(e.Sqrt = 8)] = "Sqrt"),
(e[(e.Log = 9)] = "Log"),
(e[(e.Tan = 10)] = "Tan"),
(e[(e.ArcTan = 11)] = "ArcTan"),
(e[(e.ArcCos = 12)] = "ArcCos"),
(e[(e.ArcSin = 13)] = "ArcSin"),
(e[(e.Fract = 14)] = "Fract"),
(e[(e.Sign = 15)] = "Sign"),
(e[(e.Radians = 16)] = "Radians"),
(e[(e.Degrees = 17)] = "Degrees");
})(ac || (ac = {}));
var cc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (n.operation = ac.Cos), n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "TrigonometryBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = "";
switch (this.operation) {
case ac.Cos:
i = "cos";
break;
case ac.Sin:
i = "sin";
break;
case ac.Abs:
i = "abs";
break;
case ac.Exp:
i = "exp";
break;
case ac.Exp2:
i = "exp2";
break;
case ac.Round:
i = "round";
break;
case ac.Floor:
i = "floor";
break;
case ac.Ceiling:
i = "ceil";
break;
case ac.Sqrt:
i = "sqrt";
break;
case ac.Log:
i = "log";
break;
case ac.Tan:
i = "tan";
break;
case ac.ArcTan:
i = "atan";
break;
case ac.ArcCos:
i = "acos";
break;
case ac.ArcSin:
i = "asin";
break;
case ac.Fract:
i = "fract";
break;
case ac.Sign:
i = "sign";
break;
case ac.Radians:
i = "radians";
break;
case ac.Degrees:
i = "degrees";
}
return (t.compilationString += this._declareOutput(n, t) + " = " + i + "(" + this.input.associatedVariableName + ");\r\n"), this;
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.operation = this.operation), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.operation = t.operation);
}),
(t.prototype._dumpPropertiesCode = function () {
return this._codeVariableName + ".operation = BABYLON.TrigonometryBlockOperations." + ac[this.operation] + ";\r\n";
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.TrigonometryBlock"] = cc;
var lc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("rgb ", fs.Color3, !0),
n.registerInput("r", fs.Float, !0),
n.registerInput("g", fs.Float, !0),
n.registerInput("b", fs.Float, !0),
n.registerInput("a", fs.Float, !0),
n.registerOutput("rgba", fs.Color4),
n.registerOutput("rgb", fs.Color3),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ColorMergerBlock";
}),
Object.defineProperty(t.prototype, "rgbIn", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "r", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "g", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "b", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "a", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgba", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgbOut", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgb", {
get: function () {
return this.rgbOut;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.r,
i = this.g,
r = this.b,
o = this.a,
a = this.rgbIn,
s = this._outputs[0],
c = this._outputs[1];
return (
a.isConnected
? s.hasEndpoints
? (t.compilationString += this._declareOutput(s, t) + " = vec4(" + a.associatedVariableName + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n")
: c.hasEndpoints && (t.compilationString += this._declareOutput(c, t) + " = " + a.associatedVariableName + ";\r\n")
: s.hasEndpoints
? (t.compilationString +=
this._declareOutput(s, t) +
" = vec4(" +
(n.isConnected ? this._writeVariable(n) : "0.0") +
", " +
(i.isConnected ? this._writeVariable(i) : "0.0") +
", " +
(r.isConnected ? this._writeVariable(r) : "0.0") +
", " +
(o.isConnected ? this._writeVariable(o) : "0.0") +
");\r\n")
: c.hasEndpoints &&
(t.compilationString +=
this._declareOutput(c, t) +
" = vec3(" +
(n.isConnected ? this._writeVariable(n) : "0.0") +
", " +
(i.isConnected ? this._writeVariable(i) : "0.0") +
", " +
(r.isConnected ? this._writeVariable(r) : "0.0") +
");\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ColorMergerBlock"] = lc;
var uc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("xyz ", fs.Vector3, !0),
n.registerInput("xy ", fs.Vector2, !0),
n.registerInput("x", fs.Float, !0),
n.registerInput("y", fs.Float, !0),
n.registerInput("z", fs.Float, !0),
n.registerInput("w", fs.Float, !0),
n.registerOutput("xyzw", fs.Vector4),
n.registerOutput("xyz", fs.Vector3),
n.registerOutput("xy", fs.Vector2),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VectorMergerBlock";
}),
Object.defineProperty(t.prototype, "xyzIn", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyIn", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "x", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "y", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "z", {
get: function () {
return this._inputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "w", {
get: function () {
return this._inputs[5];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyzw", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyzOut", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyOut", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xy", {
get: function () {
return this.xyOut;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyz", {
get: function () {
return this.xyzOut;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.x,
i = this.y,
r = this.z,
o = this.w,
a = this.xyIn,
s = this.xyzIn,
c = this._outputs[0],
l = this._outputs[1],
u = this._outputs[2];
return (
a.isConnected
? c.hasEndpoints
? (t.compilationString +=
this._declareOutput(c, t) + " = vec4(" + a.associatedVariableName + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n")
: l.hasEndpoints
? (t.compilationString += this._declareOutput(l, t) + " = vec3(" + a.associatedVariableName + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ");\r\n")
: u.hasEndpoints && (t.compilationString += this._declareOutput(u, t) + " = " + a.associatedVariableName + ";\r\n")
: s.isConnected
? c.hasEndpoints
? (t.compilationString += this._declareOutput(c, t) + " = vec4(" + s.associatedVariableName + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n")
: l.hasEndpoints
? (t.compilationString += this._declareOutput(l, t) + " = " + s.associatedVariableName + ";\r\n")
: u.hasEndpoints && (t.compilationString += this._declareOutput(u, t) + " = " + s.associatedVariableName + ".xy;\r\n")
: c.hasEndpoints
? (t.compilationString +=
this._declareOutput(c, t) +
" = vec4(" +
(n.isConnected ? this._writeVariable(n) : "0.0") +
", " +
(i.isConnected ? this._writeVariable(i) : "0.0") +
", " +
(r.isConnected ? this._writeVariable(r) : "0.0") +
", " +
(o.isConnected ? this._writeVariable(o) : "0.0") +
");\r\n")
: l.hasEndpoints
? (t.compilationString +=
this._declareOutput(l, t) +
" = vec3(" +
(n.isConnected ? this._writeVariable(n) : "0.0") +
", " +
(i.isConnected ? this._writeVariable(i) : "0.0") +
", " +
(r.isConnected ? this._writeVariable(r) : "0.0") +
");\r\n")
: u.hasEndpoints && (t.compilationString += this._declareOutput(u, t) + " = vec2(" + (n.isConnected ? this._writeVariable(n) : "0.0") + ", " + (i.isConnected ? this._writeVariable(i) : "0.0") + ");\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.VectorMergerBlock"] = uc;
var hc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("rgba", fs.Color4, !0),
n.registerInput("rgb ", fs.Color3, !0),
n.registerOutput("rgb", fs.Color3),
n.registerOutput("r", fs.Float),
n.registerOutput("g", fs.Float),
n.registerOutput("b", fs.Float),
n.registerOutput("a", fs.Float),
(n.inputsAreExclusive = !0),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ColorSplitterBlock";
}),
Object.defineProperty(t.prototype, "rgba", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgbIn", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rgbOut", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "r", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "g", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "b", {
get: function () {
return this._outputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "a", {
get: function () {
return this._outputs[4];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._inputRename = function (e) {
return "rgb " === e ? "rgbIn" : e;
}),
(t.prototype._outputRename = function (e) {
return "rgb" === e ? "rgbOut" : e;
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.rgba.isConnected ? this.rgba : this.rgbIn;
if (n.isConnected) {
var i = this._outputs[0],
r = this._outputs[1],
o = this._outputs[2],
a = this._outputs[3],
s = this._outputs[4];
return (
i.hasEndpoints && (t.compilationString += this._declareOutput(i, t) + " = " + n.associatedVariableName + ".rgb;\r\n"),
r.hasEndpoints && (t.compilationString += this._declareOutput(r, t) + " = " + n.associatedVariableName + ".r;\r\n"),
o.hasEndpoints && (t.compilationString += this._declareOutput(o, t) + " = " + n.associatedVariableName + ".g;\r\n"),
a.hasEndpoints && (t.compilationString += this._declareOutput(a, t) + " = " + n.associatedVariableName + ".b;\r\n"),
s.hasEndpoints && (t.compilationString += this._declareOutput(s, t) + " = " + n.associatedVariableName + ".a;\r\n"),
this
);
}
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ColorSplitterBlock"] = hc;
var dc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("xyzw", fs.Vector4, !0),
n.registerInput("xyz ", fs.Vector3, !0),
n.registerInput("xy ", fs.Vector2, !0),
n.registerOutput("xyz", fs.Vector3),
n.registerOutput("xy", fs.Vector2),
n.registerOutput("x", fs.Float),
n.registerOutput("y", fs.Float),
n.registerOutput("z", fs.Float),
n.registerOutput("w", fs.Float),
(n.inputsAreExclusive = !0),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "VectorSplitterBlock";
}),
Object.defineProperty(t.prototype, "xyzw", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyzIn", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyIn", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyzOut", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "xyOut", {
get: function () {
return this._outputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "x", {
get: function () {
return this._outputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "y", {
get: function () {
return this._outputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "z", {
get: function () {
return this._outputs[4];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "w", {
get: function () {
return this._outputs[5];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._inputRename = function (e) {
switch (e) {
case "xy ":
return "xyIn";
case "xyz ":
return "xyzIn";
default:
return e;
}
}),
(t.prototype._outputRename = function (e) {
switch (e) {
case "xy":
return "xyOut";
case "xyz":
return "xyzOut";
default:
return e;
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this.xyzw.isConnected ? this.xyzw : this.xyzIn.isConnected ? this.xyzIn : this.xyIn,
i = this._outputs[0],
r = this._outputs[1],
o = this._outputs[2],
a = this._outputs[3],
s = this._outputs[4],
c = this._outputs[5];
return (
i.hasEndpoints &&
(n === this.xyIn
? (t.compilationString += this._declareOutput(i, t) + " = vec3(" + n.associatedVariableName + ", 0.0);\r\n")
: (t.compilationString += this._declareOutput(i, t) + " = " + n.associatedVariableName + ".xyz;\r\n")),
r.hasEndpoints && (t.compilationString += this._declareOutput(r, t) + " = " + n.associatedVariableName + ".xy;\r\n"),
o.hasEndpoints && (t.compilationString += this._declareOutput(o, t) + " = " + n.associatedVariableName + ".x;\r\n"),
a.hasEndpoints && (t.compilationString += this._declareOutput(a, t) + " = " + n.associatedVariableName + ".y;\r\n"),
s.hasEndpoints && (t.compilationString += this._declareOutput(s, t) + " = " + n.associatedVariableName + ".z;\r\n"),
c.hasEndpoints && (t.compilationString += this._declareOutput(c, t) + " = " + n.associatedVariableName + ".w;\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.VectorSplitterBlock"] = dc;
var pc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("left", fs.AutoDetect),
n.registerInput("right", fs.AutoDetect),
n.registerInput("gradient", fs.Float),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n._linkConnectionTypes(0, 1),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "LerpBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "gradient", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = mix(" + this.left.associatedVariableName + " , " + this.right.associatedVariableName + ", " + this.gradient.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.LerpBlock"] = pc;
var fc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "DivideBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " / " + this.right.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.DivideBlock"] = fc;
var mc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "SubtractBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " - " + this.right.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.SubtractBlock"] = mc;
var gc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("value", fs.Float), n.registerInput("edge", fs.Float), n.registerOutput("output", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "StepBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "edge", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = step(" + this.edge.associatedVariableName + ", " + this.value.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.StepBlock"] = gc;
var bc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._outputs[0].excludedConnectionPointTypes.push(fs.Matrix), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "OneMinusBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = 1. - " + this.input.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
(c.a.RegisteredTypes["BABYLON.OneMinusBlock"] = bc), (c.a.RegisteredTypes["BABYLON.OppositeBlock"] = bc);
var _c = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("worldPosition", fs.Vector4), n.registerInput("cameraPosition", fs.Vector3), n.registerOutput("output", fs.Vector3), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ViewDirectionBlock";
}),
Object.defineProperty(t.prototype, "worldPosition", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "cameraPosition", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.cameraPosition.isConnected) {
var t = e.getInputBlockByPredicate(function (e) {
return e.systemValue === gs.CameraPosition;
});
t || (t = new ks("cameraPosition")).setAsSystemValue(gs.CameraPosition), t.output.connectTo(this.cameraPosition);
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = normalize(" + this.cameraPosition.associatedVariableName + " - " + this.worldPosition.associatedVariableName + ".xyz);\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ViewDirectionBlock"] = _c;
n(223);
var vc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("worldNormal", fs.Vector4), n.registerInput("viewDirection", fs.Vector3), n.registerInput("bias", fs.Float), n.registerInput("power", fs.Float), n.registerOutput("fresnel", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "FresnelBlock";
}),
Object.defineProperty(t.prototype, "worldNormal", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "viewDirection", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bias", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "power", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fresnel", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.viewDirection.isConnected) {
var t = new _c("View direction");
t.output.connectTo(this.viewDirection), t.autoConfigure(e);
}
if (!this.bias.isConnected) {
var n = new ks("bias");
(n.value = 0), n.output.connectTo(this.bias);
}
if (!this.power.isConnected) {
var i = new ks("power");
(i.value = 1), i.output.connectTo(this.power);
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = "//" + this.name;
return (
t._emitFunctionFromInclude("fresnelFunction", n, { removeIfDef: !0 }),
(t.compilationString +=
this._declareOutput(this.fresnel, t) +
" = computeFresnelTerm(" +
this.viewDirection.associatedVariableName +
".xyz, " +
this.worldNormal.associatedVariableName +
".xyz, " +
this.bias.associatedVariableName +
", " +
this.power.associatedVariableName +
");\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.FresnelBlock"] = vc;
var yc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "MaxBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = max(" + this.left.associatedVariableName + ", " + this.right.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.MaxBlock"] = yc;
var Cc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "MinBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = min(" + this.left.associatedVariableName + ", " + this.right.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.MinBlock"] = Cc;
var Pc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("left", fs.AutoDetect),
n.registerInput("right", fs.AutoDetect),
n.registerOutput("output", fs.Float),
n._linkConnectionTypes(0, 1),
n._inputs[0].excludedConnectionPointTypes.push(fs.Float),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[1].excludedConnectionPointTypes.push(fs.Float),
n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "DistanceBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = length(" + this.left.associatedVariableName + " - " + this.right.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.DistanceBlock"] = Pc;
var xc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("value", fs.AutoDetect), n.registerOutput("output", fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "LengthBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = length(" + this.value.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.LengthBlock"] = xc;
var Tc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("value", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "NegateBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = -1.0 * " + this.value.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.NegateBlock"] = Tc;
var Sc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("value", fs.Float), n.registerInput("power", fs.Float), n.registerOutput("output", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "PowBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "power", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = pow(" + this.value.associatedVariableName + ", " + this.power.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.PowBlock"] = Sc;
var Oc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("seed", fs.Vector2),
n.registerOutput("output", fs.Float),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "RandomNumberBlock";
}),
Object.defineProperty(t.prototype, "seed", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = "//" + this.name;
return t._emitFunctionFromInclude("helperFunctions", i), (t.compilationString += this._declareOutput(n, t) + " = getRand(" + this.seed.associatedVariableName + ".xy);\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.RandomNumberBlock"] = Oc;
var Ec = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("x", fs.Float), n.registerInput("y", fs.Float), n.registerOutput("output", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ArcTan2Block";
}),
Object.defineProperty(t.prototype, "x", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "y", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = atan(" + this.x.associatedVariableName + ", " + this.y.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ArcTan2Block"] = Ec;
var Mc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("value", fs.Float), n.registerInput("edge0", fs.Float), n.registerInput("edge1", fs.Float), n.registerOutput("output", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "SmoothStepBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "edge0", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "edge1", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = smoothstep(" + this.edge0.associatedVariableName + ", " + this.edge1.associatedVariableName + ", " + this.value.associatedVariableName + ");\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.SmoothStepBlock"] = Mc;
var Ac = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._outputs[0].excludedConnectionPointTypes.push(fs.Matrix), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ReciprocalBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = 1. / " + this.input.associatedVariableName + ";\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ReciprocalBlock"] = Ac;
var Ic = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("value", fs.AutoDetect),
n.registerInput("reference", fs.AutoDetect),
n.registerInput("distance", fs.Float),
n.registerInput("replacement", fs.AutoDetect),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n._linkConnectionTypes(0, 1),
n._linkConnectionTypes(0, 3),
n._inputs[0].excludedConnectionPointTypes.push(fs.Float),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[1].excludedConnectionPointTypes.push(fs.Float),
n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[3].excludedConnectionPointTypes.push(fs.Float),
n._inputs[3].excludedConnectionPointTypes.push(fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ReplaceColorBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "reference", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "distance", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "replacement", {
get: function () {
return this._inputs[3];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (
(t.compilationString += this._declareOutput(n, t) + ";\r\n"),
(t.compilationString += "if (length(" + this.value.associatedVariableName + " - " + this.reference.associatedVariableName + ") < " + this.distance.associatedVariableName + ") {\r\n"),
(t.compilationString += n.associatedVariableName + " = " + this.replacement.associatedVariableName + ";\r\n"),
(t.compilationString += "} else {\r\n"),
(t.compilationString += n.associatedVariableName + " = " + this.value.associatedVariableName + ";\r\n"),
(t.compilationString += "}\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ReplaceColorBlock"] = Ic;
var Dc,
Rc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("value", fs.AutoDetect),
n.registerInput("steps", fs.AutoDetect),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n._linkConnectionTypes(0, 1),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "PosterizeBlock";
}),
Object.defineProperty(t.prototype, "value", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "steps", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (
(t.compilationString +=
this._declareOutput(n, t) + " = floor(" + this.value.associatedVariableName + " / (1.0 / " + this.steps.associatedVariableName + ")) * (1.0 / " + this.steps.associatedVariableName + ");\r\n"),
this
);
}),
t
);
})(Is);
(c.a.RegisteredTypes["BABYLON.PosterizeBlock"] = Rc),
(function (e) {
(e[(e.SawTooth = 0)] = "SawTooth"), (e[(e.Square = 1)] = "Square"), (e[(e.Triangle = 2)] = "Triangle");
})(Dc || (Dc = {}));
var wc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
(n.kind = Dc.SawTooth),
n.registerInput("input", fs.AutoDetect),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "WaveBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
switch (this.kind) {
case Dc.SawTooth:
t.compilationString += this._declareOutput(n, t) + " = " + this.input.associatedVariableName + " - floor(0.5 + " + this.input.associatedVariableName + ");\r\n";
break;
case Dc.Square:
t.compilationString += this._declareOutput(n, t) + " = 1.0 - 2.0 * round(fract(" + this.input.associatedVariableName + "));\r\n";
break;
case Dc.Triangle:
t.compilationString += this._declareOutput(n, t) + " = 2.0 * abs(2.0 * (" + this.input.associatedVariableName + " - floor(0.5 + " + this.input.associatedVariableName + "))) - 1.0;\r\n";
}
return this;
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.kind = this.kind), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.kind = t.kind);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.WaveBlock"] = wc;
var Lc = function (e, t) {
(this.step = e), (this.color = t);
},
Fc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
(n.colorSteps = [new Lc(0, s.a.Black()), new Lc(1, s.a.White())]),
n.registerInput("gradient", fs.Float),
n.registerOutput("output", fs.Color3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector2),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "GradientBlock";
}),
Object.defineProperty(t.prototype, "gradient", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._writeColorConstant = function (e) {
var t = this.colorSteps[e];
return "vec3(" + t.color.r + ", " + t.color.g + ", " + t.color.b + ")";
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
if (this.colorSteps.length && this.gradient.connectedPoint) {
var i = t._getFreeVariableName("gradientTempColor"),
r = t._getFreeVariableName("gradientTempPosition");
(t.compilationString += "vec3 " + i + " = " + this._writeColorConstant(0) + ";\r\n"), (t.compilationString += "float " + r + ";\r\n");
var o = this.gradient.associatedVariableName;
this.gradient.connectedPoint.type !== fs.Float && (o += ".x");
for (var a = 1; a < this.colorSteps.length; a++) {
var s = this.colorSteps[a],
c = this.colorSteps[a - 1];
(t.compilationString +=
r +
" = clamp((" +
o +
" - " +
t._emitFloat(c.step) +
") / (" +
t._emitFloat(s.step) +
" - " +
t._emitFloat(c.step) +
"), 0.0, 1.0) * step(" +
t._emitFloat(a) +
", " +
t._emitFloat(this.colorSteps.length - 1) +
");\r\n"),
(t.compilationString += i + " = mix(" + i + ", " + this._writeColorConstant(a) + ", " + r + ");\r\n");
}
return (t.compilationString += this._declareOutput(n, t) + " = " + i + ";\r\n"), this;
}
t.compilationString += this._declareOutput(n, t) + " = vec3(0., 0., 0.);\r\n";
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.colorSteps = this.colorSteps), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.colorSteps = []);
for (var r = 0, o = t.colorSteps; r < o.length; r++) {
var a = o[r];
this.colorSteps.push(new Lc(a.step, new s.a(a.color.r, a.color.g, a.color.b)));
}
}),
(t.prototype._dumpPropertiesCode = function () {
for (var e = "", t = 0, n = this.colorSteps; t < n.length; t++) {
var i = n[t];
e += this._codeVariableName + ".colorSteps.push(new BABYLON.GradientBlockColorStep(" + i.step + ", new BABYLON.Color3(" + i.color.r + ", " + i.color.g + ", " + i.color.b + ")));\r\n";
}
return e;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.GradientBlock"] = Fc;
var Nc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("left", fs.AutoDetect),
n.registerInput("right", fs.AutoDetect),
n.registerInput("gradient", fs.Float),
n.registerOutput("output", fs.BasedOnInput),
(n._outputs[0]._typeConnectionSource = n._inputs[0]),
n._linkConnectionTypes(0, 1),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "NLerpBlock";
}),
Object.defineProperty(t.prototype, "left", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "right", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "gradient", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (
(t.compilationString += this._declareOutput(n, t) + " = normalize(mix(" + this.left.associatedVariableName + " , " + this.right.associatedVariableName + ", " + this.gradient.associatedVariableName + "));\r\n"), this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.NLerpBlock"] = Nc;
var kc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (n.manhattanDistance = !1), n.registerInput("seed", fs.Vector3), n.registerInput("jitter", fs.Float), n.registerOutput("output", fs.Vector2), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "WorleyNoise3DBlock";
}),
Object.defineProperty(t.prototype, "seed", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "jitter", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
if ((e.prototype._buildBlock.call(this, t), this.seed.isConnected && this._outputs[0].hasEndpoints)) {
return (
" return mod((34.0 * x + 1.0) * x, 289.0);\r\n",
"}\r\n\r\n",
"vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\r\n",
" return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\r\n",
"}\r\n\r\n",
"vec2 worley(vec3 P, float jitter, bool manhattanDistance){\r\n",
" float K = 0.142857142857; // 1/7\r\n",
" float Ko = 0.428571428571; // 1/2-K/2\r\n",
" float K2 = 0.020408163265306; // 1/(7*7)\r\n",
" float Kz = 0.166666666667; // 1/6\r\n",
" float Kzo = 0.416666666667; // 1/2-1/6*2\r\n",
"\r\n",
" vec3 Pi = mod(floor(P), 289.0);\r\n",
" vec3 Pf = fract(P) - 0.5;\r\n",
"\r\n",
" vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\r\n",
" vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\r\n",
" vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\r\n",
"\r\n",
" vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\r\n",
" vec3 p1 = permute(p + Pi.y - 1.0);\r\n",
" vec3 p2 = permute(p + Pi.y);\r\n",
" vec3 p3 = permute(p + Pi.y + 1.0);\r\n",
"\r\n",
" vec3 p11 = permute(p1 + Pi.z - 1.0);\r\n",
" vec3 p12 = permute(p1 + Pi.z);\r\n",
" vec3 p13 = permute(p1 + Pi.z + 1.0);\r\n",
"\r\n",
" vec3 p21 = permute(p2 + Pi.z - 1.0);\r\n",
" vec3 p22 = permute(p2 + Pi.z);\r\n",
" vec3 p23 = permute(p2 + Pi.z + 1.0);\r\n",
"\r\n",
" vec3 p31 = permute(p3 + Pi.z - 1.0);\r\n",
" vec3 p32 = permute(p3 + Pi.z);\r\n",
" vec3 p33 = permute(p3 + Pi.z + 1.0);\r\n",
"\r\n",
" vec3 ox11 = fract(p11*K) - Ko;\r\n",
" vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\r\n",
" vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\r\n",
"\r\n",
" vec3 ox12 = fract(p12*K) - Ko;\r\n",
" vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\r\n",
" vec3 oz12 = floor(p12*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox13 = fract(p13*K) - Ko;\r\n",
" vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\r\n",
" vec3 oz13 = floor(p13*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox21 = fract(p21*K) - Ko;\r\n",
" vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\r\n",
" vec3 oz21 = floor(p21*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox22 = fract(p22*K) - Ko;\r\n",
" vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\r\n",
" vec3 oz22 = floor(p22*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox23 = fract(p23*K) - Ko;\r\n",
" vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\r\n",
" vec3 oz23 = floor(p23*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox31 = fract(p31*K) - Ko;\r\n",
" vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\r\n",
" vec3 oz31 = floor(p31*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox32 = fract(p32*K) - Ko;\r\n",
" vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\r\n",
" vec3 oz32 = floor(p32*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 ox33 = fract(p33*K) - Ko;\r\n",
" vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\r\n",
" vec3 oz33 = floor(p33*K2)*Kz - Kzo;\r\n",
"\r\n",
" vec3 dx11 = Pfx + jitter*ox11;\r\n",
" vec3 dy11 = Pfy.x + jitter*oy11;\r\n",
" vec3 dz11 = Pfz.x + jitter*oz11;\r\n",
"\r\n",
" vec3 dx12 = Pfx + jitter*ox12;\r\n",
" vec3 dy12 = Pfy.x + jitter*oy12;\r\n",
" vec3 dz12 = Pfz.y + jitter*oz12;\r\n",
"\r\n",
" vec3 dx13 = Pfx + jitter*ox13;\r\n",
" vec3 dy13 = Pfy.x + jitter*oy13;\r\n",
" vec3 dz13 = Pfz.z + jitter*oz13;\r\n",
"\r\n",
" vec3 dx21 = Pfx + jitter*ox21;\r\n",
" vec3 dy21 = Pfy.y + jitter*oy21;\r\n",
" vec3 dz21 = Pfz.x + jitter*oz21;\r\n",
"\r\n",
" vec3 dx22 = Pfx + jitter*ox22;\r\n",
" vec3 dy22 = Pfy.y + jitter*oy22;\r\n",
" vec3 dz22 = Pfz.y + jitter*oz22;\r\n",
"\r\n",
" vec3 dx23 = Pfx + jitter*ox23;\r\n",
" vec3 dy23 = Pfy.y + jitter*oy23;\r\n",
" vec3 dz23 = Pfz.z + jitter*oz23;\r\n",
"\r\n",
" vec3 dx31 = Pfx + jitter*ox31;\r\n",
" vec3 dy31 = Pfy.z + jitter*oy31;\r\n",
" vec3 dz31 = Pfz.x + jitter*oz31;\r\n",
"\r\n",
" vec3 dx32 = Pfx + jitter*ox32;\r\n",
" vec3 dy32 = Pfy.z + jitter*oy32;\r\n",
" vec3 dz32 = Pfz.y + jitter*oz32;\r\n",
"\r\n",
" vec3 dx33 = Pfx + jitter*ox33;\r\n",
" vec3 dy33 = Pfy.z + jitter*oy33;\r\n",
" vec3 dz33 = Pfz.z + jitter*oz33;\r\n",
"\r\n",
" vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\r\n",
" vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\r\n",
" vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\r\n",
" vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\r\n",
" vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\r\n",
" vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\r\n",
" vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\r\n",
" vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\r\n",
" vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\r\n",
"\r\n",
" vec3 d1a = min(d11, d12);\r\n",
" d12 = max(d11, d12);\r\n",
" d11 = min(d1a, d13); // Smallest now not in d12 or d13\r\n",
" d13 = max(d1a, d13);\r\n",
" d12 = min(d12, d13); // 2nd smallest now not in d13\r\n",
" vec3 d2a = min(d21, d22);\r\n",
" d22 = max(d21, d22);\r\n",
" d21 = min(d2a, d23); // Smallest now not in d22 or d23\r\n",
" d23 = max(d2a, d23);\r\n",
" d22 = min(d22, d23); // 2nd smallest now not in d23\r\n",
" vec3 d3a = min(d31, d32);\r\n",
" d32 = max(d31, d32);\r\n",
" d31 = min(d3a, d33); // Smallest now not in d32 or d33\r\n",
" d33 = max(d3a, d33);\r\n",
" d32 = min(d32, d33); // 2nd smallest now not in d33\r\n",
" vec3 da = min(d11, d21);\r\n",
" d21 = max(d11, d21);\r\n",
" d11 = min(da, d31); // Smallest now in d11\r\n",
" d31 = max(da, d31); // 2nd smallest now not in d31\r\n",
" d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\r\n",
" d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\r\n",
" d12 = min(d12, d21); // 2nd smallest now not in d21\r\n",
" d12 = min(d12, d22); // nor in d22\r\n",
" d12 = min(d12, d31); // nor in d31\r\n",
" d12 = min(d12, d32); // nor in d32\r\n",
" d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\r\n",
" d11.y = min(d11.y,d12.z); // Only two more to go\r\n",
" d11.y = min(d11.y,d11.z); // Done! (Phew!)\r\n",
" return sqrt(d11.xy); // F1, F2\r\n",
"}\r\n\r\n",
t._emitFunction(
"worley3D",
"vec3 permute(vec3 x){\r\n return mod((34.0 * x + 1.0) * x, 289.0);\r\n}\r\n\r\nvec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\r\n return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\r\n}\r\n\r\nvec2 worley(vec3 P, float jitter, bool manhattanDistance){\r\n float K = 0.142857142857; // 1/7\r\n float Ko = 0.428571428571; // 1/2-K/2\r\n float K2 = 0.020408163265306; // 1/(7*7)\r\n float Kz = 0.166666666667; // 1/6\r\n float Kzo = 0.416666666667; // 1/2-1/6*2\r\n\r\n vec3 Pi = mod(floor(P), 289.0);\r\n vec3 Pf = fract(P) - 0.5;\r\n\r\n vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\r\n vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\r\n vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\r\n\r\n vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\r\n vec3 p1 = permute(p + Pi.y - 1.0);\r\n vec3 p2 = permute(p + Pi.y);\r\n vec3 p3 = permute(p + Pi.y + 1.0);\r\n\r\n vec3 p11 = permute(p1 + Pi.z - 1.0);\r\n vec3 p12 = permute(p1 + Pi.z);\r\n vec3 p13 = permute(p1 + Pi.z + 1.0);\r\n\r\n vec3 p21 = permute(p2 + Pi.z - 1.0);\r\n vec3 p22 = permute(p2 + Pi.z);\r\n vec3 p23 = permute(p2 + Pi.z + 1.0);\r\n\r\n vec3 p31 = permute(p3 + Pi.z - 1.0);\r\n vec3 p32 = permute(p3 + Pi.z);\r\n vec3 p33 = permute(p3 + Pi.z + 1.0);\r\n\r\n vec3 ox11 = fract(p11*K) - Ko;\r\n vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\r\n vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\r\n\r\n vec3 ox12 = fract(p12*K) - Ko;\r\n vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\r\n vec3 oz12 = floor(p12*K2)*Kz - Kzo;\r\n\r\n vec3 ox13 = fract(p13*K) - Ko;\r\n vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\r\n vec3 oz13 = floor(p13*K2)*Kz - Kzo;\r\n\r\n vec3 ox21 = fract(p21*K) - Ko;\r\n vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\r\n vec3 oz21 = floor(p21*K2)*Kz - Kzo;\r\n\r\n vec3 ox22 = fract(p22*K) - Ko;\r\n vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\r\n vec3 oz22 = floor(p22*K2)*Kz - Kzo;\r\n\r\n vec3 ox23 = fract(p23*K) - Ko;\r\n vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\r\n vec3 oz23 = floor(p23*K2)*Kz - Kzo;\r\n\r\n vec3 ox31 = fract(p31*K) - Ko;\r\n vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\r\n vec3 oz31 = floor(p31*K2)*Kz - Kzo;\r\n\r\n vec3 ox32 = fract(p32*K) - Ko;\r\n vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\r\n vec3 oz32 = floor(p32*K2)*Kz - Kzo;\r\n\r\n vec3 ox33 = fract(p33*K) - Ko;\r\n vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\r\n vec3 oz33 = floor(p33*K2)*Kz - Kzo;\r\n\r\n vec3 dx11 = Pfx + jitter*ox11;\r\n vec3 dy11 = Pfy.x + jitter*oy11;\r\n vec3 dz11 = Pfz.x + jitter*oz11;\r\n\r\n vec3 dx12 = Pfx + jitter*ox12;\r\n vec3 dy12 = Pfy.x + jitter*oy12;\r\n vec3 dz12 = Pfz.y + jitter*oz12;\r\n\r\n vec3 dx13 = Pfx + jitter*ox13;\r\n vec3 dy13 = Pfy.x + jitter*oy13;\r\n vec3 dz13 = Pfz.z + jitter*oz13;\r\n\r\n vec3 dx21 = Pfx + jitter*ox21;\r\n vec3 dy21 = Pfy.y + jitter*oy21;\r\n vec3 dz21 = Pfz.x + jitter*oz21;\r\n\r\n vec3 dx22 = Pfx + jitter*ox22;\r\n vec3 dy22 = Pfy.y + jitter*oy22;\r\n vec3 dz22 = Pfz.y + jitter*oz22;\r\n\r\n vec3 dx23 = Pfx + jitter*ox23;\r\n vec3 dy23 = Pfy.y + jitter*oy23;\r\n vec3 dz23 = Pfz.z + jitter*oz23;\r\n\r\n vec3 dx31 = Pfx + jitter*ox31;\r\n vec3 dy31 = Pfy.z + jitter*oy31;\r\n vec3 dz31 = Pfz.x + jitter*oz31;\r\n\r\n vec3 dx32 = Pfx + jitter*ox32;\r\n vec3 dy32 = Pfy.z + jitter*oy32;\r\n vec3 dz32 = Pfz.y + jitter*oz32;\r\n\r\n vec3 dx33 = Pfx + jitter*ox33;\r\n vec3 dy33 = Pfy.z + jitter*oy33;\r\n vec3 dz33 = Pfz.z + jitter*oz33;\r\n\r\n vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\r\n vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\r\n vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\r\n vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\r\n vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\r\n vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\r\n vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\r\n vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\r\n vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\r\n\r\n vec3 d1a = min(d11, d12);\r\n d12 = max(d11, d12);\r\n d11 = min(d1a, d13); // Smallest now not in d12 or d13\r\n d13 = max(d1a, d13);\r\n d12 = min(d12, d13); // 2nd smallest now not in d13\r\n vec3 d2a = min(d21, d22);\r\n d22 = max(d21, d22);\r\n d21 = min(d2a, d23); // Smallest now not in d22 or d23\r\n d23 = max(d2a, d23);\r\n d22 = min(d22, d23); // 2nd smallest now not in d23\r\n vec3 d3a = min(d31, d32);\r\n d32 = max(d31, d32);\r\n d31 = min(d3a, d33); // Smallest now not in d32 or d33\r\n d33 = max(d3a, d33);\r\n d32 = min(d32, d33); // 2nd smallest now not in d33\r\n vec3 da = min(d11, d21);\r\n d21 = max(d11, d21);\r\n d11 = min(da, d31); // Smallest now in d11\r\n d31 = max(da, d31); // 2nd smallest now not in d31\r\n d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\r\n d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\r\n d12 = min(d12, d21); // 2nd smallest now not in d21\r\n d12 = min(d12, d22); // nor in d22\r\n d12 = min(d12, d31); // nor in d31\r\n d12 = min(d12, d32); // nor in d32\r\n d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\r\n d11.y = min(d11.y,d12.z); // Only two more to go\r\n d11.y = min(d11.y,d11.z); // Done! (Phew!)\r\n return sqrt(d11.xy); // F1, F2\r\n}\r\n\r\n",
"// Worley3D"
),
(t.compilationString += this._declareOutput(this._outputs[0], t) + " = worley(" + this.seed.associatedVariableName + ", " + this.jitter.associatedVariableName + ", " + this.manhattanDistance + ");\r\n"),
this
);
}
}),
(t.prototype._dumpPropertiesCode = function () {
return this._codeVariableName + ".manhattanDistance = " + this.manhattanDistance + ";\r\n";
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.manhattanDistance = this.manhattanDistance), t;
}),
(t.prototype._deserialize = function (t, n, i) {
e.prototype._deserialize.call(this, t, n, i), (this.manhattanDistance = t.manhattanDistance);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.WorleyNoise3DBlock"] = kc;
var zc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("seed", fs.Vector3), n.registerOutput("output", fs.Float), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "SimplexPerlin3DBlock";
}),
Object.defineProperty(t.prototype, "seed", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
if ((e.prototype._buildBlock.call(this, t), this.seed.isConnected && this._outputs[0].hasEndpoints)) {
return (
"const float UNSKEWFACTOR = 1.0/6.0;\r\n",
"const float SIMPLEX_CORNER_POS = 0.5;\r\n",
"const float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;\r\n",
"float SimplexPerlin3D( vec3 P ){\r\n",
" P *= SIMPLEX_TETRAHADRON_HEIGHT;\r\n",
" vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) );",
" vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );\r\n",
" vec3 g = step(x0.yzx, x0.xyz);\r\n",
" vec3 l = 1.0 - g;\r\n",
" vec3 Pi_1 = min( g.xyz, l.zxy );\r\n",
" vec3 Pi_2 = max( g.xyz, l.zxy );\r\n",
" vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;\r\n",
" vec3 x2 = x0 - Pi_2 + SKEWFACTOR;\r\n",
" vec3 x3 = x0 - SIMPLEX_CORNER_POS;\r\n",
" vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );\r\n",
" vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );\r\n",
" vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );\r\n",
" Pi.xyz = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;\r\n",
" vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );\r\n",
" vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;\r\n",
" Pt *= Pt;\r\n",
" vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );\r\n",
" Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );\r\n",
" const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );\r\n",
" const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );\r\n",
" vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );\r\n",
" vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );\r\n",
" Pi_1 = ( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods;\r\n",
" Pi_2 = ( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods;\r\n",
" vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;\r\n",
" vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;\r\n",
" vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;\r\n",
" vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );\r\n",
" const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;\r\n",
" vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;\r\n",
" kernel_weights = max(0.5 - kernel_weights, 0.0);\r\n",
" kernel_weights = kernel_weights*kernel_weights*kernel_weights;\r\n",
" return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;\r\n",
"}\r\n",
t._emitFunction(
"SimplexPerlin3D",
"const float SKEWFACTOR = 1.0/3.0;\r\nconst float UNSKEWFACTOR = 1.0/6.0;\r\nconst float SIMPLEX_CORNER_POS = 0.5;\r\nconst float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;\r\nfloat SimplexPerlin3D( vec3 P ){\r\n P *= SIMPLEX_TETRAHADRON_HEIGHT;\r\n vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) ); vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );\r\n vec3 g = step(x0.yzx, x0.xyz);\r\n vec3 l = 1.0 - g;\r\n vec3 Pi_1 = min( g.xyz, l.zxy );\r\n vec3 Pi_2 = max( g.xyz, l.zxy );\r\n vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;\r\n vec3 x2 = x0 - Pi_2 + SKEWFACTOR;\r\n vec3 x3 = x0 - SIMPLEX_CORNER_POS;\r\n vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );\r\n vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );\r\n vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );\r\n Pi.xyz = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;\r\n vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );\r\n vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;\r\n Pt *= Pt;\r\n vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );\r\n Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );\r\n const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );\r\n const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );\r\n vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );\r\n vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );\r\n Pi_1 = ( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods;\r\n Pi_2 = ( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods;\r\n vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;\r\n vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;\r\n vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;\r\n vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );\r\n const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;\r\n vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;\r\n kernel_weights = max(0.5 - kernel_weights, 0.0);\r\n kernel_weights = kernel_weights*kernel_weights*kernel_weights;\r\n return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;\r\n}\r\n",
"// SimplexPerlin3D"
),
(t.compilationString += this._declareOutput(this._outputs[0], t) + " = SimplexPerlin3D(" + this.seed.associatedVariableName + ");\r\n"),
this
);
}
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.SimplexPerlin3DBlock"] = zc;
var jc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("normalMap0", fs.Vector3),
n.registerInput("normalMap1", fs.Vector3),
n.registerOutput("output", fs.Vector3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Color4),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Vector4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "NormalBlendBlock";
}),
Object.defineProperty(t.prototype, "normalMap0", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "normalMap1", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = this._inputs[0],
r = this._inputs[1],
o = t._getFreeVariableName("stepR"),
a = t._getFreeVariableName("stepG");
return (
(t.compilationString += "float " + o + " = step(0.5, " + i.associatedVariableName + ".r);\r\n"),
(t.compilationString += "float " + a + " = step(0.5, " + i.associatedVariableName + ".g);\r\n"),
(t.compilationString += this._declareOutput(n, t) + ";\r\n"),
(t.compilationString +=
n.associatedVariableName +
".r = (1.0 - " +
o +
") * " +
i.associatedVariableName +
".r * " +
r.associatedVariableName +
".r * 2.0 + " +
o +
" * (1.0 - " +
i.associatedVariableName +
".r) * (1.0 - " +
r.associatedVariableName +
".r) * 2.0;\r\n"),
(t.compilationString +=
n.associatedVariableName +
".g = (1.0 - " +
a +
") * " +
i.associatedVariableName +
".g * " +
r.associatedVariableName +
".g * 2.0 + " +
a +
" * (1.0 - " +
i.associatedVariableName +
".g) * (1.0 - " +
r.associatedVariableName +
".g) * 2.0;\r\n"),
(t.compilationString += n.associatedVariableName + ".b = " + i.associatedVariableName + ".b * " + r.associatedVariableName + ".b;\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.NormalBlendBlock"] = jc;
var Bc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("input", fs.Vector2), n.registerInput("angle", fs.Float), n.registerOutput("output", fs.Vector2), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "Rotate2dBlock";
}),
Object.defineProperty(t.prototype, "input", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "angle", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.autoConfigure = function (e) {
if (!this.angle.isConnected) {
var t = new ks("angle");
(t.value = 0), t.output.connectTo(this.angle);
}
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = this.angle,
r = this.input;
return (
(t.compilationString +=
this._declareOutput(n, t) +
" = vec2(cos(" +
i.associatedVariableName +
") * " +
r.associatedVariableName +
".x - sin(" +
i.associatedVariableName +
") * " +
r.associatedVariableName +
".y, sin(" +
i.associatedVariableName +
") * " +
r.associatedVariableName +
".x + cos(" +
i.associatedVariableName +
") * " +
r.associatedVariableName +
".y);\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.Rotate2dBlock"] = Bc;
var Vc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("incident", fs.Vector3),
n.registerInput("normal", fs.Vector3),
n.registerOutput("output", fs.Vector3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Color4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "ReflectBlock";
}),
Object.defineProperty(t.prototype, "incident", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "normal", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (t.compilationString += this._declareOutput(n, t) + " = reflect(" + this.incident.associatedVariableName + ".xyz, " + this.normal.associatedVariableName + ".xyz);\r\n"), this;
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.ReflectBlock"] = Vc;
var Gc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return (
n.registerInput("incident", fs.Vector3),
n.registerInput("normal", fs.Vector3),
n.registerInput("ior", fs.Float),
n.registerOutput("output", fs.Vector3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Vector4),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Color3),
n._inputs[1].acceptedConnectionPointTypes.push(fs.Color4),
n
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "RefractBlock";
}),
Object.defineProperty(t.prototype, "incident", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "normal", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "ior", {
get: function () {
return this._inputs[2];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0];
return (
(t.compilationString += this._declareOutput(n, t) + " = refract(" + this.incident.associatedVariableName + ".xyz, " + this.normal.associatedVariableName + ".xyz, " + this.ior.associatedVariableName + ");\r\n"), this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.RefractBlock"] = Gc;
var Uc = (function (e) {
function t(t) {
var n = e.call(this, t, ps.Neutral) || this;
return n.registerInput("color", fs.Color3), n.registerInput("level", fs.Float), n.registerOutput("output", fs.Color3), n;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "DesaturateBlock";
}),
Object.defineProperty(t.prototype, "color", {
get: function () {
return this._inputs[0];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "level", {
get: function () {
return this._inputs[1];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "output", {
get: function () {
return this._outputs[0];
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildBlock = function (t) {
e.prototype._buildBlock.call(this, t);
var n = this._outputs[0],
i = this.color.associatedVariableName,
r = t._getFreeVariableName("colorMin"),
o = t._getFreeVariableName("colorMax"),
a = t._getFreeVariableName("colorMerge");
return (
(t.compilationString += "float " + r + " = min(min(" + i + ".x, " + i + ".y), " + i + ".z);\r\n"),
(t.compilationString += "float " + o + " = max(max(" + i + ".x, " + i + ".y), " + i + ".z);\r\n"),
(t.compilationString += "float " + a + " = 0.5 * (" + r + " + " + o + ");\r\n"),
(t.compilationString += this._declareOutput(n, t) + " = mix(" + i + ", vec3(" + a + ", " + a + ", " + a + "), " + this.level.associatedVariableName + ");\r\n"),
this
);
}),
t
);
})(Is);
c.a.RegisteredTypes["BABYLON.DesaturateBlock"] = Uc;
var Hc = (function () {
function e() {}
return (e.prototype.optimize = function (e, t) {}), e;
})(),
Wc =
(n(166),
(function () {
function e(t, n) {
var i;
void 0 === n && (n = e._DefaultOptions),
(this.engine = t),
(this._ringBufferIndex = 0),
(this._ringScreenBuffer = null),
(this._fullscreenViewport = new vn.a(0, 0, 1, 1)),
(n = Object(h.a)(Object(h.a)({}, e._DefaultOptions), n)),
(this._vertexBuffers = (((i = {})[wn.b.PositionKind] = new wn.b(t, n.positions, wn.b.PositionKind, !1, !1, 2)), i)),
(this._indexBuffer = t.createIndexBuffer(n.indices)),
(t.depthCullingState.depthTest = !1),
(t.stencilState.stencilTest = !1);
}
return (
(e.prototype._getNextFrameBuffer = function (e) {
if ((void 0 === e && (e = !0), !this._ringScreenBuffer)) {
this._ringScreenBuffer = [];
for (var t = 0; t < 2; t++) {
var n = this.engine.createRenderTargetTexture(
{ width: this.engine.getRenderWidth(!0), height: this.engine.getRenderHeight(!0) },
{ generateDepthBuffer: !1, generateStencilBuffer: !1, generateMipMaps: !1, samplingMode: 1 }
),
i = new ln.a("", null);
(i._texture = n), this._ringScreenBuffer.push(i);
}
}
var r = this._ringScreenBuffer[this._ringBufferIndex];
return e && (this._ringBufferIndex = (this._ringBufferIndex + 1) % 2), r;
}),
(e.prototype.setViewport = function (e) {
void 0 === e && (e = this._fullscreenViewport), this.engine.setViewport(e);
}),
(e.prototype.bindBuffers = function (e) {
this.engine.bindBuffers(this._vertexBuffers, this._indexBuffer, e);
}),
(e.prototype.applyEffectWrapper = function (e) {
this.engine.enableEffect(e.effect), this.bindBuffers(e.effect), e.onApplyObservable.notifyObservers({});
}),
(e.prototype.draw = function () {
this.engine.drawElementsType(0, 0, 6);
}),
(e.prototype.render = function (e, t) {
var n = this;
void 0 === t && (t = null), Array.isArray(e) || (e = [e]);
for (var i = 0, r = e; i < r.length; i++) {
if (!r[i].effect.isReady()) return;
}
e.forEach(function (i, r) {
var o = t;
0 !== r &&
i.effect.onBindObservable.addOnce(function () {
i.effect.setTexture("textureSampler", n._getNextFrameBuffer(!1));
}),
(o = e.length > 1 && r != e.length - 1 ? n._getNextFrameBuffer() : t),
n.setViewport(),
n.applyEffectWrapper(i),
o && n.engine.bindFramebuffer(o.getInternalTexture()),
n.draw(),
o && n.engine.unBindFramebuffer(o.getInternalTexture());
});
}),
(e.prototype.dispose = function () {
this._ringScreenBuffer &&
(this._ringScreenBuffer.forEach(function (e) {
e.dispose();
}),
(this._ringScreenBuffer = null));
var e = this._vertexBuffers[wn.b.PositionKind];
e && (e.dispose(), delete this._vertexBuffers[wn.b.PositionKind]), this._indexBuffer && this.engine._releaseBuffer(this._indexBuffer);
}),
(e._DefaultOptions = { positions: [1, 1, -1, 1, -1, -1, 1, -1], indices: [0, 1, 2, 0, 2, 3] }),
e
);
})()),
Xc = (function () {
function e(e) {
var t,
n = this;
this.onApplyObservable = new o.c();
var i = e.uniformNames || [];
e.vertexShader
? (t = { fragmentSource: e.fragmentShader, vertexSource: e.vertexShader, spectorName: e.name || "effectWrapper" })
: (i.push("scale"),
(t = { fragmentSource: e.fragmentShader, vertex: "postprocess", spectorName: e.name || "effectWrapper" }),
this.onApplyObservable.add(function () {
n.effect.setFloat2("scale", 1, 1);
})),
(this.effect = new Xt.a(t, e.attributeNames || ["position"], i, e.samplerNames, e.engine));
}
return (
(e.prototype.dispose = function () {
this.effect.dispose();
}),
e
);
})(),
Yc = n(167),
Kc = n(78),
Zc = 0,
qc = (function () {
function e(e, t, n) {
(this.pos = e), (this.normal = t), (this.uv = n);
}
return (
(e.prototype.clone = function () {
return new e(this.pos.clone(), this.normal.clone(), this.uv.clone());
}),
(e.prototype.flip = function () {
this.normal = this.normal.scale(-1);
}),
(e.prototype.interpolate = function (t, n) {
return new e(a.e.Lerp(this.pos, t.pos, n), a.e.Lerp(this.normal, t.normal, n), a.d.Lerp(this.uv, t.uv, n));
}),
e
);
})(),
Qc = (function () {
function e(e, t) {
(this.normal = e), (this.w = t);
}
return (
(e.FromPoints = function (t, n, i) {
var r = i.subtract(t),
o = n.subtract(t);
if (0 === r.lengthSquared() || 0 === o.lengthSquared()) return null;
var s = a.e.Normalize(a.e.Cross(r, o));
return new e(s, a.e.Dot(s, t));
}),
(e.prototype.clone = function () {
return new e(this.normal.clone(), this.w);
}),
(e.prototype.flip = function () {
this.normal.scaleInPlace(-1), (this.w = -this.w);
}),
(e.prototype.splitPolygon = function (t, n, i, r, o) {
var s,
c,
l = 0,
u = [];
for (s = 0; s < t.vertices.length; s++) {
var h = (c = a.e.Dot(this.normal, t.vertices[s].pos) - this.w) < -e.EPSILON ? 2 : c > e.EPSILON ? 1 : 0;
(l |= h), u.push(h);
}
switch (l) {
case 0:
(a.e.Dot(this.normal, t.plane.normal) > 0 ? n : i).push(t);
break;
case 1:
r.push(t);
break;
case 2:
o.push(t);
break;
case 3:
var d,
p = [],
f = [];
for (s = 0; s < t.vertices.length; s++) {
var m = (s + 1) % t.vertices.length,
g = u[s],
b = u[m],
_ = t.vertices[s],
v = t.vertices[m];
if ((2 !== g && p.push(_), 1 !== g && f.push(2 !== g ? _.clone() : _), 3 == (g | b))) {
c = (this.w - a.e.Dot(this.normal, _.pos)) / a.e.Dot(this.normal, v.pos.subtract(_.pos));
var y = _.interpolate(v, c);
p.push(y), f.push(y.clone());
}
}
p.length >= 3 && (d = new Jc(p, t.shared)).plane && r.push(d), f.length >= 3 && (d = new Jc(f, t.shared)).plane && o.push(d);
}
}),
(e.EPSILON = 1e-5),
e
);
})(),
Jc = (function () {
function e(e, t) {
(this.vertices = e), (this.shared = t), (this.plane = Qc.FromPoints(e[0].pos, e[1].pos, e[2].pos));
}
return (
(e.prototype.clone = function () {
return new e(
this.vertices.map(function (e) {
return e.clone();
}),
this.shared
);
}),
(e.prototype.flip = function () {
this.vertices.reverse().map(function (e) {
e.flip();
}),
this.plane.flip();
}),
e
);
})(),
$c = (function () {
function e(e) {
(this.plane = null), (this.front = null), (this.back = null), (this.polygons = new Array()), e && this.build(e);
}
return (
(e.prototype.clone = function () {
var t = new e();
return (
(t.plane = this.plane && this.plane.clone()),
(t.front = this.front && this.front.clone()),
(t.back = this.back && this.back.clone()),
(t.polygons = this.polygons.map(function (e) {
return e.clone();
})),
t
);
}),
(e.prototype.invert = function () {
for (var e = 0; e < this.polygons.length; e++) this.polygons[e].flip();
this.plane && this.plane.flip(), this.front && this.front.invert(), this.back && this.back.invert();
var t = this.front;
(this.front = this.back), (this.back = t);
}),
(e.prototype.clipPolygons = function (e) {
if (!this.plane) return e.slice();
for (var t = new Array(), n = new Array(), i = 0; i < e.length; i++) this.plane.splitPolygon(e[i], t, n, t, n);
return this.front && (t = this.front.clipPolygons(t)), (n = this.back ? this.back.clipPolygons(n) : []), t.concat(n);
}),
(e.prototype.clipTo = function (e) {
(this.polygons = e.clipPolygons(this.polygons)), this.front && this.front.clipTo(e), this.back && this.back.clipTo(e);
}),
(e.prototype.allPolygons = function () {
var e = this.polygons.slice();
return this.front && (e = e.concat(this.front.allPolygons())), this.back && (e = e.concat(this.back.allPolygons())), e;
}),
(e.prototype.build = function (t) {
if (t.length) {
this.plane || (this.plane = t[0].plane.clone());
for (var n = new Array(), i = new Array(), r = 0; r < t.length; r++) this.plane.splitPolygon(t[r], this.polygons, this.polygons, n, i);
n.length && (this.front || (this.front = new e()), this.front.build(n)), i.length && (this.back || (this.back = new e()), this.back.build(i));
}
}),
e
);
})(),
el = (function () {
function e() {
this.polygons = new Array();
}
return (
(e.FromMesh = function (t) {
var n,
i,
r,
o,
s,
c,
l,
u,
h,
d,
p = new Array(),
f = null;
if (!(t instanceof Ee.a)) throw "BABYLON.CSG: Wrong Mesh type, must be BABYLON.Mesh";
t.computeWorldMatrix(!0), (l = t.getWorldMatrix()), (u = t.position.clone()), (h = t.rotation.clone()), t.rotationQuaternion && (f = t.rotationQuaternion.clone()), (d = t.scaling.clone());
for (var m = t.getIndices(), g = t.getVerticesData(wn.b.PositionKind), b = t.getVerticesData(wn.b.NormalKind), _ = t.getVerticesData(wn.b.UVKind), v = t.subMeshes, y = 0, C = v.length; y < C; y++)
for (var P = v[y].indexStart, x = v[y].indexCount + v[y].indexStart; P < x; P += 3) {
c = [];
for (var T = 0; T < 3; T++) {
var S = new a.e(b[3 * m[P + T]], b[3 * m[P + T] + 1], b[3 * m[P + T] + 2]);
r = new a.d(_[2 * m[P + T]], _[2 * m[P + T] + 1]);
var O = new a.e(g[3 * m[P + T]], g[3 * m[P + T] + 1], g[3 * m[P + T] + 2]);
(o = a.e.TransformCoordinates(O, l)), (i = a.e.TransformNormal(S, l)), (n = new qc(o, i, r)), c.push(n);
}
(s = new Jc(c, { subMeshId: y, meshId: Zc, materialIndex: v[y].materialIndex })).plane && p.push(s);
}
var E = e.FromPolygons(p);
return (E.matrix = l), (E.position = u), (E.rotation = h), (E.scaling = d), (E.rotationQuaternion = f), Zc++, E;
}),
(e.FromPolygons = function (t) {
var n = new e();
return (n.polygons = t), n;
}),
(e.prototype.clone = function () {
var t = new e();
return (
(t.polygons = this.polygons.map(function (e) {
return e.clone();
})),
t.copyTransformAttributes(this),
t
);
}),
(e.prototype.union = function (t) {
var n = new $c(this.clone().polygons),
i = new $c(t.clone().polygons);
return n.clipTo(i), i.clipTo(n), i.invert(), i.clipTo(n), i.invert(), n.build(i.allPolygons()), e.FromPolygons(n.allPolygons()).copyTransformAttributes(this);
}),
(e.prototype.unionInPlace = function (e) {
var t = new $c(this.polygons),
n = new $c(e.polygons);
t.clipTo(n), n.clipTo(t), n.invert(), n.clipTo(t), n.invert(), t.build(n.allPolygons()), (this.polygons = t.allPolygons());
}),
(e.prototype.subtract = function (t) {
var n = new $c(this.clone().polygons),
i = new $c(t.clone().polygons);
return n.invert(), n.clipTo(i), i.clipTo(n), i.invert(), i.clipTo(n), i.invert(), n.build(i.allPolygons()), n.invert(), e.FromPolygons(n.allPolygons()).copyTransformAttributes(this);
}),
(e.prototype.subtractInPlace = function (e) {
var t = new $c(this.polygons),
n = new $c(e.polygons);
t.invert(), t.clipTo(n), n.clipTo(t), n.invert(), n.clipTo(t), n.invert(), t.build(n.allPolygons()), t.invert(), (this.polygons = t.allPolygons());
}),
(e.prototype.intersect = function (t) {
var n = new $c(this.clone().polygons),
i = new $c(t.clone().polygons);
return n.invert(), i.clipTo(n), i.invert(), n.clipTo(i), i.clipTo(n), n.build(i.allPolygons()), n.invert(), e.FromPolygons(n.allPolygons()).copyTransformAttributes(this);
}),
(e.prototype.intersectInPlace = function (e) {
var t = new $c(this.polygons),
n = new $c(e.polygons);
t.invert(), n.clipTo(t), n.invert(), t.clipTo(n), n.clipTo(t), t.build(n.allPolygons()), t.invert(), (this.polygons = t.allPolygons());
}),
(e.prototype.inverse = function () {
var e = this.clone();
return e.inverseInPlace(), e;
}),
(e.prototype.inverseInPlace = function () {
this.polygons.map(function (e) {
e.flip();
});
}),
(e.prototype.copyTransformAttributes = function (e) {
return (this.matrix = e.matrix), (this.position = e.position), (this.rotation = e.rotation), (this.scaling = e.scaling), (this.rotationQuaternion = e.rotationQuaternion), this;
}),
(e.prototype.buildMeshGeometry = function (e, t, n) {
var i = this.matrix.clone();
i.invert();
var r,
o,
s,
c = new Ee.a(e, t),
l = [],
u = [],
h = [],
d = [],
p = a.e.Zero(),
f = a.e.Zero(),
m = a.d.Zero(),
g = this.polygons,
b = [0, 0, 0],
_ = {},
v = 0,
y = {};
n &&
g.sort(function (e, t) {
return e.shared.meshId === t.shared.meshId ? e.shared.subMeshId - t.shared.subMeshId : e.shared.meshId - t.shared.meshId;
});
for (var C = 0, P = g.length; C < P; C++) {
y[(r = g[C]).shared.meshId] || (y[r.shared.meshId] = {}),
y[r.shared.meshId][r.shared.subMeshId] || (y[r.shared.meshId][r.shared.subMeshId] = { indexStart: 1 / 0, indexEnd: -1 / 0, materialIndex: r.shared.materialIndex }),
(s = y[r.shared.meshId][r.shared.subMeshId]);
for (var x = 2, T = r.vertices.length; x < T; x++) {
(b[0] = 0), (b[1] = x - 1), (b[2] = x);
for (var S = 0; S < 3; S++) {
p.copyFrom(r.vertices[b[S]].pos), f.copyFrom(r.vertices[b[S]].normal), m.copyFrom(r.vertices[b[S]].uv);
var O = a.e.TransformCoordinates(p, i),
E = a.e.TransformNormal(f, i);
(void 0 !== (o = _[O.x + "," + O.y + "," + O.z]) && h[3 * o] === E.x && h[3 * o + 1] === E.y && h[3 * o + 2] === E.z && d[2 * o] === m.x && d[2 * o + 1] === m.y) ||
(l.push(O.x, O.y, O.z), d.push(m.x, m.y), h.push(f.x, f.y, f.z), (o = _[O.x + "," + O.y + "," + O.z] = l.length / 3 - 1)),
u.push(o),
(s.indexStart = Math.min(v, s.indexStart)),
(s.indexEnd = Math.max(v, s.indexEnd)),
v++;
}
}
}
if ((c.setVerticesData(wn.b.PositionKind, l), c.setVerticesData(wn.b.NormalKind, h), c.setVerticesData(wn.b.UVKind, d), c.setIndices(u, null), n)) {
var M,
A = 0;
for (var I in ((c.subMeshes = new Array()), y)) {
for (var D in ((M = -1), y[I])) (s = y[I][D]), Kc.b.CreateFromIndices(s.materialIndex + A, s.indexStart, s.indexEnd - s.indexStart + 1, c), (M = Math.max(s.materialIndex, M));
A += ++M;
}
}
return c;
}),
(e.prototype.toMesh = function (e, t, n, i) {
void 0 === t && (t = null);
var r = this.buildMeshGeometry(e, n, i);
return (
(r.material = t),
r.position.copyFrom(this.position),
r.rotation.copyFrom(this.rotation),
this.rotationQuaternion && (r.rotationQuaternion = this.rotationQuaternion.clone()),
r.scaling.copyFrom(this.scaling),
r.computeWorldMatrix(!0),
r
);
}),
e
);
})(),
tl = (function (e) {
function t(t, n, i, r, o, s) {
void 0 === r && (r = 1), void 0 === o && (o = 60), void 0 === s && (s = !0);
var c = e.call(this, t, i) || this;
(c._sectionPolygonPointsCount = 4), (c._running = !1), (c._autoStart = s), (c._generator = n), (c._diameter = r), (c._length = o), (c._sectionVectors = []), (c._sectionNormalVectors = []);
for (var l = 0; l < c._sectionPolygonPointsCount; l++) (c._sectionVectors[l] = a.e.Zero()), (c._sectionNormalVectors[l] = a.e.Zero());
return c._createMesh(), c;
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "TrailMesh";
}),
(t.prototype._createMesh = function () {
var e = new Rn.a(),
t = [],
n = [],
i = [],
r = a.e.Zero();
r = this._generator instanceof ke.a && this._generator._boundingInfo ? this._generator._boundingInfo.boundingBox.centerWorld : this._generator.position;
for (var o = (2 * Math.PI) / this._sectionPolygonPointsCount, s = 0; s < this._sectionPolygonPointsCount; s++) t.push(r.x + Math.cos(s * o) * this._diameter, r.y + Math.sin(s * o) * this._diameter, r.z);
for (s = 1; s <= this._length; s++) {
for (var c = 0; c < this._sectionPolygonPointsCount; c++) t.push(r.x + Math.cos(c * o) * this._diameter, r.y + Math.sin(c * o) * this._diameter, r.z);
var l = t.length / 3 - 2 * this._sectionPolygonPointsCount;
for (c = 0; c < this._sectionPolygonPointsCount - 1; c++)
i.push(l + c, l + c + this._sectionPolygonPointsCount, l + c + this._sectionPolygonPointsCount + 1), i.push(l + c, l + c + this._sectionPolygonPointsCount + 1, l + c + 1);
i.push(l + this._sectionPolygonPointsCount - 1, l + this._sectionPolygonPointsCount - 1 + this._sectionPolygonPointsCount, l + this._sectionPolygonPointsCount),
i.push(l + this._sectionPolygonPointsCount - 1, l + this._sectionPolygonPointsCount, l);
}
Rn.a.ComputeNormals(t, i, n), (e.positions = t), (e.normals = n), (e.indices = i), e.applyToMesh(this, !0), this._autoStart && this.start();
}),
(t.prototype.start = function () {
var e = this;
this._running ||
((this._running = !0),
(this._beforeRenderObserver = this.getScene().onBeforeRenderObservable.add(function () {
e.update();
})));
}),
(t.prototype.stop = function () {
this._beforeRenderObserver && this._running && ((this._running = !1), this.getScene().onBeforeRenderObservable.remove(this._beforeRenderObserver));
}),
(t.prototype.update = function () {
var e = this.getVerticesData(wn.b.PositionKind),
t = this.getVerticesData(wn.b.NormalKind),
n = this._generator.getWorldMatrix();
if (e && t) {
for (var i = 3 * this._sectionPolygonPointsCount; i < e.length; i++) e[i - 3 * this._sectionPolygonPointsCount] = e[i] - (t[i] / this._length) * this._diameter;
for (i = 3 * this._sectionPolygonPointsCount; i < t.length; i++) t[i - 3 * this._sectionPolygonPointsCount] = t[i];
var r = e.length - 3 * this._sectionPolygonPointsCount,
o = (2 * Math.PI) / this._sectionPolygonPointsCount;
for (i = 0; i < this._sectionPolygonPointsCount; i++)
this._sectionVectors[i].copyFromFloats(Math.cos(i * o) * this._diameter, Math.sin(i * o) * this._diameter, 0),
this._sectionNormalVectors[i].copyFromFloats(Math.cos(i * o), Math.sin(i * o), 0),
a.e.TransformCoordinatesToRef(this._sectionVectors[i], n, this._sectionVectors[i]),
a.e.TransformNormalToRef(this._sectionNormalVectors[i], n, this._sectionNormalVectors[i]);
for (i = 0; i < this._sectionPolygonPointsCount; i++)
(e[r + 3 * i] = this._sectionVectors[i].x),
(e[r + 3 * i + 1] = this._sectionVectors[i].y),
(e[r + 3 * i + 2] = this._sectionVectors[i].z),
(t[r + 3 * i] = this._sectionNormalVectors[i].x),
(t[r + 3 * i + 1] = this._sectionNormalVectors[i].y),
(t[r + 3 * i + 2] = this._sectionNormalVectors[i].z);
this.updateVerticesData(wn.b.PositionKind, e, !0, !1), this.updateVerticesData(wn.b.NormalKind, t, !0, !1);
}
}),
(t.prototype.clone = function (e, n) {
return void 0 === e && (e = ""), new t(e, void 0 === n ? this._generator : n, this.getScene(), this._diameter, this._length, this._autoStart);
}),
(t.prototype.serialize = function (t) {
e.prototype.serialize.call(this, t);
}),
(t.Parse = function (e, n) {
return new t(e.name, e._generator, n, e._diameter, e._length, e._autoStart);
}),
t
);
})(Ee.a),
nl = n(149);
(Rn.a.CreateDisc = function (e) {
var t = new Array(),
n = new Array(),
i = new Array(),
r = new Array(),
o = e.radius || 0.5,
a = e.tessellation || 64,
s = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1,
c = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE;
t.push(0, 0, 0), r.push(0.5, 0.5);
for (var l = 2 * Math.PI * s, u = l / a, h = 0; h < l; h += u) {
var d = Math.cos(h),
p = Math.sin(h),
f = (d + 1) / 2,
m = (1 - p) / 2;
t.push(o * d, o * p, 0), r.push(f, m);
}
1 === s && (t.push(t[3], t[4], t[5]), r.push(r[2], r[3]));
for (var g = t.length / 3, b = 1; b < g - 1; b++) n.push(b + 1, 0, b);
Rn.a.ComputeNormals(t, n, i), Rn.a._ComputeSides(c, t, n, i, r, e.frontUVs, e.backUVs);
var _ = new Rn.a();
return (_.indices = n), (_.positions = t), (_.normals = i), (_.uvs = r), _;
}),
(Ee.a.CreateDisc = function (e, t, n, i, r, o) {
void 0 === i && (i = null);
var a = { radius: t, tessellation: n, sideOrientation: o, updatable: r };
return il.CreateDisc(e, a, i);
});
var il = (function () {
function e() {}
return (
(e.CreateDisc = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateDisc(t).applyToMesh(i, t.updatable), i;
}),
e
);
})();
Rn.a.CreateTiledBox = function (e) {
for (
var t = e.faceUV || new Array(6),
n = e.faceColors,
i = e.pattern || Ee.a.NO_FLIP,
r = e.width || e.size || 1,
o = e.height || e.size || 1,
c = e.depth || e.size || 1,
l = e.tileWidth || e.tileSize || 1,
u = e.tileHeight || e.tileSize || 1,
h = e.alignHorizontal || 0,
d = e.alignVertical || 0,
p = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE,
f = 0;
f < 6;
f++
)
void 0 === t[f] && (t[f] = new a.f(0, 0, 1, 1)), n && void 0 === n[f] && (n[f] = new s.b(1, 1, 1, 1));
var m = r / 2,
g = o / 2,
b = c / 2,
_ = [];
for (f = 0; f < 2; f++) _[f] = Rn.a.CreateTiledPlane({ pattern: i, tileWidth: l, tileHeight: u, width: r, height: o, alignVertical: d, alignHorizontal: h, sideOrientation: p });
for (f = 2; f < 4; f++) _[f] = Rn.a.CreateTiledPlane({ pattern: i, tileWidth: l, tileHeight: u, width: c, height: o, alignVertical: d, alignHorizontal: h, sideOrientation: p });
var v = d;
d === Ee.a.BOTTOM ? (v = Ee.a.TOP) : d === Ee.a.TOP && (v = Ee.a.BOTTOM);
for (f = 4; f < 6; f++) _[f] = Rn.a.CreateTiledPlane({ pattern: i, tileWidth: l, tileHeight: u, width: r, height: c, alignVertical: v, alignHorizontal: h, sideOrientation: p });
var y = [],
C = [],
P = [],
x = [],
T = [],
S = [],
O = [],
E = [],
M = 0,
A = 0,
I = 0;
for (f = 0; f < 6; f++) {
M = _[f].positions.length;
(S[f] = []), (O[f] = []);
for (var D = 0; D < M / 3; D++) S[f].push(new a.e(_[f].positions[3 * D], _[f].positions[3 * D + 1], _[f].positions[3 * D + 2])), O[f].push(new a.e(_[f].normals[3 * D], _[f].normals[3 * D + 1], _[f].normals[3 * D + 2]));
(A = _[f].uvs.length), (E[f] = []);
for (var R = 0; R < A; R += 2) (E[f][R] = t[f].x + (t[f].z - t[f].x) * _[f].uvs[R]), (E[f][R + 1] = t[f].y + (t[f].w - t[f].y) * _[f].uvs[R + 1]);
if (
((P = P.concat(E[f])),
(x = x.concat(
_[f].indices.map(function (e) {
return e + I;
})
)),
(I += S[f].length),
n)
)
for (var w = 0; w < 4; w++) T.push(n[f].r, n[f].g, n[f].b, n[f].a);
}
var L = new a.e(0, 0, b),
F = a.a.RotationY(Math.PI);
(y = S[0]
.map(function (e) {
return a.e.TransformNormal(e, F).add(L);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])),
(C = O[0]
.map(function (e) {
return a.e.TransformNormal(e, F);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])),
(y = y.concat(
S[1]
.map(function (e) {
return e.subtract(L);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
)),
(C = C.concat(
O[1]
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
));
var N = new a.e(m, 0, 0),
k = a.a.RotationY(-Math.PI / 2);
(y = y.concat(
S[2]
.map(function (e) {
return a.e.TransformNormal(e, k).add(N);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
)),
(C = C.concat(
O[2]
.map(function (e) {
return a.e.TransformNormal(e, k);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
));
var z = a.a.RotationY(Math.PI / 2);
(y = y.concat(
S[3]
.map(function (e) {
return a.e.TransformNormal(e, z).subtract(N);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
)),
(C = C.concat(
O[3]
.map(function (e) {
return a.e.TransformNormal(e, z);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
));
var j = new a.e(0, g, 0),
B = a.a.RotationX(Math.PI / 2);
(y = y.concat(
S[4]
.map(function (e) {
return a.e.TransformNormal(e, B).add(j);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
)),
(C = C.concat(
O[4]
.map(function (e) {
return a.e.TransformNormal(e, B);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
));
var V = a.a.RotationX(-Math.PI / 2);
(y = y.concat(
S[5]
.map(function (e) {
return a.e.TransformNormal(e, V).subtract(j);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
)),
(C = C.concat(
O[5]
.map(function (e) {
return a.e.TransformNormal(e, V);
})
.map(function (e) {
return [e.x, e.y, e.z];
})
.reduce(function (e, t) {
return e.concat(t);
}, [])
)),
Rn.a._ComputeSides(p, y, x, C, P);
var G = new Rn.a();
if (((G.indices = x), (G.positions = y), (G.normals = C), (G.uvs = P), n)) {
var U = p === Rn.a.DOUBLESIDE ? T.concat(T) : T;
G.colors = U;
}
return G;
};
var rl = (function () {
function e() {}
return (
(e.CreateTiledBox = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTiledBox(t).applyToMesh(i, t.updatable), i;
}),
e
);
})();
(Rn.a.CreateTorusKnot = function (e) {
var t,
n,
i = new Array(),
r = new Array(),
o = new Array(),
s = new Array(),
c = e.radius || 2,
l = e.tube || 0.5,
u = e.radialSegments || 32,
h = e.tubularSegments || 32,
d = e.p || 2,
p = e.q || 3,
f = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE,
m = function (e) {
var t = Math.cos(e),
n = Math.sin(e),
i = (p / d) * e,
r = Math.cos(i),
o = c * (2 + r) * 0.5 * t,
s = c * (2 + r) * n * 0.5,
l = c * Math.sin(i) * 0.5;
return new a.e(o, s, l);
};
for (t = 0; t <= u; t++) {
var g = ((t % u) / u) * 2 * d * Math.PI,
b = m(g),
_ = m(g + 0.01),
v = _.subtract(b),
y = _.add(b),
C = a.e.Cross(v, y);
for (y = a.e.Cross(C, v), C.normalize(), y.normalize(), n = 0; n < h; n++) {
var P = ((n % h) / h) * 2 * Math.PI,
x = -l * Math.cos(P),
T = l * Math.sin(P);
r.push(b.x + x * y.x + T * C.x), r.push(b.y + x * y.y + T * C.y), r.push(b.z + x * y.z + T * C.z), s.push(t / u), s.push(n / h);
}
}
for (t = 0; t < u; t++)
for (n = 0; n < h; n++) {
var S = (n + 1) % h,
O = t * h + n,
E = (t + 1) * h + n,
M = (t + 1) * h + S,
A = t * h + S;
i.push(A), i.push(E), i.push(O), i.push(A), i.push(M), i.push(E);
}
Rn.a.ComputeNormals(r, i, o), Rn.a._ComputeSides(f, r, i, o, s, e.frontUVs, e.backUVs);
var I = new Rn.a();
return (I.indices = i), (I.positions = r), (I.normals = o), (I.uvs = s), I;
}),
(Ee.a.CreateTorusKnot = function (e, t, n, i, r, o, a, s, c, l) {
var u = { radius: t, tube: n, radialSegments: i, tubularSegments: r, p: o, q: a, sideOrientation: l, updatable: c };
return ol.CreateTorusKnot(e, u, s);
});
var ol = (function () {
function e() {}
return (
(e.CreateTorusKnot = function (e, t, n) {
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTorusKnot(t).applyToMesh(i, t.updatable), i;
}),
e
);
})(),
al = (function (e) {
function t(t, n) {
var i = e.call(this, t.x, t.y) || this;
return (i.index = n), i;
}
return Object(h.d)(t, e), t;
})(a.d),
sl = (function () {
function e() {
this.elements = new Array();
}
return (
(e.prototype.add = function (e) {
var t = this,
n = new Array();
return (
e.forEach(function (e) {
if (0 === n.length || !e.equalsWithEpsilon(n[0])) {
var i = new al(e, t.elements.length);
n.push(i), t.elements.push(i);
}
}),
n
);
}),
(e.prototype.computeBounds = function () {
var e = new a.d(this.elements[0].x, this.elements[0].y),
t = new a.d(this.elements[0].x, this.elements[0].y);
return (
this.elements.forEach(function (n) {
n.x < e.x ? (e.x = n.x) : n.x > t.x && (t.x = n.x), n.y < e.y ? (e.y = n.y) : n.y > t.y && (t.y = n.y);
}),
{ min: e, max: t, width: t.x - e.x, height: t.y - e.y }
);
}),
e
);
})(),
cl = (function () {
function e() {}
return (
(e.Rectangle = function (e, t, n, i) {
return [new a.d(e, t), new a.d(n, t), new a.d(n, i), new a.d(e, i)];
}),
(e.Circle = function (e, t, n, i) {
void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 32);
for (var r = new Array(), o = 0, s = (2 * Math.PI) / i, c = 0; c < i; c++) r.push(new a.d(t + Math.cos(o) * e, n + Math.sin(o) * e)), (o -= s);
return r;
}),
(e.Parse = function (e) {
var t,
n = e
.split(/[^-+eE\.\d]+/)
.map(parseFloat)
.filter(function (e) {
return !isNaN(e);
}),
i = [];
for (t = 0; t < (2147483646 & n.length); t += 2) i.push(new a.d(n[t], n[t + 1]));
return i;
}),
(e.StartingAt = function (e, t) {
return U.StartingAt(e, t);
}),
e
);
})(),
ll = (function () {
function e(e, t, n, i) {
var r;
void 0 === i && (i = earcut),
(this._points = new sl()),
(this._outlinepoints = new sl()),
(this._holes = new Array()),
(this._epoints = new Array()),
(this._eholes = new Array()),
(this.bjsEarcut = i),
(this._name = e),
(this._scene = n || ue.a.LastCreatedScene),
(r = t instanceof U ? t.getPoints() : t),
this._addToepoint(r),
this._points.add(r),
this._outlinepoints.add(r),
void 0 === this.bjsEarcut && g.a.Warn("Earcut was not found, the polygon will not be built.");
}
return (
(e.prototype._addToepoint = function (e) {
for (var t = 0, n = e; t < n.length; t++) {
var i = n[t];
this._epoints.push(i.x, i.y);
}
}),
(e.prototype.addHole = function (e) {
this._points.add(e);
var t = new sl();
return t.add(e), this._holes.push(t), this._eholes.push(this._epoints.length / 2), this._addToepoint(e), this;
}),
(e.prototype.build = function (e, t) {
void 0 === e && (e = !1), void 0 === t && (t = 0);
var n = new Ee.a(this._name, this._scene),
i = this.buildVertexData(t);
return n.setVerticesData(wn.b.PositionKind, i.positions, e), n.setVerticesData(wn.b.NormalKind, i.normals, e), n.setVerticesData(wn.b.UVKind, i.uvs, e), n.setIndices(i.indices), n;
}),
(e.prototype.buildVertexData = function (e) {
var t = this;
void 0 === e && (e = 0);
var n = new Rn.a(),
i = new Array(),
r = new Array(),
o = new Array(),
a = this._points.computeBounds();
this._points.elements.forEach(function (e) {
i.push(0, 1, 0), r.push(e.x, 0, e.y), o.push((e.x - a.min.x) / a.width, (e.y - a.min.y) / a.height);
});
for (var s = new Array(), c = this.bjsEarcut(this._epoints, this._eholes, 2), l = 0; l < c.length; l++) s.push(c[l]);
if (e > 0) {
var u = r.length / 3;
this._points.elements.forEach(function (t) {
i.push(0, -1, 0), r.push(t.x, -e, t.y), o.push(1 - (t.x - a.min.x) / a.width, 1 - (t.y - a.min.y) / a.height);
});
var h = s.length;
for (l = 0; l < h; l += 3) {
var d = s[l + 0],
p = s[l + 1],
f = s[l + 2];
s.push(f + u), s.push(p + u), s.push(d + u);
}
this.addSide(r, i, o, s, a, this._outlinepoints, e, !1),
this._holes.forEach(function (n) {
t.addSide(r, i, o, s, a, n, e, !0);
});
}
return (n.indices = s), (n.positions = r), (n.normals = i), (n.uvs = o), n;
}),
(e.prototype.addSide = function (e, t, n, i, r, o, s, c) {
for (var l = e.length / 3, u = 0, h = 0; h < o.elements.length; h++) {
var d,
p = o.elements[h];
(d = h + 1 > o.elements.length - 1 ? o.elements[0] : o.elements[h + 1]), e.push(p.x, 0, p.y), e.push(p.x, -s, p.y), e.push(d.x, 0, d.y), e.push(d.x, -s, d.y);
var f = new a.e(p.x, 0, p.y),
m = new a.e(d.x, 0, d.y).subtract(f),
g = new a.e(0, 1, 0),
b = a.e.Cross(m, g);
(b = b.normalize()),
n.push(u / r.width, 0),
n.push(u / r.width, 1),
(u += m.length()),
n.push(u / r.width, 0),
n.push(u / r.width, 1),
c
? (t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), i.push(l), i.push(l + 2), i.push(l + 1), i.push(l + 1), i.push(l + 2), i.push(l + 3))
: (t.push(-b.x, -b.y, -b.z), t.push(-b.x, -b.y, -b.z), t.push(-b.x, -b.y, -b.z), t.push(-b.x, -b.y, -b.z), i.push(l), i.push(l + 1), i.push(l + 2), i.push(l + 1), i.push(l + 3), i.push(l + 2)),
(l += 4);
}
}),
e
);
})();
(Rn.a.CreatePolygon = function (e, t, n, i, r, o) {
for (var c = n || new Array(3), l = i, u = [], h = 0; h < 3; h++) void 0 === c[h] && (c[h] = new a.f(0, 0, 1, 1)), l && void 0 === l[h] && (l[h] = new s.b(1, 1, 1, 1));
for (var d = e.getVerticesData(wn.b.PositionKind), p = e.getVerticesData(wn.b.NormalKind), f = e.getVerticesData(wn.b.UVKind), m = e.getIndices(), g = 0, b = 0, _ = 0; _ < p.length; _ += 3)
Math.abs(p[_ + 1]) < 0.001 && (b = 1),
Math.abs(p[_ + 1] - 1) < 0.001 && (b = 0),
Math.abs(p[_ + 1] + 1) < 0.001 && (b = 2),
(f[2 * (g = _ / 3)] = (1 - f[2 * g]) * c[b].x + f[2 * g] * c[b].z),
(f[2 * g + 1] = (1 - f[2 * g + 1]) * c[b].y + f[2 * g + 1] * c[b].w),
l && u.push(l[b].r, l[b].g, l[b].b, l[b].a);
Rn.a._ComputeSides(t, d, m, p, f, r, o);
var v = new Rn.a();
if (((v.indices = m), (v.positions = d), (v.normals = p), (v.uvs = f), l)) {
var y = t === Rn.a.DOUBLESIDE ? u.concat(u) : u;
v.colors = y;
}
return v;
}),
(Ee.a.CreatePolygon = function (e, t, n, i, r, o, a) {
void 0 === a && (a = earcut);
var s = { shape: t, holes: i, updatable: r, sideOrientation: o };
return ul.CreatePolygon(e, s, n, a);
}),
(Ee.a.ExtrudePolygon = function (e, t, n, i, r, o, a, s) {
void 0 === s && (s = earcut);
var c = { shape: t, holes: r, depth: n, updatable: o, sideOrientation: a };
return ul.ExtrudePolygon(e, c, i, s);
});
var ul = (function () {
function e() {}
return (
(e.CreatePolygon = function (e, t, n, i) {
void 0 === n && (n = null), void 0 === i && (i = earcut), (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation));
for (var r = t.shape, o = t.holes || [], s = t.depth || 0, c = [], l = [], u = 0; u < r.length; u++) c[u] = new a.d(r[u].x, r[u].z);
c[0].equalsWithEpsilon(c[c.length - 1], 1e-8) && c.pop();
for (var h = new ll(e, c, n || E.a.LastCreatedScene, i), d = 0; d < o.length; d++) {
l = [];
for (var p = 0; p < o[d].length; p++) l.push(new a.d(o[d][p].x, o[d][p].z));
h.addHole(l);
}
var f = h.build(t.updatable, s);
return (f._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreatePolygon(f, t.sideOrientation, t.faceUV, t.faceColors, t.frontUVs, t.backUVs).applyToMesh(f, t.updatable), f;
}),
(e.ExtrudePolygon = function (t, n, i, r) {
return void 0 === i && (i = null), void 0 === r && (r = earcut), e.CreatePolygon(t, n, i, r);
}),
e
);
})();
Ee.a.CreateLathe = function (e, t, n, i, r, o, a) {
var s = { shape: t, radius: n, tessellation: i, sideOrientation: a, updatable: o };
return hl.CreateLathe(e, s, r);
};
var hl = (function () {
function e() {}
return (
(e.CreateLathe = function (e, t, n) {
void 0 === n && (n = null);
var i,
r = t.arc ? (t.arc <= 0 || t.arc > 1 ? 1 : t.arc) : 1,
o = void 0 === t.closed || t.closed,
s = t.shape,
c = t.radius || 1,
l = t.tessellation || 64,
u = t.clip || 0,
h = t.updatable,
d = Ee.a._GetDefaultSideOrientation(t.sideOrientation),
p = t.cap || Ee.a.NO_CAP,
f = 2 * Math.PI,
m = new Array(),
g = t.invertUV || !1,
b = 0,
_ = 0,
v = (f / l) * r,
y = new Array();
for (b = 0; b <= l - u; b++) {
y = [];
for ((p != Ee.a.CAP_START && p != Ee.a.CAP_ALL) || (y.push(new a.e(0, s[0].y, 0)), y.push(new a.e(Math.cos(b * v) * s[0].x * c, s[0].y, Math.sin(b * v) * s[0].x * c))), _ = 0; _ < s.length; _++)
(i = new a.e(Math.cos(b * v) * s[_].x * c, s[_].y, Math.sin(b * v) * s[_].x * c)), y.push(i);
(p != Ee.a.CAP_END && p != Ee.a.CAP_ALL) || (y.push(new a.e(Math.cos(b * v) * s[s.length - 1].x * c, s[s.length - 1].y, Math.sin(b * v) * s[s.length - 1].x * c)), y.push(new a.e(0, s[s.length - 1].y, 0))), m.push(y);
}
return wa.CreateRibbon(e, { pathArray: m, closeArray: o, sideOrientation: d, updatable: h, invertUV: g, frontUVs: t.frontUVs, backUVs: t.backUVs }, n);
}),
e
);
})();
Rn.a.CreateTiledPlane = function (e) {
var t = e.pattern || Ee.a.NO_FLIP,
n = e.tileWidth || e.tileSize || 1,
i = e.tileHeight || e.tileSize || 1,
r = e.alignHorizontal || 0,
o = e.alignVertical || 0,
a = e.width || e.size || 1,
s = Math.floor(a / n),
c = a - s * n,
l = e.height || e.size || 1,
u = Math.floor(l / i),
h = l - u * i,
d = (n * s) / 2,
p = (i * u) / 2,
f = 0,
m = 0,
g = 0,
b = 0,
_ = 0,
v = 0;
if (c > 0 || h > 0) {
(g = -d), (b = -p);
(_ = d), (v = p);
switch (r) {
case Ee.a.CENTER:
(g -= c /= 2), (_ += c);
break;
case Ee.a.LEFT:
(_ += c), (f = -c / 2);
break;
case Ee.a.RIGHT:
(g -= c), (f = c / 2);
}
switch (o) {
case Ee.a.CENTER:
(b -= h /= 2), (v += h);
break;
case Ee.a.BOTTOM:
(v += h), (m = -h / 2);
break;
case Ee.a.TOP:
(b -= h), (m = h / 2);
}
}
var y = [],
C = [],
P = [];
(P[0] = [0, 0, 1, 0, 1, 1, 0, 1]),
(P[1] = [0, 0, 1, 0, 1, 1, 0, 1]),
(t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (P[1] = [1, 1, 0, 1, 0, 0, 1, 0]),
(t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (P[1] = [1, 0, 0, 0, 0, 1, 1, 1]),
(t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (P[1] = [0, 1, 1, 1, 1, 0, 0, 0]);
for (var x = [], T = [], S = [], O = 0, E = 0; E < u; E++)
for (var M = 0; M < s; M++)
y.push(M * n - d + f, E * i - p + m, 0),
y.push((M + 1) * n - d + f, E * i - p + m, 0),
y.push((M + 1) * n - d + f, (E + 1) * i - p + m, 0),
y.push(M * n - d + f, (E + 1) * i - p + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(x =
t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE
? x.concat(P[((M % 2) + (E % 2)) % 2])
: t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW
? x.concat(P[E % 2])
: x.concat(P[0])),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1),
(O += 4);
if (c > 0 || h > 0) {
var A,
I,
D,
R,
w = h > 0 && (o === Ee.a.CENTER || o === Ee.a.TOP),
L = h > 0 && (o === Ee.a.CENTER || o === Ee.a.BOTTOM),
F = c > 0 && (r === Ee.a.CENTER || r === Ee.a.RIGHT),
N = c > 0 && (r === Ee.a.CENTER || r === Ee.a.LEFT),
k = [];
if (
(w &&
F &&
(y.push(g + f, b + m, 0),
y.push(-d + f, b + m, 0),
y.push(-d + f, b + h + m, 0),
y.push(g + f, b + h + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(k = [(A = 1 - c / n), (I = 1 - h / i), (D = 1), I, D, (R = 1), A, R]),
t === Ee.a.ROTATE_ROW && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
t === Ee.a.FLIP_ROW && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
t === Ee.a.FLIP_N_ROTATE_ROW && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]),
(x = x.concat(k)),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)),
w &&
N &&
(y.push(d + f, b + m, 0),
y.push(_ + f, b + m, 0),
y.push(_ + f, b + h + m, 0),
y.push(d + f, b + h + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(k = [(A = 0), (I = 1 - h / i), (D = c / n), I, D, (R = 1), A, R]),
(t === Ee.a.ROTATE_ROW || (t === Ee.a.ROTATE_TILE && s % 2 == 0)) && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
(t === Ee.a.FLIP_ROW || (t === Ee.a.FLIP_TILE && s % 2 == 0)) && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
(t === Ee.a.FLIP_N_ROTATE_ROW || (t === Ee.a.FLIP_N_ROTATE_TILE && s % 2 == 0)) && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]),
(x = x.concat(k)),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)),
L &&
F &&
(y.push(g + f, p + m, 0),
y.push(-d + f, p + m, 0),
y.push(-d + f, v + m, 0),
y.push(g + f, v + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(k = [(A = 1 - c / n), (I = 0), (D = 1), I, D, (R = h / i), A, R]),
((t === Ee.a.ROTATE_ROW && u % 2 == 1) || (t === Ee.a.ROTATE_TILE && u % 1 == 0)) && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
((t === Ee.a.FLIP_ROW && u % 2 == 1) || (t === Ee.a.FLIP_TILE && u % 2 == 0)) && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
((t === Ee.a.FLIP_N_ROTATE_ROW && u % 2 == 1) || (t === Ee.a.FLIP_N_ROTATE_TILE && u % 2 == 0)) && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]),
(x = x.concat(k)),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)),
L &&
N &&
(y.push(d + f, p + m, 0),
y.push(_ + f, p + m, 0),
y.push(_ + f, v + m, 0),
y.push(d + f, v + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(k = [(A = 0), (I = 0), (D = c / n), I, D, (R = h / i), A, R]),
((t === Ee.a.ROTATE_ROW && u % 2 == 1) || (t === Ee.a.ROTATE_TILE && (u + s) % 2 == 1)) && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
((t === Ee.a.FLIP_ROW && u % 2 == 1) || (t === Ee.a.FLIP_TILE && (u + s) % 2 == 1)) && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
((t === Ee.a.FLIP_N_ROTATE_ROW && u % 2 == 1) || (t === Ee.a.FLIP_N_ROTATE_TILE && (u + s) % 2 == 1)) && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]),
(x = x.concat(k)),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)),
w)
) {
var z = [];
(A = 0),
(I = 1 - h / i),
(D = 1),
(R = 1),
(z[0] = [A, I, D, I, D, R, A, R]),
(z[1] = [A, I, D, I, D, R, A, R]),
(t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (z[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
(t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (z[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
(t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (z[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]);
for (M = 0; M < s; M++)
y.push(M * n - d + f, b + m, 0),
y.push((M + 1) * n - d + f, b + m, 0),
y.push((M + 1) * n - d + f, b + h + m, 0),
y.push(M * n - d + f, b + h + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(x =
t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE
? x.concat(z[(M + 1) % 2])
: t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW
? x.concat(z[1])
: x.concat(z[0])),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);
}
if (L) {
var j = [];
(A = 0),
(I = 0),
(D = 1),
(R = h / i),
(j[0] = [A, I, D, I, D, R, A, R]),
(j[1] = [A, I, D, I, D, R, A, R]),
(t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (j[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
(t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (j[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
(t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (j[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]);
for (M = 0; M < s; M++)
y.push(M * n - d + f, v - h + m, 0),
y.push((M + 1) * n - d + f, v - h + m, 0),
y.push((M + 1) * n - d + f, v + m, 0),
y.push(M * n - d + f, v + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(x =
t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE
? x.concat(j[(M + u) % 2])
: t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW
? x.concat(j[u % 2])
: x.concat(j[0])),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);
}
if (F) {
var B = [];
(A = 1 - c / n),
(I = 0),
(D = 1),
(R = 1),
(B[0] = [A, I, D, I, D, R, A, R]),
(B[1] = [A, I, D, I, D, R, A, R]),
(t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (B[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
(t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (B[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
(t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (B[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]);
for (E = 0; E < u; E++)
y.push(g + f, E * i - p + m, 0),
y.push(g + c + f, E * i - p + m, 0),
y.push(g + c + f, (E + 1) * i - p + m, 0),
y.push(g + f, (E + 1) * i - p + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(x =
t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE
? x.concat(B[(E + 1) % 2])
: t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW
? x.concat(B[E % 2])
: x.concat(B[0])),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);
}
if (N) {
var V = [];
(A = 0),
(I = 0),
(D = c / i),
(R = 1),
(V[0] = [A, I, D, I, D, R, A, R]),
(V[1] = [A, I, D, I, D, R, A, R]),
(t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (V[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]),
(t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (V[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]),
(t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (V[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]);
for (E = 0; E < u; E++)
y.push(_ - c + f, E * i - p + m, 0),
y.push(_ + f, E * i - p + m, 0),
y.push(_ + f, (E + 1) * i - p + m, 0),
y.push(_ - c + f, (E + 1) * i - p + m, 0),
S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3),
(O += 4),
(x =
t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE
? x.concat(V[(E + s) % 2])
: t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW
? x.concat(V[E % 2])
: x.concat(V[0])),
T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);
}
}
var G = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE;
Rn.a._ComputeSides(G, y, S, C, x, e.frontUVs, e.backUVs);
var U = new Rn.a();
(U.indices = S), (U.positions = y), (U.normals = C), (U.uvs = x);
var H = G === Rn.a.DOUBLESIDE ? T.concat(T) : T;
return (U.colors = H), U;
};
var dl = (function () {
function e() {}
return (
(e.CreateTiledPlane = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTiledPlane(t).applyToMesh(i, t.updatable), i;
}),
e
);
})();
Ee.a.CreateTube = function (e, t, n, i, r, o, a, s, c, l) {
var u = { path: t, radius: n, tessellation: i, radiusFunction: r, arc: 1, cap: o, updatable: s, sideOrientation: c, instance: l };
return pl.CreateTube(e, u, a);
};
var pl = (function () {
function e() {}
return (
(e.CreateTube = function (e, t, n) {
void 0 === n && (n = null);
var i = t.path,
r = t.instance,
o = 1;
void 0 !== t.radius ? (o = t.radius) : r && (o = r._creationDataStorage.radius);
var s = t.tessellation || 64,
c = t.radiusFunction || null,
l = t.cap || Ee.a.NO_CAP,
u = t.invertUV || !1,
h = t.updatable,
d = Ee.a._GetDefaultSideOrientation(t.sideOrientation);
t.arc = t.arc && (t.arc <= 0 || t.arc > 1) ? 1 : t.arc || 1;
var p,
f,
m = function (e, t, n, i, r, o, s, c) {
for (
var l,
u,
h,
d,
p = t.getTangents(),
f = t.getNormals(),
m = t.getDistances(),
g = ((2 * Math.PI) / r) * c,
b =
o ||
function () {
return i;
},
_ = a.c.Matrix[0],
v = s === Ee.a.NO_CAP || s === Ee.a.CAP_END ? 0 : 2,
y = 0;
y < e.length;
y++
) {
(u = b(y, m[y])), (l = Array()), (h = f[y]);
for (var C = 0; C < r; C++) a.a.RotationAxisToRef(p[y], g * C, _), (d = l[C] ? l[C] : a.e.Zero()), a.e.TransformCoordinatesToRef(h, _, d), d.scaleInPlace(u).addInPlace(e[y]), (l[C] = d);
(n[v] = l), v++;
}
var P = function (t, n) {
for (var i = Array(), r = 0; r < t; r++) i.push(e[n]);
return i;
};
switch (s) {
case Ee.a.NO_CAP:
break;
case Ee.a.CAP_START:
(n[0] = P(r, 0)), (n[1] = n[2].slice(0));
break;
case Ee.a.CAP_END:
(n[v] = n[v - 1].slice(0)), (n[v + 1] = P(r, e.length - 1));
break;
case Ee.a.CAP_ALL:
(n[0] = P(r, 0)), (n[1] = n[2].slice(0)), (n[v] = n[v - 1].slice(0)), (n[v + 1] = P(r, e.length - 1));
}
return n;
};
if (r) {
var g = r._creationDataStorage,
b = t.arc || g.arc;
return (f = m(i, (p = g.path3D.update(i)), g.pathArray, o, g.tessellation, c, g.cap, b)), (r = wa.CreateRibbon("", { pathArray: f, instance: r })), (g.path3D = p), (g.pathArray = f), (g.arc = b), (g.radius = o), r;
}
f = m(i, (p = new H(i)), new Array(), o, s, c, (l = l < 0 || l > 3 ? 0 : l), t.arc);
var _ = wa.CreateRibbon(e, { pathArray: f, closePath: !0, closeArray: !1, updatable: h, sideOrientation: d, invertUV: u, frontUVs: t.frontUVs, backUVs: t.backUVs }, n);
return (
(_._creationDataStorage.pathArray = f),
(_._creationDataStorage.path3D = p),
(_._creationDataStorage.tessellation = s),
(_._creationDataStorage.cap = l),
(_._creationDataStorage.arc = t.arc),
(_._creationDataStorage.radius = o),
_
);
}),
e
);
})();
(Rn.a.CreateIcoSphere = function (e) {
var t,
n = e.sideOrientation || Rn.a.DEFAULTSIDE,
i = e.radius || 1,
r = void 0 === e.flat || e.flat,
o = e.subdivisions || 4,
s = e.radiusX || i,
c = e.radiusY || i,
l = e.radiusZ || i,
u = (1 + Math.sqrt(5)) / 2,
h = [-1, u, -0, 1, u, 0, -1, -u, 0, 1, -u, 0, 0, -1, -u, 0, 1, -u, 0, -1, u, 0, 1, u, u, 0, 1, u, 0, -1, -u, 0, 1, -u, 0, -1],
d = [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 12, 22, 23, 1, 5, 20, 5, 11, 4, 23, 22, 13, 22, 18, 6, 7, 1, 8, 14, 21, 4, 14, 4, 2, 16, 13, 6, 15, 6, 19, 3, 8, 9, 4, 21, 5, 13, 17, 23, 6, 13, 22, 19, 6, 18, 9, 8, 1],
p = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 2, 3, 3, 3, 4, 7, 8, 9, 9, 10, 11],
f = [5, 1, 3, 1, 6, 4, 0, 0, 5, 3, 4, 2, 2, 2, 4, 0, 2, 0, 1, 1, 6, 0, 6, 2, 0, 4, 3, 3, 4, 4, 3, 1, 4, 2, 4, 4, 0, 2, 1, 1, 2, 2, 3, 3, 1, 3, 2, 4],
m = [0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0],
g = new Array(),
b = new Array(),
_ = new Array(),
v = new Array(),
y = 0,
C = new Array(3),
P = new Array(3);
for (t = 0; t < 3; t++) (C[t] = a.e.Zero()), (P[t] = a.d.Zero());
for (var x = 0; x < 20; x++) {
for (t = 0; t < 3; t++) {
var T = d[3 * x + t];
C[t].copyFromFloats(h[3 * p[T]], h[3 * p[T] + 1], h[3 * p[T] + 2]),
C[t].normalize().scaleInPlace(i),
P[t].copyFromFloats(f[2 * T] * (138 / 1024) + 60 / 1024 + m[x] * (-40 / 1024), f[2 * T + 1] * (239 / 1024) + 26 / 1024 + m[x] * (20 / 1024));
}
for (
var S = function (e, t, n, i) {
var u,
h = a.e.Lerp(C[0], C[2], t / o),
d = a.e.Lerp(C[1], C[2], t / o),
p = o === t ? C[2] : a.e.Lerp(h, d, e / (o - t));
if ((p.normalize(), r)) {
var f = a.e.Lerp(C[0], C[2], i / o),
m = a.e.Lerp(C[1], C[2], i / o);
u = a.e.Lerp(f, m, n / (o - i));
} else u = new a.e(p.x, p.y, p.z);
(u.x /= s), (u.y /= c), (u.z /= l), u.normalize();
var x = a.d.Lerp(P[0], P[2], t / o),
T = a.d.Lerp(P[1], P[2], t / o),
S = o === t ? P[2] : a.d.Lerp(x, T, e / (o - t));
b.push(p.x * s, p.y * c, p.z * l), _.push(u.x, u.y, u.z), v.push(S.x, S.y), g.push(y), y++;
},
O = 0;
O < o;
O++
)
for (var E = 0; E + O < o; E++)
S(E, O, E + 1 / 3, O + 1 / 3),
S(E + 1, O, E + 1 / 3, O + 1 / 3),
S(E, O + 1, E + 1 / 3, O + 1 / 3),
E + O + 1 < o && (S(E + 1, O, E + 2 / 3, O + 2 / 3), S(E + 1, O + 1, E + 2 / 3, O + 2 / 3), S(E, O + 1, E + 2 / 3, O + 2 / 3));
}
Rn.a._ComputeSides(n, b, g, _, v, e.frontUVs, e.backUVs);
var M = new Rn.a();
return (M.indices = g), (M.positions = b), (M.normals = _), (M.uvs = v), M;
}),
(Ee.a.CreateIcoSphere = function (e, t, n) {
return fl.CreateIcoSphere(e, t, n);
});
var fl = (function () {
function e() {}
return (
(e.CreateIcoSphere = function (e, t, n) {
void 0 === n && (n = null);
var i = new Ee.a(e, n);
return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateIcoSphere(t).applyToMesh(i, t.updatable), i;
}),
e
);
})();
Ee.a.CreateDecal = function (e, t, n, i, r, o) {
var a = { position: n, normal: i, size: r, angle: o };
return gl.CreateDecal(e, t, a);
};
var ml,
gl = (function () {
function e() {}
return (
(e.CreateDecal = function (e, t, n) {
var i = t.getIndices(),
r = t.getVerticesData(wn.b.PositionKind),
o = t.getVerticesData(wn.b.NormalKind),
s = n.position || a.e.Zero(),
c = n.normal || a.e.Up(),
l = n.size || a.e.One(),
u = n.angle || 0;
if (!c) {
var h = new a.e(0, 0, 1),
d = t.getScene().activeCamera,
p = a.e.TransformCoordinates(h, d.getWorldMatrix());
c = d.globalPosition.subtract(p);
}
var f = -Math.atan2(c.z, c.x) - Math.PI / 2,
m = Math.sqrt(c.x * c.x + c.z * c.z),
g = Math.atan2(c.y, m),
b = a.a.RotationYawPitchRoll(f, g, u).multiply(a.a.Translation(s.x, s.y, s.z)),
_ = a.a.Invert(b),
v = t.getWorldMatrix().multiply(_),
y = new Rn.a();
(y.indices = []), (y.positions = []), (y.normals = []), (y.uvs = []);
for (
var C = 0,
P = function (e) {
var t = new Ao();
if (!i || !r || !o) return t;
var n = i[e];
return (
(t.position = new a.e(r[3 * n], r[3 * n + 1], r[3 * n + 2])),
(t.position = a.e.TransformCoordinates(t.position, v)),
(t.normal = new a.e(o[3 * n], o[3 * n + 1], o[3 * n + 2])),
(t.normal = a.e.TransformNormal(t.normal, v)),
t
);
},
x = function (e, t) {
if (0 === e.length) return e;
for (
var n = 0.5 * Math.abs(a.e.Dot(l, t)),
i = function (e, i) {
var r = a.e.GetClipFactor(e.position, i.position, t, n);
return new Ao(a.e.Lerp(e.position, i.position, r), a.e.Lerp(e.normal, i.normal, r));
},
r = new Array(),
o = 0;
o < e.length;
o += 3
) {
var s,
c,
u,
h = null,
d = null,
p = null,
f = null;
switch (((s = a.e.Dot(e[o].position, t) - n > 0) ? 1 : 0) + ((c = a.e.Dot(e[o + 1].position, t) - n > 0) ? 1 : 0) + ((u = a.e.Dot(e[o + 2].position, t) - n > 0) ? 1 : 0)) {
case 0:
r.push(e[o]), r.push(e[o + 1]), r.push(e[o + 2]);
break;
case 1:
if ((s && ((h = e[o + 1]), (d = e[o + 2]), (p = i(e[o], h)), (f = i(e[o], d))), c)) {
(h = e[o]), (d = e[o + 2]), (p = i(e[o + 1], h)), (f = i(e[o + 1], d)), r.push(p), r.push(d.clone()), r.push(h.clone()), r.push(d.clone()), r.push(p.clone()), r.push(f);
break;
}
u && ((h = e[o]), (d = e[o + 1]), (p = i(e[o + 2], h)), (f = i(e[o + 2], d))),
h && d && p && f && (r.push(h.clone()), r.push(d.clone()), r.push(p), r.push(f), r.push(p.clone()), r.push(d.clone()));
break;
case 2:
s || ((d = i((h = e[o].clone()), e[o + 1])), (p = i(h, e[o + 2])), r.push(h), r.push(d), r.push(p)),
c || ((d = i((h = e[o + 1].clone()), e[o + 2])), (p = i(h, e[o])), r.push(h), r.push(d), r.push(p)),
u || ((d = i((h = e[o + 2].clone()), e[o])), (p = i(h, e[o + 1])), r.push(h), r.push(d), r.push(p));
}
}
return r;
},
T = 0;
T < i.length;
T += 3
) {
var S = new Array();
if (
(S.push(P(T)),
S.push(P(T + 1)),
S.push(P(T + 2)),
(S = x(S, new a.e(1, 0, 0))),
(S = x(S, new a.e(-1, 0, 0))),
(S = x(S, new a.e(0, 1, 0))),
(S = x(S, new a.e(0, -1, 0))),
(S = x(S, new a.e(0, 0, 1))),
0 !== (S = x(S, new a.e(0, 0, -1))).length)
)
for (var O = 0; O < S.length; O++) {
var E = S[O];
y.indices.push(C), E.position.toArray(y.positions, 3 * C), E.normal.toArray(y.normals, 3 * C), y.uvs.push(0.5 + E.position.x / l.x), y.uvs.push(0.5 + E.position.y / l.y), C++;
}
}
var M = new Ee.a(e, t.getScene());
return y.applyToMesh(M), (M.position = s.clone()), (M.rotation = new a.e(g, f, u)), M;
}),
e
);
})(),
bl = (function () {
function e() {}
return (
(e.CreateBox = function (e, t, n) {
return void 0 === n && (n = null), fi.a.CreateBox(e, t, n);
}),
(e.CreateTiledBox = function (e, t, n) {
return void 0 === n && (n = null), rl.CreateTiledBox(e, t, n);
}),
(e.CreateSphere = function (e, t, n) {
return void 0 === n && (n = null), mi.CreateSphere(e, t, n);
}),
(e.CreateDisc = function (e, t, n) {
return void 0 === n && (n = null), il.CreateDisc(e, t, n);
}),
(e.CreateIcoSphere = function (e, t, n) {
return void 0 === n && (n = null), fl.CreateIcoSphere(e, t, n);
}),
(e.CreateRibbon = function (e, t, n) {
return void 0 === n && (n = null), wa.CreateRibbon(e, t, n);
}),
(e.CreateCylinder = function (e, t, n) {
return void 0 === n && (n = null), jn.CreateCylinder(e, t, n);
}),
(e.CreateTorus = function (e, t, n) {
return void 0 === n && (n = null), kn.CreateTorus(e, t, n);
}),
(e.CreateTorusKnot = function (e, t, n) {
return void 0 === n && (n = null), ol.CreateTorusKnot(e, t, n);
}),
(e.CreateLineSystem = function (e, t, n) {
return Ti.CreateLineSystem(e, t, n);
}),
(e.CreateLines = function (e, t, n) {
return void 0 === n && (n = null), Ti.CreateLines(e, t, n);
}),
(e.CreateDashedLines = function (e, t, n) {
return void 0 === n && (n = null), Ti.CreateDashedLines(e, t, n);
}),
(e.ExtrudeShape = function (e, t, n) {
return void 0 === n && (n = null), La.ExtrudeShape(e, t, n);
}),
(e.ExtrudeShapeCustom = function (e, t, n) {
return void 0 === n && (n = null), La.ExtrudeShapeCustom(e, t, n);
}),
(e.CreateLathe = function (e, t, n) {
return void 0 === n && (n = null), hl.CreateLathe(e, t, n);
}),
(e.CreateTiledPlane = function (e, t, n) {
return void 0 === n && (n = null), dl.CreateTiledPlane(e, t, n);
}),
(e.CreatePlane = function (e, t, n) {
return void 0 === n && (n = null), Le.a.CreatePlane(e, t, n);
}),
(e.CreateGround = function (e, t, n) {
return void 0 === n && (n = null), Nn.CreateGround(e, t, n);
}),
(e.CreateTiledGround = function (e, t, n) {
return void 0 === n && (n = null), Nn.CreateTiledGround(e, t, n);
}),
(e.CreateGroundFromHeightMap = function (e, t, n, i) {
return void 0 === i && (i = null), Nn.CreateGroundFromHeightMap(e, t, n, i);
}),
(e.CreatePolygon = function (e, t, n, i) {
return void 0 === n && (n = null), void 0 === i && (i = earcut), ul.CreatePolygon(e, t, n, i);
}),
(e.ExtrudePolygon = function (e, t, n, i) {
return void 0 === n && (n = null), void 0 === i && (i = earcut), ul.ExtrudePolygon(e, t, n, i);
}),
(e.CreateTube = function (e, t, n) {
return void 0 === n && (n = null), pl.CreateTube(e, t, n);
}),
(e.CreatePolyhedron = function (e, t, n) {
return void 0 === n && (n = null), fr.CreatePolyhedron(e, t, n);
}),
(e.CreateDecal = function (e, t, n) {
return gl.CreateDecal(e, t, n);
}),
e
);
})(),
_l = function (e, t, n) {
(this.quality = e), (this.distance = t), (this.optimizeMesh = n);
},
vl = (function () {
function e() {
(this.running = !1), (this._simplificationArray = []);
}
return (
(e.prototype.addTask = function (e) {
this._simplificationArray.push(e);
}),
(e.prototype.executeNext = function () {
var e = this._simplificationArray.pop();
e ? ((this.running = !0), this.runSimplification(e)) : (this.running = !1);
}),
(e.prototype.runSimplification = function (e) {
var t = this;
if (e.parallelProcessing)
e.settings.forEach(function (n) {
t.getSimplifier(e).simplify(n, function (i) {
e.mesh.addLODLevel(n.distance, i), (i.isVisible = !0), n.quality === e.settings[e.settings.length - 1].quality && e.successCallback && e.successCallback(), t.executeNext();
});
});
else {
var n = this.getSimplifier(e);
$e.a.Run(
e.settings.length,
function (t) {
var i, r;
(i = e.settings[t.index]),
(r = function () {
t.executeNext();
}),
n.simplify(i, function (t) {
e.mesh.addLODLevel(i.distance, t), (t.isVisible = !0), r();
});
},
function () {
e.successCallback && e.successCallback(), t.executeNext();
}
);
}
}),
(e.prototype.getSimplifier = function (e) {
switch (e.simplificationType) {
case ml.QUADRATIC:
default:
return new Tl(e.mesh);
}
}),
e
);
})();
!(function (e) {
e[(e.QUADRATIC = 0)] = "QUADRATIC";
})(ml || (ml = {}));
var yl = function (e) {
(this.vertices = e), (this.error = new Array(4)), (this.deleted = !1), (this.isDirty = !1), (this.deletePending = !1), (this.borderFactor = 0);
},
Cl = (function () {
function e(e, t) {
(this.position = e), (this.id = t), (this.isBorder = !0), (this.q = new Pl()), (this.triangleCount = 0), (this.triangleStart = 0), (this.originalOffsets = []);
}
return (
(e.prototype.updatePosition = function (e) {
this.position.copyFrom(e);
}),
e
);
})(),
Pl = (function () {
function e(e) {
this.data = new Array(10);
for (var t = 0; t < 10; ++t) e && e[t] ? (this.data[t] = e[t]) : (this.data[t] = 0);
}
return (
(e.prototype.det = function (e, t, n, i, r, o, a, s, c) {
return (
this.data[e] * this.data[r] * this.data[c] +
this.data[n] * this.data[i] * this.data[s] +
this.data[t] * this.data[o] * this.data[a] -
this.data[n] * this.data[r] * this.data[a] -
this.data[e] * this.data[o] * this.data[s] -
this.data[t] * this.data[i] * this.data[c]
);
}),
(e.prototype.addInPlace = function (e) {
for (var t = 0; t < 10; ++t) this.data[t] += e.data[t];
}),
(e.prototype.addArrayInPlace = function (e) {
for (var t = 0; t < 10; ++t) this.data[t] += e[t];
}),
(e.prototype.add = function (t) {
for (var n = new e(), i = 0; i < 10; ++i) n.data[i] = this.data[i] + t.data[i];
return n;
}),
(e.FromData = function (t, n, i, r) {
return new e(e.DataFromNumbers(t, n, i, r));
}),
(e.DataFromNumbers = function (e, t, n, i) {
return [e * e, e * t, e * n, e * i, t * t, t * n, t * i, n * n, n * i, i * i];
}),
e
);
})(),
xl = function (e, t) {
(this.vertexId = e), (this.triangleId = t);
},
Tl = (function () {
function e(e) {
(this._mesh = e), (this.syncIterations = 5e3), (this.aggressiveness = 7), (this.decimationIterations = 100), (this.boundingBoxEpsilon = j.a);
}
return (
(e.prototype.simplify = function (e, t) {
var n = this;
this.initDecimatedMesh(),
$e.a.Run(
this._mesh.subMeshes.length,
function (t) {
n.initWithMesh(
t.index,
function () {
n.runDecimation(e, t.index, function () {
t.executeNext();
});
},
e.optimizeMesh
);
},
function () {
setTimeout(function () {
t(n._reconstructedMesh);
}, 0);
}
);
}),
(e.prototype.runDecimation = function (e, t, n) {
var i = this,
r = ~~(this.triangles.length * e.quality),
o = 0,
s = this.triangles.length;
$e.a.Run(
this.decimationIterations,
function (e) {
var t, n;
s - o <= r
? e.breakLoop()
: ((t = e.index),
(n = function () {
e.executeNext();
}),
setTimeout(function () {
t % 5 == 0 && i.updateMesh(0 === t);
for (var e = 0; e < i.triangles.length; ++e) i.triangles[e].isDirty = !1;
var c = 1e-9 * Math.pow(t + 3, i.aggressiveness);
$e.a.SyncAsyncForLoop(
i.triangles.length,
i.syncIterations,
function (e) {
var t = ~~((i.triangles.length / 2 + e) % i.triangles.length),
n = i.triangles[t];
if (n && !(n.error[3] > c || n.deleted || n.isDirty))
for (var r = 0; r < 3; ++r)
if (n.error[r] < c) {
var s = [],
l = [],
u = n.vertices[r],
h = n.vertices[(r + 1) % 3];
if (u.isBorder || h.isBorder) continue;
var d = a.e.Zero();
i.calculateError(u, h, d);
var p = new Array();
if (i.isFlipped(u, h, d, s, p)) continue;
if (i.isFlipped(h, u, d, l, p)) continue;
if (s.indexOf(!0) < 0 || l.indexOf(!0) < 0) continue;
var f = new Array();
if (
(p.forEach(function (e) {
-1 === f.indexOf(e) && ((e.deletePending = !0), f.push(e));
}),
f.length % 2 != 0)
)
continue;
(u.q = h.q.add(u.q)), u.updatePosition(d);
var m = i.references.length;
(o = i.updateTriangles(u, u, s, o)), (o = i.updateTriangles(u, h, l, o));
var g = i.references.length - m;
if (g <= u.triangleCount) {
if (g) for (var b = 0; b < g; b++) i.references[u.triangleStart + b] = i.references[m + b];
} else u.triangleStart = m;
u.triangleCount = g;
break;
}
},
n,
function () {
return s - o <= r;
}
);
}, 0));
},
function () {
setTimeout(function () {
i.reconstructMesh(t), n();
}, 0);
}
);
}),
(e.prototype.initWithMesh = function (e, t, n) {
var i = this;
(this.vertices = []), (this.triangles = []);
var r = this._mesh.getVerticesData(wn.b.PositionKind),
o = this._mesh.getIndices(),
s = this._mesh.subMeshes[e],
c = [],
l = s.verticesCount;
$e.a.SyncAsyncForLoop(
l,
(this.syncIterations / 4) >> 0,
function (e) {
if (r) {
var t = e + s.verticesStart,
o = a.e.FromArray(r, 3 * t),
l =
(function (e) {
if (n) for (var t = 0; t < i.vertices.length; ++t) if (i.vertices[t].position.equals(e)) return i.vertices[t];
return null;
})(o) || new Cl(o, i.vertices.length);
l.originalOffsets.push(t), l.id === i.vertices.length && i.vertices.push(l), c.push(l.id);
}
},
function () {
$e.a.SyncAsyncForLoop(
s.indexCount / 3,
i.syncIterations,
function (e) {
if (o) {
var t = 3 * (s.indexStart / 3 + e),
n = o[t + 0],
r = o[t + 1],
a = o[t + 2],
l = i.vertices[c[n - s.verticesStart]],
u = i.vertices[c[r - s.verticesStart]],
h = i.vertices[c[a - s.verticesStart]],
d = new yl([l, u, h]);
(d.originalOffset = t), i.triangles.push(d);
}
},
function () {
i.init(t);
}
);
}
);
}),
(e.prototype.init = function (e) {
var t = this;
$e.a.SyncAsyncForLoop(
this.triangles.length,
this.syncIterations,
function (e) {
var n = t.triangles[e];
n.normal = a.e.Cross(n.vertices[1].position.subtract(n.vertices[0].position), n.vertices[2].position.subtract(n.vertices[0].position)).normalize();
for (var i = 0; i < 3; i++) n.vertices[i].q.addArrayInPlace(Pl.DataFromNumbers(n.normal.x, n.normal.y, n.normal.z, -a.e.Dot(n.normal, n.vertices[0].position)));
},
function () {
$e.a.SyncAsyncForLoop(
t.triangles.length,
t.syncIterations,
function (e) {
for (var n = t.triangles[e], i = 0; i < 3; ++i) n.error[i] = t.calculateError(n.vertices[i], n.vertices[(i + 1) % 3]);
n.error[3] = Math.min(n.error[0], n.error[1], n.error[2]);
},
function () {
e();
}
);
}
);
}),
(e.prototype.reconstructMesh = function (e) {
var t,
n,
i,
r = [];
for (t = 0; t < this.vertices.length; ++t) this.vertices[t].triangleCount = 0;
for (t = 0; t < this.triangles.length; ++t)
if (!this.triangles[t].deleted) {
for (n = this.triangles[t], i = 0; i < 3; ++i) n.vertices[i].triangleCount = 1;
r.push(n);
}
var o = this._reconstructedMesh.getVerticesData(wn.b.PositionKind) || [],
a = this._reconstructedMesh.getVerticesData(wn.b.NormalKind) || [],
s = this._reconstructedMesh.getVerticesData(wn.b.UVKind) || [],
c = this._reconstructedMesh.getVerticesData(wn.b.ColorKind) || [],
l = this._mesh.getVerticesData(wn.b.NormalKind),
u = this._mesh.getVerticesData(wn.b.UVKind),
h = this._mesh.getVerticesData(wn.b.ColorKind),
d = 0;
for (t = 0; t < this.vertices.length; ++t) {
var p = this.vertices[t];
(p.id = d),
p.triangleCount &&
p.originalOffsets.forEach(function (e) {
l &&
(o.push(p.position.x),
o.push(p.position.y),
o.push(p.position.z),
a.push(l[3 * e]),
a.push(l[3 * e + 1]),
a.push(l[3 * e + 2]),
u && u.length && (s.push(u[2 * e]), s.push(u[2 * e + 1])),
h && h.length && (c.push(h[4 * e]), c.push(h[4 * e + 1]), c.push(h[4 * e + 2]), c.push(h[4 * e + 3])),
++d);
});
}
var f = this._reconstructedMesh.getTotalIndices(),
m = this._reconstructedMesh.getTotalVertices(),
g = this._reconstructedMesh.subMeshes;
this._reconstructedMesh.subMeshes = [];
var b = this._reconstructedMesh.getIndices(),
_ = this._mesh.getIndices();
for (t = 0; t < r.length; ++t)
(n = r[t]),
[0, 1, 2].forEach(function (e) {
var t = _[n.originalOffset + e],
i = n.vertices[e].originalOffsets.indexOf(t);
i < 0 && (i = 0), b.push(n.vertices[e].id + i + m);
});
this._reconstructedMesh.setIndices(b),
this._reconstructedMesh.setVerticesData(wn.b.PositionKind, o),
this._reconstructedMesh.setVerticesData(wn.b.NormalKind, a),
s.length > 0 && this._reconstructedMesh.setVerticesData(wn.b.UVKind, s),
c.length > 0 && this._reconstructedMesh.setVerticesData(wn.b.ColorKind, c);
var v = this._mesh.subMeshes[e];
e > 0 &&
((this._reconstructedMesh.subMeshes = []),
g.forEach(function (e) {
Kc.b.AddToMesh(e.materialIndex, e.verticesStart, e.verticesCount, e.indexStart, e.indexCount, e.getMesh());
}),
Kc.b.AddToMesh(v.materialIndex, m, d, f, 3 * r.length, this._reconstructedMesh));
}),
(e.prototype.initDecimatedMesh = function () {
(this._reconstructedMesh = new Ee.a(this._mesh.name + "Decimated", this._mesh.getScene())),
(this._reconstructedMesh.material = this._mesh.material),
(this._reconstructedMesh.parent = this._mesh.parent),
(this._reconstructedMesh.isVisible = !1),
(this._reconstructedMesh.renderingGroupId = this._mesh.renderingGroupId);
}),
(e.prototype.isFlipped = function (e, t, n, i, r) {
for (var o = 0; o < e.triangleCount; ++o) {
var s = this.triangles[this.references[e.triangleStart + o].triangleId];
if (!s.deleted) {
var c = this.references[e.triangleStart + o].vertexId,
l = s.vertices[(c + 1) % 3],
u = s.vertices[(c + 2) % 3];
if (l !== t && u !== t) {
var h = l.position.subtract(n);
h = h.normalize();
var d = u.position.subtract(n);
if (((d = d.normalize()), Math.abs(a.e.Dot(h, d)) > 0.999)) return !0;
var p = a.e.Cross(h, d).normalize();
if (((i[o] = !1), a.e.Dot(p, s.normal) < 0.2)) return !0;
} else (i[o] = !0), r.push(s);
}
}
return !1;
}),
(e.prototype.updateTriangles = function (e, t, n, i) {
for (var r = i, o = 0; o < t.triangleCount; ++o) {
var a = this.references[t.triangleStart + o],
s = this.triangles[a.triangleId];
s.deleted ||
(n[o] && s.deletePending
? ((s.deleted = !0), r++)
: ((s.vertices[a.vertexId] = e),
(s.isDirty = !0),
(s.error[0] = this.calculateError(s.vertices[0], s.vertices[1]) + s.borderFactor / 2),
(s.error[1] = this.calculateError(s.vertices[1], s.vertices[2]) + s.borderFactor / 2),
(s.error[2] = this.calculateError(s.vertices[2], s.vertices[0]) + s.borderFactor / 2),
(s.error[3] = Math.min(s.error[0], s.error[1], s.error[2])),
this.references.push(a)));
}
return r;
}),
(e.prototype.identifyBorder = function () {
for (var e = 0; e < this.vertices.length; ++e) {
var t,
n = [],
i = [],
r = this.vertices[e];
for (t = 0; t < r.triangleCount; ++t)
for (var o = this.triangles[this.references[r.triangleStart + t].triangleId], a = 0; a < 3; a++) {
for (var s = 0, c = o.vertices[a]; s < n.length && i[s] !== c.id; ) ++s;
s === n.length ? (n.push(1), i.push(c.id)) : n[s]++;
}
for (t = 0; t < n.length; ++t) 1 === n[t] ? (this.vertices[i[t]].isBorder = !0) : (this.vertices[i[t]].isBorder = !1);
}
}),
(e.prototype.updateMesh = function (e) {
var t, n, i, r;
if ((void 0 === e && (e = !1), !e)) {
var o = [];
for (t = 0; t < this.triangles.length; ++t) this.triangles[t].deleted || o.push(this.triangles[t]);
this.triangles = o;
}
for (t = 0; t < this.vertices.length; ++t) (this.vertices[t].triangleCount = 0), (this.vertices[t].triangleStart = 0);
for (t = 0; t < this.triangles.length; ++t) for (n = this.triangles[t], i = 0; i < 3; ++i) (r = n.vertices[i]).triangleCount++;
var a = 0;
for (t = 0; t < this.vertices.length; ++t) (this.vertices[t].triangleStart = a), (a += this.vertices[t].triangleCount), (this.vertices[t].triangleCount = 0);
var s = new Array(3 * this.triangles.length);
for (t = 0; t < this.triangles.length; ++t) for (n = this.triangles[t], i = 0; i < 3; ++i) (s[(r = n.vertices[i]).triangleStart + r.triangleCount] = new xl(i, t)), r.triangleCount++;
(this.references = s), e && this.identifyBorder();
}),
(e.prototype.vertexError = function (e, t) {
var n = t.x,
i = t.y,
r = t.z;
return e.data[0] * n * n + 2 * e.data[1] * n * i + 2 * e.data[2] * n * r + 2 * e.data[3] * n + e.data[4] * i * i + 2 * e.data[5] * i * r + 2 * e.data[6] * i + e.data[7] * r * r + 2 * e.data[8] * r + e.data[9];
}),
(e.prototype.calculateError = function (e, t, n) {
var i = e.q.add(t.q),
r = e.isBorder && t.isBorder,
o = 0,
s = i.det(0, 1, 2, 1, 4, 5, 2, 5, 7);
if (0 === s || r) {
var c = e.position.add(t.position).divide(new a.e(2, 2, 2)),
l = this.vertexError(i, e.position),
u = this.vertexError(i, t.position),
h = this.vertexError(i, c);
(o = Math.min(l, u, h)) === l ? n && n.copyFrom(e.position) : o === u ? n && n.copyFrom(t.position) : n && n.copyFrom(c);
} else
n || (n = a.e.Zero()), (n.x = (-1 / s) * i.det(1, 2, 3, 4, 5, 6, 5, 7, 8)), (n.y = (1 / s) * i.det(0, 2, 3, 1, 5, 6, 2, 7, 8)), (n.z = (-1 / s) * i.det(0, 1, 3, 1, 4, 6, 2, 5, 8)), (o = this.vertexError(i, n));
return o;
}),
e
);
})();
Object.defineProperty(ge.a.prototype, "simplificationQueue", {
get: function () {
if (!this._simplificationQueue) {
this._simplificationQueue = new vl();
var e = this._getComponent(me.a.NAME_SIMPLIFICATIONQUEUE);
e || ((e = new Sl(this)), this._addComponent(e));
}
return this._simplificationQueue;
},
set: function (e) {
this._simplificationQueue = e;
},
enumerable: !0,
configurable: !0,
}),
(Ee.a.prototype.simplify = function (e, t, n, i) {
return void 0 === t && (t = !0), void 0 === n && (n = ml.QUADRATIC), this.getScene().simplificationQueue.addTask({ settings: e, parallelProcessing: t, mesh: this, simplificationType: n, successCallback: i }), this;
});
var Sl = (function () {
function e(e) {
(this.name = me.a.NAME_SIMPLIFICATIONQUEUE), (this.scene = e);
}
return (
(e.prototype.register = function () {
this.scene._beforeCameraUpdateStage.registerStep(me.a.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE, this, this._beforeCameraUpdate);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {}),
(e.prototype._beforeCameraUpdate = function () {
this.scene._simplificationQueue && !this.scene._simplificationQueue.running && this.scene._simplificationQueue.executeNext();
}),
e
);
})(),
Ol = n(191),
El = n(126),
Ml = n(159),
Al = (function () {
function e(e) {
void 0 === e && (e = Recast),
(this.bjsRECAST = {}),
(this.name = "RecastJSPlugin"),
"function" == typeof e ? e(this.bjsRECAST) : (this.bjsRECAST = e),
this.isSupported() || g.a.Error("RecastJS is not available. Please make sure you included the js file.");
}
return (
(e.prototype.createNavMesh = function (e, t) {
var n,
i,
r,
o = new this.bjsRECAST.rcConfig();
(o.cs = t.cs),
(o.ch = t.ch),
(o.borderSize = 0),
(o.tileSize = 0),
(o.walkableSlopeAngle = t.walkableSlopeAngle),
(o.walkableHeight = t.walkableHeight),
(o.walkableClimb = t.walkableClimb),
(o.walkableRadius = t.walkableRadius),
(o.maxEdgeLen = t.maxEdgeLen),
(o.maxSimplificationError = t.maxSimplificationError),
(o.minRegionArea = t.minRegionArea),
(o.mergeRegionArea = t.mergeRegionArea),
(o.maxVertsPerPoly = t.maxVertsPerPoly),
(o.detailSampleDist = t.detailSampleDist),
(o.detailSampleMaxError = t.detailSampleMaxError),
(this.navMesh = new this.bjsRECAST.NavMesh());
var s = [],
c = [],
l = 0;
for (n = 0; n < e.length; n++)
if (e[n]) {
var u = e[n],
h = u.getIndices();
if (!h) continue;
var d = u.getVerticesData(wn.b.PositionKind, !1, !1);
if (!d) continue;
var p = u.computeWorldMatrix(!1);
for (i = 0; i < h.length; i++) s.push(h[i] + l);
var f = a.e.Zero(),
m = a.e.Zero();
for (r = 0; r < d.length; r += 3) a.e.FromArrayToRef(d, r, m), a.e.TransformCoordinatesToRef(m, p, f), c.push(f.x, f.y, f.z);
l += d.length / 3;
}
this.navMesh.build(c, l, s, s.length, o);
}),
(e.prototype.createDebugNavMesh = function (e) {
var t,
n,
i = this.navMesh.getDebugNavMesh(),
r = i.getTriangleCount(),
o = [],
a = [];
for (t = 0; t < 3 * r; t++) o.push(t);
for (t = 0; t < r; t++)
for (n = 0; n < 3; n++) {
var s = i.getTriangle(t).getPoint(n);
a.push(s.x, s.y, s.z);
}
var c = new Ee.a("NavMeshDebug", e),
l = new Rn.a();
return (l.indices = o), (l.positions = a), l.applyToMesh(c, !1), c;
}),
(e.prototype.getClosestPoint = function (e) {
var t = new this.bjsRECAST.Vec3(e.x, e.y, e.z),
n = this.navMesh.getClosestPoint(t);
return new a.e(n.x, n.y, n.z);
}),
(e.prototype.getRandomPointAround = function (e, t) {
var n = new this.bjsRECAST.Vec3(e.x, e.y, e.z),
i = this.navMesh.getRandomPointAround(n, t);
return new a.e(i.x, i.y, i.z);
}),
(e.prototype.moveAlong = function (e, t) {
var n = new this.bjsRECAST.Vec3(e.x, e.y, e.z),
i = new this.bjsRECAST.Vec3(t.x, t.y, t.z),
r = this.navMesh.moveAlong(n, i);
return new a.e(r.x, r.y, r.z);
}),
(e.prototype.computePath = function (e, t) {
var n,
i = new this.bjsRECAST.Vec3(e.x, e.y, e.z),
r = new this.bjsRECAST.Vec3(t.x, t.y, t.z),
o = this.navMesh.computePath(i, r),
s = o.getPointCount(),
c = [];
for (n = 0; n < s; n++) {
var l = o.getPoint(n);
c.push(new a.e(l.x, l.y, l.z));
}
return c;
}),
(e.prototype.createCrowd = function (e, t, n) {
return new Il(this, e, t, n);
}),
(e.prototype.setDefaultQueryExtent = function (e) {
var t = new this.bjsRECAST.Vec3(e.x, e.y, e.z);
this.navMesh.setDefaultQueryExtent(t);
}),
(e.prototype.getDefaultQueryExtent = function () {
var e = this.navMesh.getDefaultQueryExtent();
return new a.e(e.x, e.y, e.z);
}),
(e.prototype.dispose = function () {}),
(e.prototype.isSupported = function () {
return void 0 !== this.bjsRECAST;
}),
e
);
})(),
Il = (function () {
function e(e, t, n, i) {
var r = this;
(this.recastCrowd = {}),
(this.transforms = new Array()),
(this.agents = new Array()),
(this._onBeforeAnimationsObserver = null),
(this.bjsRECASTPlugin = e),
(this.recastCrowd = new this.bjsRECASTPlugin.bjsRECAST.Crowd(t, n, this.bjsRECASTPlugin.navMesh.getNavMesh())),
(this._scene = i),
(this._onBeforeAnimationsObserver = i.onBeforeAnimationsObservable.add(function () {
r.update(0.001 * i.getEngine().getDeltaTime());
}));
}
return (
(e.prototype.addAgent = function (e, t, n) {
var i = new this.bjsRECASTPlugin.bjsRECAST.dtCrowdAgentParams();
(i.radius = t.radius),
(i.height = t.height),
(i.maxAcceleration = t.maxAcceleration),
(i.maxSpeed = t.maxSpeed),
(i.collisionQueryRange = t.collisionQueryRange),
(i.pathOptimizationRange = t.pathOptimizationRange),
(i.separationWeight = t.separationWeight),
(i.updateFlags = 7),
(i.obstacleAvoidanceType = 0),
(i.queryFilterType = 0),
(i.userData = 0);
var r = this.recastCrowd.addAgent(new this.bjsRECASTPlugin.bjsRECAST.Vec3(e.x, e.y, e.z), i);
return this.transforms.push(n), this.agents.push(r), r;
}),
(e.prototype.getAgentPosition = function (e) {
var t = this.recastCrowd.getAgentPosition(e);
return new a.e(t.x, t.y, t.z);
}),
(e.prototype.getAgentVelocity = function (e) {
var t = this.recastCrowd.getAgentVelocity(e);
return new a.e(t.x, t.y, t.z);
}),
(e.prototype.agentGoto = function (e, t) {
this.recastCrowd.agentGoto(e, new this.bjsRECASTPlugin.bjsRECAST.Vec3(t.x, t.y, t.z));
}),
(e.prototype.agentTeleport = function (e, t) {
this.recastCrowd.agentTeleport(e, new this.bjsRECASTPlugin.bjsRECAST.Vec3(t.x, t.y, t.z));
}),
(e.prototype.updateAgentParameters = function (e, t) {
var n = this.recastCrowd.getAgentParameters(e);
void 0 !== t.radius && (n.radius = t.radius),
void 0 !== t.height && (n.height = t.height),
void 0 !== t.maxAcceleration && (n.maxAcceleration = t.maxAcceleration),
void 0 !== t.maxSpeed && (n.maxSpeed = t.maxSpeed),
void 0 !== t.collisionQueryRange && (n.collisionQueryRange = t.collisionQueryRange),
void 0 !== t.pathOptimizationRange && (n.pathOptimizationRange = t.pathOptimizationRange),
void 0 !== t.separationWeight && (n.separationWeight = t.separationWeight),
this.recastCrowd.setAgentParameters(e, n);
}),
(e.prototype.removeAgent = function (e) {
this.recastCrowd.removeAgent(e);
var t = this.agents.indexOf(e);
t > -1 && (this.agents.splice(t, 1), this.transforms.splice(t, 1));
}),
(e.prototype.getAgents = function () {
return this.agents;
}),
(e.prototype.update = function (e) {
this.recastCrowd.update(e);
for (var t = 0; t < this.agents.length; t++) this.transforms[t].position = this.getAgentPosition(this.agents[t]);
}),
(e.prototype.setDefaultQueryExtent = function (e) {
var t = new this.bjsRECASTPlugin.bjsRECAST.Vec3(e.x, e.y, e.z);
this.recastCrowd.setDefaultQueryExtent(t);
}),
(e.prototype.getDefaultQueryExtent = function () {
var e = this.recastCrowd.getDefaultQueryExtent();
return new a.e(e.x, e.y, e.z);
}),
(e.prototype.dispose = function () {
this.recastCrowd.destroy(), this._scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver), (this._onBeforeAnimationsObserver = null);
}),
e
);
})();
ue.a.OfflineProviderFactory = function (e, t, n) {
return void 0 === n && (n = !1), new Rl(e, t, n);
};
var Dl,
Rl = (function () {
function e(t, n, i) {
var r = this;
void 0 === i && (i = !1),
(this._idbFactory = "undefined" != typeof window ? window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB : indexedDB),
(this._callbackManifestChecked = n),
(this._currentSceneUrl = e._ReturnFullUrlLocation(t)),
(this._db = null),
(this._enableSceneOffline = !1),
(this._enableTexturesOffline = !1),
(this._manifestVersionFound = 0),
(this._mustUpdateRessources = !1),
(this._hasReachedQuota = !1),
e.IDBStorageEnabled
? i
? ((this._enableSceneOffline = !0),
(this._enableTexturesOffline = !0),
(this._manifestVersionFound = 1),
$e.b.SetImmediate(function () {
r._callbackManifestChecked(!0);
}))
: this._checkManifestFile()
: this._callbackManifestChecked(!0);
}
return (
Object.defineProperty(e.prototype, "enableSceneOffline", {
get: function () {
return this._enableSceneOffline;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "enableTexturesOffline", {
get: function () {
return this._enableTexturesOffline;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._checkManifestFile = function () {
var t = this,
n = function () {
(t._enableSceneOffline = !1), (t._enableTexturesOffline = !1), t._callbackManifestChecked(!1);
},
i = !1,
r = this._currentSceneUrl + ".manifest",
o = new ls.a();
navigator.onLine && ((i = !0), (r = r + (null == r.match(/\?/) ? "?" : "&") + Date.now())),
o.open("GET", r),
o.addEventListener(
"load",
function () {
if (200 === o.status || e._ValidateXHRData(o, 1))
try {
var i = JSON.parse(o.response);
(t._enableSceneOffline = i.enableSceneOffline),
(t._enableTexturesOffline = i.enableTexturesOffline && e.IsUASupportingBlobStorage),
i.version && !isNaN(parseInt(i.version)) && (t._manifestVersionFound = i.version),
t._callbackManifestChecked && t._callbackManifestChecked(!0);
} catch (e) {
n();
}
else n();
},
!1
),
o.addEventListener(
"error",
function () {
if (i) {
i = !1;
var e = t._currentSceneUrl + ".manifest";
o.open("GET", e), o.send();
} else n();
},
!1
);
try {
o.send();
} catch (e) {
g.a.Error("Error on XHR send request."), this._callbackManifestChecked(!1);
}
}),
(e.prototype.open = function (e, t) {
var n = this,
i = function () {
(n._isSupported = !1), t && t();
};
if (this._idbFactory && (this._enableSceneOffline || this._enableTexturesOffline))
if (this._db) e && e();
else {
(this._hasReachedQuota = !1), (this._isSupported = !0);
var r = this._idbFactory.open("babylonjs", 1);
(r.onerror = function () {
i();
}),
(r.onblocked = function () {
g.a.Error("IDB request blocked. Please reload the page."), i();
}),
(r.onsuccess = function () {
(n._db = r.result), e();
}),
(r.onupgradeneeded = function (e) {
if (((n._db = e.target.result), n._db))
try {
n._db.createObjectStore("scenes", { keyPath: "sceneUrl" }), n._db.createObjectStore("versions", { keyPath: "sceneUrl" }), n._db.createObjectStore("textures", { keyPath: "textureUrl" });
} catch (e) {
g.a.Error("Error while creating object stores. Exception: " + e.message), i();
}
});
}
else (this._isSupported = !1), t && t();
}),
(e.prototype.loadImage = function (t, n) {
var i = this,
r = e._ReturnFullUrlLocation(t),
o = function () {
i._hasReachedQuota || null === i._db ? (n.src = t) : i._saveImageIntoDBAsync(r, n);
};
this._mustUpdateRessources ? o() : this._loadImageFromDBAsync(r, n, o);
}),
(e.prototype._loadImageFromDBAsync = function (e, t, n) {
if (this._isSupported && null !== this._db) {
var i,
r = this._db.transaction(["textures"]);
(r.onabort = function () {
t.src = e;
}),
(r.oncomplete = function () {
var r;
if (i) {
var o = window.URL || window.webkitURL;
(r = o.createObjectURL(i.data)),
(t.onerror = function () {
g.a.Error("Error loading image from blob URL: " + r + " switching back to web url: " + e), (t.src = e);
}),
(t.src = r);
} else n();
});
var o = r.objectStore("textures").get(e);
(o.onsuccess = function (e) {
i = e.target.result;
}),
(o.onerror = function () {
g.a.Error("Error loading texture " + e + " from DB."), (t.src = e);
});
} else g.a.Error("Error: IndexedDB not supported by your browser or BabylonJS Database is not open."), (t.src = e);
}),
(e.prototype._saveImageIntoDBAsync = function (t, n) {
var i = this;
if (this._isSupported) {
var r = function () {
var e;
if (o) {
var t = window.URL || window.webkitURL;
try {
e = t.createObjectURL(o);
} catch (n) {
e = t.createObjectURL(o);
}
}
e && (n.src = e);
};
if (e.IsUASupportingBlobStorage) {
var o,
a = new ls.a();
a.open("GET", t),
(a.responseType = "blob"),
a.addEventListener(
"load",
function () {
if (200 === a.status && i._db) {
o = a.response;
var s = i._db.transaction(["textures"], "readwrite");
(s.onabort = function (e) {
try {
var t = (e.srcElement || e.target).error;
t && "QuotaExceededError" === t.name && (i._hasReachedQuota = !0);
} catch (e) {}
r();
}),
(s.oncomplete = function () {
r();
});
var c = { textureUrl: t, data: o };
try {
var l = s.objectStore("textures").put(c);
(l.onsuccess = function () {}),
(l.onerror = function () {
r();
});
} catch (r) {
25 === r.code && ((e.IsUASupportingBlobStorage = !1), (i._enableTexturesOffline = !1)), (n.src = t);
}
} else n.src = t;
},
!1
),
a.addEventListener(
"error",
function () {
g.a.Error("Error in XHR request in BABYLON.Database."), (n.src = t);
},
!1
),
a.send();
} else n.src = t;
} else g.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."), (n.src = t);
}),
(e.prototype._checkVersionFromDB = function (e, t) {
var n = this;
this._loadVersionFromDBAsync(e, t, function () {
n._saveVersionIntoDBAsync(e, t);
});
}),
(e.prototype._loadVersionFromDBAsync = function (e, t, n) {
var i,
r = this;
if (this._isSupported && this._db)
try {
var o = this._db.transaction(["versions"]);
(o.oncomplete = function () {
i ? (r._manifestVersionFound !== i.data ? ((r._mustUpdateRessources = !0), n()) : t(i.data)) : ((r._mustUpdateRessources = !0), n());
}),
(o.onabort = function () {
t(-1);
});
var a = o.objectStore("versions").get(e);
(a.onsuccess = function (e) {
i = e.target.result;
}),
(a.onerror = function () {
g.a.Error("Error loading version for scene " + e + " from DB."), t(-1);
});
} catch (e) {
g.a.Error("Error while accessing 'versions' object store (READ OP). Exception: " + e.message), t(-1);
}
else g.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."), t(-1);
}),
(e.prototype._saveVersionIntoDBAsync = function (e, t) {
var n = this;
if (this._isSupported && !this._hasReachedQuota && this._db)
try {
var i = this._db.transaction(["versions"], "readwrite");
(i.onabort = function (e) {
try {
var i = e.srcElement.error;
i && "QuotaExceededError" === i.name && (n._hasReachedQuota = !0);
} catch (e) {}
t(-1);
}),
(i.oncomplete = function () {
t(n._manifestVersionFound);
});
var r = { sceneUrl: e, data: this._manifestVersionFound },
o = i.objectStore("versions").put(r);
(o.onsuccess = function () {}),
(o.onerror = function () {
g.a.Error("Error in DB add version request in BABYLON.Database.");
});
} catch (e) {
g.a.Error("Error while accessing 'versions' object store (WRITE OP). Exception: " + e.message), t(-1);
}
else t(-1);
}),
(e.prototype.loadFile = function (t, n, i, r, o) {
var a = this,
s = e._ReturnFullUrlLocation(t),
c = function () {
a._saveFileAsync(s, n, i, o, r);
};
this._checkVersionFromDB(s, function (e) {
-1 !== e ? (a._mustUpdateRessources ? a._saveFileAsync(s, n, i, o, r) : a._loadFileAsync(s, n, c)) : r && r();
});
}),
(e.prototype._loadFileAsync = function (e, t, n) {
if (this._isSupported && this._db) {
var i, r;
i = -1 !== e.indexOf(".babylon") ? "scenes" : "textures";
var o = this._db.transaction([i]);
(o.oncomplete = function () {
r ? t(r.data) : n();
}),
(o.onabort = function () {
n();
});
var a = o.objectStore(i).get(e);
(a.onsuccess = function (e) {
r = e.target.result;
}),
(a.onerror = function () {
g.a.Error("Error loading file " + e + " from DB."), n();
});
} else g.a.Error("Error: IndexedDB not supported by your browser or BabylonJS Database is not open."), t();
}),
(e.prototype._saveFileAsync = function (t, n, i, r, o) {
var a = this;
if (this._isSupported) {
var s;
s = -1 !== t.indexOf(".babylon") ? "scenes" : "textures";
var c,
l = new ls.a();
l.open("GET", t + "?" + Date.now()),
r && (l.responseType = "arraybuffer"),
i && (l.onprogress = i),
l.addEventListener(
"load",
function () {
if (200 === l.status || (l.status < 400 && e._ValidateXHRData(l, r ? 6 : 1)))
if (((c = r ? l.response : l.responseText), !a._hasReachedQuota && a._db)) {
var i,
u = a._db.transaction([s], "readwrite");
(u.onabort = function (e) {
try {
var t = e.srcElement.error;
t && "QuotaExceededError" === t.name && (a._hasReachedQuota = !0);
} catch (e) {}
n(c);
}),
(u.oncomplete = function () {
n(c);
}),
(i = "scenes" === s ? { sceneUrl: t, data: c, version: a._manifestVersionFound } : { textureUrl: t, data: c });
try {
var h = u.objectStore(s).put(i);
(h.onsuccess = function () {}),
(h.onerror = function () {
g.a.Error("Error in DB add file request in BABYLON.Database.");
});
} catch (e) {
n(c);
}
} else n(c);
else l.status >= 400 && o ? o(l) : n();
},
!1
),
l.addEventListener(
"error",
function () {
g.a.Error("error on XHR request."), n();
},
!1
),
l.send();
} else g.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."), n();
}),
(e._ValidateXHRData = function (e, t) {
void 0 === t && (t = 7);
try {
if (1 & t) {
if (e.responseText && e.responseText.length > 0) return !0;
if (1 === t) return !1;
}
if (2 & t) {
var n = es.GetTGAHeader(e.response);
if (n.width && n.height && n.width > 0 && n.height > 0) return !0;
if (2 === t) return !1;
}
if (4 & t) {
var i = new Uint8Array(e.response, 0, 3);
return 68 === i[0] && 68 === i[1] && 83 === i[2];
}
} catch (e) {}
return !1;
}),
(e.IsUASupportingBlobStorage = !0),
(e.IDBStorageEnabled = !1),
(e._ParseURL = function (e) {
document.createElement("a").href = e;
var t = e.substring(0, e.lastIndexOf("#")),
n = e.substring(t.lastIndexOf("/") + 1, e.length);
return e.substring(0, e.indexOf(n, 0));
}),
(e._ReturnFullUrlLocation = function (t) {
//return -1 === t.indexOf("http:/") && -1 === t.indexOf("https:/") ? e._ParseURL(window.location.href) + t : t;
}),
e
);
})(),
wl = (function () {
function e() {
(this.direction1 = new a.e(0, 1, 0)), (this.direction2 = new a.e(0, 1, 0)), (this.minEmitBox = new a.e(-0.5, -0.5, -0.5)), (this.maxEmitBox = new a.e(0.5, 0.5, 0.5));
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
var r = z.a.RandomRange(this.direction1.x, this.direction2.x),
o = z.a.RandomRange(this.direction1.y, this.direction2.y),
s = z.a.RandomRange(this.direction1.z, this.direction2.z);
if (i) return (t.x = r), (t.y = o), void (t.z = s);
a.e.TransformNormalFromFloatsToRef(r, o, s, e, t);
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
var r = z.a.RandomRange(this.minEmitBox.x, this.maxEmitBox.x),
o = z.a.RandomRange(this.minEmitBox.y, this.maxEmitBox.y),
s = z.a.RandomRange(this.minEmitBox.z, this.maxEmitBox.z);
if (i) return (t.x = r), (t.y = o), void (t.z = s);
a.e.TransformCoordinatesFromFloatsToRef(r, o, s, e, t);
}),
(e.prototype.clone = function () {
var t = new e();
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2), e.setVector3("minEmitBox", this.minEmitBox), e.setVector3("maxEmitBox", this.maxEmitBox);
}),
(e.prototype.getEffectDefines = function () {
return "#define BOXEMITTER";
}),
(e.prototype.getClassName = function () {
return "BoxParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (
(e.type = this.getClassName()), (e.direction1 = this.direction1.asArray()), (e.direction2 = this.direction2.asArray()), (e.minEmitBox = this.minEmitBox.asArray()), (e.maxEmitBox = this.maxEmitBox.asArray()), e
);
}),
(e.prototype.parse = function (e) {
a.e.FromArrayToRef(e.direction1, 0, this.direction1), a.e.FromArrayToRef(e.direction2, 0, this.direction2), a.e.FromArrayToRef(e.minEmitBox, 0, this.minEmitBox), a.e.FromArrayToRef(e.maxEmitBox, 0, this.maxEmitBox);
}),
e
);
})(),
Ll = (function () {
function e(e, t, n) {
void 0 === e && (e = 1),
void 0 === t && (t = Math.PI),
void 0 === n && (n = 0),
(this.directionRandomizer = n),
(this.radiusRange = 1),
(this.heightRange = 1),
(this.emitFromSpawnPointOnly = !1),
(this.angle = t),
(this.radius = e);
}
return (
Object.defineProperty(e.prototype, "radius", {
get: function () {
return this._radius;
},
set: function (e) {
(this._radius = e), this._buildHeight();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "angle", {
get: function () {
return this._angle;
},
set: function (e) {
(this._angle = e), this._buildHeight();
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._buildHeight = function () {
0 !== this._angle ? (this._height = this._radius / Math.tan(this._angle / 2)) : (this._height = 1);
}),
(e.prototype.startDirectionFunction = function (e, t, n, i) {
if (1 === Math.abs(Math.cos(this._angle))) {
if (i) return (t.x = 0), (t.y = 1), void (t.z = 0);
a.e.TransformNormalFromFloatsToRef(0, 1, 0, e, t);
} else {
var r = n.position.subtract(e.getTranslation()).normalize(),
o = z.a.RandomRange(0, this.directionRandomizer),
s = z.a.RandomRange(0, this.directionRandomizer),
c = z.a.RandomRange(0, this.directionRandomizer);
if (((r.x += o), (r.y += s), (r.z += c), r.normalize(), i)) return void t.copyFrom(r);
a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t);
}
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
var r,
o = z.a.RandomRange(0, 2 * Math.PI);
r = this.emitFromSpawnPointOnly ? 1e-4 : 1 - (r = z.a.RandomRange(0, this.heightRange)) * r;
var s = this._radius - z.a.RandomRange(0, this._radius * this.radiusRange),
c = (s *= r) * Math.sin(o),
l = s * Math.cos(o),
u = r * this._height;
if (i) return (t.x = c), (t.y = u), void (t.z = l);
a.e.TransformCoordinatesFromFloatsToRef(c, u, l, e, t);
}),
(e.prototype.clone = function () {
var t = new e(this._radius, this._angle, this.directionRandomizer);
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setFloat2("radius", this._radius, this.radiusRange), e.setFloat("coneAngle", this._angle), e.setFloat2("height", this._height, this.heightRange), e.setFloat("directionRandomizer", this.directionRandomizer);
}),
(e.prototype.getEffectDefines = function () {
var e = "#define CONEEMITTER";
return this.emitFromSpawnPointOnly && (e += "\n#define CONEEMITTERSPAWNPOINT"), e;
}),
(e.prototype.getClassName = function () {
return "ConeParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (
(e.type = this.getClassName()),
(e.radius = this._radius),
(e.angle = this._angle),
(e.directionRandomizer = this.directionRandomizer),
(e.radiusRange = this.radiusRange),
(e.heightRange = this.heightRange),
(e.emitFromSpawnPointOnly = this.emitFromSpawnPointOnly),
e
);
}),
(e.prototype.parse = function (e) {
(this.radius = e.radius),
(this.angle = e.angle),
(this.directionRandomizer = e.directionRandomizer),
(this.radiusRange = e.radiusRange),
(this.heightRange = e.heightRange),
(this.emitFromSpawnPointOnly = e.emitFromSpawnPointOnly);
}),
e
);
})(),
Fl = (function () {
function e(e, t, n, i) {
void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = 0), (this.radius = e), (this.height = t), (this.radiusRange = n), (this.directionRandomizer = i);
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
var r = n.position.subtract(e.getTranslation()).normalize(),
o = z.a.RandomRange(-this.directionRandomizer / 2, this.directionRandomizer / 2),
s = Math.atan2(r.x, r.z);
(s += z.a.RandomRange(-Math.PI / 2, Math.PI / 2) * this.directionRandomizer),
(r.y = o),
(r.x = Math.sin(s)),
(r.z = Math.cos(s)),
r.normalize(),
i ? t.copyFrom(r) : a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t);
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
var r = z.a.RandomRange(-this.height / 2, this.height / 2),
o = z.a.RandomRange(0, 2 * Math.PI),
s = z.a.RandomRange((1 - this.radiusRange) * (1 - this.radiusRange), 1),
c = Math.sqrt(s) * this.radius,
l = c * Math.cos(o),
u = c * Math.sin(o);
i ? t.copyFromFloats(l, r, u) : a.e.TransformCoordinatesFromFloatsToRef(l, r, u, e, t);
}),
(e.prototype.clone = function () {
var t = new e(this.radius, this.directionRandomizer);
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setFloat("radius", this.radius), e.setFloat("height", this.height), e.setFloat("radiusRange", this.radiusRange), e.setFloat("directionRandomizer", this.directionRandomizer);
}),
(e.prototype.getEffectDefines = function () {
return "#define CYLINDEREMITTER";
}),
(e.prototype.getClassName = function () {
return "CylinderParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (e.type = this.getClassName()), (e.radius = this.radius), (e.height = this.height), (e.radiusRange = this.radiusRange), (e.directionRandomizer = this.directionRandomizer), e;
}),
(e.prototype.parse = function (e) {
(this.radius = e.radius), (this.height = e.height), (this.radiusRange = e.radiusRange), (this.directionRandomizer = e.directionRandomizer);
}),
e
);
})(),
Nl = (function (e) {
function t(t, n, i, r, o) {
void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = 1), void 0 === r && (r = new a.e(0, 1, 0)), void 0 === o && (o = new a.e(0, 1, 0));
var s = e.call(this, t, n, i) || this;
return (s.direction1 = r), (s.direction2 = o), s;
}
return (
Object(h.d)(t, e),
(t.prototype.startDirectionFunction = function (e, t, n) {
var i = z.a.RandomRange(this.direction1.x, this.direction2.x),
r = z.a.RandomRange(this.direction1.y, this.direction2.y),
o = z.a.RandomRange(this.direction1.z, this.direction2.z);
a.e.TransformNormalFromFloatsToRef(i, r, o, e, t);
}),
(t.prototype.clone = function () {
var e = new t(this.radius, this.height, this.radiusRange, this.direction1, this.direction2);
return M.a.DeepCopy(this, e), e;
}),
(t.prototype.applyToShader = function (e) {
e.setFloat("radius", this.radius), e.setFloat("height", this.height), e.setFloat("radiusRange", this.radiusRange), e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2);
}),
(t.prototype.getEffectDefines = function () {
return "#define CYLINDEREMITTER\n#define DIRECTEDCYLINDEREMITTER";
}),
(t.prototype.getClassName = function () {
return "CylinderDirectedParticleEmitter";
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.direction1 = this.direction1.asArray()), (t.direction2 = this.direction2.asArray()), t;
}),
(t.prototype.parse = function (t) {
e.prototype.parse.call(this, t), this.direction1.copyFrom(t.direction1), this.direction2.copyFrom(t.direction2);
}),
t
);
})(Fl),
kl = (function () {
function e(e, t, n) {
void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 0), (this.radius = e), (this.radiusRange = t), (this.directionRandomizer = n);
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
var r = n.position.subtract(e.getTranslation()).normalize(),
o = z.a.RandomRange(0, this.directionRandomizer),
s = z.a.RandomRange(0, this.directionRandomizer),
c = z.a.RandomRange(0, this.directionRandomizer);
(r.x += o), (r.y += s), (r.z += c), r.normalize(), i ? t.copyFrom(r) : a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t);
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
var r = this.radius - z.a.RandomRange(0, this.radius * this.radiusRange),
o = z.a.RandomRange(0, 1),
s = z.a.RandomRange(0, 2 * Math.PI),
c = Math.acos(2 * o - 1),
l = r * Math.cos(s) * Math.sin(c),
u = r * Math.cos(c),
h = r * Math.sin(s) * Math.sin(c);
i ? t.copyFromFloats(l, Math.abs(u), h) : a.e.TransformCoordinatesFromFloatsToRef(l, Math.abs(u), h, e, t);
}),
(e.prototype.clone = function () {
var t = new e(this.radius, this.directionRandomizer);
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setFloat("radius", this.radius), e.setFloat("radiusRange", this.radiusRange), e.setFloat("directionRandomizer", this.directionRandomizer);
}),
(e.prototype.getEffectDefines = function () {
return "#define HEMISPHERICEMITTER";
}),
(e.prototype.getClassName = function () {
return "HemisphericParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (e.type = this.getClassName()), (e.radius = this.radius), (e.radiusRange = this.radiusRange), (e.directionRandomizer = this.directionRandomizer), e;
}),
(e.prototype.parse = function (e) {
(this.radius = e.radius), (this.radiusRange = e.radiusRange), (this.directionRandomizer = e.directionRandomizer);
}),
e
);
})(),
zl = (function () {
function e() {
(this.direction1 = new a.e(0, 1, 0)), (this.direction2 = new a.e(0, 1, 0));
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
var r = z.a.RandomRange(this.direction1.x, this.direction2.x),
o = z.a.RandomRange(this.direction1.y, this.direction2.y),
s = z.a.RandomRange(this.direction1.z, this.direction2.z);
i ? t.copyFromFloats(r, o, s) : a.e.TransformNormalFromFloatsToRef(r, o, s, e, t);
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
i ? t.copyFromFloats(0, 0, 0) : a.e.TransformCoordinatesFromFloatsToRef(0, 0, 0, e, t);
}),
(e.prototype.clone = function () {
var t = new e();
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2);
}),
(e.prototype.getEffectDefines = function () {
return "#define POINTEMITTER";
}),
(e.prototype.getClassName = function () {
return "PointParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (e.type = this.getClassName()), (e.direction1 = this.direction1.asArray()), (e.direction2 = this.direction2.asArray()), e;
}),
(e.prototype.parse = function (e) {
a.e.FromArrayToRef(e.direction1, 0, this.direction1), a.e.FromArrayToRef(e.direction2, 0, this.direction2);
}),
e
);
})(),
jl = (function () {
function e(e, t, n) {
void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 0), (this.radius = e), (this.radiusRange = t), (this.directionRandomizer = n);
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
var r = n.position.subtract(e.getTranslation()).normalize(),
o = z.a.RandomRange(0, this.directionRandomizer),
s = z.a.RandomRange(0, this.directionRandomizer),
c = z.a.RandomRange(0, this.directionRandomizer);
(r.x += o), (r.y += s), (r.z += c), r.normalize(), i ? t.copyFrom(r) : a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t);
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
var r = this.radius - z.a.RandomRange(0, this.radius * this.radiusRange),
o = z.a.RandomRange(0, 1),
s = z.a.RandomRange(0, 2 * Math.PI),
c = Math.acos(2 * o - 1),
l = r * Math.cos(s) * Math.sin(c),
u = r * Math.cos(c),
h = r * Math.sin(s) * Math.sin(c);
i ? t.copyFromFloats(l, u, h) : a.e.TransformCoordinatesFromFloatsToRef(l, u, h, e, t);
}),
(e.prototype.clone = function () {
var t = new e(this.radius, this.directionRandomizer);
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setFloat("radius", this.radius), e.setFloat("radiusRange", this.radiusRange), e.setFloat("directionRandomizer", this.directionRandomizer);
}),
(e.prototype.getEffectDefines = function () {
return "#define SPHEREEMITTER";
}),
(e.prototype.getClassName = function () {
return "SphereParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (e.type = this.getClassName()), (e.radius = this.radius), (e.radiusRange = this.radiusRange), (e.directionRandomizer = this.directionRandomizer), e;
}),
(e.prototype.parse = function (e) {
(this.radius = e.radius), (this.radiusRange = e.radiusRange), (this.directionRandomizer = e.directionRandomizer);
}),
e
);
})(),
Bl = (function (e) {
function t(t, n, i) {
void 0 === t && (t = 1), void 0 === n && (n = new a.e(0, 1, 0)), void 0 === i && (i = new a.e(0, 1, 0));
var r = e.call(this, t) || this;
return (r.direction1 = n), (r.direction2 = i), r;
}
return (
Object(h.d)(t, e),
(t.prototype.startDirectionFunction = function (e, t, n) {
var i = z.a.RandomRange(this.direction1.x, this.direction2.x),
r = z.a.RandomRange(this.direction1.y, this.direction2.y),
o = z.a.RandomRange(this.direction1.z, this.direction2.z);
a.e.TransformNormalFromFloatsToRef(i, r, o, e, t);
}),
(t.prototype.clone = function () {
var e = new t(this.radius, this.direction1, this.direction2);
return M.a.DeepCopy(this, e), e;
}),
(t.prototype.applyToShader = function (e) {
e.setFloat("radius", this.radius), e.setFloat("radiusRange", this.radiusRange), e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2);
}),
(t.prototype.getEffectDefines = function () {
return "#define SPHEREEMITTER\n#define DIRECTEDSPHEREEMITTER";
}),
(t.prototype.getClassName = function () {
return "SphereDirectedParticleEmitter";
}),
(t.prototype.serialize = function () {
var t = e.prototype.serialize.call(this);
return (t.direction1 = this.direction1.asArray()), (t.direction2 = this.direction2.asArray()), t;
}),
(t.prototype.parse = function (t) {
e.prototype.parse.call(this, t), this.direction1.copyFrom(t.direction1), this.direction2.copyFrom(t.direction2);
}),
t
);
})(jl),
Vl = (function () {
function e() {
(this.particlePositionGenerator = function () {}), (this.particleDestinationGenerator = function () {});
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
var r = a.c.Vector3[0];
if (this.particleDestinationGenerator) {
this.particleDestinationGenerator(-1, n, r);
var o = a.c.Vector3[1];
r.subtractToRef(n.position, o), o.scaleToRef(1 / n.lifeTime, r);
} else r.set(0, 0, 0);
i ? t.copyFrom(r) : a.e.TransformNormalToRef(r, e, t);
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
var r = a.c.Vector3[0];
this.particlePositionGenerator ? this.particlePositionGenerator(-1, n, r) : r.set(0, 0, 0), i ? t.copyFrom(r) : a.e.TransformCoordinatesToRef(r, e, t);
}),
(e.prototype.clone = function () {
var t = new e();
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {}),
(e.prototype.getEffectDefines = function () {
return "#define CUSTOMEMITTER";
}),
(e.prototype.getClassName = function () {
return "CustomParticleEmitter";
}),
(e.prototype.serialize = function () {
var e = {};
return (e.type = this.getClassName()), e;
}),
(e.prototype.parse = function (e) {}),
e
);
})(),
Gl = (function () {
function e(e) {
(this.mesh = e),
(this._indices = null),
(this._positions = null),
(this._normals = null),
(this._storedNormal = a.e.Zero()),
(this.direction1 = new a.e(0, 1, 0)),
(this.direction2 = new a.e(0, 1, 0)),
(this.useMeshNormalsForDirection = !0),
e && ((this._indices = e.getIndices()), (this._positions = e.getVerticesData(wn.b.PositionKind)), (this._normals = e.getVerticesData(wn.b.NormalKind)));
}
return (
(e.prototype.startDirectionFunction = function (e, t, n, i) {
if (this.useMeshNormalsForDirection && this._normals) a.e.TransformNormalToRef(this._storedNormal, e, t);
else {
var r = z.a.RandomRange(this.direction1.x, this.direction2.x),
o = z.a.RandomRange(this.direction1.y, this.direction2.y),
s = z.a.RandomRange(this.direction1.z, this.direction2.z);
i ? t.copyFromFloats(r, o, s) : a.e.TransformNormalFromFloatsToRef(r, o, s, e, t);
}
}),
(e.prototype.startPositionFunction = function (e, t, n, i) {
if (this._indices && this._positions) {
var r = (3 * Math.random() * (this._indices.length / 3)) | 0,
o = Math.random(),
s = Math.random() * (1 - o),
c = 1 - o - s,
l = this._indices[r],
u = this._indices[r + 1],
h = this._indices[r + 2],
d = a.c.Vector3[0],
p = a.c.Vector3[1],
f = a.c.Vector3[2],
m = a.c.Vector3[3];
a.e.FromArrayToRef(this._positions, 3 * l, d),
a.e.FromArrayToRef(this._positions, 3 * u, p),
a.e.FromArrayToRef(this._positions, 3 * h, f),
(m.x = o * d.x + s * p.x + c * f.x),
(m.y = o * d.y + s * p.y + c * f.y),
(m.z = o * d.z + s * p.z + c * f.z),
i ? t.copyFromFloats(m.x, m.y, m.z) : a.e.TransformCoordinatesFromFloatsToRef(m.x, m.y, m.z, e, t),
this.useMeshNormalsForDirection &&
this._normals &&
(a.e.FromArrayToRef(this._normals, 3 * l, d),
a.e.FromArrayToRef(this._normals, 3 * u, p),
a.e.FromArrayToRef(this._normals, 3 * h, f),
(this._storedNormal.x = o * d.x + s * p.x + c * f.x),
(this._storedNormal.y = o * d.y + s * p.y + c * f.y),
(this._storedNormal.z = o * d.z + s * p.z + c * f.z));
}
}),
(e.prototype.clone = function () {
var t = new e(this.mesh);
return M.a.DeepCopy(this, t), t;
}),
(e.prototype.applyToShader = function (e) {
e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2);
}),
(e.prototype.getEffectDefines = function () {
return "";
}),
(e.prototype.getClassName = function () {
return "MeshParticleEmitter";
}),
(e.prototype.serialize = function () {
var e,
t = {};
return (
(t.type = this.getClassName()),
(t.direction1 = this.direction1.asArray()),
(t.direction2 = this.direction2.asArray()),
(t.meshId = null === (e = this.mesh) || void 0 === e ? void 0 : e.id),
(t.useMeshNormalsForDirection = this.useMeshNormalsForDirection),
t
);
}),
(e.prototype.parse = function (e, t) {
a.e.FromArrayToRef(e.direction1, 0, this.direction1),
a.e.FromArrayToRef(e.direction2, 0, this.direction2),
e.meshId && (this.mesh = t.getLastMeshByID(e.meshId) || void 0),
(this.useMeshNormalsForDirection = e.useMeshNormalsForDirection);
}),
e
);
})(),
Ul = (function () {
function e(t) {
(this.animations = []),
(this.renderingGroupId = 0),
(this.emitter = a.e.Zero()),
(this.emitRate = 10),
(this.manualEmitCount = -1),
(this.updateSpeed = 0.01),
(this.targetStopDuration = 0),
(this.disposeOnStop = !1),
(this.minEmitPower = 1),
(this.maxEmitPower = 1),
(this.minLifeTime = 1),
(this.maxLifeTime = 1),
(this.minSize = 1),
(this.maxSize = 1),
(this.minScaleX = 1),
(this.maxScaleX = 1),
(this.minScaleY = 1),
(this.maxScaleY = 1),
(this.minInitialRotation = 0),
(this.maxInitialRotation = 0),
(this.minAngularSpeed = 0),
(this.maxAngularSpeed = 0),
(this.layerMask = 268435455),
(this.customShader = null),
(this.preventAutoStart = !1),
(this.noiseStrength = new a.e(10, 10, 10)),
(this.onAnimationEnd = null),
(this.blendMode = e.BLENDMODE_ONEONE),
(this.forceDepthWrite = !1),
(this.preWarmCycles = 0),
(this.preWarmStepOffset = 1),
(this.spriteCellChangeSpeed = 1),
(this.startSpriteCellID = 0),
(this.endSpriteCellID = 0),
(this.spriteCellWidth = 0),
(this.spriteCellHeight = 0),
(this.spriteRandomStartCell = !1),
(this.translationPivot = new a.d(0, 0)),
(this.beginAnimationOnStart = !1),
(this.beginAnimationFrom = 0),
(this.beginAnimationTo = 60),
(this.beginAnimationLoop = !1),
(this.worldOffset = new a.e(0, 0, 0)),
(this.gravity = a.e.Zero()),
(this._colorGradients = null),
(this._sizeGradients = null),
(this._lifeTimeGradients = null),
(this._angularSpeedGradients = null),
(this._velocityGradients = null),
(this._limitVelocityGradients = null),
(this._dragGradients = null),
(this._emitRateGradients = null),
(this._startSizeGradients = null),
(this._rampGradients = null),
(this._colorRemapGradients = null),
(this._alphaRemapGradients = null),
(this.startDelay = 0),
(this.limitVelocityDamping = 0.4),
(this.color1 = new s.b(1, 1, 1, 1)),
(this.color2 = new s.b(1, 1, 1, 1)),
(this.colorDead = new s.b(0, 0, 0, 1)),
(this.textureMask = new s.b(1, 1, 1, 1)),
(this._isSubEmitter = !1),
(this.billboardMode = 7),
(this._isBillboardBased = !0),
(this._imageProcessingConfigurationDefines = new En.b()),
(this.id = t),
(this.name = t);
}
return (
Object.defineProperty(e.prototype, "noiseTexture", {
get: function () {
return this._noiseTexture;
},
set: function (e) {
this._noiseTexture !== e && ((this._noiseTexture = e), this._reset());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isAnimationSheetEnabled", {
get: function () {
return this._isAnimationSheetEnabled;
},
set: function (e) {
this._isAnimationSheetEnabled != e && ((this._isAnimationSheetEnabled = e), this._reset());
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype._hasTargetStopDurationDependantGradient = function () {
return (this._startSizeGradients && this._startSizeGradients.length > 0) || (this._emitRateGradients && this._emitRateGradients.length > 0) || (this._lifeTimeGradients && this._lifeTimeGradients.length > 0);
}),
(e.prototype.getDragGradients = function () {
return this._dragGradients;
}),
(e.prototype.getLimitVelocityGradients = function () {
return this._limitVelocityGradients;
}),
(e.prototype.getColorGradients = function () {
return this._colorGradients;
}),
(e.prototype.getSizeGradients = function () {
return this._sizeGradients;
}),
(e.prototype.getColorRemapGradients = function () {
return this._colorRemapGradients;
}),
(e.prototype.getAlphaRemapGradients = function () {
return this._alphaRemapGradients;
}),
(e.prototype.getLifeTimeGradients = function () {
return this._lifeTimeGradients;
}),
(e.prototype.getAngularSpeedGradients = function () {
return this._angularSpeedGradients;
}),
(e.prototype.getVelocityGradients = function () {
return this._velocityGradients;
}),
(e.prototype.getStartSizeGradients = function () {
return this._startSizeGradients;
}),
(e.prototype.getEmitRateGradients = function () {
return this._emitRateGradients;
}),
Object.defineProperty(e.prototype, "direction1", {
get: function () {
return this.particleEmitterType.direction1 ? this.particleEmitterType.direction1 : a.e.Zero();
},
set: function (e) {
this.particleEmitterType.direction1 && (this.particleEmitterType.direction1 = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "direction2", {
get: function () {
return this.particleEmitterType.direction2 ? this.particleEmitterType.direction2 : a.e.Zero();
},
set: function (e) {
this.particleEmitterType.direction2 && (this.particleEmitterType.direction2 = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "minEmitBox", {
get: function () {
return this.particleEmitterType.minEmitBox ? this.particleEmitterType.minEmitBox : a.e.Zero();
},
set: function (e) {
this.particleEmitterType.minEmitBox && (this.particleEmitterType.minEmitBox = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "maxEmitBox", {
get: function () {
return this.particleEmitterType.maxEmitBox ? this.particleEmitterType.maxEmitBox : a.e.Zero();
},
set: function (e) {
this.particleEmitterType.maxEmitBox && (this.particleEmitterType.maxEmitBox = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isBillboardBased", {
get: function () {
return this._isBillboardBased;
},
set: function (e) {
this._isBillboardBased !== e && ((this._isBillboardBased = e), this._reset());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "imageProcessingConfiguration", {
get: function () {
return this._imageProcessingConfiguration;
},
set: function (e) {
this._attachImageProcessingConfiguration(e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._attachImageProcessingConfiguration = function (e) {
e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration = e || this._scene.imageProcessingConfiguration);
}),
(e.prototype._reset = function () {}),
(e.prototype._removeGradientAndTexture = function (e, t, n) {
if (!t) return this;
for (var i = 0, r = 0, o = t; r < o.length; r++) {
if (o[r].gradient === e) {
t.splice(i, 1);
break;
}
i++;
}
return n && n.dispose(), this;
}),
(e.prototype.createPointEmitter = function (e, t) {
var n = new zl();
return (n.direction1 = e), (n.direction2 = t), (this.particleEmitterType = n), n;
}),
(e.prototype.createHemisphericEmitter = function (e, t) {
void 0 === e && (e = 1), void 0 === t && (t = 1);
var n = new kl(e, t);
return (this.particleEmitterType = n), n;
}),
(e.prototype.createSphereEmitter = function (e, t) {
void 0 === e && (e = 1), void 0 === t && (t = 1);
var n = new jl(e, t);
return (this.particleEmitterType = n), n;
}),
(e.prototype.createDirectedSphereEmitter = function (e, t, n) {
void 0 === e && (e = 1), void 0 === t && (t = new a.e(0, 1, 0)), void 0 === n && (n = new a.e(0, 1, 0));
var i = new Bl(e, t, n);
return (this.particleEmitterType = i), i;
}),
(e.prototype.createCylinderEmitter = function (e, t, n, i) {
void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = 0);
var r = new Fl(e, t, n, i);
return (this.particleEmitterType = r), r;
}),
(e.prototype.createDirectedCylinderEmitter = function (e, t, n, i, r) {
void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = new a.e(0, 1, 0)), void 0 === r && (r = new a.e(0, 1, 0));
var o = new Nl(e, t, n, i, r);
return (this.particleEmitterType = o), o;
}),
(e.prototype.createConeEmitter = function (e, t) {
void 0 === e && (e = 1), void 0 === t && (t = Math.PI / 4);
var n = new Ll(e, t);
return (this.particleEmitterType = n), n;
}),
(e.prototype.createBoxEmitter = function (e, t, n, i) {
var r = new wl();
return (this.particleEmitterType = r), (this.direction1 = e), (this.direction2 = t), (this.minEmitBox = n), (this.maxEmitBox = i), r;
}),
(e.BLENDMODE_ONEONE = 0),
(e.BLENDMODE_STANDARD = 1),
(e.BLENDMODE_ADD = 2),
(e.BLENDMODE_MULTIPLY = 3),
(e.BLENDMODE_MULTIPLYADD = 4),
e
);
})(),
Hl = (function () {
function e() {}
return (
(e.prototype.getColorToRef = function (e) {
this.color2 ? s.b.LerpToRef(this.color1, this.color2, Math.random(), e) : e.copyFrom(this.color1);
}),
e
);
})(),
Wl = function () {},
Xl = (function () {
function e() {}
return (
(e.prototype.getFactor = function () {
return void 0 === this.factor2 ? this.factor1 : this.factor1 + (this.factor2 - this.factor1) * Math.random();
}),
e
);
})(),
Yl = (function () {
function e() {}
return (
(e.GetCurrentGradient = function (e, t, n) {
for (var i = 0; i < t.length - 1; i++) {
var r = t[i],
o = t[i + 1];
if (e >= r.gradient && e <= o.gradient) return void n(r, o, (e - r.gradient) / (o.gradient - r.gradient));
}
var a = t.length - 1;
n(t[a], t[a], 1);
}),
e
);
})(),
Kl = (function () {
function e(t) {
(this.particleSystem = t),
(this.position = a.e.Zero()),
(this.direction = a.e.Zero()),
(this.color = new s.b(0, 0, 0, 0)),
(this.colorStep = new s.b(0, 0, 0, 0)),
(this.lifeTime = 1),
(this.age = 0),
(this.size = 0),
(this.scale = new a.d(1, 1)),
(this.angle = 0),
(this.angularSpeed = 0),
(this.cellIndex = 0),
(this._attachedSubEmitters = null),
(this._currentColor1 = new s.b(0, 0, 0, 0)),
(this._currentColor2 = new s.b(0, 0, 0, 0)),
(this._currentSize1 = 0),
(this._currentSize2 = 0),
(this._currentAngularSpeed1 = 0),
(this._currentAngularSpeed2 = 0),
(this._currentVelocity1 = 0),
(this._currentVelocity2 = 0),
(this._currentLimitVelocity1 = 0),
(this._currentLimitVelocity2 = 0),
(this._currentDrag1 = 0),
(this._currentDrag2 = 0),
(this.id = e._Count++),
this.particleSystem.isAnimationSheetEnabled && this.updateCellInfoFromSystem();
}
return (
(e.prototype.updateCellInfoFromSystem = function () {
this.cellIndex = this.particleSystem.startSpriteCellID;
}),
(e.prototype.updateCellIndex = function () {
var e = this.age,
t = this.particleSystem.spriteCellChangeSpeed;
this.particleSystem.spriteRandomStartCell &&
(void 0 === this._randomCellOffset && (this._randomCellOffset = Math.random() * this.lifeTime), 0 === t ? ((t = 1), (e = this._randomCellOffset)) : (e += this._randomCellOffset));
var n = this._initialEndSpriteCellID - this._initialStartSpriteCellID,
i = z.a.Clamp(((e * t) % this.lifeTime) / this.lifeTime);
this.cellIndex = (this._initialStartSpriteCellID + i * n) | 0;
}),
(e.prototype._inheritParticleInfoToSubEmitter = function (e) {
if (e.particleSystem.emitter.position) {
var t = e.particleSystem.emitter;
t.position.copyFrom(this.position), e.inheritDirection && t.setDirection(this.direction.normalize(), 0, Math.PI / 2);
} else {
e.particleSystem.emitter.copyFrom(this.position);
}
this.direction.scaleToRef(e.inheritedVelocityAmount / 2, a.c.Vector3[0]), e.particleSystem._inheritedVelocityOffset.copyFrom(a.c.Vector3[0]);
}),
(e.prototype._inheritParticleInfoToSubEmitters = function () {
var e = this;
this._attachedSubEmitters &&
this._attachedSubEmitters.length > 0 &&
this._attachedSubEmitters.forEach(function (t) {
e._inheritParticleInfoToSubEmitter(t);
});
}),
(e.prototype._reset = function () {
(this.age = 0),
(this.id = e._Count++),
(this._currentColorGradient = null),
(this._currentSizeGradient = null),
(this._currentAngularSpeedGradient = null),
(this._currentVelocityGradient = null),
(this._currentLimitVelocityGradient = null),
(this._currentDragGradient = null),
(this.cellIndex = this.particleSystem.startSpriteCellID),
(this._randomCellOffset = void 0);
}),
(e.prototype.copyTo = function (e) {
e.position.copyFrom(this.position),
this._initialDirection ? (e._initialDirection ? e._initialDirection.copyFrom(this._initialDirection) : (e._initialDirection = this._initialDirection.clone())) : (e._initialDirection = null),
e.direction.copyFrom(this.direction),
this._localPosition && (e._localPosition ? e._localPosition.copyFrom(this._localPosition) : (e._localPosition = this._localPosition.clone())),
e.color.copyFrom(this.color),
e.colorStep.copyFrom(this.colorStep),
(e.lifeTime = this.lifeTime),
(e.age = this.age),
(e._randomCellOffset = this._randomCellOffset),
(e.size = this.size),
e.scale.copyFrom(this.scale),
(e.angle = this.angle),
(e.angularSpeed = this.angularSpeed),
(e.particleSystem = this.particleSystem),
(e.cellIndex = this.cellIndex),
(e.id = this.id),
(e._attachedSubEmitters = this._attachedSubEmitters),
this._currentColorGradient && ((e._currentColorGradient = this._currentColorGradient), e._currentColor1.copyFrom(this._currentColor1), e._currentColor2.copyFrom(this._currentColor2)),
this._currentSizeGradient && ((e._currentSizeGradient = this._currentSizeGradient), (e._currentSize1 = this._currentSize1), (e._currentSize2 = this._currentSize2)),
this._currentAngularSpeedGradient &&
((e._currentAngularSpeedGradient = this._currentAngularSpeedGradient), (e._currentAngularSpeed1 = this._currentAngularSpeed1), (e._currentAngularSpeed2 = this._currentAngularSpeed2)),
this._currentVelocityGradient && ((e._currentVelocityGradient = this._currentVelocityGradient), (e._currentVelocity1 = this._currentVelocity1), (e._currentVelocity2 = this._currentVelocity2)),
this._currentLimitVelocityGradient &&
((e._currentLimitVelocityGradient = this._currentLimitVelocityGradient), (e._currentLimitVelocity1 = this._currentLimitVelocity1), (e._currentLimitVelocity2 = this._currentLimitVelocity2)),
this._currentDragGradient && ((e._currentDragGradient = this._currentDragGradient), (e._currentDrag1 = this._currentDrag1), (e._currentDrag2 = this._currentDrag2)),
this.particleSystem.isAnimationSheetEnabled && ((e._initialStartSpriteCellID = this._initialStartSpriteCellID), (e._initialEndSpriteCellID = this._initialEndSpriteCellID)),
this.particleSystem.useRampGradients && e.remapData.copyFrom(this.remapData),
this._randomNoiseCoordinates1 &&
(e._randomNoiseCoordinates1
? (e._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1), e._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2))
: ((e._randomNoiseCoordinates1 = this._randomNoiseCoordinates1.clone()), (e._randomNoiseCoordinates2 = this._randomNoiseCoordinates2.clone())));
}),
(e._Count = 0),
e
);
})();
!(function (e) {
(e[(e.ATTACHED = 0)] = "ATTACHED"), (e[(e.END = 1)] = "END");
})(Dl || (Dl = {}));
var Zl = (function () {
function e(e) {
(this.particleSystem = e),
(this.type = Dl.END),
(this.inheritDirection = !1),
(this.inheritedVelocityAmount = 0),
(e.emitter && e.emitter.dispose) || (e.emitter = new ke.a("SubemitterSystemEmitter", e.getScene())),
e.onDisposeObservable.add(function () {
e.emitter && e.emitter.dispose && e.emitter.dispose();
});
}
return (
(e.prototype.clone = function () {
var t = this.particleSystem.emitter;
t ? (t instanceof a.e ? (t = t.clone()) : t instanceof ke.a && ((t = new Ee.a("", t.getScene())).isVisible = !1)) : (t = new a.e());
var n = new e(this.particleSystem.clone("", t));
return (
(n.particleSystem.name += "Clone"),
(n.type = this.type),
(n.inheritDirection = this.inheritDirection),
(n.inheritedVelocityAmount = this.inheritedVelocityAmount),
(n.particleSystem._disposeEmitterOnDispose = !0),
(n.particleSystem.disposeOnStop = !0),
n
);
}),
(e.prototype.serialize = function () {
var e = {};
return (e.type = this.type), (e.inheritDirection = this.inheritDirection), (e.inheritedVelocityAmount = this.inheritedVelocityAmount), (e.particleSystem = this.particleSystem.serialize()), e;
}),
(e._ParseParticleSystem = function (e, t, n) {
throw zo.a.WarnImport("ParseParticle");
}),
(e.Parse = function (t, n, i) {
var r = t.particleSystem,
o = new e(e._ParseParticleSystem(r, n, i));
return (o.type = t.type), (o.inheritDirection = t.inheritDirection), (o.inheritedVelocityAmount = t.inheritedVelocityAmount), (o.particleSystem._isSubEmitter = !0), o;
}),
(e.prototype.dispose = function () {
this.particleSystem.dispose();
}),
e
);
})(),
ql =
"\nvarying vec2 vUV;\nvarying vec4 vColor;\nuniform vec4 textureMask;\nuniform sampler2D diffuseSampler;\n#include\n#include\n#include\n#include\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\nuniform sampler2D rampSampler;\n#endif\nvoid main(void) {\n#include\nvec4 textureColor=texture2D(diffuseSampler,vUV);\nvec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\n#ifdef RAMPGRADIENT\nfloat alpha=baseColor.a;\nfloat remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);\nvec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));\nbaseColor.rgb*=rampColor.rgb;\n\nfloat finalAlpha=baseColor.a;\nbaseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\n#endif\n#ifdef BLENDMULTIPLYMODE\nfloat sourceAlpha=vColor.a*textureColor.a;\nbaseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\n#endif\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\nbaseColor=applyImageProcessing(baseColor);\n#endif\n#endif\ngl_FragColor=baseColor;\n}";
Xt.a.ShadersStore.particlesPixelShader = ql;
var Ql =
"\nattribute vec3 position;\nattribute vec4 color;\nattribute float angle;\nattribute vec2 size;\n#ifdef ANIMATESHEET\nattribute float cellIndex;\n#endif\n#ifndef BILLBOARD\nattribute vec3 direction;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute vec3 direction;\n#endif\n#ifdef RAMPGRADIENT\nattribute vec4 remapData;\n#endif\nattribute vec2 offset;\n\nuniform mat4 view;\nuniform mat4 projection;\nuniform vec2 translationPivot;\n#ifdef ANIMATESHEET\nuniform vec3 particlesInfos;\n#endif\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nuniform mat4 invView;\n#endif\n#include\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\nvec3 zaxis=normalize(cross(yaxis,xaxis));\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn position+alignedCorner;\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\nvec3 normalizedToCamera=normalize(toCamera);\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn position+alignedCorner;\n}\n#endif\nvoid main(void) {\nvec2 cornerPos;\ncornerPos=(vec2(offset.x-0.5,offset.y-0.5)-translationPivot)*size+translationPivot;\n#ifdef BILLBOARD\n\nvec3 rotatedCorner;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=position-eyePosition;\nyaxis.y=0.;\nvec3 worldPos=rotate(normalize(yaxis),rotatedCorner);\nvec3 viewPos=(view*vec4(worldPos,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 toCamera=position-eyePosition;\nvec3 worldPos=rotateAlign(toCamera,rotatedCorner);\nvec3 viewPos=(view*vec4(worldPos,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\n\ngl_Position=projection*vec4(viewPos,1.0);\n#else\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=normalize(direction);\nvec3 worldPos=rotate(yaxis,rotatedCorner);\ngl_Position=projection*view*vec4(worldPos,1.0);\n#endif\nvColor=color;\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/particlesInfos.z);\nfloat columnOffset=cellIndex-rowOffset*particlesInfos.z;\nvec2 uvScale=particlesInfos.xy;\nvec2 uvOffset=vec2(offset.x ,1.0-offset.y);\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=offset;\n#endif\n\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nvec4 worldPos=invView*vec4(viewPos,1.0);\n#endif\n#include\n}";
Xt.a.ShadersStore.particlesVertexShader = Ql;
var Jl = (function (e) {
function t(t, n, i, r, c, l) {
void 0 === r && (r = null), void 0 === c && (c = !1), void 0 === l && (l = 0.01);
var u = e.call(this, t) || this;
return (
(u._inheritedVelocityOffset = new a.e()),
(u.onDisposeObservable = new o.c()),
(u._particles = new Array()),
(u._stockParticles = new Array()),
(u._newPartsExcess = 0),
(u._vertexBuffers = {}),
(u._scaledColorStep = new s.b(0, 0, 0, 0)),
(u._colorDiff = new s.b(0, 0, 0, 0)),
(u._scaledDirection = a.e.Zero()),
(u._scaledGravity = a.e.Zero()),
(u._currentRenderId = -1),
(u._useInstancing = !1),
(u._started = !1),
(u._stopped = !1),
(u._actualFrame = 0),
(u._currentEmitRate1 = 0),
(u._currentEmitRate2 = 0),
(u._currentStartSize1 = 0),
(u._currentStartSize2 = 0),
(u._rawTextureWidth = 256),
(u._useRampGradients = !1),
(u._disposeEmitterOnDispose = !1),
(u.isLocal = !1),
(u.recycleParticle = function (e) {
var t = u._particles.pop();
t !== e && t.copyTo(e), u._stockParticles.push(t);
}),
(u._createParticle = function () {
var e;
if ((0 !== u._stockParticles.length ? (e = u._stockParticles.pop())._reset() : (e = new Kl(u)), u._subEmitters && u._subEmitters.length > 0)) {
var t = u._subEmitters[Math.floor(Math.random() * u._subEmitters.length)];
(e._attachedSubEmitters = []),
t.forEach(function (t) {
if (t.type === Dl.ATTACHED) {
var n = t.clone();
e._attachedSubEmitters.push(n), n.particleSystem.start();
}
});
}
return e;
}),
(u._emitFromParticle = function (e) {
if (u._subEmitters && 0 !== u._subEmitters.length) {
var t = Math.floor(Math.random() * u._subEmitters.length);
u._subEmitters[t].forEach(function (t) {
if (t.type === Dl.END) {
var n = t.clone();
e._inheritParticleInfoToSubEmitter(n), (n.particleSystem._rootParticleSystem = u), u.activeSubSystems.push(n.particleSystem), n.particleSystem.start();
}
});
}
}),
(u._capacity = n),
(u._epsilon = l),
(u._isAnimationSheetEnabled = c),
(u._scene = i || E.a.LastCreatedScene),
u._attachImageProcessingConfiguration(null),
(u._customEffect = r),
u._scene.particleSystems.push(u),
(u._useInstancing = u._scene.getEngine().getCaps().instancedArrays),
u._createIndexBuffer(),
u._createVertexBuffers(),
(u.particleEmitterType = new wl()),
(u.updateFunction = function (e) {
var t = null,
n = null;
u.noiseTexture && ((t = u.noiseTexture.getSize()), (n = u.noiseTexture.getContent()));
for (
var i,
r = function () {
i = e[o];
var r = u._scaledUpdateSpeed,
c = i.age;
if (((i.age += r), i.age > i.lifeTime)) {
var l = i.age - c;
(r = ((i.lifeTime - c) * r) / l), (i.age = i.lifeTime);
}
var h = i.age / i.lifeTime;
u._colorGradients && u._colorGradients.length > 0
? Yl.GetCurrentGradient(h, u._colorGradients, function (e, t, n) {
e !== i._currentColorGradient && (i._currentColor1.copyFrom(i._currentColor2), t.getColorToRef(i._currentColor2), (i._currentColorGradient = e)),
s.b.LerpToRef(i._currentColor1, i._currentColor2, n, i.color);
})
: (i.colorStep.scaleToRef(r, u._scaledColorStep), i.color.addInPlace(u._scaledColorStep), i.color.a < 0 && (i.color.a = 0)),
u._angularSpeedGradients &&
u._angularSpeedGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._angularSpeedGradients, function (e, t, n) {
e !== i._currentAngularSpeedGradient && ((i._currentAngularSpeed1 = i._currentAngularSpeed2), (i._currentAngularSpeed2 = t.getFactor()), (i._currentAngularSpeedGradient = e)),
(i.angularSpeed = z.a.Lerp(i._currentAngularSpeed1, i._currentAngularSpeed2, n));
}),
(i.angle += i.angularSpeed * r);
var d = r;
if (
(u._velocityGradients &&
u._velocityGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._velocityGradients, function (e, t, n) {
e !== i._currentVelocityGradient && ((i._currentVelocity1 = i._currentVelocity2), (i._currentVelocity2 = t.getFactor()), (i._currentVelocityGradient = e)),
(d *= z.a.Lerp(i._currentVelocity1, i._currentVelocity2, n));
}),
i.direction.scaleToRef(d, u._scaledDirection),
u._limitVelocityGradients &&
u._limitVelocityGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._limitVelocityGradients, function (e, t, n) {
e !== i._currentLimitVelocityGradient && ((i._currentLimitVelocity1 = i._currentLimitVelocity2), (i._currentLimitVelocity2 = t.getFactor()), (i._currentLimitVelocityGradient = e));
var r = z.a.Lerp(i._currentLimitVelocity1, i._currentLimitVelocity2, n);
i.direction.length() > r && i.direction.scaleInPlace(u.limitVelocityDamping);
}),
u._dragGradients &&
u._dragGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._dragGradients, function (e, t, n) {
e !== i._currentDragGradient && ((i._currentDrag1 = i._currentDrag2), (i._currentDrag2 = t.getFactor()), (i._currentDragGradient = e));
var r = z.a.Lerp(i._currentDrag1, i._currentDrag2, n);
u._scaledDirection.scaleInPlace(1 - r);
}),
u.isLocal ? (i._localPosition.addInPlace(u._scaledDirection), a.e.TransformCoordinatesToRef(i._localPosition, u._emitterWorldMatrix, i.position)) : i.position.addInPlace(u._scaledDirection),
n && t && i._randomNoiseCoordinates1)
) {
var p = u._fetchR(i._randomNoiseCoordinates1.x, i._randomNoiseCoordinates1.y, t.width, t.height, n),
f = u._fetchR(i._randomNoiseCoordinates1.z, i._randomNoiseCoordinates2.x, t.width, t.height, n),
m = u._fetchR(i._randomNoiseCoordinates2.y, i._randomNoiseCoordinates2.z, t.width, t.height, n),
g = a.c.Vector3[0],
b = a.c.Vector3[1];
g.copyFromFloats((2 * p - 1) * u.noiseStrength.x, (2 * f - 1) * u.noiseStrength.y, (2 * m - 1) * u.noiseStrength.z), g.scaleToRef(r, b), i.direction.addInPlace(b);
}
if (
(u.gravity.scaleToRef(r, u._scaledGravity),
i.direction.addInPlace(u._scaledGravity),
u._sizeGradients &&
u._sizeGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._sizeGradients, function (e, t, n) {
e !== i._currentSizeGradient && ((i._currentSize1 = i._currentSize2), (i._currentSize2 = t.getFactor()), (i._currentSizeGradient = e)),
(i.size = z.a.Lerp(i._currentSize1, i._currentSize2, n));
}),
u._useRampGradients &&
(u._colorRemapGradients &&
u._colorRemapGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._colorRemapGradients, function (e, t, n) {
var r = z.a.Lerp(e.factor1, t.factor1, n),
o = z.a.Lerp(e.factor2, t.factor2, n);
(i.remapData.x = r), (i.remapData.y = o - r);
}),
u._alphaRemapGradients &&
u._alphaRemapGradients.length > 0 &&
Yl.GetCurrentGradient(h, u._alphaRemapGradients, function (e, t, n) {
var r = z.a.Lerp(e.factor1, t.factor1, n),
o = z.a.Lerp(e.factor2, t.factor2, n);
(i.remapData.z = r), (i.remapData.w = o - r);
})),
u._isAnimationSheetEnabled && i.updateCellIndex(),
i._inheritParticleInfoToSubEmitters(),
i.age >= i.lifeTime)
)
return (
u._emitFromParticle(i),
i._attachedSubEmitters &&
(i._attachedSubEmitters.forEach(function (e) {
(e.particleSystem.disposeOnStop = !0), e.particleSystem.stop();
}),
(i._attachedSubEmitters = null)),
u.recycleParticle(i),
o--,
"continue"
);
},
o = 0;
o < e.length;
o++
)
r();
}),
u
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "useRampGradients", {
get: function () {
return this._useRampGradients;
},
set: function (e) {
this._useRampGradients !== e && ((this._useRampGradients = e), this._resetEffect());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "particles", {
get: function () {
return this._particles;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "ParticleSystem";
}),
(t.prototype._addFactorGradient = function (e, t, n, i) {
var r = new Xl();
(r.gradient = t),
(r.factor1 = n),
(r.factor2 = i),
e.push(r),
e.sort(function (e, t) {
return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0;
});
}),
(t.prototype._removeFactorGradient = function (e, t) {
if (e)
for (var n = 0, i = 0, r = e; i < r.length; i++) {
if (r[i].gradient === t) {
e.splice(n, 1);
break;
}
n++;
}
}),
(t.prototype.addLifeTimeGradient = function (e, t, n) {
return this._lifeTimeGradients || (this._lifeTimeGradients = []), this._addFactorGradient(this._lifeTimeGradients, e, t, n), this;
}),
(t.prototype.removeLifeTimeGradient = function (e) {
return this._removeFactorGradient(this._lifeTimeGradients, e), this;
}),
(t.prototype.addSizeGradient = function (e, t, n) {
return this._sizeGradients || (this._sizeGradients = []), this._addFactorGradient(this._sizeGradients, e, t, n), this;
}),
(t.prototype.removeSizeGradient = function (e) {
return this._removeFactorGradient(this._sizeGradients, e), this;
}),
(t.prototype.addColorRemapGradient = function (e, t, n) {
return this._colorRemapGradients || (this._colorRemapGradients = []), this._addFactorGradient(this._colorRemapGradients, e, t, n), this;
}),
(t.prototype.removeColorRemapGradient = function (e) {
return this._removeFactorGradient(this._colorRemapGradients, e), this;
}),
(t.prototype.addAlphaRemapGradient = function (e, t, n) {
return this._alphaRemapGradients || (this._alphaRemapGradients = []), this._addFactorGradient(this._alphaRemapGradients, e, t, n), this;
}),
(t.prototype.removeAlphaRemapGradient = function (e) {
return this._removeFactorGradient(this._alphaRemapGradients, e), this;
}),
(t.prototype.addAngularSpeedGradient = function (e, t, n) {
return this._angularSpeedGradients || (this._angularSpeedGradients = []), this._addFactorGradient(this._angularSpeedGradients, e, t, n), this;
}),
(t.prototype.removeAngularSpeedGradient = function (e) {
return this._removeFactorGradient(this._angularSpeedGradients, e), this;
}),
(t.prototype.addVelocityGradient = function (e, t, n) {
return this._velocityGradients || (this._velocityGradients = []), this._addFactorGradient(this._velocityGradients, e, t, n), this;
}),
(t.prototype.removeVelocityGradient = function (e) {
return this._removeFactorGradient(this._velocityGradients, e), this;
}),
(t.prototype.addLimitVelocityGradient = function (e, t, n) {
return this._limitVelocityGradients || (this._limitVelocityGradients = []), this._addFactorGradient(this._limitVelocityGradients, e, t, n), this;
}),
(t.prototype.removeLimitVelocityGradient = function (e) {
return this._removeFactorGradient(this._limitVelocityGradients, e), this;
}),
(t.prototype.addDragGradient = function (e, t, n) {
return this._dragGradients || (this._dragGradients = []), this._addFactorGradient(this._dragGradients, e, t, n), this;
}),
(t.prototype.removeDragGradient = function (e) {
return this._removeFactorGradient(this._dragGradients, e), this;
}),
(t.prototype.addEmitRateGradient = function (e, t, n) {
return this._emitRateGradients || (this._emitRateGradients = []), this._addFactorGradient(this._emitRateGradients, e, t, n), this;
}),
(t.prototype.removeEmitRateGradient = function (e) {
return this._removeFactorGradient(this._emitRateGradients, e), this;
}),
(t.prototype.addStartSizeGradient = function (e, t, n) {
return this._startSizeGradients || (this._startSizeGradients = []), this._addFactorGradient(this._startSizeGradients, e, t, n), this;
}),
(t.prototype.removeStartSizeGradient = function (e) {
return this._removeFactorGradient(this._emitRateGradients, e), this;
}),
(t.prototype._createRampGradientTexture = function () {
if (this._rampGradients && this._rampGradients.length && !this._rampGradientsTexture) {
for (var e = new Uint8Array(4 * this._rawTextureWidth), t = s.c.Color3[0], n = 0; n < this._rawTextureWidth; n++) {
var i = n / this._rawTextureWidth;
Yl.GetCurrentGradient(i, this._rampGradients, function (i, r, o) {
s.a.LerpToRef(i.color, r.color, o, t), (e[4 * n] = 255 * t.r), (e[4 * n + 1] = 255 * t.g), (e[4 * n + 2] = 255 * t.b), (e[4 * n + 3] = 255);
});
}
this._rampGradientsTexture = Cs.a.CreateRGBATexture(e, this._rawTextureWidth, 1, this._scene, !1, !1, ln.a.NEAREST_SAMPLINGMODE);
}
}),
(t.prototype.getRampGradients = function () {
return this._rampGradients;
}),
(t.prototype.addRampGradient = function (e, t) {
this._rampGradients || (this._rampGradients = []);
var n = new Wl();
return (
(n.gradient = e),
(n.color = t),
this._rampGradients.push(n),
this._rampGradients.sort(function (e, t) {
return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0;
}),
this._rampGradientsTexture && (this._rampGradientsTexture.dispose(), (this._rampGradientsTexture = null)),
this._createRampGradientTexture(),
this
);
}),
(t.prototype.removeRampGradient = function (e) {
return (
this._removeGradientAndTexture(e, this._rampGradients, this._rampGradientsTexture),
(this._rampGradientsTexture = null),
this._rampGradients && this._rampGradients.length > 0 && this._createRampGradientTexture(),
this
);
}),
(t.prototype.addColorGradient = function (e, t, n) {
this._colorGradients || (this._colorGradients = []);
var i = new Hl();
return (
(i.gradient = e),
(i.color1 = t),
(i.color2 = n),
this._colorGradients.push(i),
this._colorGradients.sort(function (e, t) {
return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0;
}),
this
);
}),
(t.prototype.removeColorGradient = function (e) {
if (!this._colorGradients) return this;
for (var t = 0, n = 0, i = this._colorGradients; n < i.length; n++) {
if (i[n].gradient === e) {
this._colorGradients.splice(t, 1);
break;
}
t++;
}
return this;
}),
(t.prototype._fetchR = function (e, t, n, i, r) {
return r[4 * ((((e = 0.5 * Math.abs(e) + 0.5) * n) % n | 0) + (((t = 0.5 * Math.abs(t) + 0.5) * i) % i | 0) * n)] / 255;
}),
(t.prototype._reset = function () {
this._resetEffect();
}),
(t.prototype._resetEffect = function () {
this._vertexBuffer && (this._vertexBuffer.dispose(), (this._vertexBuffer = null)), this._spriteBuffer && (this._spriteBuffer.dispose(), (this._spriteBuffer = null)), this._createVertexBuffers();
}),
(t.prototype._createVertexBuffers = function () {
(this._vertexBufferSize = this._useInstancing ? 10 : 12),
this._isAnimationSheetEnabled && (this._vertexBufferSize += 1),
(this._isBillboardBased && this.billboardMode !== t.BILLBOARDMODE_STRETCHED) || (this._vertexBufferSize += 3),
this._useRampGradients && (this._vertexBufferSize += 4);
var e = this._scene.getEngine();
(this._vertexData = new Float32Array(this._capacity * this._vertexBufferSize * (this._useInstancing ? 1 : 4))), (this._vertexBuffer = new wn.a(e, this._vertexData, !0, this._vertexBufferSize));
var n = 0,
i = this._vertexBuffer.createVertexBuffer(wn.b.PositionKind, n, 3, this._vertexBufferSize, this._useInstancing);
(this._vertexBuffers[wn.b.PositionKind] = i), (n += 3);
var r = this._vertexBuffer.createVertexBuffer(wn.b.ColorKind, n, 4, this._vertexBufferSize, this._useInstancing);
(this._vertexBuffers[wn.b.ColorKind] = r), (n += 4);
var o = this._vertexBuffer.createVertexBuffer("angle", n, 1, this._vertexBufferSize, this._useInstancing);
(this._vertexBuffers.angle = o), (n += 1);
var a,
s = this._vertexBuffer.createVertexBuffer("size", n, 2, this._vertexBufferSize, this._useInstancing);
if (((this._vertexBuffers.size = s), (n += 2), this._isAnimationSheetEnabled)) {
var c = this._vertexBuffer.createVertexBuffer("cellIndex", n, 1, this._vertexBufferSize, this._useInstancing);
(this._vertexBuffers.cellIndex = c), (n += 1);
}
if (!this._isBillboardBased || this.billboardMode === t.BILLBOARDMODE_STRETCHED) {
var l = this._vertexBuffer.createVertexBuffer("direction", n, 3, this._vertexBufferSize, this._useInstancing);
(this._vertexBuffers.direction = l), (n += 3);
}
if (this._useRampGradients) {
var u = this._vertexBuffer.createVertexBuffer("remapData", n, 4, this._vertexBufferSize, this._useInstancing);
(this._vertexBuffers.remapData = u), (n += 4);
}
if (this._useInstancing) {
var h = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]);
(this._spriteBuffer = new wn.a(e, h, !1, 2)), (a = this._spriteBuffer.createVertexBuffer("offset", 0, 2));
} else (a = this._vertexBuffer.createVertexBuffer("offset", n, 2, this._vertexBufferSize, this._useInstancing)), (n += 2);
this._vertexBuffers.offset = a;
}),
(t.prototype._createIndexBuffer = function () {
if (!this._useInstancing) {
for (var e = [], t = 0, n = 0; n < this._capacity; n++) e.push(t), e.push(t + 1), e.push(t + 2), e.push(t), e.push(t + 2), e.push(t + 3), (t += 4);
this._indexBuffer = this._scene.getEngine().createIndexBuffer(e);
}
}),
(t.prototype.getCapacity = function () {
return this._capacity;
}),
(t.prototype.isAlive = function () {
return this._alive;
}),
(t.prototype.isStarted = function () {
return this._started;
}),
(t.prototype._prepareSubEmitterInternalArray = function () {
var e = this;
(this._subEmitters = new Array()),
this.subEmitters &&
this.subEmitters.forEach(function (n) {
n instanceof t ? e._subEmitters.push([new Zl(n)]) : n instanceof Zl ? e._subEmitters.push([n]) : n instanceof Array && e._subEmitters.push(n);
});
}),
(t.prototype.start = function (e) {
var t = this;
if ((void 0 === e && (e = this.startDelay), !this.targetStopDuration && this._hasTargetStopDurationDependantGradient()))
throw "Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set";
if (e)
setTimeout(function () {
t.start(0);
}, e);
else {
if (
(this._prepareSubEmitterInternalArray(),
(this._started = !0),
(this._stopped = !1),
(this._actualFrame = 0),
this._subEmitters && 0 != this._subEmitters.length && (this.activeSubSystems = new Array()),
this._emitRateGradients &&
(this._emitRateGradients.length > 0 &&
((this._currentEmitRateGradient = this._emitRateGradients[0]), (this._currentEmitRate1 = this._currentEmitRateGradient.getFactor()), (this._currentEmitRate2 = this._currentEmitRate1)),
this._emitRateGradients.length > 1 && (this._currentEmitRate2 = this._emitRateGradients[1].getFactor())),
this._startSizeGradients &&
(this._startSizeGradients.length > 0 &&
((this._currentStartSizeGradient = this._startSizeGradients[0]), (this._currentStartSize1 = this._currentStartSizeGradient.getFactor()), (this._currentStartSize2 = this._currentStartSize1)),
this._startSizeGradients.length > 1 && (this._currentStartSize2 = this._startSizeGradients[1].getFactor())),
this.preWarmCycles)
) {
this.emitter instanceof ke.a && this.emitter.computeWorldMatrix(!0);
var n = this.noiseTexture;
if (n && n.onGeneratedObservable)
n.onGeneratedObservable.addOnce(function () {
setTimeout(function () {
for (var e = 0; e < t.preWarmCycles; e++) t.animate(!0), n.render();
});
});
else for (var i = 0; i < this.preWarmCycles; i++) this.animate(!0);
}
this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this.getScene().beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop);
}
}),
(t.prototype.stop = function (e) {
void 0 === e && (e = !0), (this._stopped = !0), e && this._stopSubEmitters();
}),
(t.prototype.reset = function () {
(this._stockParticles = []), (this._particles = []);
}),
(t.prototype._appendParticleVertex = function (e, n, i, r) {
var o = e * this._vertexBufferSize;
if (
((this._vertexData[o++] = n.position.x + this.worldOffset.x),
(this._vertexData[o++] = n.position.y + this.worldOffset.y),
(this._vertexData[o++] = n.position.z + this.worldOffset.z),
(this._vertexData[o++] = n.color.r),
(this._vertexData[o++] = n.color.g),
(this._vertexData[o++] = n.color.b),
(this._vertexData[o++] = n.color.a),
(this._vertexData[o++] = n.angle),
(this._vertexData[o++] = n.scale.x * n.size),
(this._vertexData[o++] = n.scale.y * n.size),
this._isAnimationSheetEnabled && (this._vertexData[o++] = n.cellIndex),
this._isBillboardBased)
)
this.billboardMode === t.BILLBOARDMODE_STRETCHED && ((this._vertexData[o++] = n.direction.x), (this._vertexData[o++] = n.direction.y), (this._vertexData[o++] = n.direction.z));
else if (n._initialDirection) {
var s = n._initialDirection;
this.isLocal && (a.e.TransformNormalToRef(s, this._emitterWorldMatrix, a.c.Vector3[0]), (s = a.c.Vector3[0])),
0 === s.x && 0 === s.z && (s.x = 0.001),
(this._vertexData[o++] = s.x),
(this._vertexData[o++] = s.y),
(this._vertexData[o++] = s.z);
} else {
var c = n.direction;
this.isLocal && (a.e.TransformNormalToRef(c, this._emitterWorldMatrix, a.c.Vector3[0]), (c = a.c.Vector3[0])),
0 === c.x && 0 === c.z && (c.x = 0.001),
(this._vertexData[o++] = c.x),
(this._vertexData[o++] = c.y),
(this._vertexData[o++] = c.z);
}
this._useRampGradients && ((this._vertexData[o++] = n.remapData.x), (this._vertexData[o++] = n.remapData.y), (this._vertexData[o++] = n.remapData.z), (this._vertexData[o++] = n.remapData.w)),
this._useInstancing ||
(this._isAnimationSheetEnabled && (0 === i ? (i = this._epsilon) : 1 === i && (i = 1 - this._epsilon), 0 === r ? (r = this._epsilon) : 1 === r && (r = 1 - this._epsilon)),
(this._vertexData[o++] = i),
(this._vertexData[o++] = r));
}),
(t.prototype._stopSubEmitters = function () {
this.activeSubSystems &&
(this.activeSubSystems.forEach(function (e) {
e.stop(!0);
}),
(this.activeSubSystems = new Array()));
}),
(t.prototype._removeFromRoot = function () {
if (this._rootParticleSystem) {
var e = this._rootParticleSystem.activeSubSystems.indexOf(this);
-1 !== e && this._rootParticleSystem.activeSubSystems.splice(e, 1), (this._rootParticleSystem = null);
}
}),
(t.prototype._update = function (e) {
var t,
n = this;
if (((this._alive = this._particles.length > 0), this.emitter.position)) {
var i = this.emitter;
this._emitterWorldMatrix = i.getWorldMatrix();
} else {
var r = this.emitter;
this._emitterWorldMatrix = a.a.Translation(r.x, r.y, r.z);
}
this.updateFunction(this._particles);
for (
var o,
c = function () {
if (l._particles.length === l._capacity) return "break";
if (((t = l._createParticle()), l._particles.push(t), l.targetStopDuration && l._lifeTimeGradients && l._lifeTimeGradients.length > 0)) {
var e = z.a.Clamp(l._actualFrame / l.targetStopDuration);
Yl.GetCurrentGradient(e, l._lifeTimeGradients, function (n, i) {
var r = n,
o = i,
a = r.getFactor(),
s = o.getFactor(),
c = (e - r.gradient) / (o.gradient - r.gradient);
t.lifeTime = z.a.Lerp(a, s, c);
});
} else t.lifeTime = z.a.RandomRange(l.minLifeTime, l.maxLifeTime);
var i = z.a.RandomRange(l.minEmitPower, l.maxEmitPower);
if (
(l.startPositionFunction ? l.startPositionFunction(l._emitterWorldMatrix, t.position, t, l.isLocal) : l.particleEmitterType.startPositionFunction(l._emitterWorldMatrix, t.position, t, l.isLocal),
l.isLocal && (t._localPosition ? t._localPosition.copyFrom(t.position) : (t._localPosition = t.position.clone()), a.e.TransformCoordinatesToRef(t._localPosition, l._emitterWorldMatrix, t.position)),
l.startDirectionFunction ? l.startDirectionFunction(l._emitterWorldMatrix, t.direction, t, l.isLocal) : l.particleEmitterType.startDirectionFunction(l._emitterWorldMatrix, t.direction, t, l.isLocal),
0 === i ? (t._initialDirection ? t._initialDirection.copyFrom(t.direction) : (t._initialDirection = t.direction.clone())) : (t._initialDirection = null),
t.direction.scaleInPlace(i),
l._sizeGradients && 0 !== l._sizeGradients.length
? ((t._currentSizeGradient = l._sizeGradients[0]),
(t._currentSize1 = t._currentSizeGradient.getFactor()),
(t.size = t._currentSize1),
l._sizeGradients.length > 1 ? (t._currentSize2 = l._sizeGradients[1].getFactor()) : (t._currentSize2 = t._currentSize1))
: (t.size = z.a.RandomRange(l.minSize, l.maxSize)),
t.scale.copyFromFloats(z.a.RandomRange(l.minScaleX, l.maxScaleX), z.a.RandomRange(l.minScaleY, l.maxScaleY)),
l._startSizeGradients && l._startSizeGradients[0] && l.targetStopDuration)
) {
var r = l._actualFrame / l.targetStopDuration;
Yl.GetCurrentGradient(r, l._startSizeGradients, function (e, i, r) {
e !== n._currentStartSizeGradient && ((n._currentStartSize1 = n._currentStartSize2), (n._currentStartSize2 = i.getFactor()), (n._currentStartSizeGradient = e));
var o = z.a.Lerp(n._currentStartSize1, n._currentStartSize2, r);
t.scale.scaleInPlace(o);
});
}
l._angularSpeedGradients && 0 !== l._angularSpeedGradients.length
? ((t._currentAngularSpeedGradient = l._angularSpeedGradients[0]),
(t.angularSpeed = t._currentAngularSpeedGradient.getFactor()),
(t._currentAngularSpeed1 = t.angularSpeed),
l._angularSpeedGradients.length > 1 ? (t._currentAngularSpeed2 = l._angularSpeedGradients[1].getFactor()) : (t._currentAngularSpeed2 = t._currentAngularSpeed1))
: (t.angularSpeed = z.a.RandomRange(l.minAngularSpeed, l.maxAngularSpeed)),
(t.angle = z.a.RandomRange(l.minInitialRotation, l.maxInitialRotation)),
l._velocityGradients &&
l._velocityGradients.length > 0 &&
((t._currentVelocityGradient = l._velocityGradients[0]),
(t._currentVelocity1 = t._currentVelocityGradient.getFactor()),
l._velocityGradients.length > 1 ? (t._currentVelocity2 = l._velocityGradients[1].getFactor()) : (t._currentVelocity2 = t._currentVelocity1)),
l._limitVelocityGradients &&
l._limitVelocityGradients.length > 0 &&
((t._currentLimitVelocityGradient = l._limitVelocityGradients[0]),
(t._currentLimitVelocity1 = t._currentLimitVelocityGradient.getFactor()),
l._limitVelocityGradients.length > 1 ? (t._currentLimitVelocity2 = l._limitVelocityGradients[1].getFactor()) : (t._currentLimitVelocity2 = t._currentLimitVelocity1)),
l._dragGradients &&
l._dragGradients.length > 0 &&
((t._currentDragGradient = l._dragGradients[0]),
(t._currentDrag1 = t._currentDragGradient.getFactor()),
l._dragGradients.length > 1 ? (t._currentDrag2 = l._dragGradients[1].getFactor()) : (t._currentDrag2 = t._currentDrag1)),
l._colorGradients && 0 !== l._colorGradients.length
? ((t._currentColorGradient = l._colorGradients[0]),
t._currentColorGradient.getColorToRef(t.color),
t._currentColor1.copyFrom(t.color),
l._colorGradients.length > 1 ? l._colorGradients[1].getColorToRef(t._currentColor2) : t._currentColor2.copyFrom(t.color))
: ((o = z.a.RandomRange(0, 1)), s.b.LerpToRef(l.color1, l.color2, o, t.color), l.colorDead.subtractToRef(t.color, l._colorDiff), l._colorDiff.scaleToRef(1 / t.lifeTime, t.colorStep)),
l._isAnimationSheetEnabled && ((t._initialStartSpriteCellID = l.startSpriteCellID), (t._initialEndSpriteCellID = l.endSpriteCellID)),
t.direction.addInPlace(l._inheritedVelocityOffset),
l._useRampGradients && (t.remapData = new a.f(0, 1, 0, 1)),
l.noiseTexture &&
(t._randomNoiseCoordinates1
? (t._randomNoiseCoordinates1.copyFromFloats(Math.random(), Math.random(), Math.random()), t._randomNoiseCoordinates2.copyFromFloats(Math.random(), Math.random(), Math.random()))
: ((t._randomNoiseCoordinates1 = new a.e(Math.random(), Math.random(), Math.random())), (t._randomNoiseCoordinates2 = new a.e(Math.random(), Math.random(), Math.random())))),
t._inheritParticleInfoToSubEmitters();
},
l = this,
u = 0;
u < e;
u++
) {
if ("break" === c()) break;
}
}),
(t._GetAttributeNamesOrOptions = function (e, t, n) {
void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1);
var i = [wn.b.PositionKind, wn.b.ColorKind, "angle", "offset", "size"];
return e && i.push("cellIndex"), t || i.push("direction"), n && i.push("remapData"), i;
}),
(t._GetEffectCreationOptions = function (e) {
void 0 === e && (e = !1);
var t = ["invView", "view", "projection", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "textureMask", "translationPivot", "eyePosition"];
return e && t.push("particlesInfos"), t;
}),
(t.prototype._getEffect = function (e) {
if (this._customEffect) return this._customEffect;
var n = [];
if (
(this._scene.clipPlane && n.push("#define CLIPPLANE"),
this._scene.clipPlane2 && n.push("#define CLIPPLANE2"),
this._scene.clipPlane3 && n.push("#define CLIPPLANE3"),
this._scene.clipPlane4 && n.push("#define CLIPPLANE4"),
this._scene.clipPlane5 && n.push("#define CLIPPLANE5"),
this._scene.clipPlane6 && n.push("#define CLIPPLANE6"),
this._isAnimationSheetEnabled && n.push("#define ANIMATESHEET"),
e === t.BLENDMODE_MULTIPLY && n.push("#define BLENDMULTIPLYMODE"),
this._useRampGradients && n.push("#define RAMPGRADIENT"),
this._isBillboardBased)
)
switch ((n.push("#define BILLBOARD"), this.billboardMode)) {
case t.BILLBOARDMODE_Y:
n.push("#define BILLBOARDY");
break;
case t.BILLBOARDMODE_STRETCHED:
n.push("#define BILLBOARDSTRETCHED");
break;
case t.BILLBOARDMODE_ALL:
}
this._imageProcessingConfiguration && (this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines), n.push(this._imageProcessingConfigurationDefines.toString()));
var i = n.join("\n");
if (this._cachedDefines !== i) {
this._cachedDefines = i;
var r = t._GetAttributeNamesOrOptions(this._isAnimationSheetEnabled, this._isBillboardBased && this.billboardMode !== t.BILLBOARDMODE_STRETCHED, this._useRampGradients),
o = t._GetEffectCreationOptions(this._isAnimationSheetEnabled),
a = ["diffuseSampler", "rampSampler"];
En.a && (En.a.PrepareUniforms(o, this._imageProcessingConfigurationDefines), En.a.PrepareSamplers(a, this._imageProcessingConfigurationDefines)),
(this._effect = this._scene.getEngine().createEffect("particles", r, o, a, i));
}
return this._effect;
}),
(t.prototype.animate = function (e) {
var t = this;
if ((void 0 === e && (e = !1), this._started)) {
if (!e) {
if (!this.isReady()) return;
if (this._currentRenderId === this._scene.getFrameId()) return;
this._currentRenderId = this._scene.getFrameId();
}
var n;
if (((this._scaledUpdateSpeed = this.updateSpeed * (e ? this.preWarmStepOffset : this._scene.getAnimationRatio())), this.manualEmitCount > -1))
(n = this.manualEmitCount), (this._newPartsExcess = 0), (this.manualEmitCount = 0);
else {
var i = this.emitRate;
if (this._emitRateGradients && this._emitRateGradients.length > 0 && this.targetStopDuration) {
var r = this._actualFrame / this.targetStopDuration;
Yl.GetCurrentGradient(r, this._emitRateGradients, function (e, n, r) {
e !== t._currentEmitRateGradient && ((t._currentEmitRate1 = t._currentEmitRate2), (t._currentEmitRate2 = n.getFactor()), (t._currentEmitRateGradient = e)),
(i = z.a.Lerp(t._currentEmitRate1, t._currentEmitRate2, r));
});
}
(n = (i * this._scaledUpdateSpeed) >> 0), (this._newPartsExcess += i * this._scaledUpdateSpeed - n);
}
if (
(this._newPartsExcess > 1 && ((n += this._newPartsExcess >> 0), (this._newPartsExcess -= this._newPartsExcess >> 0)),
(this._alive = !1),
this._stopped ? (n = 0) : ((this._actualFrame += this._scaledUpdateSpeed), this.targetStopDuration && this._actualFrame >= this.targetStopDuration && this.stop()),
this._update(n),
this._stopped && (this._alive || ((this._started = !1), this.onAnimationEnd && this.onAnimationEnd(), this.disposeOnStop && this._scene._toBeDisposed.push(this))),
!e)
) {
for (var o = 0, a = 0; a < this._particles.length; a++) {
var s = this._particles[a];
this._appendParticleVertices(o, s), (o += this._useInstancing ? 1 : 4);
}
this._vertexBuffer && this._vertexBuffer.update(this._vertexData);
}
0 === this.manualEmitCount && this.disposeOnStop && this.stop();
}
}),
(t.prototype._appendParticleVertices = function (e, t) {
this._appendParticleVertex(e++, t, 0, 0), this._useInstancing || (this._appendParticleVertex(e++, t, 1, 0), this._appendParticleVertex(e++, t, 1, 1), this._appendParticleVertex(e++, t, 0, 1));
}),
(t.prototype.rebuild = function () {
for (var e in (this._createIndexBuffer(), this._vertexBuffer && this._vertexBuffer._rebuild(), this._vertexBuffers)) this._vertexBuffers[e]._rebuild();
}),
(t.prototype.isReady = function () {
if (!(this.emitter && this._imageProcessingConfiguration.isReady() && this.particleTexture && this.particleTexture.isReady())) return !1;
if (this.blendMode !== t.BLENDMODE_MULTIPLYADD) {
if (!this._getEffect(this.blendMode).isReady()) return !1;
} else {
if (!this._getEffect(t.BLENDMODE_MULTIPLY).isReady()) return !1;
if (!this._getEffect(t.BLENDMODE_ADD).isReady()) return !1;
}
return !0;
}),
(t.prototype._render = function (e) {
var n = this._getEffect(e),
i = this._scene.getEngine();
i.enableEffect(n);
var r = this._scene.getViewMatrix();
if ((n.setTexture("diffuseSampler", this.particleTexture), n.setMatrix("view", r), n.setMatrix("projection", this._scene.getProjectionMatrix()), this._isAnimationSheetEnabled && this.particleTexture)) {
var o = this.particleTexture.getBaseSize();
n.setFloat3("particlesInfos", this.spriteCellWidth / o.width, this.spriteCellHeight / o.height, o.width / this.spriteCellWidth);
}
if ((n.setVector2("translationPivot", this.translationPivot), n.setFloat4("textureMask", this.textureMask.r, this.textureMask.g, this.textureMask.b, this.textureMask.a), this._isBillboardBased)) {
var a = this._scene.activeCamera;
n.setVector3("eyePosition", a.globalPosition);
}
if (
(this._rampGradientsTexture && n.setTexture("rampSampler", this._rampGradientsTexture),
this._scene.clipPlane || this._scene.clipPlane2 || this._scene.clipPlane3 || this._scene.clipPlane4 || this._scene.clipPlane5 || this._scene.clipPlane6)
) {
var s = r.clone();
s.invert(), n.setMatrix("invView", s), Ir.a.BindClipPlane(n, this._scene);
}
switch ((i.bindBuffers(this._vertexBuffers, this._indexBuffer, n), this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(n), e)) {
case t.BLENDMODE_ADD:
i.setAlphaMode(1);
break;
case t.BLENDMODE_ONEONE:
i.setAlphaMode(6);
break;
case t.BLENDMODE_STANDARD:
i.setAlphaMode(2);
break;
case t.BLENDMODE_MULTIPLY:
i.setAlphaMode(4);
}
return this._useInstancing ? i.drawArraysType(Fo.a.TriangleFanDrawMode, 0, 4, this._particles.length) : i.drawElementsType(Fo.a.TriangleFillMode, 0, 6 * this._particles.length), this._particles.length;
}),
(t.prototype.render = function () {
if (!this.isReady() || !this._particles.length) return 0;
var e = this._scene.getEngine();
e.setState(!1), this.forceDepthWrite && e.setDepthWrite(!0);
var n = 0;
return this.blendMode === t.BLENDMODE_MULTIPLYADD && (n = this._render(t.BLENDMODE_MULTIPLY) + this._render(t.BLENDMODE_ADD)), (n = this._render(this.blendMode)), e.unbindInstanceAttributes(), e.setAlphaMode(0), n;
}),
(t.prototype.dispose = function (e) {
if (
(void 0 === e && (e = !0),
this._vertexBuffer && (this._vertexBuffer.dispose(), (this._vertexBuffer = null)),
this._spriteBuffer && (this._spriteBuffer.dispose(), (this._spriteBuffer = null)),
this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)),
e && this.particleTexture && (this.particleTexture.dispose(), (this.particleTexture = null)),
e && this.noiseTexture && (this.noiseTexture.dispose(), (this.noiseTexture = null)),
this._rampGradientsTexture && (this._rampGradientsTexture.dispose(), (this._rampGradientsTexture = null)),
this._removeFromRoot(),
this._subEmitters && this._subEmitters.length)
) {
for (var t = 0; t < this._subEmitters.length; t++)
for (var n = 0, i = this._subEmitters[t]; n < i.length; n++) {
i[n].dispose();
}
(this._subEmitters = []), (this.subEmitters = []);
}
this._disposeEmitterOnDispose && this.emitter && this.emitter.dispose && this.emitter.dispose(!0),
(t = this._scene.particleSystems.indexOf(this)) > -1 && this._scene.particleSystems.splice(t, 1),
this._scene._activeParticleSystems.dispose(),
this.onDisposeObservable.notifyObservers(this),
this.onDisposeObservable.clear(),
this.reset();
}),
(t.prototype.clone = function (e, n) {
var i = null,
r = null;
if (null != this.customShader) {
var o = (r = this.customShader).shaderOptions.defines.length > 0 ? r.shaderOptions.defines.join("\n") : "";
i = this._scene.getEngine().createEffectForParticles(r.shaderPath.fragmentElement, r.shaderOptions.uniforms, r.shaderOptions.samplers, o);
} else this._customEffect && (i = this._customEffect);
var a = new t(e, this._capacity, this._scene, i);
((a.customShader = r),
M.a.DeepCopy(this, a, ["particles", "customShader", "noiseTexture", "particleTexture", "onDisposeObservable"]),
void 0 === n && (n = this.emitter),
(a.noiseTexture = this.noiseTexture),
(a.emitter = n),
this.particleTexture) &&
(this.particleTexture instanceof An.a
? ((a.particleTexture = this.particleTexture.clone()), a.particleTexture.getContext().drawImage(this.particleTexture.getContext().canvas, 0, 0), a.particleTexture.update())
: (a.particleTexture = new ln.a(this.particleTexture.url, this._scene)));
return (
this._colorGradients &&
this._colorGradients.forEach(function (e) {
a.addColorGradient(e.gradient, e.color1, e.color2);
}),
this._dragGradients &&
this._dragGradients.forEach(function (e) {
a.addDragGradient(e.gradient, e.factor1, e.factor2);
}),
this._angularSpeedGradients &&
this._angularSpeedGradients.forEach(function (e) {
a.addAngularSpeedGradient(e.gradient, e.factor1, e.factor2);
}),
this._emitRateGradients &&
this._emitRateGradients.forEach(function (e) {
a.addEmitRateGradient(e.gradient, e.factor1, e.factor2);
}),
this._lifeTimeGradients &&
this._lifeTimeGradients.forEach(function (e) {
a.addLifeTimeGradient(e.gradient, e.factor1, e.factor2);
}),
this._limitVelocityGradients &&
this._limitVelocityGradients.forEach(function (e) {
a.addLimitVelocityGradient(e.gradient, e.factor1, e.factor2);
}),
this._sizeGradients &&
this._sizeGradients.forEach(function (e) {
a.addSizeGradient(e.gradient, e.factor1, e.factor2);
}),
this._startSizeGradients &&
this._startSizeGradients.forEach(function (e) {
a.addStartSizeGradient(e.gradient, e.factor1, e.factor2);
}),
this._velocityGradients &&
this._velocityGradients.forEach(function (e) {
a.addVelocityGradient(e.gradient, e.factor1, e.factor2);
}),
this._rampGradients &&
this._rampGradients.forEach(function (e) {
a.addRampGradient(e.gradient, e.color);
}),
this._colorRemapGradients &&
this._colorRemapGradients.forEach(function (e) {
a.addColorRemapGradient(e.gradient, e.factor1, e.factor2);
}),
this._alphaRemapGradients &&
this._alphaRemapGradients.forEach(function (e) {
a.addAlphaRemapGradient(e.gradient, e.factor1, e.factor2);
}),
this.preventAutoStart || a.start(),
a
);
}),
(t.prototype.serialize = function () {
var e = {};
if ((t._Serialize(e, this), (e.textureMask = this.textureMask.asArray()), (e.customShader = this.customShader), (e.preventAutoStart = this.preventAutoStart), this.subEmitters)) {
(e.subEmitters = []), this._subEmitters || this._prepareSubEmitterInternalArray();
for (var n = 0, i = this._subEmitters; n < i.length; n++) {
for (var r = [], o = 0, a = i[n]; o < a.length; o++) {
var s = a[o];
r.push(s.serialize());
}
e.subEmitters.push(r);
}
}
return e;
}),
(t._Serialize = function (e, t) {
if (((e.name = t.name), (e.id = t.id), (e.capacity = t.getCapacity()), t.emitter.position)) {
var n = t.emitter;
e.emitterId = n.id;
} else {
var i = t.emitter;
e.emitter = i.asArray();
}
t.particleEmitterType && (e.particleEmitterType = t.particleEmitterType.serialize()),
t.particleTexture && ((e.textureName = t.particleTexture.name), (e.invertY = t.particleTexture._invertY)),
(e.isLocal = t.isLocal),
He.a.AppendSerializedAnimations(t, e),
(e.beginAnimationOnStart = t.beginAnimationOnStart),
(e.beginAnimationFrom = t.beginAnimationFrom),
(e.beginAnimationTo = t.beginAnimationTo),
(e.beginAnimationLoop = t.beginAnimationLoop),
(e.startDelay = t.startDelay),
(e.renderingGroupId = t.renderingGroupId),
(e.isBillboardBased = t.isBillboardBased),
(e.billboardMode = t.billboardMode),
(e.minAngularSpeed = t.minAngularSpeed),
(e.maxAngularSpeed = t.maxAngularSpeed),
(e.minSize = t.minSize),
(e.maxSize = t.maxSize),
(e.minScaleX = t.minScaleX),
(e.maxScaleX = t.maxScaleX),
(e.minScaleY = t.minScaleY),
(e.maxScaleY = t.maxScaleY),
(e.minEmitPower = t.minEmitPower),
(e.maxEmitPower = t.maxEmitPower),
(e.minLifeTime = t.minLifeTime),
(e.maxLifeTime = t.maxLifeTime),
(e.emitRate = t.emitRate),
(e.gravity = t.gravity.asArray()),
(e.noiseStrength = t.noiseStrength.asArray()),
(e.color1 = t.color1.asArray()),
(e.color2 = t.color2.asArray()),
(e.colorDead = t.colorDead.asArray()),
(e.updateSpeed = t.updateSpeed),
(e.targetStopDuration = t.targetStopDuration),
(e.blendMode = t.blendMode),
(e.preWarmCycles = t.preWarmCycles),
(e.preWarmStepOffset = t.preWarmStepOffset),
(e.minInitialRotation = t.minInitialRotation),
(e.maxInitialRotation = t.maxInitialRotation),
(e.startSpriteCellID = t.startSpriteCellID),
(e.endSpriteCellID = t.endSpriteCellID),
(e.spriteCellChangeSpeed = t.spriteCellChangeSpeed),
(e.spriteCellWidth = t.spriteCellWidth),
(e.spriteCellHeight = t.spriteCellHeight),
(e.spriteRandomStartCell = t.spriteRandomStartCell),
(e.isAnimationSheetEnabled = t.isAnimationSheetEnabled);
var r = t.getColorGradients();
if (r) {
e.colorGradients = [];
for (var o = 0, a = r; o < a.length; o++) {
var s = a[o],
c = { gradient: s.gradient, color1: s.color1.asArray() };
s.color2 && (c.color2 = s.color2.asArray()), e.colorGradients.push(c);
}
}
var l = t.getRampGradients();
if (l) {
e.rampGradients = [];
for (var u = 0, h = l; u < h.length; u++) {
var d = h[u];
c = { gradient: d.gradient, color: d.color.asArray() };
e.rampGradients.push(c);
}
e.useRampGradients = t.useRampGradients;
}
var p = t.getColorRemapGradients();
if (p) {
e.colorRemapGradients = [];
for (var f = 0, m = p; f < m.length; f++) {
var g = m[f];
c = { gradient: g.gradient, factor1: g.factor1 };
void 0 !== g.factor2 && (c.factor2 = g.factor2), e.colorRemapGradients.push(c);
}
}
var b = t.getAlphaRemapGradients();
if (b) {
e.alphaRemapGradients = [];
for (var _ = 0, v = b; _ < v.length; _++) {
var y = v[_];
c = { gradient: y.gradient, factor1: y.factor1 };
void 0 !== y.factor2 && (c.factor2 = y.factor2), e.alphaRemapGradients.push(c);
}
}
var C = t.getSizeGradients();
if (C) {
e.sizeGradients = [];
for (var P = 0, x = C; P < x.length; P++) {
var T = x[P];
c = { gradient: T.gradient, factor1: T.factor1 };
void 0 !== T.factor2 && (c.factor2 = T.factor2), e.sizeGradients.push(c);
}
}
var S = t.getAngularSpeedGradients();
if (S) {
e.angularSpeedGradients = [];
for (var O = 0, E = S; O < E.length; O++) {
var M = E[O];
c = { gradient: M.gradient, factor1: M.factor1 };
void 0 !== M.factor2 && (c.factor2 = M.factor2), e.angularSpeedGradients.push(c);
}
}
var A = t.getVelocityGradients();
if (A) {
e.velocityGradients = [];
for (var I = 0, D = A; I < D.length; I++) {
var R = D[I];
c = { gradient: R.gradient, factor1: R.factor1 };
void 0 !== R.factor2 && (c.factor2 = R.factor2), e.velocityGradients.push(c);
}
}
var w = t.getDragGradients();
if (w) {
e.dragGradients = [];
for (var L = 0, F = w; L < F.length; L++) {
var N = F[L];
c = { gradient: N.gradient, factor1: N.factor1 };
void 0 !== N.factor2 && (c.factor2 = N.factor2), e.dragGradients.push(c);
}
}
var k = t.getEmitRateGradients();
if (k) {
e.emitRateGradients = [];
for (var z = 0, j = k; z < j.length; z++) {
var B = j[z];
c = { gradient: B.gradient, factor1: B.factor1 };
void 0 !== B.factor2 && (c.factor2 = B.factor2), e.emitRateGradients.push(c);
}
}
var V = t.getStartSizeGradients();
if (V) {
e.startSizeGradients = [];
for (var G = 0, U = V; G < U.length; G++) {
var H = U[G];
c = { gradient: H.gradient, factor1: H.factor1 };
void 0 !== H.factor2 && (c.factor2 = H.factor2), e.startSizeGradients.push(c);
}
}
var W = t.getLifeTimeGradients();
if (W) {
e.lifeTimeGradients = [];
for (var X = 0, Y = W; X < Y.length; X++) {
var K = Y[X];
c = { gradient: K.gradient, factor1: K.factor1 };
void 0 !== K.factor2 && (c.factor2 = K.factor2), e.lifeTimeGradients.push(c);
}
}
var Z = t.getLimitVelocityGradients();
if (Z) {
e.limitVelocityGradients = [];
for (var q = 0, Q = Z; q < Q.length; q++) {
var J = Q[q];
c = { gradient: J.gradient, factor1: J.factor1 };
void 0 !== J.factor2 && (c.factor2 = J.factor2), e.limitVelocityGradients.push(c);
}
e.limitVelocityDamping = t.limitVelocityDamping;
}
t.noiseTexture && (e.noiseTexture = t.noiseTexture.serialize());
}),
(t._Parse = function (e, t, n, i) {
if (
(e.textureName && ((t.particleTexture = new ln.a(i + e.textureName, n, !1, void 0 === e.invertY || e.invertY)), (t.particleTexture.name = e.textureName)),
e.emitterId || 0 === e.emitterId || void 0 !== e.emitter ? (e.emitterId ? (t.emitter = n.getLastMeshByID(e.emitterId)) : (t.emitter = a.e.FromArray(e.emitter))) : (t.emitter = a.e.Zero()),
(t.isLocal = !!e.isLocal),
void 0 !== e.renderingGroupId && (t.renderingGroupId = e.renderingGroupId),
void 0 !== e.isBillboardBased && (t.isBillboardBased = e.isBillboardBased),
void 0 !== e.billboardMode && (t.billboardMode = e.billboardMode),
e.animations)
) {
for (var r = 0; r < e.animations.length; r++) {
var o = e.animations[r],
l = c.a.GetClass("BABYLON.Animation");
l && t.animations.push(l.Parse(o));
}
(t.beginAnimationOnStart = e.beginAnimationOnStart), (t.beginAnimationFrom = e.beginAnimationFrom), (t.beginAnimationTo = e.beginAnimationTo), (t.beginAnimationLoop = e.beginAnimationLoop);
}
if (
(e.autoAnimate && n.beginAnimation(t, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1),
(t.startDelay = 0 | e.startDelay),
(t.minAngularSpeed = e.minAngularSpeed),
(t.maxAngularSpeed = e.maxAngularSpeed),
(t.minSize = e.minSize),
(t.maxSize = e.maxSize),
e.minScaleX && ((t.minScaleX = e.minScaleX), (t.maxScaleX = e.maxScaleX), (t.minScaleY = e.minScaleY), (t.maxScaleY = e.maxScaleY)),
void 0 !== e.preWarmCycles && ((t.preWarmCycles = e.preWarmCycles), (t.preWarmStepOffset = e.preWarmStepOffset)),
void 0 !== e.minInitialRotation && ((t.minInitialRotation = e.minInitialRotation), (t.maxInitialRotation = e.maxInitialRotation)),
(t.minLifeTime = e.minLifeTime),
(t.maxLifeTime = e.maxLifeTime),
(t.minEmitPower = e.minEmitPower),
(t.maxEmitPower = e.maxEmitPower),
(t.emitRate = e.emitRate),
(t.gravity = a.e.FromArray(e.gravity)),
e.noiseStrength && (t.noiseStrength = a.e.FromArray(e.noiseStrength)),
(t.color1 = s.b.FromArray(e.color1)),
(t.color2 = s.b.FromArray(e.color2)),
(t.colorDead = s.b.FromArray(e.colorDead)),
(t.updateSpeed = e.updateSpeed),
(t.targetStopDuration = e.targetStopDuration),
(t.blendMode = e.blendMode),
e.colorGradients)
)
for (var u = 0, h = e.colorGradients; u < h.length; u++) {
var d = h[u];
t.addColorGradient(d.gradient, s.b.FromArray(d.color1), d.color2 ? s.b.FromArray(d.color2) : void 0);
}
if (e.rampGradients) {
for (var p = 0, f = e.rampGradients; p < f.length; p++) {
var m = f[p];
t.addRampGradient(m.gradient, s.a.FromArray(m.color));
}
t.useRampGradients = e.useRampGradients;
}
if (e.colorRemapGradients)
for (var g = 0, b = e.colorRemapGradients; g < b.length; g++) {
var _ = b[g];
t.addColorRemapGradient(_.gradient, void 0 !== _.factor1 ? _.factor1 : _.factor, _.factor2);
}
if (e.alphaRemapGradients)
for (var v = 0, y = e.alphaRemapGradients; v < y.length; v++) {
var C = y[v];
t.addAlphaRemapGradient(C.gradient, void 0 !== C.factor1 ? C.factor1 : C.factor, C.factor2);
}
if (e.sizeGradients)
for (var P = 0, x = e.sizeGradients; P < x.length; P++) {
var T = x[P];
t.addSizeGradient(T.gradient, void 0 !== T.factor1 ? T.factor1 : T.factor, T.factor2);
}
if (e.angularSpeedGradients)
for (var S = 0, O = e.angularSpeedGradients; S < O.length; S++) {
var E = O[S];
t.addAngularSpeedGradient(E.gradient, void 0 !== E.factor1 ? E.factor1 : E.factor, E.factor2);
}
if (e.velocityGradients)
for (var M = 0, A = e.velocityGradients; M < A.length; M++) {
var I = A[M];
t.addVelocityGradient(I.gradient, void 0 !== I.factor1 ? I.factor1 : I.factor, I.factor2);
}
if (e.dragGradients)
for (var D = 0, R = e.dragGradients; D < R.length; D++) {
var w = R[D];
t.addDragGradient(w.gradient, void 0 !== w.factor1 ? w.factor1 : w.factor, w.factor2);
}
if (e.emitRateGradients)
for (var L = 0, F = e.emitRateGradients; L < F.length; L++) {
var N = F[L];
t.addEmitRateGradient(N.gradient, void 0 !== N.factor1 ? N.factor1 : N.factor, N.factor2);
}
if (e.startSizeGradients)
for (var k = 0, z = e.startSizeGradients; k < z.length; k++) {
var j = z[k];
t.addStartSizeGradient(j.gradient, void 0 !== j.factor1 ? j.factor1 : j.factor, j.factor2);
}
if (e.lifeTimeGradients)
for (var B = 0, V = e.lifeTimeGradients; B < V.length; B++) {
var G = V[B];
t.addLifeTimeGradient(G.gradient, void 0 !== G.factor1 ? G.factor1 : G.factor, G.factor2);
}
if (e.limitVelocityGradients) {
for (var U = 0, H = e.limitVelocityGradients; U < H.length; U++) {
var W = H[U];
t.addLimitVelocityGradient(W.gradient, void 0 !== W.factor1 ? W.factor1 : W.factor, W.factor2);
}
t.limitVelocityDamping = e.limitVelocityDamping;
}
var X;
if ((e.noiseTexture && (t.noiseTexture = cs.a.Parse(e.noiseTexture, n, i)), e.particleEmitterType)) {
switch (e.particleEmitterType.type) {
case "SphereParticleEmitter":
X = new jl();
break;
case "SphereDirectedParticleEmitter":
X = new Bl();
break;
case "ConeEmitter":
case "ConeParticleEmitter":
X = new Ll();
break;
case "CylinderParticleEmitter":
X = new Fl();
break;
case "HemisphericParticleEmitter":
X = new kl();
break;
case "BoxEmitter":
case "BoxParticleEmitter":
default:
X = new wl();
}
X.parse(e.particleEmitterType, n);
} else (X = new wl()).parse(e, n);
(t.particleEmitterType = X),
(t.startSpriteCellID = e.startSpriteCellID),
(t.endSpriteCellID = e.endSpriteCellID),
(t.spriteCellWidth = e.spriteCellWidth),
(t.spriteCellHeight = e.spriteCellHeight),
(t.spriteCellChangeSpeed = e.spriteCellChangeSpeed),
(t.spriteRandomStartCell = e.spriteRandomStartCell);
}),
(t.Parse = function (e, n, i, r) {
void 0 === r && (r = !1);
var o = e.name,
a = null,
c = null;
if (e.customShader) {
var l = (c = e.customShader).shaderOptions.defines.length > 0 ? c.shaderOptions.defines.join("\n") : "";
a = n.getEngine().createEffectForParticles(c.shaderPath.fragmentElement, c.shaderOptions.uniforms, c.shaderOptions.samplers, l);
}
var u = new t(o, e.capacity, n, a, e.isAnimationSheetEnabled);
if (((u.customShader = c), e.id && (u.id = e.id), e.subEmitters)) {
u.subEmitters = [];
for (var h = 0, d = e.subEmitters; h < d.length; h++) {
for (var p = [], f = 0, m = d[h]; f < m.length; f++) {
var g = m[f];
p.push(Zl.Parse(g, n, i));
}
u.subEmitters.push(p);
}
}
return t._Parse(e, u, n, i), (u.textureMask = s.b.FromArray(e.textureMask)), e.preventAutoStart && (u.preventAutoStart = e.preventAutoStart), r || u.preventAutoStart || u.start(), u;
}),
(t.BILLBOARDMODE_Y = 2),
(t.BILLBOARDMODE_ALL = 7),
(t.BILLBOARDMODE_STRETCHED = 8),
t
);
})(Ul);
Zl._ParseParticleSystem = Jl.Parse;
Xt.a.ShadersStore.gpuUpdateParticlesPixelShader = "#version 300 es\nvoid main() {\ndiscard;\n}\n";
var $l =
"#version 300 es\n#define PI 3.14159\nuniform float currentCount;\nuniform float timeDelta;\nuniform float stopFactor;\nuniform mat4 emitterWM;\nuniform vec2 lifeTime;\nuniform vec2 emitPower;\nuniform vec2 sizeRange;\nuniform vec4 scaleRange;\n#ifndef COLORGRADIENTS\nuniform vec4 color1;\nuniform vec4 color2;\n#endif\nuniform vec3 gravity;\nuniform sampler2D randomSampler;\nuniform sampler2D randomSampler2;\nuniform vec4 angleRange;\n#ifdef BOXEMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\nuniform vec3 minEmitBox;\nuniform vec3 maxEmitBox;\n#endif\n#ifdef POINTEMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\n#endif\n#ifdef HEMISPHERICEMITTER\nuniform float radius;\nuniform float radiusRange;\nuniform float directionRandomizer;\n#endif\n#ifdef SPHEREEMITTER\nuniform float radius;\nuniform float radiusRange;\n#ifdef DIRECTEDSPHEREEMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nuniform float radius;\nuniform float height;\nuniform float radiusRange;\n#ifdef DIRECTEDCYLINDEREMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CONEEMITTER\nuniform vec2 radius;\nuniform float coneAngle;\nuniform vec2 height;\nuniform float directionRandomizer;\n#endif\n\nin vec3 position;\n#ifdef CUSTOMEMITTER\nin vec3 initialPosition;\n#endif\nin float age;\nin float life;\nin vec4 seed;\nin vec3 size;\n#ifndef COLORGRADIENTS\nin vec4 color;\n#endif\nin vec3 direction;\n#ifndef BILLBOARD\nin vec3 initialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nin float angle;\n#else\nin vec2 angle;\n#endif\n#ifdef ANIMATESHEET\nin float cellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nin float cellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nin vec3 noiseCoordinates1;\nin vec3 noiseCoordinates2;\n#endif\n\nout vec3 outPosition;\n#ifdef CUSTOMEMITTER\nout vec3 outInitialPosition;\n#endif\nout float outAge;\nout float outLife;\nout vec4 outSeed;\nout vec3 outSize;\n#ifndef COLORGRADIENTS\nout vec4 outColor;\n#endif\nout vec3 outDirection;\n#ifndef BILLBOARD\nout vec3 outInitialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nout float outAngle;\n#else\nout vec2 outAngle;\n#endif\n#ifdef ANIMATESHEET\nout float outCellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nout float outCellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nout vec3 outNoiseCoordinates1;\nout vec3 outNoiseCoordinates2;\n#endif\n#ifdef SIZEGRADIENTS\nuniform sampler2D sizeGradientSampler;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nuniform sampler2D angularSpeedGradientSampler;\n#endif\n#ifdef VELOCITYGRADIENTS\nuniform sampler2D velocityGradientSampler;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\nuniform sampler2D limitVelocityGradientSampler;\nuniform float limitVelocityDamping;\n#endif\n#ifdef DRAGGRADIENTS\nuniform sampler2D dragGradientSampler;\n#endif\n#ifdef NOISE\nuniform vec3 noiseStrength;\nuniform sampler2D noiseSampler;\n#endif\n#ifdef ANIMATESHEET\nuniform vec3 cellInfos;\n#endif\nvec3 getRandomVec3(float offset) {\nreturn texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;\n}\nvec4 getRandomVec4(float offset) {\nreturn texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));\n}\nvoid main() {\nfloat newAge=age+timeDelta;\n\nif (newAge>=life && stopFactor != 0.) {\nvec3 newPosition;\nvec3 newDirection;\n\nvec4 randoms=getRandomVec4(seed.x);\n\noutLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;\noutAge=newAge-life;\n\noutSeed=seed;\n\n#ifdef SIZEGRADIENTS\noutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\n#else\noutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\n#endif\noutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;\noutSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a;\n#ifndef COLORGRADIENTS\n\noutColor=color1+(color2-color1)*randoms.b;\n#endif\n\n#ifndef ANGULARSPEEDGRADIENTS\noutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;\noutAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#else\noutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#endif\n\n#ifdef POINTEMITTER\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\nnewPosition=vec3(0,0,0);\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#elif defined(BOXEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\nnewPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#elif defined(HEMISPHERICEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\n\nfloat phi=2.0*PI*randoms2.x;\nfloat theta=acos(2.0*randoms2.y-1.0);\nfloat randX=cos(phi)*sin(theta);\nfloat randY=cos(theta);\nfloat randZ=sin(phi)*sin(theta);\nnewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);\nnewDirection=newPosition+directionRandomizer*randoms3;\n#elif defined(SPHEREEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\n\nfloat phi=2.0*PI*randoms2.x;\nfloat theta=acos(2.0*randoms2.y-1.0);\nfloat randX=cos(phi)*sin(theta);\nfloat randY=cos(theta);\nfloat randZ=sin(phi)*sin(theta);\nnewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\n\nnewDirection=newPosition+directionRandomizer*randoms3;\n#endif\n#elif defined(CYLINDEREMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\n\nfloat yPos=(randoms2.x-0.5)*height;\nfloat angle=randoms2.y*PI*2.;\nfloat inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));\nfloat positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));\nfloat xPos=positionRadius*cos(angle);\nfloat zPos=positionRadius*sin(angle);\nnewPosition=vec3(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\n\nangle=angle+((randoms3.x-0.5)*PI);\nnewDirection=vec3(cos(angle),randoms3.y-0.5,sin(angle));\nnewDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nfloat s=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nfloat h=0.0001;\n#else\nfloat h=randoms2.y*height.y;\n\nh=1.-h*h;\n#endif\nfloat lRadius=radius.x-radius.x*randoms2.z*radius.y;\nlRadius=lRadius*h;\nfloat randX=lRadius*sin(s);\nfloat randZ=lRadius*cos(s);\nfloat randY=h*height.x;\nnewPosition=vec3(randX,randY,randZ);\n\nif (abs(cos(coneAngle)) == 1.0) {\nnewDirection=vec3(0.,1.0,0.);\n} else {\nvec3 randoms3=getRandomVec3(seed.z);\nnewDirection=normalize(newPosition+directionRandomizer*randoms3);\n}\n#elif defined(CUSTOMEMITTER)\nnewPosition=initialPosition;\noutInitialPosition=initialPosition;\n#else\n\nnewPosition=vec3(0.,0.,0.);\n\nnewDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\n#endif\nfloat power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\noutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#ifndef BILLBOARD\noutInitialDirection=direction;\n#endif\n#else\nvec3 initial=(emitterWM*vec4(newDirection,0.)).xyz;\noutDirection=initial*power;\n#ifndef BILLBOARD\noutInitialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET\noutCellIndex=cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=randoms.a*outLife;\n#endif\n#endif\n#ifdef NOISE\noutNoiseCoordinates1=noiseCoordinates1;\noutNoiseCoordinates2=noiseCoordinates2;\n#endif\n} else {\nfloat directionScale=timeDelta;\noutAge=newAge;\nfloat ageGradient=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#if defined(CUSTOMEMITTER)\noutPosition=position+(direction-position)*ageGradient;\noutInitialPosition=initialPosition;\n#else\noutPosition=position+direction*directionScale;\n#endif\noutLife=life;\noutSeed=seed;\n#ifndef COLORGRADIENTS\noutColor=color;\n#endif\n#ifdef SIZEGRADIENTS\noutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;\noutSize.yz=size.yz;\n#else\noutSize=size;\n#endif\n#ifndef BILLBOARD\noutInitialDirection=initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#else\nvec3 updatedDirection=direction+gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nfloat limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;\nfloat currentVelocity=length(updatedDirection);\nif (currentVelocity>limitVelocity) {\nupdatedDirection=updatedDirection*limitVelocityDamping;\n}\n#endif\noutDirection=updatedDirection;\n#ifdef NOISE\nvec3 localPosition=outPosition-emitterWM[3].xyz;\nfloat fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;\nfloat fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;\nfloat fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;\nvec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;\noutDirection=outDirection+force*timeDelta;\noutNoiseCoordinates1=noiseCoordinates1;\noutNoiseCoordinates2=noiseCoordinates2;\n#endif\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nfloat angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;\noutAngle=angle+angularSpeed*timeDelta;\n#else\noutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET\nfloat offsetAge=outAge;\nfloat dist=cellInfos.y-cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=cellStartOffset;\noffsetAge+=cellStartOffset;\n#else\nfloat cellStartOffset=0.;\n#endif\nfloat ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);\noutCellIndex=float(int(cellInfos.x+ratio*dist));\n#endif\n}\n}";
Xt.a.ShadersStore.gpuUpdateParticlesVertexShader = $l;
var eu =
"#ifdef CLIPPLANE\nin float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nin float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nin float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nin float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nin float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nin float fClipDistance6;\n#endif";
Xt.a.IncludesShadersStore.clipPlaneFragmentDeclaration2 = eu;
var tu =
"#version 300 es\nuniform sampler2D textureSampler;\nin vec2 vUV;\nin vec4 vColor;\nout vec4 outFragColor;\n#include\n#include\n#include\n#include\nvoid main() {\n#include\nvec4 textureColor=texture(textureSampler,vUV);\noutFragColor=textureColor*vColor;\n#ifdef BLENDMULTIPLYMODE\nfloat alpha=vColor.a*textureColor.a;\noutFragColor.rgb=outFragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\n#endif\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\noutFragColor.rgb=toLinearSpace(outFragColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\noutFragColor.rgb=toLinearSpace(outFragColor.rgb);\noutFragColor=applyImageProcessing(outFragColor);\n#endif\n#endif\n}\n";
Xt.a.ShadersStore.gpuRenderParticlesPixelShader = tu;
var nu =
"#ifdef CLIPPLANE\nuniform vec4 vClipPlane;\nout float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;\nout float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;\nout float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;\nout float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;\nout float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;\nout float fClipDistance6;\n#endif";
Xt.a.IncludesShadersStore.clipPlaneVertexDeclaration2 = nu;
var iu =
"#version 300 es\nuniform mat4 view;\nuniform mat4 projection;\nuniform vec2 translationPivot;\nuniform vec3 worldOffset;\n\nin vec3 position;\nin float age;\nin float life;\nin vec3 size;\n#ifndef BILLBOARD\nin vec3 initialDirection;\n#endif\n#ifdef BILLBOARDSTRETCHED\nin vec3 direction;\n#endif\nin float angle;\n#ifdef ANIMATESHEET\nin float cellIndex;\n#endif\nin vec2 offset;\nin vec2 uv;\nout vec2 vUV;\nout vec4 vColor;\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nuniform mat4 invView;\n#endif\n#include\n#ifdef COLORGRADIENTS\nuniform sampler2D colorGradientSampler;\n#else\nuniform vec4 colorDead;\nin vec4 color;\n#endif\n#ifdef ANIMATESHEET\nuniform vec3 sheetInfos;\n#endif\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\nvec3 zaxis=normalize(cross(yaxis,xaxis));\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn (position+worldOffset)+alignedCorner;\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\nvec3 normalizedToCamera=normalize(toCamera);\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn (position+worldOffset)+alignedCorner;\n}\n#endif\nvoid main() {\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/sheetInfos.z);\nfloat columnOffset=cellIndex-rowOffset*sheetInfos.z;\nvec2 uvScale=sheetInfos.xy;\nvec2 uvOffset=vec2(uv.x ,1.0-uv.y);\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=uv;\n#endif\nfloat ratio=age/life;\n#ifdef COLORGRADIENTS\nvColor=texture(colorGradientSampler,vec2(ratio,0));\n#else\nvColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\n#endif\nvec2 cornerPos=(offset-translationPivot)*size.yz*size.x+translationPivot;\n#ifdef BILLBOARD\nvec4 rotatedCorner;\nrotatedCorner.w=0.;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=(position+worldOffset)-eyePosition;\nyaxis.y=0.;\nvec3 worldPos=rotate(normalize(yaxis),rotatedCorner.xyz);\nvec4 viewPosition=(view*vec4(worldPos,1.0));\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 toCamera=(position+worldOffset)-eyePosition;\nvec3 worldPos=rotateAlign(toCamera,rotatedCorner.xyz);\nvec4 viewPosition=(view*vec4(worldPos,1.0));\n#else\n\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nvec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\n#endif\n#else\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=0.;\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nvec3 yaxis=normalize(initialDirection);\nvec3 worldPos=rotate(yaxis,rotatedCorner);\n\nvec4 viewPosition=view*vec4(worldPos,1.0);\n#endif\ngl_Position=projection*viewPosition;\n\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nvec4 worldPos=invView*viewPosition;\n#endif\n#include\n}";
Xt.a.ShadersStore.gpuRenderParticlesVertexShader = iu;
var ru = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = !1);
var a = e.call(this, t) || this;
(a.layerMask = 268435455),
(a._accumulatedCount = 0),
(a._targetIndex = 0),
(a._currentRenderId = -1),
(a._started = !1),
(a._stopped = !1),
(a._timeDelta = 0),
(a._actualFrame = 0),
(a._rawTextureWidth = 256),
(a.onDisposeObservable = new o.c()),
(a.forceDepthWrite = !1),
(a._preWarmDone = !1),
(a._scene = i || E.a.LastCreatedScene),
a._attachImageProcessingConfiguration(null),
(a._engine = a._scene.getEngine()),
n.randomTextureSize || delete n.randomTextureSize;
var s = Object(h.a)({ capacity: 5e4, randomTextureSize: a._engine.getCaps().maxTextureSize }, n),
c = n;
isFinite(c) && (s.capacity = c),
(a._capacity = s.capacity),
(a._activeCount = s.capacity),
(a._currentActiveCount = 0),
(a._isAnimationSheetEnabled = r),
a._scene.particleSystems.push(a),
(a._updateEffectOptions = {
attributes: ["position", "initialPosition", "age", "life", "seed", "size", "color", "direction", "initialDirection", "angle", "cellIndex", "cellStartOffset", "noiseCoordinates1", "noiseCoordinates2"],
uniformsNames: [
"currentCount",
"timeDelta",
"emitterWM",
"lifeTime",
"color1",
"color2",
"sizeRange",
"scaleRange",
"gravity",
"emitPower",
"direction1",
"direction2",
"minEmitBox",
"maxEmitBox",
"radius",
"directionRandomizer",
"height",
"coneAngle",
"stopFactor",
"angleRange",
"radiusRange",
"cellInfos",
"noiseStrength",
"limitVelocityDamping",
],
uniformBuffersNames: [],
samplers: ["randomSampler", "randomSampler2", "sizeGradientSampler", "angularSpeedGradientSampler", "velocityGradientSampler", "limitVelocityGradientSampler", "noiseSampler", "dragGradientSampler"],
defines: "",
fallbacks: null,
onCompiled: null,
onError: null,
indexParameters: null,
maxSimultaneousLights: 0,
transformFeedbackVaryings: [],
}),
(a.particleEmitterType = new wl());
for (var l = Math.min(a._engine.getCaps().maxTextureSize, s.randomTextureSize), u = [], d = 0; d < l; ++d) u.push(Math.random()), u.push(Math.random()), u.push(Math.random()), u.push(Math.random());
(a._randomTexture = new Cs.a(new Float32Array(u), l, 1, 5, a._scene, !1, !1, 1, 1)), (a._randomTexture.wrapU = ln.a.WRAP_ADDRESSMODE), (a._randomTexture.wrapV = ln.a.WRAP_ADDRESSMODE), (u = []);
for (d = 0; d < l; ++d) u.push(Math.random()), u.push(Math.random()), u.push(Math.random()), u.push(Math.random());
return (
(a._randomTexture2 = new Cs.a(new Float32Array(u), l, 1, 5, a._scene, !1, !1, 1, 1)),
(a._randomTexture2.wrapU = ln.a.WRAP_ADDRESSMODE),
(a._randomTexture2.wrapV = ln.a.WRAP_ADDRESSMODE),
(a._randomTextureSize = l),
a
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t, "IsSupported", {
get: function () {
return !!E.a.LastCreatedEngine && E.a.LastCreatedEngine.webGLVersion > 1;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getCapacity = function () {
return this._capacity;
}),
Object.defineProperty(t.prototype, "activeParticleCount", {
get: function () {
return this._activeCount;
},
set: function (e) {
this._activeCount = Math.min(e, this._capacity);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "isLocal", {
get: function () {
return !1;
},
set: function (e) {},
enumerable: !0,
configurable: !0,
}),
(t.prototype.isReady = function () {
return this._updateEffect
? !!(this.emitter && this._updateEffect.isReady() && this._imageProcessingConfiguration.isReady() && this._renderEffect.isReady() && this.particleTexture && this.particleTexture.isReady())
: (this._recreateUpdateEffect(), this._recreateRenderEffect(), !1);
}),
(t.prototype.isStarted = function () {
return this._started;
}),
(t.prototype.start = function (e) {
var t = this;
if ((void 0 === e && (e = this.startDelay), !this.targetStopDuration && this._hasTargetStopDurationDependantGradient()))
throw "Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set";
e
? setTimeout(function () {
t.start(0);
}, e)
: ((this._started = !0),
(this._stopped = !1),
(this._preWarmDone = !1),
this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this.getScene().beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop));
}),
(t.prototype.stop = function () {
this._stopped = !0;
}),
(t.prototype.reset = function () {
this._releaseBuffers(), this._releaseVAOs(), (this._currentActiveCount = 0), (this._targetIndex = 0);
}),
(t.prototype.getClassName = function () {
return "GPUParticleSystem";
}),
(t.prototype._removeGradientAndTexture = function (t, n, i) {
return e.prototype._removeGradientAndTexture.call(this, t, n, i), this._releaseBuffers(), this;
}),
(t.prototype.addColorGradient = function (e, t, n) {
this._colorGradients || (this._colorGradients = []);
var i = new Hl();
return (
(i.gradient = e),
(i.color1 = t),
this._colorGradients.push(i),
this._colorGradients.sort(function (e, t) {
return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0;
}),
this._colorGradientsTexture && (this._colorGradientsTexture.dispose(), (this._colorGradientsTexture = null)),
this._releaseBuffers(),
this
);
}),
(t.prototype.removeColorGradient = function (e) {
return this._removeGradientAndTexture(e, this._colorGradients, this._colorGradientsTexture), (this._colorGradientsTexture = null), this;
}),
(t.prototype._addFactorGradient = function (e, t, n) {
var i = new Xl();
(i.gradient = t),
(i.factor1 = n),
e.push(i),
e.sort(function (e, t) {
return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0;
}),
this._releaseBuffers();
}),
(t.prototype.addSizeGradient = function (e, t) {
return (
this._sizeGradients || (this._sizeGradients = []),
this._addFactorGradient(this._sizeGradients, e, t),
this._sizeGradientsTexture && (this._sizeGradientsTexture.dispose(), (this._sizeGradientsTexture = null)),
this._releaseBuffers(),
this
);
}),
(t.prototype.removeSizeGradient = function (e) {
return this._removeGradientAndTexture(e, this._sizeGradients, this._sizeGradientsTexture), (this._sizeGradientsTexture = null), this;
}),
(t.prototype.addAngularSpeedGradient = function (e, t) {
return (
this._angularSpeedGradients || (this._angularSpeedGradients = []),
this._addFactorGradient(this._angularSpeedGradients, e, t),
this._angularSpeedGradientsTexture && (this._angularSpeedGradientsTexture.dispose(), (this._angularSpeedGradientsTexture = null)),
this._releaseBuffers(),
this
);
}),
(t.prototype.removeAngularSpeedGradient = function (e) {
return this._removeGradientAndTexture(e, this._angularSpeedGradients, this._angularSpeedGradientsTexture), (this._angularSpeedGradientsTexture = null), this;
}),
(t.prototype.addVelocityGradient = function (e, t) {
return (
this._velocityGradients || (this._velocityGradients = []),
this._addFactorGradient(this._velocityGradients, e, t),
this._velocityGradientsTexture && (this._velocityGradientsTexture.dispose(), (this._velocityGradientsTexture = null)),
this._releaseBuffers(),
this
);
}),
(t.prototype.removeVelocityGradient = function (e) {
return this._removeGradientAndTexture(e, this._velocityGradients, this._velocityGradientsTexture), (this._velocityGradientsTexture = null), this;
}),
(t.prototype.addLimitVelocityGradient = function (e, t) {
return (
this._limitVelocityGradients || (this._limitVelocityGradients = []),
this._addFactorGradient(this._limitVelocityGradients, e, t),
this._limitVelocityGradientsTexture && (this._limitVelocityGradientsTexture.dispose(), (this._limitVelocityGradientsTexture = null)),
this._releaseBuffers(),
this
);
}),
(t.prototype.removeLimitVelocityGradient = function (e) {
return this._removeGradientAndTexture(e, this._limitVelocityGradients, this._limitVelocityGradientsTexture), (this._limitVelocityGradientsTexture = null), this;
}),
(t.prototype.addDragGradient = function (e, t) {
return (
this._dragGradients || (this._dragGradients = []),
this._addFactorGradient(this._dragGradients, e, t),
this._dragGradientsTexture && (this._dragGradientsTexture.dispose(), (this._dragGradientsTexture = null)),
this._releaseBuffers(),
this
);
}),
(t.prototype.removeDragGradient = function (e) {
return this._removeGradientAndTexture(e, this._dragGradients, this._dragGradientsTexture), (this._dragGradientsTexture = null), this;
}),
(t.prototype.addEmitRateGradient = function (e, t, n) {
return this;
}),
(t.prototype.removeEmitRateGradient = function (e) {
return this;
}),
(t.prototype.addStartSizeGradient = function (e, t, n) {
return this;
}),
(t.prototype.removeStartSizeGradient = function (e) {
return this;
}),
(t.prototype.addColorRemapGradient = function (e, t, n) {
return this;
}),
(t.prototype.removeColorRemapGradient = function () {
return this;
}),
(t.prototype.addAlphaRemapGradient = function (e, t, n) {
return this;
}),
(t.prototype.removeAlphaRemapGradient = function () {
return this;
}),
(t.prototype.addRampGradient = function (e, t) {
return this;
}),
(t.prototype.removeRampGradient = function () {
return this;
}),
(t.prototype.getRampGradients = function () {
return null;
}),
Object.defineProperty(t.prototype, "useRampGradients", {
get: function () {
return !1;
},
set: function (e) {},
enumerable: !0,
configurable: !0,
}),
(t.prototype.addLifeTimeGradient = function (e, t, n) {
return this;
}),
(t.prototype.removeLifeTimeGradient = function (e) {
return this;
}),
(t.prototype._reset = function () {
this._releaseBuffers();
}),
(t.prototype._createUpdateVAO = function (e) {
var t = {};
t.position = e.createVertexBuffer("position", 0, 3);
var n = 3;
this.particleEmitterType instanceof Vl && ((t.initialPosition = e.createVertexBuffer("initialPosition", n, 3)), (n += 3)),
(t.age = e.createVertexBuffer("age", n, 1)),
(n += 1),
(t.life = e.createVertexBuffer("life", n, 1)),
(n += 1),
(t.seed = e.createVertexBuffer("seed", n, 4)),
(n += 4),
(t.size = e.createVertexBuffer("size", n, 3)),
(n += 3),
this._colorGradientsTexture || ((t.color = e.createVertexBuffer("color", n, 4)), (n += 4)),
(t.direction = e.createVertexBuffer("direction", n, 3)),
(n += 3),
this._isBillboardBased || ((t.initialDirection = e.createVertexBuffer("initialDirection", n, 3)), (n += 3)),
this._angularSpeedGradientsTexture ? ((t.angle = e.createVertexBuffer("angle", n, 1)), (n += 1)) : ((t.angle = e.createVertexBuffer("angle", n, 2)), (n += 2)),
this._isAnimationSheetEnabled && ((t.cellIndex = e.createVertexBuffer("cellIndex", n, 1)), (n += 1), this.spriteRandomStartCell && ((t.cellStartOffset = e.createVertexBuffer("cellStartOffset", n, 1)), (n += 1))),
this.noiseTexture && ((t.noiseCoordinates1 = e.createVertexBuffer("noiseCoordinates1", n, 3)), (n += 3), (t.noiseCoordinates2 = e.createVertexBuffer("noiseCoordinates2", n, 3)), (n += 3));
var i = this._engine.recordVertexArrayObject(t, null, this._updateEffect);
return this._engine.bindArrayBuffer(null), i;
}),
(t.prototype._createRenderVAO = function (e, t) {
var n = {};
n.position = e.createVertexBuffer("position", 0, 3, this._attributesStrideSize, !0);
var i = 3;
this.particleEmitterType instanceof Vl && (i += 3),
(n.age = e.createVertexBuffer("age", i, 1, this._attributesStrideSize, !0)),
(i += 1),
(n.life = e.createVertexBuffer("life", i, 1, this._attributesStrideSize, !0)),
(i += 5),
(n.size = e.createVertexBuffer("size", i, 3, this._attributesStrideSize, !0)),
(i += 3),
this._colorGradientsTexture || ((n.color = e.createVertexBuffer("color", i, 4, this._attributesStrideSize, !0)), (i += 4)),
this.billboardMode === Jl.BILLBOARDMODE_STRETCHED && (n.direction = e.createVertexBuffer("direction", i, 3, this._attributesStrideSize, !0)),
(i += 3),
this._isBillboardBased || ((n.initialDirection = e.createVertexBuffer("initialDirection", i, 3, this._attributesStrideSize, !0)), (i += 3)),
(n.angle = e.createVertexBuffer("angle", i, 1, this._attributesStrideSize, !0)),
this._angularSpeedGradientsTexture ? i++ : (i += 2),
this._isAnimationSheetEnabled &&
((n.cellIndex = e.createVertexBuffer("cellIndex", i, 1, this._attributesStrideSize, !0)),
(i += 1),
this.spriteRandomStartCell && ((n.cellStartOffset = e.createVertexBuffer("cellStartOffset", i, 1, this._attributesStrideSize, !0)), (i += 1))),
this.noiseTexture &&
((n.noiseCoordinates1 = e.createVertexBuffer("noiseCoordinates1", i, 3, this._attributesStrideSize, !0)),
(i += 3),
(n.noiseCoordinates2 = e.createVertexBuffer("noiseCoordinates2", i, 3, this._attributesStrideSize, !0)),
(i += 3)),
(n.offset = t.createVertexBuffer("offset", 0, 2)),
(n.uv = t.createVertexBuffer("uv", 2, 2));
var r = this._engine.recordVertexArrayObject(n, null, this._renderEffect);
return this._engine.bindArrayBuffer(null), r;
}),
(t.prototype._initialize = function (e) {
if ((void 0 === e && (e = !1), !this._buffer0 || e)) {
var t = this._scene.getEngine(),
n = new Array();
(this._attributesStrideSize = 21),
(this._targetIndex = 0),
this.particleEmitterType instanceof Vl && (this._attributesStrideSize += 3),
this.isBillboardBased || (this._attributesStrideSize += 3),
this._colorGradientsTexture && (this._attributesStrideSize -= 4),
this._angularSpeedGradientsTexture && (this._attributesStrideSize -= 1),
this._isAnimationSheetEnabled && ((this._attributesStrideSize += 1), this.spriteRandomStartCell && (this._attributesStrideSize += 1)),
this.noiseTexture && (this._attributesStrideSize += 6);
for (var i = this.particleEmitterType instanceof Vl, r = a.c.Vector3[0], o = 0; o < this._capacity; o++)
n.push(0),
n.push(0),
n.push(0),
i && (this.particleEmitterType.particlePositionGenerator(o, null, r), n.push(r.x), n.push(r.y), n.push(r.z)),
n.push(0),
n.push(0),
n.push(Math.random()),
n.push(Math.random()),
n.push(Math.random()),
n.push(Math.random()),
n.push(0),
n.push(0),
n.push(0),
this._colorGradientsTexture || (n.push(0), n.push(0), n.push(0), n.push(0)),
i ? (this.particleEmitterType.particleDestinationGenerator(o, null, r), n.push(r.x), n.push(r.y), n.push(r.z)) : (n.push(0), n.push(0), n.push(0)),
this.isBillboardBased || (n.push(0), n.push(0), n.push(0)),
n.push(0),
this._angularSpeedGradientsTexture || n.push(0),
this._isAnimationSheetEnabled && (n.push(0), this.spriteRandomStartCell && n.push(0)),
this.noiseTexture && (n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()));
var s = new Float32Array([0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1, -0.5, -0.5, 0, 0, 0.5, -0.5, 1, 0]);
(this._buffer0 = new wn.a(t, n, !1, this._attributesStrideSize)),
(this._buffer1 = new wn.a(t, n, !1, this._attributesStrideSize)),
(this._spriteBuffer = new wn.a(t, s, !1, 4)),
(this._updateVAO = []),
this._updateVAO.push(this._createUpdateVAO(this._buffer0)),
this._updateVAO.push(this._createUpdateVAO(this._buffer1)),
(this._renderVAO = []),
this._renderVAO.push(this._createRenderVAO(this._buffer1, this._spriteBuffer)),
this._renderVAO.push(this._createRenderVAO(this._buffer0, this._spriteBuffer)),
(this._sourceBuffer = this._buffer0),
(this._targetBuffer = this._buffer1);
}
}),
(t.prototype._recreateUpdateEffect = function () {
var e = this.particleEmitterType ? this.particleEmitterType.getEffectDefines() : "";
this._isBillboardBased && (e += "\n#define BILLBOARD"),
this._colorGradientsTexture && (e += "\n#define COLORGRADIENTS"),
this._sizeGradientsTexture && (e += "\n#define SIZEGRADIENTS"),
this._angularSpeedGradientsTexture && (e += "\n#define ANGULARSPEEDGRADIENTS"),
this._velocityGradientsTexture && (e += "\n#define VELOCITYGRADIENTS"),
this._limitVelocityGradientsTexture && (e += "\n#define LIMITVELOCITYGRADIENTS"),
this._dragGradientsTexture && (e += "\n#define DRAGGRADIENTS"),
this.isAnimationSheetEnabled && ((e += "\n#define ANIMATESHEET"), this.spriteRandomStartCell && (e += "\n#define ANIMATESHEETRANDOMSTART")),
this.noiseTexture && (e += "\n#define NOISE"),
(this._updateEffect && this._updateEffectOptions.defines === e) ||
((this._updateEffectOptions.transformFeedbackVaryings = ["outPosition"]),
this.particleEmitterType instanceof Vl && this._updateEffectOptions.transformFeedbackVaryings.push("outInitialPosition"),
this._updateEffectOptions.transformFeedbackVaryings.push("outAge"),
this._updateEffectOptions.transformFeedbackVaryings.push("outLife"),
this._updateEffectOptions.transformFeedbackVaryings.push("outSeed"),
this._updateEffectOptions.transformFeedbackVaryings.push("outSize"),
this._colorGradientsTexture || this._updateEffectOptions.transformFeedbackVaryings.push("outColor"),
this._updateEffectOptions.transformFeedbackVaryings.push("outDirection"),
this._isBillboardBased || this._updateEffectOptions.transformFeedbackVaryings.push("outInitialDirection"),
this._updateEffectOptions.transformFeedbackVaryings.push("outAngle"),
this.isAnimationSheetEnabled &&
(this._updateEffectOptions.transformFeedbackVaryings.push("outCellIndex"), this.spriteRandomStartCell && this._updateEffectOptions.transformFeedbackVaryings.push("outCellStartOffset")),
this.noiseTexture && (this._updateEffectOptions.transformFeedbackVaryings.push("outNoiseCoordinates1"), this._updateEffectOptions.transformFeedbackVaryings.push("outNoiseCoordinates2")),
(this._updateEffectOptions.defines = e),
(this._updateEffect = new Xt.a("gpuUpdateParticles", this._updateEffectOptions, this._scene.getEngine())));
}),
(t.prototype._recreateRenderEffect = function () {
var e = "";
if (
(this._scene.clipPlane && (e = "\n#define CLIPPLANE"),
this._scene.clipPlane2 && (e = "\n#define CLIPPLANE2"),
this._scene.clipPlane3 && (e = "\n#define CLIPPLANE3"),
this._scene.clipPlane4 && (e = "\n#define CLIPPLANE4"),
this._scene.clipPlane5 && (e = "\n#define CLIPPLANE5"),
this._scene.clipPlane6 && (e = "\n#define CLIPPLANE6"),
this.blendMode === Jl.BLENDMODE_MULTIPLY && (e = "\n#define BLENDMULTIPLYMODE"),
this._isBillboardBased)
)
switch (((e += "\n#define BILLBOARD"), this.billboardMode)) {
case Jl.BILLBOARDMODE_Y:
e += "\n#define BILLBOARDY";
break;
case Jl.BILLBOARDMODE_STRETCHED:
e += "\n#define BILLBOARDSTRETCHED";
break;
case Jl.BILLBOARDMODE_ALL:
}
if (
(this._colorGradientsTexture && (e += "\n#define COLORGRADIENTS"),
this.isAnimationSheetEnabled && (e += "\n#define ANIMATESHEET"),
this._imageProcessingConfiguration && (this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines), (e += "\n" + this._imageProcessingConfigurationDefines.toString())),
!this._renderEffect || this._renderEffect.defines !== e)
) {
var t = ["worldOffset", "view", "projection", "colorDead", "invView", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "sheetInfos", "translationPivot", "eyePosition"],
n = ["textureSampler", "colorGradientSampler"];
En.a && (En.a.PrepareUniforms(t, this._imageProcessingConfigurationDefines), En.a.PrepareSamplers(n, this._imageProcessingConfigurationDefines)),
(this._renderEffect = new Xt.a("gpuRenderParticles", ["position", "age", "life", "size", "color", "offset", "uv", "direction", "initialDirection", "angle", "cellIndex"], t, n, this._scene.getEngine(), e));
}
}),
(t.prototype.animate = function (e) {
void 0 === e && (e = !1),
(this._timeDelta = this.updateSpeed * (e ? this.preWarmStepOffset : this._scene.getAnimationRatio())),
(this._actualFrame += this._timeDelta),
this._stopped || (this.targetStopDuration && this._actualFrame >= this.targetStopDuration && this.stop());
}),
(t.prototype._createFactorGradientTexture = function (e, t) {
var n = this[t];
if (e && e.length && !n) {
for (var i = new Float32Array(this._rawTextureWidth), r = 0; r < this._rawTextureWidth; r++) {
var o = r / this._rawTextureWidth;
Yl.GetCurrentGradient(o, e, function (e, t, n) {
i[r] = z.a.Lerp(e.factor1, t.factor1, n);
});
}
this[t] = Cs.a.CreateRTexture(i, this._rawTextureWidth, 1, this._scene, !1, !1, ln.a.NEAREST_SAMPLINGMODE);
}
}),
(t.prototype._createSizeGradientTexture = function () {
this._createFactorGradientTexture(this._sizeGradients, "_sizeGradientsTexture");
}),
(t.prototype._createAngularSpeedGradientTexture = function () {
this._createFactorGradientTexture(this._angularSpeedGradients, "_angularSpeedGradientsTexture");
}),
(t.prototype._createVelocityGradientTexture = function () {
this._createFactorGradientTexture(this._velocityGradients, "_velocityGradientsTexture");
}),
(t.prototype._createLimitVelocityGradientTexture = function () {
this._createFactorGradientTexture(this._limitVelocityGradients, "_limitVelocityGradientsTexture");
}),
(t.prototype._createDragGradientTexture = function () {
this._createFactorGradientTexture(this._dragGradients, "_dragGradientsTexture");
}),
(t.prototype._createColorGradientTexture = function () {
if (this._colorGradients && this._colorGradients.length && !this._colorGradientsTexture) {
for (var e = new Uint8Array(4 * this._rawTextureWidth), t = s.c.Color4[0], n = 0; n < this._rawTextureWidth; n++) {
var i = n / this._rawTextureWidth;
Yl.GetCurrentGradient(i, this._colorGradients, function (i, r, o) {
s.b.LerpToRef(i.color1, r.color1, o, t), (e[4 * n] = 255 * t.r), (e[4 * n + 1] = 255 * t.g), (e[4 * n + 2] = 255 * t.b), (e[4 * n + 3] = 255 * t.a);
});
}
this._colorGradientsTexture = Cs.a.CreateRGBATexture(e, this._rawTextureWidth, 1, this._scene, !1, !1, ln.a.NEAREST_SAMPLINGMODE);
}
}),
(t.prototype.render = function (e) {
if ((void 0 === e && (e = !1), !this._started)) return 0;
if (
(this._createColorGradientTexture(),
this._createSizeGradientTexture(),
this._createAngularSpeedGradientTexture(),
this._createVelocityGradientTexture(),
this._createLimitVelocityGradientTexture(),
this._createDragGradientTexture(),
this._recreateUpdateEffect(),
this._recreateRenderEffect(),
!this.isReady())
)
return 0;
if (!e) {
if (!this._preWarmDone && this.preWarmCycles) {
for (var t = 0; t < this.preWarmCycles; t++) this.animate(!0), this.render(!0);
this._preWarmDone = !0;
}
if (this._currentRenderId === this._scene.getFrameId()) return 0;
this._currentRenderId = this._scene.getFrameId();
}
if ((this._initialize(), (this._accumulatedCount += this.emitRate * this._timeDelta), this._accumulatedCount > 1)) {
var n = 0 | this._accumulatedCount;
(this._accumulatedCount -= n), (this._currentActiveCount = Math.min(this._activeCount, this._currentActiveCount + n));
}
if (!this._currentActiveCount) return 0;
var i;
if (
(this._engine.enableEffect(this._updateEffect),
this._engine.setState(!1),
this._updateEffect.setFloat("currentCount", this._currentActiveCount),
this._updateEffect.setFloat("timeDelta", this._timeDelta),
this._updateEffect.setFloat("stopFactor", this._stopped ? 0 : 1),
this._updateEffect.setTexture("randomSampler", this._randomTexture),
this._updateEffect.setTexture("randomSampler2", this._randomTexture2),
this._updateEffect.setFloat2("lifeTime", this.minLifeTime, this.maxLifeTime),
this._updateEffect.setFloat2("emitPower", this.minEmitPower, this.maxEmitPower),
this._colorGradientsTexture || (this._updateEffect.setDirectColor4("color1", this.color1), this._updateEffect.setDirectColor4("color2", this.color2)),
this._updateEffect.setFloat2("sizeRange", this.minSize, this.maxSize),
this._updateEffect.setFloat4("scaleRange", this.minScaleX, this.maxScaleX, this.minScaleY, this.maxScaleY),
this._updateEffect.setFloat4("angleRange", this.minAngularSpeed, this.maxAngularSpeed, this.minInitialRotation, this.maxInitialRotation),
this._updateEffect.setVector3("gravity", this.gravity),
this._sizeGradientsTexture && this._updateEffect.setTexture("sizeGradientSampler", this._sizeGradientsTexture),
this._angularSpeedGradientsTexture && this._updateEffect.setTexture("angularSpeedGradientSampler", this._angularSpeedGradientsTexture),
this._velocityGradientsTexture && this._updateEffect.setTexture("velocityGradientSampler", this._velocityGradientsTexture),
this._limitVelocityGradientsTexture &&
(this._updateEffect.setTexture("limitVelocityGradientSampler", this._limitVelocityGradientsTexture), this._updateEffect.setFloat("limitVelocityDamping", this.limitVelocityDamping)),
this._dragGradientsTexture && this._updateEffect.setTexture("dragGradientSampler", this._dragGradientsTexture),
this.particleEmitterType && this.particleEmitterType.applyToShader(this._updateEffect),
this._isAnimationSheetEnabled && this._updateEffect.setFloat3("cellInfos", this.startSpriteCellID, this.endSpriteCellID, this.spriteCellChangeSpeed),
this.noiseTexture && (this._updateEffect.setTexture("noiseSampler", this.noiseTexture), this._updateEffect.setVector3("noiseStrength", this.noiseStrength)),
this.emitter.position)
) {
i = this.emitter.getWorldMatrix();
} else {
var r = this.emitter;
i = a.a.Translation(r.x, r.y, r.z);
}
if (
(this._updateEffect.setMatrix("emitterWM", i),
this._engine.bindVertexArrayObject(this._updateVAO[this._targetIndex], null),
this._engine.bindTransformFeedbackBuffer(this._targetBuffer.getBuffer()),
this._engine.setRasterizerState(!1),
this._engine.beginTransformFeedback(!0),
this._engine.drawArraysType(Fo.a.PointListDrawMode, 0, this._currentActiveCount),
this._engine.endTransformFeedback(),
this._engine.setRasterizerState(!0),
this._engine.bindTransformFeedbackBuffer(null),
!e)
) {
this._engine.enableEffect(this._renderEffect);
var o = this._scene.getViewMatrix();
if (
(this._renderEffect.setMatrix("view", o),
this._renderEffect.setMatrix("projection", this._scene.getProjectionMatrix()),
this._renderEffect.setTexture("textureSampler", this.particleTexture),
this._renderEffect.setVector2("translationPivot", this.translationPivot),
this._renderEffect.setVector3("worldOffset", this.worldOffset),
this._colorGradientsTexture ? this._renderEffect.setTexture("colorGradientSampler", this._colorGradientsTexture) : this._renderEffect.setDirectColor4("colorDead", this.colorDead),
this._isAnimationSheetEnabled && this.particleTexture)
) {
var s = this.particleTexture.getBaseSize();
this._renderEffect.setFloat3("sheetInfos", this.spriteCellWidth / s.width, this.spriteCellHeight / s.height, s.width / this.spriteCellWidth);
}
if (this._isBillboardBased) {
var c = this._scene.activeCamera;
this._renderEffect.setVector3("eyePosition", c.globalPosition);
}
if (this._scene.clipPlane || this._scene.clipPlane2 || this._scene.clipPlane3 || this._scene.clipPlane4 || this._scene.clipPlane5 || this._scene.clipPlane6) {
var l = o.clone();
l.invert(), this._renderEffect.setMatrix("invView", l), Ir.a.BindClipPlane(this._renderEffect, this._scene);
}
switch ((this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(this._renderEffect), this.blendMode)) {
case Jl.BLENDMODE_ADD:
this._engine.setAlphaMode(1);
break;
case Jl.BLENDMODE_ONEONE:
this._engine.setAlphaMode(6);
break;
case Jl.BLENDMODE_STANDARD:
this._engine.setAlphaMode(2);
break;
case Jl.BLENDMODE_MULTIPLY:
this._engine.setAlphaMode(4);
}
this.forceDepthWrite && this._engine.setDepthWrite(!0),
this._engine.bindVertexArrayObject(this._renderVAO[this._targetIndex], null),
this._engine.drawArraysType(Fo.a.TriangleFanDrawMode, 0, 4, this._currentActiveCount),
this._engine.setAlphaMode(0);
}
this._targetIndex++, 2 === this._targetIndex && (this._targetIndex = 0);
var u = this._sourceBuffer;
return (this._sourceBuffer = this._targetBuffer), (this._targetBuffer = u), this._currentActiveCount;
}),
(t.prototype.rebuild = function () {
this._initialize(!0);
}),
(t.prototype._releaseBuffers = function () {
this._buffer0 && (this._buffer0.dispose(), (this._buffer0 = null)),
this._buffer1 && (this._buffer1.dispose(), (this._buffer1 = null)),
this._spriteBuffer && (this._spriteBuffer.dispose(), (this._spriteBuffer = null));
}),
(t.prototype._releaseVAOs = function () {
if (this._updateVAO) {
for (var e = 0; e < this._updateVAO.length; e++) this._engine.releaseVertexArrayObject(this._updateVAO[e]);
this._updateVAO = [];
for (e = 0; e < this._renderVAO.length; e++) this._engine.releaseVertexArrayObject(this._renderVAO[e]);
this._renderVAO = [];
}
}),
(t.prototype.dispose = function (e) {
void 0 === e && (e = !0);
var t = this._scene.particleSystems.indexOf(this);
t > -1 && this._scene.particleSystems.splice(t, 1),
this._releaseBuffers(),
this._releaseVAOs(),
this._colorGradientsTexture && (this._colorGradientsTexture.dispose(), (this._colorGradientsTexture = null)),
this._sizeGradientsTexture && (this._sizeGradientsTexture.dispose(), (this._sizeGradientsTexture = null)),
this._angularSpeedGradientsTexture && (this._angularSpeedGradientsTexture.dispose(), (this._angularSpeedGradientsTexture = null)),
this._velocityGradientsTexture && (this._velocityGradientsTexture.dispose(), (this._velocityGradientsTexture = null)),
this._limitVelocityGradientsTexture && (this._limitVelocityGradientsTexture.dispose(), (this._limitVelocityGradientsTexture = null)),
this._dragGradientsTexture && (this._dragGradientsTexture.dispose(), (this._dragGradientsTexture = null)),
this._randomTexture && (this._randomTexture.dispose(), (this._randomTexture = null)),
this._randomTexture2 && (this._randomTexture2.dispose(), (this._randomTexture2 = null)),
e && this.particleTexture && (this.particleTexture.dispose(), (this.particleTexture = null)),
e && this.noiseTexture && (this.noiseTexture.dispose(), (this.noiseTexture = null)),
this.onDisposeObservable.notifyObservers(this),
this.onDisposeObservable.clear();
}),
(t.prototype.clone = function (e, n) {
var i = new t(e, { capacity: this._capacity, randomTextureSize: this._randomTextureSize }, this._scene);
return (
M.a.DeepCopy(this, i, ["particles", "customShader", "noiseTexture", "particleTexture", "onDisposeObservable"]),
void 0 === n && (n = this.emitter),
(i.emitter = n),
this.particleTexture && (i.particleTexture = new ln.a(this.particleTexture.url, this._scene)),
(i.noiseTexture = this.noiseTexture),
this._colorGradients &&
this._colorGradients.forEach(function (e) {
i.addColorGradient(e.gradient, e.color1, e.color2);
}),
this._dragGradients &&
this._dragGradients.forEach(function (e) {
i.addDragGradient(e.gradient, e.factor1);
}),
this._angularSpeedGradients &&
this._angularSpeedGradients.forEach(function (e) {
i.addAngularSpeedGradient(e.gradient, e.factor1);
}),
this._emitRateGradients &&
this._emitRateGradients.forEach(function (e) {
i.addEmitRateGradient(e.gradient, e.factor1, e.factor2);
}),
this._lifeTimeGradients &&
this._lifeTimeGradients.forEach(function (e) {
i.addLifeTimeGradient(e.gradient, e.factor1, e.factor2);
}),
this._limitVelocityGradients &&
this._limitVelocityGradients.forEach(function (e) {
i.addLimitVelocityGradient(e.gradient, e.factor1);
}),
this._sizeGradients &&
this._sizeGradients.forEach(function (e) {
i.addSizeGradient(e.gradient, e.factor1);
}),
this._startSizeGradients &&
this._startSizeGradients.forEach(function (e) {
i.addStartSizeGradient(e.gradient, e.factor1, e.factor2);
}),
this._velocityGradients &&
this._velocityGradients.forEach(function (e) {
i.addVelocityGradient(e.gradient, e.factor1);
}),
this._rampGradients &&
this._rampGradients.forEach(function (e) {
i.addRampGradient(e.gradient, e.color);
}),
this._colorRemapGradients &&
this._colorRemapGradients.forEach(function (e) {
i.addColorRemapGradient(e.gradient, e.factor1, e.factor2);
}),
this._alphaRemapGradients &&
this._alphaRemapGradients.forEach(function (e) {
i.addAlphaRemapGradient(e.gradient, e.factor1, e.factor2);
}),
i
);
}),
(t.prototype.serialize = function () {
var e = {};
return Jl._Serialize(e, this), (e.activeParticleCount = this.activeParticleCount), e;
}),
(t.Parse = function (e, n, i, r) {
void 0 === r && (r = !1);
var o = new t(e.name, { capacity: e.capacity, randomTextureSize: e.randomTextureSize }, n);
return e.activeParticleCount && (o.activeParticleCount = e.activeParticleCount), Jl._Parse(e, o, n, i), e.preventAutoStart && (o.preventAutoStart = e.preventAutoStart), r || o.preventAutoStart || o.start(), o;
}),
t
);
})(Ul),
ou = (function () {
function e() {
this.systems = new Array();
}
return (
Object.defineProperty(e.prototype, "emitterNode", {
get: function () {
return this._emitterNode;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setEmitterAsSphere = function (e, t, n) {
this._emitterNode && this._emitterNode.dispose(), (this._emitterCreationOptions = { kind: "Sphere", options: e, renderingGroupId: t });
var i = mi.CreateSphere("emitterSphere", { diameter: e.diameter, segments: e.segments }, n);
i.renderingGroupId = t;
var r = new Mn.a("emitterSphereMaterial", n);
(r.emissiveColor = e.color), (i.material = r);
for (var o = 0, a = this.systems; o < a.length; o++) {
a[o].emitter = i;
}
this._emitterNode = i;
}),
(e.prototype.start = function (e) {
for (var t = 0, n = this.systems; t < n.length; t++) {
var i = n[t];
e && (i.emitter = e), i.start();
}
}),
(e.prototype.dispose = function () {
for (var e = 0, t = this.systems; e < t.length; e++) {
t[e].dispose();
}
(this.systems = []), this._emitterNode && (this._emitterNode.dispose(), (this._emitterNode = null));
}),
(e.prototype.serialize = function () {
for (var e = { systems: [] }, t = 0, n = this.systems; t < n.length; t++) {
var i = n[t];
e.systems.push(i.serialize());
}
return this._emitterNode && (e.emitter = this._emitterCreationOptions), e;
}),
(e.Parse = function (t, n, i) {
void 0 === i && (i = !1);
var r = new e(),
o = this.BaseAssetsUrl + "/textures/";
n = n || E.a.LastCreatedScene;
for (var a = 0, c = t.systems; a < c.length; a++) {
var l = c[a];
r.systems.push(i ? ru.Parse(l, n, o, !0) : Jl.Parse(l, n, o, !0));
}
if (t.emitter) {
var u = t.emitter.options;
switch (t.emitter.kind) {
case "Sphere":
r.setEmitterAsSphere({ diameter: u.diameter, segments: u.segments, color: s.a.FromArray(u.color) }, t.emitter.renderingGroupId, n);
}
}
return r;
}),
(e.BaseAssetsUrl = "https://assets.babylonjs.com/particles"),
e
);
})(),
au = (function () {
function e() {}
return (
(e.CreateDefault = function (e, t, n, i) {
var r;
return (
void 0 === t && (t = 500),
void 0 === i && (i = !1),
((r = i ? new ru("default system", { capacity: t }, n) : new Jl("default system", t, n)).emitter = e),
(r.particleTexture = new ln.a("https://www.babylonjs.com/assets/Flare.png", r.getScene())),
r.createConeEmitter(0.1, Math.PI / 4),
(r.color1 = new s.b(1, 1, 1, 1)),
(r.color2 = new s.b(1, 1, 1, 1)),
(r.colorDead = new s.b(1, 1, 1, 0)),
(r.minSize = 0.1),
(r.maxSize = 0.1),
(r.minEmitPower = 2),
(r.maxEmitPower = 2),
(r.updateSpeed = 1 / 60),
(r.emitRate = 30),
r
);
}),
(e.CreateAsync = function (t, n, i) {
void 0 === i && (i = !1), n || (n = E.a.LastCreatedScene);
var r = {};
return (
n._addPendingData(r),
new Promise(function (o, a) {
if (i && !ru.IsSupported) return n._removePendingData(r), a("Particle system with GPU is not supported.");
$e.b.LoadFile(
e.BaseAssetsUrl + "/systems/" + t + ".json",
function (e) {
n._removePendingData(r);
var t = JSON.parse(e.toString());
return o(ou.Parse(t, n, i));
},
void 0,
void 0,
void 0,
function () {
return n._removePendingData(r), a("An error occured while the creation of your particle system. Check if your type '" + t + "' exists.");
}
);
})
);
}),
(e.ExportSet = function (e) {
for (var t = new ou(), n = 0, i = e; n < i.length; n++) {
var r = i[n];
t.systems.push(r);
}
return t;
}),
(e.BaseAssetsUrl = ou.BaseAssetsUrl),
e
);
})();
i.a.AddParser(me.a.NAME_PARTICLESYSTEM, function (e, t, n, r) {
var o = i.a.GetIndividualParser(me.a.NAME_PARTICLESYSTEM);
if (o && void 0 !== e.particleSystems && null !== e.particleSystems)
for (var a = 0, s = e.particleSystems.length; a < s; a++) {
var c = e.particleSystems[a];
n.particleSystems.push(o(c, t, r));
}
}),
i.a.AddIndividualParser(me.a.NAME_PARTICLESYSTEM, function (e, t, n) {
return e.activeParticleCount ? ru.Parse(e, t, n) : Jl.Parse(e, t, n);
}),
(ue.a.prototype.createEffectForParticles = function (e, t, n, i, r, o, a) {
void 0 === t && (t = []), void 0 === n && (n = []), void 0 === i && (i = "");
var s = Jl._GetAttributeNamesOrOptions(),
c = Jl._GetEffectCreationOptions();
return (
-1 === i.indexOf(" BILLBOARD") && (i += "\n#define BILLBOARD\n"),
-1 === n.indexOf("diffuseSampler") && n.push("diffuseSampler"),
this.createEffect({ vertex: "particles", fragmentElement: e }, s, c.concat(t), n, i, r, o, a)
);
}),
(Ee.a.prototype.getEmittedParticleSystems = function () {
for (var e = new Array(), t = 0; t < this.getScene().particleSystems.length; t++) {
var n = this.getScene().particleSystems[t];
n.emitter === this && e.push(n);
}
return e;
}),
(Ee.a.prototype.getHierarchyEmittedParticleSystems = function () {
var e = new Array(),
t = this.getDescendants();
t.push(this);
for (var n = 0; n < this.getScene().particleSystems.length; n++) {
var i = this.getScene().particleSystems[n],
r = i.emitter;
r.position && -1 !== t.indexOf(r) && e.push(i);
}
return e;
});
var su,
cu = 42,
lu = (function () {
function e(e, t, n, i, r, o, c, l, u, h) {
void 0 === u && (u = null),
void 0 === h && (h = null),
(this.idx = 0),
(this.id = 0),
(this.color = new s.b(1, 1, 1, 1)),
(this.position = a.e.Zero()),
(this.rotation = a.e.Zero()),
(this.scaling = a.e.One()),
(this.uvs = new a.f(0, 0, 1, 1)),
(this.velocity = a.e.Zero()),
(this.pivot = a.e.Zero()),
(this.translateFromPivot = !1),
(this.alive = !0),
(this.isVisible = !0),
(this._pos = 0),
(this._ind = 0),
(this.shapeId = 0),
(this.idxInShape = 0),
(this._stillInvisible = !1),
(this._rotationMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]),
(this.parentId = null),
(this.materialIndex = null),
(this.cullingStrategy = ke.a.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY),
(this._globalPosition = a.e.Zero()),
(this.idx = e),
(this.id = t),
(this._pos = n),
(this._ind = i),
(this._model = r),
(this.shapeId = o),
(this.idxInShape = c),
(this._sps = l),
u && ((this._modelBoundingInfo = u), (this._boundingInfo = new ti.a(u.minimum, u.maximum))),
null !== h && (this.materialIndex = h);
}
return (
(e.prototype.copyToRef = function (e) {
return (
e.position.copyFrom(this.position),
e.rotation.copyFrom(this.rotation),
this.rotationQuaternion && (e.rotationQuaternion ? e.rotationQuaternion.copyFrom(this.rotationQuaternion) : (e.rotationQuaternion = this.rotationQuaternion.clone())),
e.scaling.copyFrom(this.scaling),
this.color && (e.color ? e.color.copyFrom(this.color) : (e.color = this.color.clone())),
e.uvs.copyFrom(this.uvs),
e.velocity.copyFrom(this.velocity),
e.pivot.copyFrom(this.pivot),
(e.translateFromPivot = this.translateFromPivot),
(e.alive = this.alive),
(e.isVisible = this.isVisible),
(e.parentId = this.parentId),
(e.cullingStrategy = this.cullingStrategy),
null !== this.materialIndex && (e.materialIndex = this.materialIndex),
this
);
}),
Object.defineProperty(e.prototype, "scale", {
get: function () {
return this.scaling;
},
set: function (e) {
this.scaling = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "quaternion", {
get: function () {
return this.rotationQuaternion;
},
set: function (e) {
this.rotationQuaternion = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.intersectsMesh = function (e) {
return !(!this._boundingInfo || !e._boundingInfo) && (this._sps._bSphereOnly ? ni.a.Intersects(this._boundingInfo.boundingSphere, e._boundingInfo.boundingSphere) : this._boundingInfo.intersects(e._boundingInfo, !1));
}),
(e.prototype.isInFrustum = function (e) {
return null !== this._boundingInfo && this._boundingInfo.isInFrustum(e, this.cullingStrategy);
}),
(e.prototype.getRotationMatrix = function (e) {
var t;
if (this.rotationQuaternion) t = this.rotationQuaternion;
else {
t = a.c.Quaternion[0];
var n = this.rotation;
a.b.RotationYawPitchRollToRef(n.y, n.x, n.z, t);
}
t.toRotationMatrix(e);
}),
e
);
})(),
uu = function (e, t, n, i, r, o, a, s, c) {
(this._indicesLength = 0),
(this.shapeID = e),
(this._shape = t),
(this._indices = n),
(this._indicesLength = n.length),
(this._shapeUV = o),
(this._shapeColors = r),
(this._normals = i),
(this._positionFunction = a),
(this._vertexFunction = s),
(this._material = c);
},
hu = function (e, t, n) {
(this.ind = 0), (this.indicesLength = 0), (this.sqDistance = 0), (this.materialIndex = 0), (this.ind = e), (this.indicesLength = t), (this.materialIndex = n);
},
du = (function () {
function e(e, t, n) {
(this.particles = new Array()),
(this.nbParticles = 0),
(this.billboard = !1),
(this.recomputeNormals = !1),
(this.counter = 0),
(this.vars = {}),
(this._bSphereOnly = !1),
(this._bSphereRadiusFactor = 1),
(this._positions = new Array()),
(this._indices = new Array()),
(this._normals = new Array()),
(this._colors = new Array()),
(this._uvs = new Array()),
(this._index = 0),
(this._updatable = !0),
(this._pickable = !1),
(this._isVisibilityBoxLocked = !1),
(this._alwaysVisible = !1),
(this._depthSort = !1),
(this._expandable = !1),
(this._shapeCounter = 0),
(this._copy = new lu(0, 0, 0, 0, null, 0, 0, this)),
(this._color = new s.b(0, 0, 0, 0)),
(this._computeParticleColor = !0),
(this._computeParticleTexture = !0),
(this._computeParticleRotation = !0),
(this._computeParticleVertex = !1),
(this._computeBoundingBox = !1),
(this._depthSortParticles = !0),
(this._mustUnrotateFixedNormals = !1),
(this._particlesIntersect = !1),
(this._needs32Bits = !1),
(this._isNotBuilt = !0),
(this._lastParticleId = 0),
(this._idxOfId = []),
(this._multimaterialEnabled = !1),
(this._useModelMaterial = !1),
(this._depthSortFunction = function (e, t) {
return t.sqDistance - e.sqDistance;
}),
(this._materialSortFunction = function (e, t) {
return e.materialIndex - t.materialIndex;
}),
(this._autoUpdateSubMeshes = !1),
(this.name = e),
(this._scene = t || E.a.LastCreatedScene),
(this._camera = t.activeCamera),
(this._pickable = !!n && n.isPickable),
(this._depthSort = !!n && n.enableDepthSort),
(this._multimaterialEnabled = !!n && n.enableMultiMaterial),
(this._useModelMaterial = !!n && n.useModelMaterial),
(this._multimaterialEnabled = !!this._useModelMaterial || this._multimaterialEnabled),
(this._expandable = !!n && n.expandable),
(this._particlesIntersect = !!n && n.particleIntersection),
(this._bSphereOnly = !!n && n.boundingSphereOnly),
(this._bSphereRadiusFactor = n && n.bSphereRadiusFactor ? n.bSphereRadiusFactor : 1),
n && void 0 !== n.updatable ? (this._updatable = n.updatable) : (this._updatable = !0),
this._pickable && (this.pickedParticles = []),
(this._depthSort || this._multimaterialEnabled) && (this.depthSortedParticles = []),
this._multimaterialEnabled && ((this._multimaterial = new Ta.a(this.name + "MultiMaterial", this._scene)), (this._materials = []), (this._materialIndexesById = {}));
}
return (
(e.prototype.buildMesh = function () {
if (!this._isNotBuilt && this.mesh) return this.mesh;
if (0 === this.nbParticles && !this.mesh) {
var e = il.CreateDisc("", { radius: 1, tessellation: 3 }, this._scene);
this.addShape(e, 1), e.dispose();
}
if (
((this._indices32 = this._needs32Bits ? new Uint32Array(this._indices) : new Uint16Array(this._indices)),
(this._positions32 = new Float32Array(this._positions)),
(this._uvs32 = new Float32Array(this._uvs)),
(this._colors32 = new Float32Array(this._colors)),
!this.mesh)
) {
var t = new Ee.a(this.name, this._scene);
this.mesh = t;
}
!this._updatable && this._multimaterialEnabled && this._sortParticlesByMaterial(),
this.recomputeNormals && Rn.a.ComputeNormals(this._positions32, this._indices32, this._normals),
(this._normals32 = new Float32Array(this._normals)),
(this._fixedNormal32 = new Float32Array(this._normals)),
this._mustUnrotateFixedNormals && this._unrotateFixedNormals();
var n = new Rn.a();
return (
(n.indices = this._depthSort ? this._indices : this._indices32),
n.set(this._positions32, wn.b.PositionKind),
n.set(this._normals32, wn.b.NormalKind),
this._uvs32.length > 0 && n.set(this._uvs32, wn.b.UVKind),
this._colors32.length > 0 && n.set(this._colors32, wn.b.ColorKind),
n.applyToMesh(this.mesh, this._updatable),
(this.mesh.isPickable = this._pickable),
this._multimaterialEnabled && this.setMultiMaterial(this._materials),
this._expandable ||
(this._depthSort || this._multimaterialEnabled || (this._indices = null),
(this._positions = null),
(this._normals = null),
(this._uvs = null),
(this._colors = null),
this._updatable || (this.particles.length = 0)),
(this._isNotBuilt = !1),
(this.recomputeNormals = !1),
this.mesh
);
}),
(e.prototype.digest = function (e, t) {
var n = (t && t.facetNb) || 1,
i = (t && t.number) || 0,
r = (t && t.delta) || 0,
o = e.getVerticesData(wn.b.PositionKind),
s = e.getIndices(),
c = e.getVerticesData(wn.b.UVKind),
l = e.getVerticesData(wn.b.ColorKind),
u = e.getVerticesData(wn.b.NormalKind),
h = t && t.storage ? t.storage : null,
d = 0,
p = s.length / 3;
i ? ((i = i > p ? p : i), (n = Math.round(p / i)), (r = 0)) : (n = n > p ? p : n);
for (var f = [], m = [], g = [], b = [], _ = [], v = a.e.Zero(), y = n; d < p; ) {
d > p - (n = y + Math.floor((1 + r) * Math.random())) && (n = p - d), (f.length = 0), (m.length = 0), (g.length = 0), (b.length = 0), (_.length = 0);
for (var C = 0, P = 3 * d; P < 3 * (d + n); P++) {
g.push(C);
var x = s[P],
T = 3 * x;
if ((f.push(o[T], o[T + 1], o[T + 2]), m.push(u[T], u[T + 1], u[T + 2]), c)) {
var S = 2 * x;
b.push(c[S], c[S + 1]);
}
if (l) {
var O = 4 * x;
_.push(l[O], l[O + 1], l[O + 2], l[O + 3]);
}
C++;
}
var E,
M = this.nbParticles,
A = this._posToShape(f),
I = this._uvsToShapeUV(b),
D = Array.from(g),
R = Array.from(_),
w = Array.from(m);
for (v.copyFromFloats(0, 0, 0), E = 0; E < A.length; E++) v.addInPlace(A[E]);
v.scaleInPlace(1 / A.length);
var L,
F = new a.e(1 / 0, 1 / 0, 1 / 0),
N = new a.e(-1 / 0, -1 / 0, -1 / 0);
for (E = 0; E < A.length; E++) A[E].subtractInPlace(v), F.minimizeInPlaceFromFloats(A[E].x, A[E].y, A[E].z), N.maximizeInPlaceFromFloats(A[E].x, A[E].y, A[E].z);
this._particlesIntersect && (L = new ti.a(F, N));
var k = null;
this._useModelMaterial && (k = e.material ? e.material : this._setDefaultMaterial());
var z = new uu(this._shapeCounter, A, D, w, R, I, null, null, k),
j = this._positions.length,
B = this._indices.length;
this._meshBuilder(this._index, B, A, this._positions, D, this._indices, b, this._uvs, R, this._colors, w, this._normals, M, 0, null, z),
this._addParticle(M, this._lastParticleId, j, B, z, this._shapeCounter, 0, L, h),
this.particles[this.nbParticles].position.addInPlace(v),
h || ((this._index += A.length), M++, this.nbParticles++, this._lastParticleId++),
this._shapeCounter++,
(d += n);
}
return (this._isNotBuilt = !0), this;
}),
(e.prototype._unrotateFixedNormals = function () {
for (var e = 0, t = 0, n = a.c.Vector3[0], i = a.c.Quaternion[0], r = a.c.Matrix[0], o = 0; o < this.particles.length; o++) {
var s = this.particles[o],
c = s._model._shape;
if (s.rotationQuaternion) s.rotationQuaternion.conjugateToRef(i);
else {
var l = s.rotation;
a.b.RotationYawPitchRollToRef(l.y, l.x, l.z, i), i.conjugateInPlace();
}
i.toRotationMatrix(r);
for (var u = 0; u < c.length; u++) (t = e + 3 * u), a.e.TransformNormalFromFloatsToRef(this._normals32[t], this._normals32[t + 1], this._normals32[t + 2], r, n), n.toArray(this._fixedNormal32, t);
e = t + 3;
}
}),
(e.prototype._resetCopy = function () {
var e = this._copy;
e.position.setAll(0), e.rotation.setAll(0), (e.rotationQuaternion = null), e.scaling.setAll(1), e.uvs.copyFromFloats(0, 0, 1, 1), (e.color = null), (e.translateFromPivot = !1), (e.materialIndex = null);
}),
(e.prototype._meshBuilder = function (e, t, n, i, r, o, s, c, l, u, h, d, p, f, m, g) {
var b,
_ = 0,
v = 0,
y = 0;
this._resetCopy();
var C = this._copy,
P = !(!m || !m.storage);
if (((C.idx = p), (C.idxInShape = f), this._useModelMaterial)) {
var x = g._material.uniqueId,
T = this._materialIndexesById;
T.hasOwnProperty(x) || ((T[x] = this._materials.length), this._materials.push(g._material));
var S = T[x];
C.materialIndex = S;
}
if ((m && m.positionFunction && (m.positionFunction(C, p, f), (this._mustUnrotateFixedNormals = !0)), P)) return C;
var O = a.c.Matrix[0],
E = a.c.Vector3[0],
M = a.c.Vector3[1],
A = a.c.Vector3[2],
I = a.c.Vector3[3];
a.a.IdentityToRef(O), C.getRotationMatrix(O), C.pivot.multiplyToRef(C.scaling, I), C.translateFromPivot ? A.setAll(0) : A.copyFrom(I);
var D = m && m.vertexFunction;
for (b = 0; b < n.length; b++) {
if ((E.copyFrom(n[b]), D && m.vertexFunction(C, E, b), E.multiplyInPlace(C.scaling).subtractInPlace(I), a.e.TransformCoordinatesToRef(E, O, M), M.addInPlace(A).addInPlace(C.position), i.push(M.x, M.y, M.z), s)) {
var R = C.uvs;
c.push((R.z - R.x) * s[_] + R.x, (R.w - R.y) * s[_ + 1] + R.y), (_ += 2);
}
if (C.color) this._color = C.color;
else {
var w = this._color;
l && void 0 !== l[v] ? ((w.r = l[v]), (w.g = l[v + 1]), (w.b = l[v + 2]), (w.a = l[v + 3])) : ((w.r = 1), (w.g = 1), (w.b = 1), (w.a = 1));
}
u.push(this._color.r, this._color.g, this._color.b, this._color.a), (v += 4), !this.recomputeNormals && h && (a.e.TransformNormalFromFloatsToRef(h[y], h[y + 1], h[y + 2], O, E), d.push(E.x, E.y, E.z), (y += 3));
}
for (b = 0; b < r.length; b++) {
var L = e + r[b];
o.push(L), L > 65535 && (this._needs32Bits = !0);
}
if (this._pickable) {
var F = r.length / 3;
for (b = 0; b < F; b++) this.pickedParticles.push({ idx: p, faceId: b });
}
if (this._depthSort || this._multimaterialEnabled) {
var N = null !== C.materialIndex ? C.materialIndex : 0;
this.depthSortedParticles.push(new hu(t, r.length, N));
}
return C;
}),
(e.prototype._posToShape = function (e) {
for (var t = [], n = 0; n < e.length; n += 3) t.push(a.e.FromArray(e, n));
return t;
}),
(e.prototype._uvsToShapeUV = function (e) {
var t = [];
if (e) for (var n = 0; n < e.length; n++) t.push(e[n]);
return t;
}),
(e.prototype._addParticle = function (e, t, n, i, r, o, a, s, c) {
void 0 === s && (s = null), void 0 === c && (c = null);
var l = new lu(e, t, n, i, r, o, a, this, s);
return (c || this.particles).push(l), l;
}),
(e.prototype.addShape = function (e, t, n) {
var i = e.getVerticesData(wn.b.PositionKind),
r = e.getIndices(),
o = e.getVerticesData(wn.b.UVKind),
a = e.getVerticesData(wn.b.ColorKind),
s = e.getVerticesData(wn.b.NormalKind);
this.recomputeNormals = !s;
var c = Array.from(r),
l = Array.from(s),
u = a ? Array.from(a) : [],
h = n && n.storage ? n.storage : null,
d = null;
this._particlesIntersect && (d = e.getBoundingInfo());
var p = this._posToShape(i),
f = this._uvsToShapeUV(o),
m = n ? n.positionFunction : null,
g = n ? n.vertexFunction : null,
b = null;
this._useModelMaterial && (b = e.material ? e.material : this._setDefaultMaterial());
for (var _ = new uu(this._shapeCounter, p, c, l, u, f, m, g, b), v = 0; v < t; v++) this._insertNewParticle(this.nbParticles, v, _, p, r, o, a, s, d, h, n);
return this._shapeCounter++, (this._isNotBuilt = !0), this._shapeCounter - 1;
}),
(e.prototype._rebuildParticle = function (e, t) {
void 0 === t && (t = !1), this._resetCopy();
var n = this._copy;
e._model._positionFunction && e._model._positionFunction(n, e.idx, e.idxInShape);
var i = a.c.Matrix[0],
r = a.c.Vector3[0],
o = a.c.Vector3[1],
s = a.c.Vector3[2],
c = a.c.Vector3[3];
n.getRotationMatrix(i), e.pivot.multiplyToRef(e.scaling, c), n.translateFromPivot ? s.copyFromFloats(0, 0, 0) : s.copyFrom(c);
for (var l = e._model._shape, u = 0; u < l.length; u++)
r.copyFrom(l[u]),
e._model._vertexFunction && e._model._vertexFunction(n, r, u),
r.multiplyInPlace(n.scaling).subtractInPlace(c),
a.e.TransformCoordinatesToRef(r, i, o),
o
.addInPlace(s)
.addInPlace(n.position)
.toArray(this._positions32, e._pos + 3 * u);
t && (e.position.setAll(0), e.rotation.setAll(0), (e.rotationQuaternion = null), e.scaling.setAll(1), e.uvs.setAll(0), e.pivot.setAll(0), (e.translateFromPivot = !1), (e.parentId = null));
}),
(e.prototype.rebuildMesh = function (e) {
void 0 === e && (e = !1);
for (var t = 0; t < this.particles.length; t++) this._rebuildParticle(this.particles[t], e);
return this.mesh.updateVerticesData(wn.b.PositionKind, this._positions32, !1, !1), this;
}),
(e.prototype.removeParticles = function (e, t) {
var n = t - e + 1;
if (!this._expandable || n <= 0 || n >= this.nbParticles || !this._updatable) return [];
var i = this.particles,
r = this.nbParticles;
if (t < r - 1)
for (var o = t + 1, a = i[o]._pos - i[e]._pos, s = i[o]._ind - i[e]._ind, c = o; c < r; c++) {
var l = i[c];
(l._pos -= a), (l._ind -= s);
}
var u = i.splice(e, n);
(this._positions.length = 0),
(this._indices.length = 0),
(this._colors.length = 0),
(this._uvs.length = 0),
(this._normals.length = 0),
(this._index = 0),
(this._idxOfId.length = 0),
(this._depthSort || this._multimaterialEnabled) && (this.depthSortedParticles = []);
for (var h = 0, d = i.length, p = 0; p < d; p++) {
var f = i[p],
m = f._model,
g = m._shape,
b = m._indices,
_ = m._normals,
v = m._shapeColors,
y = m._shapeUV;
(f.idx = p),
(this._idxOfId[f.id] = p),
this._meshBuilder(this._index, h, g, this._positions, b, this._indices, y, this._uvs, v, this._colors, _, this._normals, f.idx, f.idxInShape, null, m),
(this._index += g.length),
(h += b.length);
}
return (this.nbParticles -= n), (this._isNotBuilt = !0), u;
}),
(e.prototype.insertParticlesFromArray = function (e) {
if (!this._expandable) return this;
for (var t = 0, n = e[0].shapeId, i = e.length, r = 0; r < i; r++) {
var o = e[r],
a = o._model,
s = a._shape,
c = a._indices,
l = a._shapeUV,
u = a._shapeColors,
h = a._normals,
d = !h;
this.recomputeNormals = d || this.recomputeNormals;
var p = o._boundingInfo,
f = this._insertNewParticle(this.nbParticles, t, a, s, c, l, u, h, p, null, null);
o.copyToRef(f), t++, n != o.shapeId && ((n = o.shapeId), (t = 0));
}
return (this._isNotBuilt = !0), this;
}),
(e.prototype._insertNewParticle = function (e, t, n, i, r, o, a, s, c, l, u) {
var h = this._positions.length,
d = this._indices.length,
p = this._meshBuilder(this._index, d, i, this._positions, r, this._indices, o, this._uvs, a, this._colors, s, this._normals, e, t, u, n),
f = null;
return (
this._updatable &&
((f = this._addParticle(this.nbParticles, this._lastParticleId, h, d, n, this._shapeCounter, t, c, l)).position.copyFrom(p.position),
f.rotation.copyFrom(p.rotation),
p.rotationQuaternion && (f.rotationQuaternion ? f.rotationQuaternion.copyFrom(p.rotationQuaternion) : (f.rotationQuaternion = p.rotationQuaternion.clone())),
p.color && (f.color ? f.color.copyFrom(p.color) : (f.color = p.color.clone())),
f.scaling.copyFrom(p.scaling),
f.uvs.copyFrom(p.uvs),
null !== p.materialIndex && (f.materialIndex = p.materialIndex),
this.expandable && (this._idxOfId[f.id] = f.idx)),
l || ((this._index += i.length), this.nbParticles++, this._lastParticleId++),
f
);
}),
(e.prototype.setParticles = function (e, t, n) {
if ((void 0 === e && (e = 0), void 0 === t && (t = this.nbParticles - 1), void 0 === n && (n = !0), !this._updatable || this._isNotBuilt)) return this;
this.beforeUpdateParticles(e, t, n);
var i = a.c.Matrix[0],
r = a.c.Matrix[1],
o = this.mesh,
s = this._colors32,
c = this._positions32,
l = this._normals32,
u = this._uvs32,
h = this._indices32,
d = this._indices,
p = this._fixedNormal32,
f = a.c.Vector3,
m = f[5].copyFromFloats(1, 0, 0),
g = f[6].copyFromFloats(0, 1, 0),
b = f[7].copyFromFloats(0, 0, 1),
_ = f[8].setAll(Number.MAX_VALUE),
v = f[9].setAll(-Number.MAX_VALUE),
y = f[10].setAll(0);
if (((this.billboard || this._depthSort) && (this.mesh.computeWorldMatrix(!0), this.mesh._worldMatrix.invertToRef(r)), this.billboard)) {
var C = f[0];
this._camera.getDirectionToRef(Be.a.Z, C), a.e.TransformNormalToRef(C, r, b), b.normalize();
var P = this._camera.getViewMatrix(!0);
a.e.TransformNormalFromFloatsToRef(P.m[1], P.m[5], P.m[9], r, g), a.e.CrossToRef(g, b, m), g.normalize(), m.normalize();
}
this._depthSort && a.e.TransformCoordinatesToRef(this._camera.globalPosition, r, y), a.a.IdentityToRef(i);
var x = 0,
T = 0,
S = 0,
O = 0,
E = 0,
M = 0,
A = 0;
if ((this.mesh.isFacetDataEnabled && (this._computeBoundingBox = !0), (t = t >= this.nbParticles ? this.nbParticles - 1 : t), this._computeBoundingBox && (0 != e || t != this.nbParticles - 1))) {
var I = this.mesh._boundingInfo;
I && (_.copyFrom(I.minimum), v.copyFrom(I.maximum));
}
var D = ((T = this.particles[e]._pos) / 3) | 0;
(O = 4 * D), (M = 2 * D);
for (var R = e; R <= t; R++) {
var w = this.particles[R];
this.updateParticle(w);
var L = w._model._shape,
F = w._model._shapeUV,
N = w._rotationMatrix,
k = w.position,
z = w.rotation,
j = w.scaling,
B = w._globalPosition;
if (this._depthSort && this._depthSortParticles) {
var V = this.depthSortedParticles[R];
(V.ind = w._ind), (V.indicesLength = w._model._indicesLength), (V.sqDistance = a.e.DistanceSquared(w.position, y));
}
if (!w.alive || (w._stillInvisible && !w.isVisible)) (T += 3 * (A = L.length)), (O += 4 * A), (M += 2 * A);
else {
if (w.isVisible) {
w._stillInvisible = !1;
var G = f[12];
if ((w.pivot.multiplyToRef(j, G), this.billboard && ((z.x = 0), (z.y = 0)), (this._computeParticleRotation || this.billboard) && w.getRotationMatrix(i), null !== w.parentId)) {
var U = this.getParticleById(w.parentId);
if (U) {
var H = U._rotationMatrix,
W = U._globalPosition,
X = k.x * H[1] + k.y * H[4] + k.z * H[7],
Y = k.x * H[0] + k.y * H[3] + k.z * H[6],
K = k.x * H[2] + k.y * H[5] + k.z * H[8];
if (((B.x = W.x + Y), (B.y = W.y + X), (B.z = W.z + K), this._computeParticleRotation || this.billboard)) {
var Z = i.m;
(N[0] = Z[0] * H[0] + Z[1] * H[3] + Z[2] * H[6]),
(N[1] = Z[0] * H[1] + Z[1] * H[4] + Z[2] * H[7]),
(N[2] = Z[0] * H[2] + Z[1] * H[5] + Z[2] * H[8]),
(N[3] = Z[4] * H[0] + Z[5] * H[3] + Z[6] * H[6]),
(N[4] = Z[4] * H[1] + Z[5] * H[4] + Z[6] * H[7]),
(N[5] = Z[4] * H[2] + Z[5] * H[5] + Z[6] * H[8]),
(N[6] = Z[8] * H[0] + Z[9] * H[3] + Z[10] * H[6]),
(N[7] = Z[8] * H[1] + Z[9] * H[4] + Z[10] * H[7]),
(N[8] = Z[8] * H[2] + Z[9] * H[5] + Z[10] * H[8]);
}
} else w.parentId = null;
} else if (((B.x = k.x), (B.y = k.y), (B.z = k.z), this._computeParticleRotation || this.billboard)) {
Z = i.m;
(N[0] = Z[0]), (N[1] = Z[1]), (N[2] = Z[2]), (N[3] = Z[4]), (N[4] = Z[5]), (N[5] = Z[6]), (N[6] = Z[8]), (N[7] = Z[9]), (N[8] = Z[10]);
}
var q = f[11];
for (w.translateFromPivot ? q.setAll(0) : q.copyFrom(G), A = 0; A < L.length; A++) {
(x = T + 3 * A), (S = O + 4 * A), (E = M + 2 * A), (C = f[0]).copyFrom(L[A]), this._computeParticleVertex && this.updateParticleVertex(w, C, A);
var Q = C.x * j.x - G.x,
J = C.y * j.y - G.y,
$ = C.z * j.z - G.z;
(Y = Q * N[0] + J * N[3] + $ * N[6]), (X = Q * N[1] + J * N[4] + $ * N[7]), (K = Q * N[2] + J * N[5] + $ * N[8]);
(Y += q.x), (X += q.y), (K += q.z);
var ee = (c[x] = B.x + m.x * Y + g.x * X + b.x * K),
te = (c[x + 1] = B.y + m.y * Y + g.y * X + b.y * K),
ne = (c[x + 2] = B.z + m.z * Y + g.z * X + b.z * K);
if ((this._computeBoundingBox && (_.minimizeInPlaceFromFloats(ee, te, ne), v.maximizeInPlaceFromFloats(ee, te, ne)), !this._computeParticleVertex)) {
var ie = p[x],
re = p[x + 1],
oe = p[x + 2],
ae = ie * N[0] + re * N[3] + oe * N[6],
se = ie * N[1] + re * N[4] + oe * N[7],
ce = ie * N[2] + re * N[5] + oe * N[8];
(l[x] = m.x * ae + g.x * se + b.x * ce), (l[x + 1] = m.y * ae + g.y * se + b.y * ce), (l[x + 2] = m.z * ae + g.z * se + b.z * ce);
}
if (this._computeParticleColor && w.color) {
var le = w.color,
ue = this._colors32;
(ue[S] = le.r), (ue[S + 1] = le.g), (ue[S + 2] = le.b), (ue[S + 3] = le.a);
}
if (this._computeParticleTexture) {
var he = w.uvs;
(u[E] = F[2 * A] * (he.z - he.x) + he.x), (u[E + 1] = F[2 * A + 1] * (he.w - he.y) + he.y);
}
}
} else
for (w._stillInvisible = !0, A = 0; A < L.length; A++) {
if (((S = O + 4 * A), (E = M + 2 * A), (c[(x = T + 3 * A)] = c[x + 1] = c[x + 2] = 0), (l[x] = l[x + 1] = l[x + 2] = 0), this._computeParticleColor && w.color)) {
le = w.color;
(s[S] = le.r), (s[S + 1] = le.g), (s[S + 2] = le.b), (s[S + 3] = le.a);
}
if (this._computeParticleTexture) {
he = w.uvs;
(u[E] = F[2 * A] * (he.z - he.x) + he.x), (u[E + 1] = F[2 * A + 1] * (he.w - he.y) + he.y);
}
}
if (this._particlesIntersect) {
var de = w._boundingInfo,
pe = de.boundingBox,
fe = de.boundingSphere,
me = w._modelBoundingInfo;
if (!this._bSphereOnly) {
var ge = me.boundingBox.vectors,
be = f[1],
_e = f[2];
be.setAll(Number.MAX_VALUE), _e.setAll(-Number.MAX_VALUE);
for (var ve = 0; ve < 8; ve++) {
var ye = ge[ve].x * j.x,
Ce = ge[ve].y * j.y,
Pe = ge[ve].z * j.z,
xe = ((Y = ye * N[0] + Ce * N[3] + Pe * N[6]), (X = ye * N[1] + Ce * N[4] + Pe * N[7]), (K = ye * N[2] + Ce * N[5] + Pe * N[8]), k.x + m.x * Y + g.x * X + b.x * K),
Te = k.y + m.y * Y + g.y * X + b.y * K,
Se = k.z + m.z * Y + g.z * X + b.z * K;
be.minimizeInPlaceFromFloats(xe, Te, Se), _e.maximizeInPlaceFromFloats(xe, Te, Se);
}
pe.reConstruct(be, _e, o._worldMatrix);
}
var Oe = me.minimum.multiplyToRef(j, f[1]),
Ee = me.maximum.multiplyToRef(j, f[2]),
Me = Ee.addToRef(Oe, f[3]).scaleInPlace(0.5).addInPlace(B),
Ae = Ee.subtractToRef(Oe, f[4]).scaleInPlace(0.5 * this._bSphereRadiusFactor),
Ie = Me.subtractToRef(Ae, f[1]),
De = Me.addToRef(Ae, f[2]);
fe.reConstruct(Ie, De, o._worldMatrix);
}
(T = x + 3), (O = S + 4), (M = E + 2);
}
}
if (n) {
if (
(this._computeParticleColor && o.updateVerticesData(wn.b.ColorKind, s, !1, !1),
this._computeParticleTexture && o.updateVerticesData(wn.b.UVKind, u, !1, !1),
o.updateVerticesData(wn.b.PositionKind, c, !1, !1),
!o.areNormalsFrozen || o.isFacetDataEnabled)
) {
if (this._computeParticleVertex || o.isFacetDataEnabled) {
var Re = o.isFacetDataEnabled ? o.getFacetDataParameters() : null;
Rn.a.ComputeNormals(c, h, l, Re);
for (var we = 0; we < l.length; we++) p[we] = l[we];
}
o.areNormalsFrozen || o.updateVerticesData(wn.b.NormalKind, l, !1, !1);
}
if (this._depthSort && this._depthSortParticles) {
var Le = this.depthSortedParticles;
Le.sort(this._depthSortFunction);
for (var Fe = Le.length, Ne = 0, ke = 0; ke < Fe; ke++) {
var ze = Le[ke].indicesLength,
je = Le[ke].ind;
for (we = 0; we < ze; we++) (h[Ne] = d[je + we]), Ne++;
}
o.updateIndices(h);
}
}
return (
this._computeBoundingBox && (o._boundingInfo ? o._boundingInfo.reConstruct(_, v, o._worldMatrix) : (o._boundingInfo = new ti.a(_, v, o._worldMatrix))),
this._autoUpdateSubMeshes && this.computeSubMeshes(),
this.afterUpdateParticles(e, t, n),
this
);
}),
(e.prototype.dispose = function () {
this.mesh.dispose(),
(this.vars = null),
(this._positions = null),
(this._indices = null),
(this._normals = null),
(this._uvs = null),
(this._colors = null),
(this._indices32 = null),
(this._positions32 = null),
(this._normals32 = null),
(this._fixedNormal32 = null),
(this._uvs32 = null),
(this._colors32 = null),
(this.pickedParticles = null);
}),
(e.prototype.getParticleById = function (e) {
var t = this.particles[e];
if (t && t.id == e) return t;
var n = this.particles,
i = this._idxOfId[e];
if (void 0 !== i) return n[i];
for (var r = 0, o = this.nbParticles; r < o; ) {
var a = n[r];
if (a.id == e) return a;
r++;
}
return null;
}),
(e.prototype.getParticlesByShapeId = function (e) {
var t = [];
return this.getParticlesByShapeIdToRef(e, t), t;
}),
(e.prototype.getParticlesByShapeIdToRef = function (e, t) {
t.length = 0;
for (var n = 0; n < this.nbParticles; n++) {
var i = this.particles[n];
i.shapeId == e && t.push(i);
}
return this;
}),
(e.prototype.computeSubMeshes = function () {
if (!this.mesh || !this._multimaterialEnabled) return this;
var e = this.depthSortedParticles;
if (this.particles.length > 0)
for (var t = 0; t < this.particles.length; t++) {
var n = this.particles[t];
n.materialIndex || (n.materialIndex = 0);
var i = e[t];
(i.materialIndex = n.materialIndex), (i.ind = n._ind), (i.indicesLength = n._model._indicesLength);
}
this._sortParticlesByMaterial();
var r = this._indicesByMaterial,
o = this._materialIndexes,
a = this.mesh;
a.subMeshes = [];
for (var s = a.getTotalVertices(), c = 0; c < o.length; c++) {
var l = r[c],
u = r[c + 1] - l,
h = o[c];
new Kc.b(h, 0, s, l, u, a);
}
return this;
}),
(e.prototype._sortParticlesByMaterial = function () {
var e = [0];
this._indicesByMaterial = e;
var t = [];
this._materialIndexes = t;
var n = this.depthSortedParticles;
n.sort(this._materialSortFunction);
var i = n.length,
r = this._indices32,
o = this._indices,
a = 0,
s = n[0].materialIndex;
t.push(s);
for (var c = 0; c < i; c++) {
var l = n[c],
u = l.indicesLength,
h = l.ind;
l.materialIndex !== s && ((s = l.materialIndex), e.push(a), t.push(s));
for (var d = 0; d < u; d++) (r[a] = o[h + d]), a++;
}
return e.push(r.length), this._updatable && this.mesh.updateIndices(r), this;
}),
(e.prototype._setMaterialIndexesById = function () {
this._materialIndexesById = {};
for (var e = 0; e < this._materials.length; e++) {
var t = this._materials[e].uniqueId;
this._materialIndexesById[t] = e;
}
}),
(e.prototype._filterUniqueMaterialId = function (e) {
return e.filter(function (e, t, n) {
return n.indexOf(e) === t;
});
}),
(e.prototype._setDefaultMaterial = function () {
return this._defaultMaterial || (this._defaultMaterial = new Mn.a(this.name + "DefaultMaterial", this._scene)), this._defaultMaterial;
}),
(e.prototype.refreshVisibleSize = function () {
return this._isVisibilityBoxLocked || this.mesh.refreshBoundingInfo(), this;
}),
(e.prototype.setVisibilityBox = function (e) {
var t = e / 2;
this.mesh._boundingInfo = new ti.a(new a.e(-t, -t, -t), new a.e(t, t, t));
}),
Object.defineProperty(e.prototype, "isAlwaysVisible", {
get: function () {
return this._alwaysVisible;
},
set: function (e) {
(this._alwaysVisible = e), (this.mesh.alwaysSelectAsActiveMesh = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isVisibilityBoxLocked", {
get: function () {
return this._isVisibilityBoxLocked;
},
set: function (e) {
(this._isVisibilityBoxLocked = e), (this.mesh.getBoundingInfo().isLocked = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleRotation", {
get: function () {
return this._computeParticleRotation;
},
set: function (e) {
this._computeParticleRotation = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleColor", {
get: function () {
return this._computeParticleColor;
},
set: function (e) {
this._computeParticleColor = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleTexture", {
get: function () {
return this._computeParticleTexture;
},
set: function (e) {
this._computeParticleTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleVertex", {
get: function () {
return this._computeParticleVertex;
},
set: function (e) {
this._computeParticleVertex = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeBoundingBox", {
get: function () {
return this._computeBoundingBox;
},
set: function (e) {
this._computeBoundingBox = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "depthSortParticles", {
get: function () {
return this._depthSortParticles;
},
set: function (e) {
this._depthSortParticles = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "expandable", {
get: function () {
return this._expandable;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "multimaterialEnabled", {
get: function () {
return this._multimaterialEnabled;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "useModelMaterial", {
get: function () {
return this._useModelMaterial;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "materials", {
get: function () {
return this._materials;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setMultiMaterial = function (e) {
(this._materials = this._filterUniqueMaterialId(e)), this._setMaterialIndexesById(), this._multimaterial && this._multimaterial.dispose(), (this._multimaterial = new Ta.a(this.name + "MultiMaterial", this._scene));
for (var t = 0; t < this._materials.length; t++) this._multimaterial.subMaterials.push(this._materials[t]);
this.computeSubMeshes(), (this.mesh.material = this._multimaterial);
}),
Object.defineProperty(e.prototype, "multimaterial", {
get: function () {
return this._multimaterial;
},
set: function (e) {
this._multimaterial = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "autoUpdateSubMeshes", {
get: function () {
return this._autoUpdateSubMeshes;
},
set: function (e) {
this._autoUpdateSubMeshes = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.initParticles = function () {}),
(e.prototype.recycleParticle = function (e) {
return e;
}),
(e.prototype.updateParticle = function (e) {
return e;
}),
(e.prototype.updateParticleVertex = function (e, t, n) {
return t;
}),
(e.prototype.beforeUpdateParticles = function (e, t, n) {}),
(e.prototype.afterUpdateParticles = function (e, t, n) {}),
e
);
})(),
pu = (function () {
function e(e, t, n, i, r) {
(this.idx = 0),
(this.color = new s.b(1, 1, 1, 1)),
(this.position = a.e.Zero()),
(this.rotation = a.e.Zero()),
(this.uv = new a.d(0, 0)),
(this.velocity = a.e.Zero()),
(this.pivot = a.e.Zero()),
(this.translateFromPivot = !1),
(this._pos = 0),
(this._ind = 0),
(this.groupId = 0),
(this.idxInGroup = 0),
(this._stillInvisible = !1),
(this._rotationMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]),
(this.parentId = null),
(this._globalPosition = a.e.Zero()),
(this.idx = e),
(this._group = t),
(this.groupId = n),
(this.idxInGroup = i),
(this._pcs = r);
}
return (
Object.defineProperty(e.prototype, "size", {
get: function () {
return this.size;
},
set: function (e) {
this.size = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "quaternion", {
get: function () {
return this.rotationQuaternion;
},
set: function (e) {
this.rotationQuaternion = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.intersectsMesh = function (e, t) {
if (!e._boundingInfo) return !1;
if ((t = t || !1)) return e.getBoundingInfo().boundingSphere.intersectsPoint(this.position.add(this._pcs.mesh.position));
var n, i, r, o, a, s;
(n = e.getBoundingInfo().boundingBox.maximumWorld.x),
(i = e.getBoundingInfo().boundingBox.minimumWorld.x),
(r = e.getBoundingInfo().boundingBox.maximumWorld.y),
(o = e.getBoundingInfo().boundingBox.minimumWorld.y),
(a = e.getBoundingInfo().boundingBox.maximumWorld.z),
(s = e.getBoundingInfo().boundingBox.minimumWorld.z);
var c = this.position.x + this._pcs.mesh.position.x,
l = this.position.y + this._pcs.mesh.position.y,
u = this.position.z + this._pcs.mesh.position.z;
return i <= c && c <= n && o <= l && l <= r && s <= u && u <= a;
}),
(e.prototype.getRotationMatrix = function (e) {
var t;
if (this.rotationQuaternion) t = this.rotationQuaternion;
else {
t = a.c.Quaternion[0];
var n = this.rotation;
a.b.RotationYawPitchRollToRef(n.y, n.x, n.z, t);
}
t.toRotationMatrix(e);
}),
e
);
})(),
fu = function (e, t) {
(this.groupID = e), (this._positionFunction = t);
};
!(function (e) {
(e[(e.Color = 2)] = "Color"), (e[(e.UV = 1)] = "UV"), (e[(e.Random = 0)] = "Random"), (e[(e.Stated = 3)] = "Stated");
})(su || (su = {}));
var mu = (function () {
function e(e, t, n, i) {
(this.particles = new Array()),
(this.nbParticles = 0),
(this.counter = 0),
(this.vars = {}),
(this._promises = []),
(this._positions = new Array()),
(this._indices = new Array()),
(this._normals = new Array()),
(this._colors = new Array()),
(this._uvs = new Array()),
(this._updatable = !0),
(this._isVisibilityBoxLocked = !1),
(this._alwaysVisible = !1),
(this._groups = new Array()),
(this._groupCounter = 0),
(this._computeParticleColor = !0),
(this._computeParticleTexture = !0),
(this._computeParticleRotation = !0),
(this._computeBoundingBox = !1),
(this._isReady = !1),
(this.name = e),
(this._size = t),
(this._scene = n || E.a.LastCreatedScene),
i && void 0 !== i.updatable ? (this._updatable = i.updatable) : (this._updatable = !0);
}
return (
(e.prototype.buildMeshAsync = function () {
var e = this;
return Promise.all(this._promises).then(function () {
return (e._isReady = !0), e._buildMesh();
});
}),
(e.prototype._buildMesh = function () {
0 === this.nbParticles && this.addPoints(1), (this._positions32 = new Float32Array(this._positions)), (this._uvs32 = new Float32Array(this._uvs)), (this._colors32 = new Float32Array(this._colors));
var e = new Rn.a();
e.set(this._positions32, wn.b.PositionKind), this._uvs32.length > 0 && e.set(this._uvs32, wn.b.UVKind);
var t = 0;
this._colors32.length > 0 && ((t = 1), e.set(this._colors32, wn.b.ColorKind));
var n = new Ee.a(this.name, this._scene);
e.applyToMesh(n, this._updatable), (this.mesh = n), (this._positions = null), (this._uvs = null), (this._colors = null), this._updatable || (this.particles.length = 0);
var i = new Mn.a("point cloud material", this._scene);
return (
(i.emissiveColor = new s.a(t, t, t)),
(i.disableLighting = !0),
(i.pointsCloud = !0),
(i.pointSize = this._size),
(n.material = i),
new Promise(function (e) {
return e(n);
})
);
}),
(e.prototype._addParticle = function (e, t, n, i) {
var r = new pu(e, t, n, i, this);
return this.particles.push(r), r;
}),
(e.prototype._randomUnitVector = function (e) {
(e.position = new a.e(Math.random(), Math.random(), Math.random())), (e.color = new s.b(1, 1, 1, 1));
}),
(e.prototype._getColorIndicesForCoord = function (e, t, n, i) {
var r = e._groupImageData,
o = n * (4 * i) + 4 * t,
a = [o, o + 1, o + 2, o + 3],
c = a[1],
l = a[2],
u = a[3],
h = r[a[0]],
d = r[c],
p = r[l],
f = r[u];
return new s.b(h / 255, d / 255, p / 255, f);
}),
(e.prototype._setPointsColorOrUV = function (e, t, n, i, r, o, c) {
n && e.updateFacetData();
var l = 2 * e.getBoundingInfo().boundingSphere.radius,
u = e.getVerticesData(wn.b.PositionKind),
h = e.getIndices(),
d = e.getVerticesData(wn.b.UVKind),
p = e.getVerticesData(wn.b.ColorKind),
f = a.e.Zero();
e.computeWorldMatrix();
var m = e.getWorldMatrix();
if (!m.isIdentity()) for (var g = 0; g < u.length / 3; g++) a.e.TransformCoordinatesFromFloatsToRef(u[3 * g], u[3 * g + 1], u[3 * g + 2], m, f), (u[3 * g] = f.x), (u[3 * g + 1] = f.y), (u[3 * g + 2] = f.z);
var b,
_,
v = 0,
y = 0,
C = 0,
P = 0,
x = 0,
T = 0,
S = 0,
O = 0,
E = 0,
M = 0,
A = 0,
I = 0,
D = 0,
R = 0,
w = a.e.Zero(),
L = a.e.Zero(),
F = a.e.Zero(),
N = a.e.Zero(),
k = a.e.Zero(),
j = 0,
B = 0,
V = 0,
G = 0,
U = 0,
H = 0,
W = a.d.Zero(),
X = a.d.Zero(),
Y = a.d.Zero(),
K = a.d.Zero(),
Z = a.d.Zero(),
q = 0,
Q = 0,
J = 0,
$ = 0,
ee = 0,
te = 0,
ne = 0,
ie = 0,
re = 0,
oe = 0,
ae = 0,
se = 0,
ce = a.f.Zero(),
le = a.f.Zero(),
ue = a.f.Zero(),
he = a.f.Zero(),
de = a.f.Zero(),
pe = 0,
fe = 0;
c = c || 0;
var me,
ge = new a.f(0, 0, 0, 0),
be = a.e.Zero(),
_e = a.e.Zero(),
ve = a.e.Zero(),
ye = 0,
Ce = a.e.Zero(),
Pe = 0,
xe = 0,
Te = new Re(a.e.Zero(), new a.e(1, 0, 0)),
Se = a.e.Zero();
for (y = 0; y < h.length / 3; y++) {
var Oe, Ee, Me, Ae, Ie, De, we, Le;
(C = h[3 * y]),
(P = h[3 * y + 1]),
(x = h[3 * y + 2]),
(T = u[3 * C]),
(S = u[3 * C + 1]),
(O = u[3 * C + 2]),
(E = u[3 * P]),
(M = u[3 * P + 1]),
(A = u[3 * P + 2]),
(I = u[3 * x]),
(D = u[3 * x + 1]),
(R = u[3 * x + 2]),
w.set(T, S, O),
L.set(E, M, A),
F.set(I, D, R),
L.subtractToRef(w, N),
F.subtractToRef(L, k),
d && ((j = d[2 * C]), (B = d[2 * C + 1]), (V = d[2 * P]), (G = d[2 * P + 1]), (U = d[2 * x]), (H = d[2 * x + 1]), W.set(j, B), X.set(V, G), Y.set(U, H), X.subtractToRef(W, K), Y.subtractToRef(X, Z)),
p &&
i &&
((q = p[4 * C]),
(Q = p[4 * C + 1]),
(J = p[4 * C + 2]),
($ = p[4 * C + 3]),
(ee = p[4 * P]),
(te = p[4 * P + 1]),
(ne = p[4 * P + 2]),
(ie = p[4 * P + 3]),
(re = p[4 * x]),
(oe = p[4 * x + 1]),
(ae = p[4 * x + 2]),
(se = p[4 * x + 3]),
ce.set(q, Q, J, $),
le.set(ee, te, ne, ie),
ue.set(re, oe, ae, se),
le.subtractToRef(ce, he),
ue.subtractToRef(le, de));
for (var Fe, Ne, ke = new s.a(0, 0, 0), ze = new s.a(0, 0, 0), je = 0; je < t._groupDensity[y]; je++)
(v = this.particles.length),
this._addParticle(v, t, this._groupCounter, y + je),
(Ne = this.particles[v]),
(pe = z.a.RandomRange(0, 1)),
(fe = z.a.RandomRange(0, 1)),
(b = w.add(N.scale(pe)).add(k.scale(pe * fe))),
n &&
((be = e.getFacetNormal(y).normalize().scale(-1)),
(_e = N.clone().normalize()),
(ve = a.e.Cross(be, _e)),
(ye = z.a.RandomRange(0, 2 * Math.PI)),
(Ce = _e.scale(Math.cos(ye)).add(ve.scale(Math.sin(ye)))),
(ye = z.a.RandomRange(0.1, Math.PI / 2)),
(Se = Ce.scale(Math.cos(ye)).add(be.scale(Math.sin(ye)))),
(Te.origin = b.add(Se.scale(1e-5))),
(Te.direction = Se),
(Te.length = l),
(me = Te.intersectsMesh(e)).hit && ((xe = me.pickedPoint.subtract(b).length()), (Pe = z.a.RandomRange(0, 1) * xe), b.addInPlace(Se.scale(Pe)))),
(Ne.position = b.clone()),
this._positions.push(Ne.position.x, Ne.position.y, Ne.position.z),
void 0 !== i
? d &&
((_ = W.add(K.scale(pe)).add(Z.scale(pe * fe))),
i
? r && null !== t._groupImageData
? ((Oe = t._groupImgWidth),
(Ee = t._groupImgHeight),
(Fe = this._getColorIndicesForCoord(t, Math.round(_.x * Oe), Math.round(_.y * Ee), Oe)),
(Ne.color = Fe),
this._colors.push(Fe.r, Fe.g, Fe.b, Fe.a))
: p
? ((ge = ce.add(he.scale(pe)).add(de.scale(pe * fe))), (Ne.color = new s.b(ge.x, ge.y, ge.z, ge.w)), this._colors.push(ge.x, ge.y, ge.z, ge.w))
: ((ge = ce.set(Math.random(), Math.random(), Math.random(), 1)), (Ne.color = new s.b(ge.x, ge.y, ge.z, ge.w)), this._colors.push(ge.x, ge.y, ge.z, ge.w))
: ((Ne.uv = _.clone()), this._uvs.push(Ne.uv.x, Ne.uv.y)))
: (o
? (ke.set(o.r, o.g, o.b),
(Me = z.a.RandomRange(-c, c)),
(Ae = z.a.RandomRange(-c, c)),
(Ie = (Le = ke.toHSV()).r),
(De = Le.g + Me) < 0 && (De = 0),
De > 1 && (De = 1),
(we = Le.b + Ae) < 0 && (we = 0),
we > 1 && (we = 1),
s.a.HSVtoRGBToRef(Ie, De, we, ze),
ge.set(ze.r, ze.g, ze.b, 1))
: (ge = ce.set(Math.random(), Math.random(), Math.random(), 1)),
(Ne.color = new s.b(ge.x, ge.y, ge.z, ge.w)),
this._colors.push(ge.x, ge.y, ge.z, ge.w));
}
}),
(e.prototype._colorFromTexture = function (e, t, n) {
var i = this;
if (null === e.material) return g.a.Warn(e.name + "has no material."), (t._groupImageData = null), void this._setPointsColorOrUV(e, t, n, !0, !1);
var r = e.material.getActiveTextures();
if (0 === r.length) return g.a.Warn(e.name + "has no useable texture."), (t._groupImageData = null), void this._setPointsColorOrUV(e, t, n, !0, !1);
var o = e.clone();
o.setEnabled(!1),
this._promises.push(
new Promise(function (e) {
Cr.a.WhenAllReady(r, function () {
var a = t._textureNb;
return (
a < 0 && (a = 0),
a > r.length - 1 && (a = r.length - 1),
(t._groupImageData = r[a].readPixels()),
(t._groupImgWidth = r[a].getSize().width),
(t._groupImgHeight = r[a].getSize().height),
i._setPointsColorOrUV(o, t, n, !0, !0),
o.dispose(),
e()
);
});
})
);
}),
(e.prototype._calculateDensity = function (e, t, n) {
for (
var i, r, o, s, c, l, u, h, d, p, f, m, g, b, _, v, y, C = new Array(), P = a.e.Zero(), x = a.e.Zero(), T = a.e.Zero(), S = a.e.Zero(), O = a.e.Zero(), E = a.e.Zero(), M = new Array(), A = 0, I = n.length / 3, D = 0;
D < I;
D++
)
(i = n[3 * D]),
(r = n[3 * D + 1]),
(o = n[3 * D + 2]),
(s = t[3 * i]),
(c = t[3 * i + 1]),
(l = t[3 * i + 2]),
(u = t[3 * r]),
(h = t[3 * r + 1]),
(d = t[3 * r + 2]),
(p = t[3 * o]),
(f = t[3 * o + 1]),
(m = t[3 * o + 2]),
P.set(s, c, l),
x.set(u, h, d),
T.set(p, f, m),
x.subtractToRef(P, S),
T.subtractToRef(x, O),
T.subtractToRef(P, E),
(v = ((g = S.length()) + (b = O.length()) + (_ = E.length())) / 2),
(A += y = Math.sqrt(v * (v - g) * (v - b) * (v - _))),
(M[D] = y);
var R = 0;
for (D = 0; D < I; D++) (C[D] = Math.floor((e * M[D]) / A)), (R += C[D]);
var w = e - R,
L = Math.floor(w / I),
F = w % I;
L > 0 &&
(C = C.map(function (e) {
return e + L;
}));
for (D = 0; D < F; D++) C[D] += 1;
return C;
}),
(e.prototype.addPoints = function (e, t) {
void 0 === t && (t = this._randomUnitVector);
for (var n, i = new fu(this._groupCounter, t), r = this.nbParticles, o = 0; o < e; o++)
(n = this._addParticle(r, i, this._groupCounter, o)),
i && i._positionFunction && i._positionFunction(n, r, o),
this._positions.push(n.position.x, n.position.y, n.position.z),
n.color && this._colors.push(n.color.r, n.color.g, n.color.b, n.color.a),
n.uv && this._uvs.push(n.uv.x, n.uv.y),
r++;
return (this.nbParticles += e), this._groupCounter++, this._groupCounter;
}),
(e.prototype.addSurfacePoints = function (e, t, n, i, r) {
var o = n || su.Random;
(isNaN(o) || o < 0 || o > 3) && (o = su.Random);
var a = e.getVerticesData(wn.b.PositionKind),
c = e.getIndices();
this._groups.push(this._groupCounter);
var l = new fu(this._groupCounter, null);
switch (((l._groupDensity = this._calculateDensity(t, a, c)), o === su.Color ? (l._textureNb = i || 0) : (i = i || new s.b(1, 1, 1, 1)), o)) {
case su.Color:
this._colorFromTexture(e, l, !1);
break;
case su.UV:
this._setPointsColorOrUV(e, l, !1, !1, !1);
break;
case su.Random:
this._setPointsColorOrUV(e, l, !1);
break;
case su.Stated:
this._setPointsColorOrUV(e, l, !1, void 0, void 0, i, r);
}
return (this.nbParticles += t), this._groupCounter++, this._groupCounter - 1;
}),
(e.prototype.addVolumePoints = function (e, t, n, i, r) {
var o = n || su.Random;
(isNaN(o) || o < 0 || o > 3) && (o = su.Random);
var a = e.getVerticesData(wn.b.PositionKind),
c = e.getIndices();
this._groups.push(this._groupCounter);
var l = new fu(this._groupCounter, null);
switch (((l._groupDensity = this._calculateDensity(t, a, c)), o === su.Color ? (l._textureNb = i || 0) : (i = i || new s.b(1, 1, 1, 1)), o)) {
case su.Color:
this._colorFromTexture(e, l, !0);
break;
case su.UV:
this._setPointsColorOrUV(e, l, !0, !1, !1);
break;
case su.Random:
this._setPointsColorOrUV(e, l, !0);
break;
case su.Stated:
this._setPointsColorOrUV(e, l, !0, void 0, void 0, i, r);
}
return (this.nbParticles += t), this._groupCounter++, this._groupCounter - 1;
}),
(e.prototype.setParticles = function (e, t, n) {
if ((void 0 === e && (e = 0), void 0 === t && (t = this.nbParticles - 1), void 0 === n && (n = !0), !this._updatable || !this._isReady)) return this;
this.beforeUpdateParticles(e, t, n);
var i = a.c.Matrix[0],
r = this.mesh,
o = this._colors32,
s = this._positions32,
c = this._uvs32,
l = a.c.Vector3,
u = l[5].copyFromFloats(1, 0, 0),
h = l[6].copyFromFloats(0, 1, 0),
d = l[7].copyFromFloats(0, 0, 1),
p = l[8].setAll(Number.MAX_VALUE),
f = l[9].setAll(-Number.MAX_VALUE);
a.a.IdentityToRef(i);
var m = 0;
if ((this.mesh.isFacetDataEnabled && (this._computeBoundingBox = !0), (t = t >= this.nbParticles ? this.nbParticles - 1 : t), this._computeBoundingBox && (0 != e || t != this.nbParticles - 1))) {
var g = this.mesh._boundingInfo;
g && (p.copyFrom(g.minimum), f.copyFrom(g.maximum));
}
m = 0;
for (var b = 0, _ = 0, v = 0, y = e; y <= t; y++) {
var C = this.particles[y];
(b = 3 * (m = C.idx)), (_ = 4 * m), (v = 2 * m), this.updateParticle(C);
var P = C._rotationMatrix,
x = C.position,
T = C._globalPosition;
if ((this._computeParticleRotation && C.getRotationMatrix(i), null !== C.parentId)) {
var S = this.particles[C.parentId],
O = S._rotationMatrix,
E = S._globalPosition,
M = x.x * O[1] + x.y * O[4] + x.z * O[7],
A = x.x * O[0] + x.y * O[3] + x.z * O[6],
I = x.x * O[2] + x.y * O[5] + x.z * O[8];
if (((T.x = E.x + A), (T.y = E.y + M), (T.z = E.z + I), this._computeParticleRotation)) {
var D = i.m;
(P[0] = D[0] * O[0] + D[1] * O[3] + D[2] * O[6]),
(P[1] = D[0] * O[1] + D[1] * O[4] + D[2] * O[7]),
(P[2] = D[0] * O[2] + D[1] * O[5] + D[2] * O[8]),
(P[3] = D[4] * O[0] + D[5] * O[3] + D[6] * O[6]),
(P[4] = D[4] * O[1] + D[5] * O[4] + D[6] * O[7]),
(P[5] = D[4] * O[2] + D[5] * O[5] + D[6] * O[8]),
(P[6] = D[8] * O[0] + D[9] * O[3] + D[10] * O[6]),
(P[7] = D[8] * O[1] + D[9] * O[4] + D[10] * O[7]),
(P[8] = D[8] * O[2] + D[9] * O[5] + D[10] * O[8]);
}
} else if (((T.x = 0), (T.y = 0), (T.z = 0), this._computeParticleRotation)) {
D = i.m;
(P[0] = D[0]), (P[1] = D[1]), (P[2] = D[2]), (P[3] = D[4]), (P[4] = D[5]), (P[5] = D[6]), (P[6] = D[8]), (P[7] = D[9]), (P[8] = D[10]);
}
var R = l[11];
C.translateFromPivot ? R.setAll(0) : R.copyFrom(C.pivot);
var w = l[0];
w.copyFrom(C.position);
var L = w.x - C.pivot.x,
F = w.y - C.pivot.y,
N = w.z - C.pivot.z,
k = L * P[0] + F * P[3] + N * P[6],
z = L * P[1] + F * P[4] + N * P[7],
j = L * P[2] + F * P[5] + N * P[8];
(k += R.x), (z += R.y), (j += R.z);
var B = (s[b] = T.x + u.x * k + h.x * z + d.x * j),
V = (s[b + 1] = T.y + u.y * k + h.y * z + d.y * j),
G = (s[b + 2] = T.z + u.z * k + h.z * z + d.z * j);
if ((this._computeBoundingBox && (p.minimizeInPlaceFromFloats(B, V, G), f.maximizeInPlaceFromFloats(B, V, G)), this._computeParticleColor && C.color)) {
var U = C.color,
H = this._colors32;
(H[_] = U.r), (H[_ + 1] = U.g), (H[_ + 2] = U.b), (H[_ + 3] = U.a);
}
if (this._computeParticleTexture && C.uv) {
var W = C.uv,
X = this._uvs32;
(X[v] = W.x), (X[v + 1] = W.y);
}
}
return (
n && (this._computeParticleColor && r.updateVerticesData(wn.b.ColorKind, o, !1, !1), this._computeParticleTexture && r.updateVerticesData(wn.b.UVKind, c, !1, !1), r.updateVerticesData(wn.b.PositionKind, s, !1, !1)),
this._computeBoundingBox && (r._boundingInfo ? r._boundingInfo.reConstruct(p, f, r._worldMatrix) : (r._boundingInfo = new ti.a(p, f, r._worldMatrix))),
this.afterUpdateParticles(e, t, n),
this
);
}),
(e.prototype.dispose = function () {
this.mesh.dispose(),
(this.vars = null),
(this._positions = null),
(this._indices = null),
(this._normals = null),
(this._uvs = null),
(this._colors = null),
(this._indices32 = null),
(this._positions32 = null),
(this._uvs32 = null),
(this._colors32 = null);
}),
(e.prototype.refreshVisibleSize = function () {
return this._isVisibilityBoxLocked || this.mesh.refreshBoundingInfo(), this;
}),
(e.prototype.setVisibilityBox = function (e) {
var t = e / 2;
this.mesh._boundingInfo = new ti.a(new a.e(-t, -t, -t), new a.e(t, t, t));
}),
Object.defineProperty(e.prototype, "isAlwaysVisible", {
get: function () {
return this._alwaysVisible;
},
set: function (e) {
(this._alwaysVisible = e), (this.mesh.alwaysSelectAsActiveMesh = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleRotation", {
set: function (e) {
this._computeParticleRotation = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleColor", {
get: function () {
return this._computeParticleColor;
},
set: function (e) {
this._computeParticleColor = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeParticleTexture", {
get: function () {
return this._computeParticleTexture;
},
set: function (e) {
this._computeParticleTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "computeBoundingBox", {
get: function () {
return this._computeBoundingBox;
},
set: function (e) {
this._computeBoundingBox = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.initParticles = function () {}),
(e.prototype.recycleParticle = function (e) {
return e;
}),
(e.prototype.updateParticle = function (e) {
return e;
}),
(e.prototype.beforeUpdateParticles = function (e, t, n) {}),
(e.prototype.afterUpdateParticles = function (e, t, n) {}),
e
);
})();
(ge.a.prototype.getPhysicsEngine = function () {
return this._physicsEngine;
}),
(ge.a.prototype.enablePhysics = function (e, t) {
if ((void 0 === e && (e = null), this._physicsEngine)) return !0;
var n = this._getComponent(me.a.NAME_PHYSICSENGINE);
n || ((n = new _u(this)), this._addComponent(n));
try {
return (this._physicsEngine = new Aa(e, t)), (this._physicsTimeAccumulator = 0), !0;
} catch (e) {
return g.a.Error(e.message), !1;
}
}),
(ge.a.prototype.disablePhysicsEngine = function () {
this._physicsEngine && (this._physicsEngine.dispose(), (this._physicsEngine = null));
}),
(ge.a.prototype.isPhysicsEnabled = function () {
return void 0 !== this._physicsEngine;
}),
(ge.a.prototype.deleteCompoundImpostor = function (e) {
var t = e.parts[0].mesh;
t.physicsImpostor && (t.physicsImpostor.dispose(), (t.physicsImpostor = null));
}),
(ge.a.prototype._advancePhysicsEngineStep = function (e) {
if (this._physicsEngine) {
var t = this._physicsEngine.getSubTimeStep();
if (t > 0)
for (this._physicsTimeAccumulator += e; this._physicsTimeAccumulator > t; )
this.onBeforePhysicsObservable.notifyObservers(this), this._physicsEngine._step(t / 1e3), this.onAfterPhysicsObservable.notifyObservers(this), (this._physicsTimeAccumulator -= t);
else this.onBeforePhysicsObservable.notifyObservers(this), this._physicsEngine._step(e / 1e3), this.onAfterPhysicsObservable.notifyObservers(this);
}
}),
Object.defineProperty(ke.a.prototype, "physicsImpostor", {
get: function () {
return this._physicsImpostor;
},
set: function (e) {
var t = this;
this._physicsImpostor !== e &&
(this._disposePhysicsObserver && this.onDisposeObservable.remove(this._disposePhysicsObserver),
(this._physicsImpostor = e),
e &&
(this._disposePhysicsObserver = this.onDisposeObservable.add(function () {
t.physicsImpostor && (t.physicsImpostor.dispose(), (t.physicsImpostor = null));
})));
},
enumerable: !0,
configurable: !0,
}),
(ke.a.prototype.getPhysicsImpostor = function () {
return this.physicsImpostor;
}),
(ke.a.prototype.applyImpulse = function (e, t) {
return this.physicsImpostor ? (this.physicsImpostor.applyImpulse(e, t), this) : this;
}),
(ke.a.prototype.setPhysicsLinkWith = function (e, t, n, i) {
return this.physicsImpostor && e.physicsImpostor ? (this.physicsImpostor.createJoint(e.physicsImpostor, gi.HingeJoint, { mainPivot: t, connectedPivot: n, nativeParams: i }), this) : this;
});
var gu,
bu,
_u = (function () {
function e(e) {
var t = this;
(this.name = me.a.NAME_PHYSICSENGINE),
(this.scene = e),
(this.scene.onBeforePhysicsObservable = new o.c()),
(this.scene.onAfterPhysicsObservable = new o.c()),
(this.scene.getDeterministicFrameTime = function () {
return t.scene._physicsEngine ? 1e3 * t.scene._physicsEngine.getTimeStep() : 1e3 / 60;
});
}
return (
(e.prototype.register = function () {}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {
this.scene.onBeforePhysicsObservable.clear(), this.scene.onAfterPhysicsObservable.clear(), this.scene._physicsEngine && this.scene.disablePhysicsEngine();
}),
e
);
})(),
vu = (function () {
function e(e) {
(this._scene = e), (this._physicsEngine = this._scene.getPhysicsEngine()), this._physicsEngine || g.a.Warn("Physics engine not enabled. Please enable the physics before you can use the methods.");
}
return (
(e.prototype.applyRadialExplosionImpulse = function (e, t, n, i) {
if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call this method."), null;
var r = this._physicsEngine.getImpostors();
if (0 === r.length) return null;
"number" == typeof t && (((t = new Tu()).radius = t), (t.strength = n || t.strength), (t.falloff = i || t.falloff));
var o = new yu(this._scene, t),
a = Array();
return (
r.forEach(function (t) {
var n = o.getImpostorHitData(t, e);
n && (t.applyImpulse(n.force, n.contactPoint), a.push({ impostor: t, hitData: n }));
}),
o.triggerAffectedImpostorsCallback(a),
o.dispose(!1),
o
);
}),
(e.prototype.applyRadialExplosionForce = function (e, t, n, i) {
if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null;
var r = this._physicsEngine.getImpostors();
if (0 === r.length) return null;
"number" == typeof t && (((t = new Tu()).radius = t), (t.strength = n || t.strength), (t.falloff = i || t.falloff));
var o = new yu(this._scene, t),
a = Array();
return (
r.forEach(function (t) {
var n = o.getImpostorHitData(t, e);
n && (t.applyForce(n.force, n.contactPoint), a.push({ impostor: t, hitData: n }));
}),
o.triggerAffectedImpostorsCallback(a),
o.dispose(!1),
o
);
}),
(e.prototype.gravitationalField = function (e, t, n, i) {
if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null;
if (0 === this._physicsEngine.getImpostors().length) return null;
"number" == typeof t && (((t = new Tu()).radius = t), (t.strength = n || t.strength), (t.falloff = i || t.falloff));
var r = new Cu(this, this._scene, e, t);
return r.dispose(!1), r;
}),
(e.prototype.updraft = function (e, t, n, i, r) {
if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null;
if (0 === this._physicsEngine.getImpostors().length) return null;
"number" == typeof t && (((t = new Su()).radius = t), (t.strength = n || t.strength), (t.height = i || t.height), (t.updraftMode = r || t.updraftMode));
var o = new Pu(this._scene, e, t);
return o.dispose(!1), o;
}),
(e.prototype.vortex = function (e, t, n, i) {
if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null;
if (0 === this._physicsEngine.getImpostors().length) return null;
"number" == typeof t && (((t = new Ou()).radius = t), (t.strength = n || t.strength), (t.height = i || t.height));
var r = new xu(this._scene, e, t);
return r.dispose(!1), r;
}),
e
);
})(),
yu = (function () {
function e(e, t) {
(this._scene = e), (this._options = t), (this._dataFetched = !1), (this._options = Object(h.a)(Object(h.a)({}, new Tu()), this._options));
}
return (
(e.prototype.getData = function () {
return (this._dataFetched = !0), { sphere: this._sphere };
}),
(e.prototype.getImpostorHitData = function (e, t) {
if (0 === e.mass) return null;
if (!this._intersectsWithSphere(e, t, this._options.radius)) return null;
if ("Mesh" !== e.object.getClassName() && "InstancedMesh" !== e.object.getClassName()) return null;
var n = e.getObjectCenter().subtract(t),
i = new Re(t, n, this._options.radius).intersectsMesh(e.object).pickedPoint;
if (!i) return null;
var r = a.e.Distance(t, i);
if (r > this._options.radius) return null;
var o = this._options.falloff === gu.Constant ? this._options.strength : this._options.strength * (1 - r / this._options.radius);
return { force: n.multiplyByFloats(o, o, o), contactPoint: i, distanceFromOrigin: r };
}),
(e.prototype.triggerAffectedImpostorsCallback = function (e) {
this._options.affectedImpostorsCallback && this._options.affectedImpostorsCallback(e);
}),
(e.prototype.dispose = function (e) {
var t = this;
void 0 === e && (e = !0),
e
? this._sphere.dispose()
: setTimeout(function () {
t._dataFetched || t._sphere.dispose();
}, 0);
}),
(e.prototype._prepareSphere = function () {
this._sphere || ((this._sphere = mi.CreateSphere("radialExplosionEventSphere", this._options.sphere, this._scene)), (this._sphere.isVisible = !1));
}),
(e.prototype._intersectsWithSphere = function (e, t, n) {
var i = e.object;
return (
this._prepareSphere(),
(this._sphere.position = t),
(this._sphere.scaling = new a.e(2 * n, 2 * n, 2 * n)),
this._sphere._updateBoundingInfo(),
this._sphere.computeWorldMatrix(!0),
this._sphere.intersectsMesh(i, !0)
);
}),
e
);
})(),
Cu = (function () {
function e(e, t, n, i) {
(this._physicsHelper = e),
(this._scene = t),
(this._origin = n),
(this._options = i),
(this._dataFetched = !1),
(this._options = Object(h.a)(Object(h.a)({}, new Tu()), this._options)),
(this._tickCallback = this._tick.bind(this)),
(this._options.strength = -1 * this._options.strength);
}
return (
(e.prototype.getData = function () {
return (this._dataFetched = !0), { sphere: this._sphere };
}),
(e.prototype.enable = function () {
this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback);
}),
(e.prototype.disable = function () {
this._scene.unregisterBeforeRender(this._tickCallback);
}),
(e.prototype.dispose = function (e) {
var t = this;
void 0 === e && (e = !0),
e
? this._sphere.dispose()
: setTimeout(function () {
t._dataFetched || t._sphere.dispose();
}, 0);
}),
(e.prototype._tick = function () {
if (this._sphere) this._physicsHelper.applyRadialExplosionForce(this._origin, this._options);
else {
var e = this._physicsHelper.applyRadialExplosionForce(this._origin, this._options);
e && (this._sphere = e.getData().sphere.clone("radialExplosionEventSphereClone"));
}
}),
e
);
})(),
Pu = (function () {
function e(e, t, n) {
(this._scene = e),
(this._origin = t),
(this._options = n),
(this._originTop = a.e.Zero()),
(this._originDirection = a.e.Zero()),
(this._cylinderPosition = a.e.Zero()),
(this._dataFetched = !1),
(this._physicsEngine = this._scene.getPhysicsEngine()),
(this._options = Object(h.a)(Object(h.a)({}, new Su()), this._options)),
this._origin.addToRef(new a.e(0, this._options.height / 2, 0), this._cylinderPosition),
this._origin.addToRef(new a.e(0, this._options.height, 0), this._originTop),
this._options.updraftMode === bu.Perpendicular && (this._originDirection = this._origin.subtract(this._originTop).normalize()),
(this._tickCallback = this._tick.bind(this)),
this._prepareCylinder();
}
return (
(e.prototype.getData = function () {
return (this._dataFetched = !0), { cylinder: this._cylinder };
}),
(e.prototype.enable = function () {
this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback);
}),
(e.prototype.disable = function () {
this._scene.unregisterBeforeRender(this._tickCallback);
}),
(e.prototype.dispose = function (e) {
var t = this;
void 0 === e && (e = !0),
this._cylinder &&
(e
? this._cylinder.dispose()
: setTimeout(function () {
t._dataFetched || t._cylinder.dispose();
}, 0));
}),
(e.prototype.getImpostorHitData = function (e) {
if (0 === e.mass) return null;
if (!this._intersectsWithCylinder(e)) return null;
var t = e.getObjectCenter();
if (this._options.updraftMode === bu.Perpendicular) var n = this._originDirection;
else n = t.subtract(this._originTop);
var i = a.e.Distance(this._origin, t),
r = -1 * this._options.strength;
return { force: n.multiplyByFloats(r, r, r), contactPoint: t, distanceFromOrigin: i };
}),
(e.prototype._tick = function () {
var e = this;
this._physicsEngine.getImpostors().forEach(function (t) {
var n = e.getImpostorHitData(t);
n && t.applyForce(n.force, n.contactPoint);
});
}),
(e.prototype._prepareCylinder = function () {
this._cylinder || ((this._cylinder = jn.CreateCylinder("updraftEventCylinder", { height: this._options.height, diameter: 2 * this._options.radius }, this._scene)), (this._cylinder.isVisible = !1));
}),
(e.prototype._intersectsWithCylinder = function (e) {
var t = e.object;
return (this._cylinder.position = this._cylinderPosition), this._cylinder.intersectsMesh(t, !0);
}),
e
);
})(),
xu = (function () {
function e(e, t, n) {
(this._scene = e),
(this._origin = t),
(this._options = n),
(this._originTop = a.e.Zero()),
(this._cylinderPosition = a.e.Zero()),
(this._dataFetched = !1),
(this._physicsEngine = this._scene.getPhysicsEngine()),
(this._options = Object(h.a)(Object(h.a)({}, new Ou()), this._options)),
this._origin.addToRef(new a.e(0, this._options.height / 2, 0), this._cylinderPosition),
this._origin.addToRef(new a.e(0, this._options.height, 0), this._originTop),
(this._tickCallback = this._tick.bind(this)),
this._prepareCylinder();
}
return (
(e.prototype.getData = function () {
return (this._dataFetched = !0), { cylinder: this._cylinder };
}),
(e.prototype.enable = function () {
this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback);
}),
(e.prototype.disable = function () {
this._scene.unregisterBeforeRender(this._tickCallback);
}),
(e.prototype.dispose = function (e) {
var t = this;
void 0 === e && (e = !0),
e
? this._cylinder.dispose()
: setTimeout(function () {
t._dataFetched || t._cylinder.dispose();
}, 0);
}),
(e.prototype.getImpostorHitData = function (e) {
if (0 === e.mass) return null;
if (!this._intersectsWithCylinder(e)) return null;
if ("Mesh" !== e.object.getClassName() && "InstancedMesh" !== e.object.getClassName()) return null;
var t = e.getObjectCenter(),
n = new a.e(this._origin.x, t.y, this._origin.z),
i = t.subtract(n),
r = new Re(n, i, this._options.radius).intersectsMesh(e.object),
o = r.pickedPoint;
if (!o) return null;
var s = r.distance / this._options.radius,
c = o.normalize();
if ((s > this._options.centripetalForceThreshold && (c = c.negate()), s > this._options.centripetalForceThreshold))
var l = c.x * this._options.centripetalForceMultiplier,
u = c.y * this._options.updraftForceMultiplier,
h = c.z * this._options.centripetalForceMultiplier;
else {
var d = a.e.Cross(n, t).normalize();
(l = (d.x + c.x) * this._options.centrifugalForceMultiplier), (u = this._originTop.y * this._options.updraftForceMultiplier), (h = (d.z + c.z) * this._options.centrifugalForceMultiplier);
}
var p = new a.e(l, u, h);
return { force: (p = p.multiplyByFloats(this._options.strength, this._options.strength, this._options.strength)), contactPoint: t, distanceFromOrigin: s };
}),
(e.prototype._tick = function () {
var e = this;
this._physicsEngine.getImpostors().forEach(function (t) {
var n = e.getImpostorHitData(t);
n && t.applyForce(n.force, n.contactPoint);
});
}),
(e.prototype._prepareCylinder = function () {
this._cylinder || ((this._cylinder = jn.CreateCylinder("vortexEventCylinder", { height: this._options.height, diameter: 2 * this._options.radius }, this._scene)), (this._cylinder.isVisible = !1));
}),
(e.prototype._intersectsWithCylinder = function (e) {
var t = e.object;
return (this._cylinder.position = this._cylinderPosition), this._cylinder.intersectsMesh(t, !0);
}),
e
);
})(),
Tu = function () {
(this.radius = 5), (this.strength = 10), (this.falloff = gu.Constant), (this.sphere = { segments: 32, diameter: 1 });
},
Su = function () {
(this.radius = 5), (this.strength = 10), (this.height = 10), (this.updraftMode = bu.Center);
},
Ou = function () {
(this.radius = 5), (this.strength = 10), (this.height = 10), (this.centripetalForceThreshold = 0.7), (this.centripetalForceMultiplier = 5), (this.centrifugalForceMultiplier = 0.5), (this.updraftForceMultiplier = 0.02);
};
!(function (e) {
(e[(e.Constant = 0)] = "Constant"), (e[(e.Linear = 1)] = "Linear");
})(gu || (gu = {})),
(function (e) {
(e[(e.Center = 0)] = "Center"), (e[(e.Perpendicular = 1)] = "Perpendicular");
})(bu || (bu = {}));
var Eu =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float degree;\nvoid main(void)\n{\nvec3 color=texture2D(textureSampler,vUV).rgb;\nfloat luminance=dot(color,vec3(0.3,0.59,0.11));\nvec3 blackAndWhite=vec3(luminance,luminance,luminance);\ngl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);\n}";
Xt.a.ShadersStore.blackAndWhitePixelShader = Eu;
var Mu = (function (e) {
function t(t, n, i, r, o, a) {
var s = e.call(this, t, "blackAndWhite", ["degree"], null, n, i, r, o, a) || this;
return (
(s.degree = 1),
s.onApplyObservable.add(function (e) {
e.setFloat("degree", s.degree);
}),
s
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
Au = (function () {
function e(e, t, n, i) {
(this._name = t), (this._singleInstance = i || !0), (this._getPostProcesses = n), (this._cameras = {}), (this._indicesForCamera = {}), (this._postProcesses = {});
}
return (
Object.defineProperty(e.prototype, "isSupported", {
get: function () {
for (var e in this._postProcesses) if (this._postProcesses.hasOwnProperty(e)) for (var t = this._postProcesses[e], n = 0; n < t.length; n++) if (!t[n].isSupported) return !1;
return !0;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._update = function () {}),
(e.prototype._attachCameras = function (e) {
var t,
n = this,
i = $e.b.MakeArray(e || this._cameras);
if (i)
for (var r = 0; r < i.length; r++) {
var o = i[r],
a = o.name;
if (((t = this._singleInstance ? 0 : a), !this._postProcesses[t])) {
var s = this._getPostProcesses();
s && (this._postProcesses[t] = Array.isArray(s) ? s : [s]);
}
this._indicesForCamera[a] || (this._indicesForCamera[a] = []),
this._postProcesses[t].forEach(function (e) {
var t = o.attachPostProcess(e);
n._indicesForCamera[a].push(t);
}),
this._cameras[a] || (this._cameras[a] = o);
}
}),
(e.prototype._detachCameras = function (e) {
var t = $e.b.MakeArray(e || this._cameras);
if (t)
for (var n = 0; n < t.length; n++) {
var i = t[n],
r = i.name,
o = this._postProcesses[this._singleInstance ? 0 : r];
o &&
o.forEach(function (e) {
i.detachPostProcess(e);
}),
this._cameras[r] && (this._cameras[r] = null);
}
}),
(e.prototype._enable = function (e) {
var t = this,
n = $e.b.MakeArray(e || this._cameras);
if (n)
for (var i = 0; i < n.length; i++)
for (var r = n[i], o = r.name, a = 0; a < this._indicesForCamera[o].length; a++)
(void 0 !== r._postProcesses[this._indicesForCamera[o][a]] && null !== r._postProcesses[this._indicesForCamera[o][a]]) ||
this._postProcesses[this._singleInstance ? 0 : o].forEach(function (e) {
n[i].attachPostProcess(e, t._indicesForCamera[o][a]);
});
}),
(e.prototype._disable = function (e) {
var t = $e.b.MakeArray(e || this._cameras);
if (t)
for (var n = 0; n < t.length; n++) {
var i = t[n],
r = i.name;
this._postProcesses[this._singleInstance ? 0 : r].forEach(function (e) {
i.detachPostProcess(e);
});
}
}),
(e.prototype.getPostProcesses = function (e) {
return this._singleInstance ? this._postProcesses[0] : e ? this._postProcesses[e.name] : null;
}),
e
);
})(),
Iu =
"#include\n\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float threshold;\nuniform float exposure;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nfloat luma=getLuminance(gl_FragColor.rgb*exposure);\ngl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;\n}";
Xt.a.ShadersStore.extractHighlightsPixelShader = Iu;
var Du = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === s && (s = 0), void 0 === c && (c = !1);
var l = e.call(this, t, "extractHighlights", ["threshold", "exposure"], null, n, i, r, o, a, null, s, void 0, null, c) || this;
return (
(l.threshold = 0.9),
(l._exposure = 1),
(l._inputPostProcess = null),
l.onApplyObservable.add(function (e) {
l._inputPostProcess && e.setTextureFromPostProcess("textureSampler", l._inputPostProcess), e.setFloat("threshold", Math.pow(l.threshold, j.b)), e.setFloat("exposure", l._exposure);
}),
l
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
Ru =
"uniform sampler2D textureSampler;\nuniform sampler2D bloomBlur;\nvarying vec2 vUV;\nuniform float bloomWeight;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nvec3 blurred=texture2D(bloomBlur,vUV).rgb;\ngl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight);\n}\n";
Xt.a.ShadersStore.bloomMergePixelShader = Ru;
var wu = (function (e) {
function t(t, n, i, r, o, a, s, c, l, u, h) {
void 0 === u && (u = 0), void 0 === h && (h = !1);
var d = e.call(this, t, "bloomMerge", ["bloomWeight"], ["circleOfConfusionSampler", "blurStep0", "blurStep1", "blurStep2", "bloomBlur"], o, a, s, c, l, null, u, void 0, null, !0) || this;
return (
(d.weight = r),
d.onApplyObservable.add(function (e) {
e.setTextureFromPostProcess("textureSampler", n), e.setTextureFromPostProcessOutput("bloomBlur", i), e.setFloat("bloomWeight", d.weight);
}),
h || d.updateEffect(),
d
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
Lu = (function (e) {
function t(t, n, i, r, o, s) {
void 0 === o && (o = 0), void 0 === s && (s = !1);
var c =
e.call(
this,
t.getEngine(),
"bloom",
function () {
return c._effects;
},
!0
) || this;
return (
(c.bloomScale = n),
(c._effects = []),
(c._downscale = new Du("highlights", 1, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, s)),
(c._blurX = new Er("horizontal blur", new a.d(1, 0), 10, n, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, void 0, s)),
(c._blurX.alwaysForcePOT = !0),
(c._blurX.autoClear = !1),
(c._blurY = new Er("vertical blur", new a.d(0, 1), 10, n, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, void 0, s)),
(c._blurY.alwaysForcePOT = !0),
(c._blurY.autoClear = !1),
(c.kernel = r),
(c._effects = [c._downscale, c._blurX, c._blurY]),
(c._merge = new wu("bloomMerge", c._downscale, c._blurY, i, n, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, s)),
(c._merge.autoClear = !1),
c._effects.push(c._merge),
c
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "threshold", {
get: function () {
return this._downscale.threshold;
},
set: function (e) {
this._downscale.threshold = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "weight", {
get: function () {
return this._merge.weight;
},
set: function (e) {
this._merge.weight = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "kernel", {
get: function () {
return this._blurX.kernel / this.bloomScale;
},
set: function (e) {
(this._blurX.kernel = e * this.bloomScale), (this._blurY.kernel = e * this.bloomScale);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.disposeEffects = function (e) {
for (var t = 0; t < this._effects.length; t++) this._effects[t].dispose(e);
}),
(t.prototype._updateEffects = function () {
for (var e = 0; e < this._effects.length; e++) this._effects[e].updateEffect();
}),
(t.prototype._isReady = function () {
for (var e = 0; e < this._effects.length; e++) if (!this._effects[e].isReady()) return !1;
return !0;
}),
t
);
})(Au),
Fu =
"\nuniform sampler2D textureSampler;\n\nuniform float chromatic_aberration;\nuniform float radialIntensity;\nuniform vec2 direction;\nuniform vec2 centerPosition;\nuniform float screen_width;\nuniform float screen_height;\n\nvarying vec2 vUV;\nvoid main(void)\n{\nvec2 centered_screen_pos=vec2(vUV.x-centerPosition.x,vUV.y-centerPosition.y);\nvec2 directionOfEffect=direction;\nif(directionOfEffect.x == 0. && directionOfEffect.y == 0.){\ndirectionOfEffect=normalize(centered_screen_pos);\n}\nfloat radius2=centered_screen_pos.x*centered_screen_pos.x\n+centered_screen_pos.y*centered_screen_pos.y;\nfloat radius=sqrt(radius2);\nvec4 original=texture2D(textureSampler,vUV);\n\nvec3 ref_indices=vec3(-0.3,0.0,0.3);\nfloat ref_shiftX=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.x/screen_width;\nfloat ref_shiftY=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.y/screen_height;\n\nvec2 ref_coords_r=vec2(vUV.x+ref_indices.r*ref_shiftX,vUV.y+ref_indices.r*ref_shiftY*0.5);\nvec2 ref_coords_g=vec2(vUV.x+ref_indices.g*ref_shiftX,vUV.y+ref_indices.g*ref_shiftY*0.5);\nvec2 ref_coords_b=vec2(vUV.x+ref_indices.b*ref_shiftX,vUV.y+ref_indices.b*ref_shiftY*0.5);\noriginal.r=texture2D(textureSampler,ref_coords_r).r;\noriginal.g=texture2D(textureSampler,ref_coords_g).g;\noriginal.b=texture2D(textureSampler,ref_coords_b).b;\noriginal.a=clamp(texture2D(textureSampler,ref_coords_r).a+texture2D(textureSampler,ref_coords_g).a+texture2D(textureSampler,ref_coords_b).a,0.,1.);\ngl_FragColor=original;\n}";
Xt.a.ShadersStore.chromaticAberrationPixelShader = Fu;
var Nu = (function (e) {
function t(t, n, i, r, o, s, c, l, u, h) {
void 0 === u && (u = 0), void 0 === h && (h = !1);
var d = e.call(this, t, "chromaticAberration", ["chromatic_aberration", "screen_width", "screen_height", "direction", "radialIntensity", "centerPosition"], [], r, o, s, c, l, null, u, void 0, null, h) || this;
return (
(d.aberrationAmount = 30),
(d.radialIntensity = 0),
(d.direction = new a.d(0.707, 0.707)),
(d.centerPosition = new a.d(0.5, 0.5)),
d.onApplyObservable.add(function (e) {
e.setFloat("chromatic_aberration", d.aberrationAmount),
e.setFloat("screen_width", n),
e.setFloat("screen_height", i),
e.setFloat("radialIntensity", d.radialIntensity),
e.setFloat2("direction", d.direction.x, d.direction.y),
e.setFloat2("centerPosition", d.centerPosition.x, d.centerPosition.y);
}),
d
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
ku =
"\nuniform sampler2D depthSampler;\n\nvarying vec2 vUV;\n\nuniform vec2 cameraMinMaxZ;\n\nuniform float focusDistance;\nuniform float cocPrecalculation;\nvoid main(void)\n{\nfloat depth=texture2D(depthSampler,vUV).r;\nfloat pixelDistance=(cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth)*1000.0;\nfloat coc=abs(cocPrecalculation* ((focusDistance-pixelDistance)/pixelDistance));\ncoc=clamp(coc,0.0,1.0);\ngl_FragColor=vec4(coc,depth,coc,1.0);\n}\n";
Xt.a.ShadersStore.circleOfConfusionPixelShader = ku;
var zu = (function (e) {
function t(t, n, i, r, o, a, s, c, l) {
void 0 === c && (c = 0), void 0 === l && (l = !1);
var u = e.call(this, t, "circleOfConfusion", ["cameraMinMaxZ", "focusDistance", "cocPrecalculation"], ["depthSampler"], i, r, o, a, s, null, c, void 0, null, l) || this;
return (
(u.lensSize = 50),
(u.fStop = 1.4),
(u.focusDistance = 2e3),
(u.focalLength = 50),
(u._depthTexture = null),
(u._depthTexture = n),
u.onApplyObservable.add(function (e) {
if (u._depthTexture) {
e.setTexture("depthSampler", u._depthTexture);
var t = ((u.lensSize / u.fStop) * u.focalLength) / (u.focusDistance - u.focalLength);
e.setFloat("focusDistance", u.focusDistance), e.setFloat("cocPrecalculation", t), e.setFloat2("cameraMinMaxZ", u._depthTexture.activeCamera.minZ, u._depthTexture.activeCamera.maxZ);
} else g.a.Warn("No depth texture set on CircleOfConfusionPostProcess");
}),
u
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "depthTexture", {
set: function (e) {
this._depthTexture = e;
},
enumerable: !0,
configurable: !0,
}),
t
);
})(Wt.a),
ju =
"\nuniform sampler2D textureSampler;\nuniform sampler2D colorTable;\n\nvarying vec2 vUV;\n\nconst float SLICE_COUNT=16.0;\n\nvec4 sampleAs3DTexture(sampler2D textureSampler,vec3 uv,float width) {\nfloat sliceSize=1.0/width;\nfloat slicePixelSize=sliceSize/width;\nfloat sliceInnerSize=slicePixelSize*(width-1.0);\nfloat zSlice0=min(floor(uv.z*width),width-1.0);\nfloat zSlice1=min(zSlice0+1.0,width-1.0);\nfloat xOffset=slicePixelSize*0.5+uv.x*sliceInnerSize;\nfloat s0=xOffset+(zSlice0*sliceSize);\nfloat s1=xOffset+(zSlice1*sliceSize);\nvec4 slice0Color=texture2D(textureSampler,vec2(s0,uv.y));\nvec4 slice1Color=texture2D(textureSampler,vec2(s1,uv.y));\nfloat zOffset=mod(uv.z*width,1.0);\nvec4 result=mix(slice0Color,slice1Color,zOffset);\nreturn result;\n}\nvoid main(void)\n{\nvec4 screen_color=texture2D(textureSampler,vUV);\ngl_FragColor=sampleAs3DTexture(colorTable,screen_color.rgb,SLICE_COUNT);\n}";
Xt.a.ShadersStore.colorCorrectionPixelShader = ju;
var Bu = (function (e) {
function t(t, n, i, r, o, a, s) {
var c = e.call(this, t, "colorCorrection", null, ["colorTable"], i, r, o, a, s) || this;
return (
(c._colorTableTexture = new ln.a(n, r.getScene(), !0, !1, ln.a.TRILINEAR_SAMPLINGMODE)),
(c._colorTableTexture.anisotropicFilteringLevel = 1),
(c._colorTableTexture.wrapU = ln.a.CLAMP_ADDRESSMODE),
(c._colorTableTexture.wrapV = ln.a.CLAMP_ADDRESSMODE),
(c.onApply = function (e) {
e.setTexture("colorTable", c._colorTableTexture);
}),
c
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
Vu =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 screenSize;\nuniform float kernel[9];\nvoid main(void)\n{\nvec2 onePixel=vec2(1.0,1.0)/screenSize;\nvec4 colorSum =\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,-1))*kernel[0] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,-1))*kernel[1] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,-1))*kernel[2] +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0))*kernel[3] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,0))*kernel[4] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0))*kernel[5] +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,1))*kernel[6] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1))*kernel[7] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,1))*kernel[8];\nfloat kernelWeight =\nkernel[0] +\nkernel[1] +\nkernel[2] +\nkernel[3] +\nkernel[4] +\nkernel[5] +\nkernel[6] +\nkernel[7] +\nkernel[8];\nif (kernelWeight<=0.0) {\nkernelWeight=1.0;\n}\ngl_FragColor=vec4((colorSum/kernelWeight).rgb,1);\n}";
Xt.a.ShadersStore.convolutionPixelShader = Vu;
var Gu = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === c && (c = 0);
var l = e.call(this, t, "convolution", ["kernel", "screenSize"], null, i, r, o, a, s, null, c) || this;
return (
(l.kernel = n),
(l.onApply = function (e) {
e.setFloat2("screenSize", l.width, l.height), e.setArray("kernel", l.kernel);
}),
l
);
}
return (
Object(h.d)(t, e),
(t.EdgeDetect0Kernel = [1, 0, -1, 0, 0, 0, -1, 0, 1]),
(t.EdgeDetect1Kernel = [0, 1, 0, 1, -4, 1, 0, 1, 0]),
(t.EdgeDetect2Kernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1]),
(t.SharpenKernel = [0, -1, 0, -1, 5, -1, 0, -1, 0]),
(t.EmbossKernel = [-2, -1, 0, -1, 1, 1, 0, 1, 2]),
(t.GaussianKernel = [0, 1, 0, 1, 1, 1, 0, 1, 0]),
t
);
})(Wt.a),
Uu = (function (e) {
function t(t, n, i, r, o, a, s, c, l, u, h, d, p) {
void 0 === c && (c = null), void 0 === l && (l = ln.a.BILINEAR_SAMPLINGMODE), void 0 === d && (d = 0), void 0 === p && (p = !1);
var f = e.call(this, t, i, r, o, a, (l = 2), u, h, (d = 0), "#define DOF 1\r\n", p) || this;
return (
(f.direction = i),
f.onApplyObservable.add(function (e) {
null != c && e.setTextureFromPostProcess("textureSampler", c),
e.setTextureFromPostProcessOutput("circleOfConfusionSampler", s),
n.activeCamera && e.setFloat2("cameraMinMaxZ", n.activeCamera.minZ, n.activeCamera.maxZ);
}),
f
);
}
return Object(h.d)(t, e), t;
})(Er),
Hu =
"uniform sampler2D textureSampler;\nvarying vec2 vUV;\nuniform sampler2D circleOfConfusionSampler;\nuniform sampler2D blurStep0;\n#if BLUR_LEVEL>0\nuniform sampler2D blurStep1;\n#endif\n#if BLUR_LEVEL>1\nuniform sampler2D blurStep2;\n#endif\nvoid main(void)\n{\nfloat coc=texture2D(circleOfConfusionSampler,vUV).r;\n#if BLUR_LEVEL == 0\nvec4 original=texture2D(textureSampler,vUV);\nvec4 blurred0=texture2D(blurStep0,vUV);\ngl_FragColor=mix(original,blurred0,coc);\n#endif\n#if BLUR_LEVEL == 1\nif(coc<0.5){\nvec4 original=texture2D(textureSampler,vUV);\nvec4 blurred1=texture2D(blurStep1,vUV);\ngl_FragColor=mix(original,blurred1,coc/0.5);\n}else{\nvec4 blurred0=texture2D(blurStep0,vUV);\nvec4 blurred1=texture2D(blurStep1,vUV);\ngl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);\n}\n#endif\n#if BLUR_LEVEL == 2\nif(coc<0.33){\nvec4 original=texture2D(textureSampler,vUV);\nvec4 blurred2=texture2D(blurStep2,vUV);\ngl_FragColor=mix(original,blurred2,coc/0.33);\n}else if(coc<0.66){\nvec4 blurred1=texture2D(blurStep1,vUV);\nvec4 blurred2=texture2D(blurStep2,vUV);\ngl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);\n}else{\nvec4 blurred0=texture2D(blurStep0,vUV);\nvec4 blurred1=texture2D(blurStep1,vUV);\ngl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);\n}\n#endif\n}\n";
Xt.a.ShadersStore.depthOfFieldMergePixelShader = Hu;
var Wu,
Xu = function () {},
Yu = (function (e) {
function t(t, n, i, r, o, a, s, c, l, u, h) {
void 0 === u && (u = 0), void 0 === h && (h = !1);
var d = e.call(this, t, "depthOfFieldMerge", [], ["circleOfConfusionSampler", "blurStep0", "blurStep1", "blurStep2"], o, a, s, c, l, null, u, void 0, null, !0) || this;
return (
(d.blurSteps = r),
d.onApplyObservable.add(function (e) {
e.setTextureFromPostProcess("textureSampler", n),
e.setTextureFromPostProcessOutput("circleOfConfusionSampler", i),
r.forEach(function (t, n) {
e.setTextureFromPostProcessOutput("blurStep" + (r.length - n - 1), t);
});
}),
h || d.updateEffect(),
d
);
}
return (
Object(h.d)(t, e),
(t.prototype.updateEffect = function (t, n, i, r, o, a) {
void 0 === t && (t = null),
void 0 === n && (n = null),
void 0 === i && (i = null),
t || ((t = ""), (t += "#define BLUR_LEVEL " + (this.blurSteps.length - 1) + "\n")),
e.prototype.updateEffect.call(this, t, n, i, r, o, a);
}),
t
);
})(Wt.a);
!(function (e) {
(e[(e.Low = 0)] = "Low"), (e[(e.Medium = 1)] = "Medium"), (e[(e.High = 2)] = "High");
})(Wu || (Wu = {}));
var Ku = (function (e) {
function t(t, n, i, r, o) {
void 0 === i && (i = Wu.Low), void 0 === r && (r = 0), void 0 === o && (o = !1);
var s =
e.call(
this,
t.getEngine(),
"depth of field",
function () {
return s._effects;
},
!0
) || this;
(s._effects = []), (s._circleOfConfusion = new zu("circleOfConfusion", n, 1, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o)), (s._depthOfFieldBlurY = []), (s._depthOfFieldBlurX = []);
var c = 1,
l = 15;
switch (i) {
case Wu.High:
(c = 3), (l = 51);
break;
case Wu.Medium:
(c = 2), (l = 31);
break;
default:
(l = 15), (c = 1);
}
for (var u = l / Math.pow(2, c - 1), h = 1, d = 0; d < c; d++) {
var p = new Uu("verticle blur", t, new a.d(0, 1), u, h, null, s._circleOfConfusion, 0 == d ? s._circleOfConfusion : null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o);
(p.autoClear = !1), (h = 0.75 / Math.pow(2, d));
var f = new Uu("horizontal blur", t, new a.d(1, 0), u, h, null, s._circleOfConfusion, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o);
(f.autoClear = !1), s._depthOfFieldBlurY.push(p), s._depthOfFieldBlurX.push(f);
}
s._effects = [s._circleOfConfusion];
for (d = 0; d < s._depthOfFieldBlurX.length; d++) s._effects.push(s._depthOfFieldBlurY[d]), s._effects.push(s._depthOfFieldBlurX[d]);
return (
(s._dofMerge = new Yu("dofMerge", s._circleOfConfusion, s._circleOfConfusion, s._depthOfFieldBlurX, h, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o)),
(s._dofMerge.autoClear = !1),
s._effects.push(s._dofMerge),
s
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "focalLength", {
get: function () {
return this._circleOfConfusion.focalLength;
},
set: function (e) {
this._circleOfConfusion.focalLength = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fStop", {
get: function () {
return this._circleOfConfusion.fStop;
},
set: function (e) {
this._circleOfConfusion.fStop = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "focusDistance", {
get: function () {
return this._circleOfConfusion.focusDistance;
},
set: function (e) {
this._circleOfConfusion.focusDistance = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "lensSize", {
get: function () {
return this._circleOfConfusion.lensSize;
},
set: function (e) {
this._circleOfConfusion.lensSize = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "DepthOfFieldEffect";
}),
Object.defineProperty(t.prototype, "depthTexture", {
set: function (e) {
this._circleOfConfusion.depthTexture = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.disposeEffects = function (e) {
for (var t = 0; t < this._effects.length; t++) this._effects[t].dispose(e);
}),
(t.prototype._updateEffects = function () {
for (var e = 0; e < this._effects.length; e++) this._effects[e].updateEffect();
}),
(t.prototype._isReady = function () {
for (var e = 0; e < this._effects.length; e++) if (!this._effects[e].isReady()) return !1;
return !0;
}),
t
);
})(Au),
Zu = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D passSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(passSampler,vUV);\n}";
Xt.a.ShadersStore.displayPassPixelShader = Zu;
var qu = (function (e) {
function t(t, n, i, r, o, a) {
return e.call(this, t, "displayPass", ["passSampler"], ["passSampler"], n, i, r, o, a) || this;
}
return Object(h.d)(t, e), t;
})(Wt.a),
Qu =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform mat4 kernelMatrix;\nvoid main(void)\n{\nvec3 baseColor=texture2D(textureSampler,vUV).rgb;\nvec3 updatedColor=(kernelMatrix*vec4(baseColor,1.0)).rgb;\ngl_FragColor=vec4(updatedColor,1.0);\n}";
Xt.a.ShadersStore.filterPixelShader = Qu;
var Ju = (function (e) {
function t(t, n, i, r, o, a, s) {
var c = e.call(this, t, "filter", ["kernelMatrix"], null, i, r, o, a, s) || this;
return (
(c.kernelMatrix = n),
(c.onApply = function (e) {
e.setMatrix("kernelMatrix", c.kernelMatrix);
}),
c
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
$u =
"uniform sampler2D textureSampler;\nuniform vec2 texelSize;\nvarying vec2 vUV;\nvarying vec2 sampleCoordS;\nvarying vec2 sampleCoordE;\nvarying vec2 sampleCoordN;\nvarying vec2 sampleCoordW;\nvarying vec2 sampleCoordNW;\nvarying vec2 sampleCoordSE;\nvarying vec2 sampleCoordNE;\nvarying vec2 sampleCoordSW;\nconst float fxaaQualitySubpix=1.0;\nconst float fxaaQualityEdgeThreshold=0.166;\nconst float fxaaQualityEdgeThresholdMin=0.0833;\nconst vec3 kLumaCoefficients=vec3(0.2126,0.7152,0.0722);\n#define FxaaLuma(rgba) dot(rgba.rgb,kLumaCoefficients)\nvoid main(){\nvec2 posM;\nposM.x=vUV.x;\nposM.y=vUV.y;\nvec4 rgbyM=texture2D(textureSampler,vUV,0.0);\nfloat lumaM=FxaaLuma(rgbyM);\nfloat lumaS=FxaaLuma(texture2D(textureSampler,sampleCoordS,0.0));\nfloat lumaE=FxaaLuma(texture2D(textureSampler,sampleCoordE,0.0));\nfloat lumaN=FxaaLuma(texture2D(textureSampler,sampleCoordN,0.0));\nfloat lumaW=FxaaLuma(texture2D(textureSampler,sampleCoordW,0.0));\nfloat maxSM=max(lumaS,lumaM);\nfloat minSM=min(lumaS,lumaM);\nfloat maxESM=max(lumaE,maxSM);\nfloat minESM=min(lumaE,minSM);\nfloat maxWN=max(lumaN,lumaW);\nfloat minWN=min(lumaN,lumaW);\nfloat rangeMax=max(maxWN,maxESM);\nfloat rangeMin=min(minWN,minESM);\nfloat rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;\nfloat range=rangeMax-rangeMin;\nfloat rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);\n#ifndef MALI\nif(range=edgeVert;\nfloat subpixA=subpixNSWE*2.0+subpixNWSWNESE;\nif (!horzSpan)\n{\nlumaN=lumaW;\n}\nif (!horzSpan)\n{\nlumaS=lumaE;\n}\nif (horzSpan)\n{\nlengthSign=texelSize.y;\n}\nfloat subpixB=(subpixA*(1.0/12.0))-lumaM;\nfloat gradientN=lumaN-lumaM;\nfloat gradientS=lumaS-lumaM;\nfloat lumaNN=lumaN+lumaM;\nfloat lumaSS=lumaS+lumaM;\nbool pairN=abs(gradientN)>=abs(gradientS);\nfloat gradient=max(abs(gradientN),abs(gradientS));\nif (pairN)\n{\nlengthSign=-lengthSign;\n}\nfloat subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);\nvec2 posB;\nposB.x=posM.x;\nposB.y=posM.y;\nvec2 offNP;\noffNP.x=(!horzSpan) ? 0.0 : texelSize.x;\noffNP.y=(horzSpan) ? 0.0 : texelSize.y;\nif (!horzSpan)\n{\nposB.x+=lengthSign*0.5;\n}\nif (horzSpan)\n{\nposB.y+=lengthSign*0.5;\n}\nvec2 posN;\nposN.x=posB.x-offNP.x*1.5;\nposN.y=posB.y-offNP.y*1.5;\nvec2 posP;\nposP.x=posB.x+offNP.x*1.5;\nposP.y=posB.y+offNP.y*1.5;\nfloat subpixD=((-2.0)*subpixC)+3.0;\nfloat lumaEndN=FxaaLuma(texture2D(textureSampler,posN,0.0));\nfloat subpixE=subpixC*subpixC;\nfloat lumaEndP=FxaaLuma(texture2D(textureSampler,posP,0.0));\nif (!pairN)\n{\nlumaNN=lumaSS;\n}\nfloat gradientScaled=gradient*1.0/4.0;\nfloat lumaMM=lumaM-lumaNN*0.5;\nfloat subpixF=subpixD*subpixE;\nbool lumaMLTZero=lumaMM<0.0;\nlumaEndN-=lumaNN*0.5;\nlumaEndP-=lumaNN*0.5;\nbool doneN=abs(lumaEndN)>=gradientScaled;\nbool doneP=abs(lumaEndP)>=gradientScaled;\nif (!doneN)\n{\nposN.x-=offNP.x*3.0;\n}\nif (!doneN)\n{\nposN.y-=offNP.y*3.0;\n}\nbool doneNP=(!doneN) || (!doneP);\nif (!doneP)\n{\nposP.x+=offNP.x*3.0;\n}\nif (!doneP)\n{\nposP.y+=offNP.y*3.0;\n}\nif (doneNP)\n{\nif (!doneN) lumaEndN=FxaaLuma(texture2D(textureSampler,posN.xy,0.0));\nif (!doneP) lumaEndP=FxaaLuma(texture2D(textureSampler,posP.xy,0.0));\nif (!doneN) lumaEndN=lumaEndN-lumaNN*0.5;\nif (!doneP) lumaEndP=lumaEndP-lumaNN*0.5;\ndoneN=abs(lumaEndN)>=gradientScaled;\ndoneP=abs(lumaEndP)>=gradientScaled;\nif (!doneN) posN.x-=offNP.x*12.0;\nif (!doneN) posN.y-=offNP.y*12.0;\ndoneNP=(!doneN) || (!doneP);\nif (!doneP) posP.x+=offNP.x*12.0;\nif (!doneP) posP.y+=offNP.y*12.0;\n}\nfloat dstN=posM.x-posN.x;\nfloat dstP=posP.x-posM.x;\nif (!horzSpan)\n{\ndstN=posM.y-posN.y;\n}\nif (!horzSpan)\n{\ndstP=posP.y-posM.y;\n}\nbool goodSpanN=(lumaEndN<0.0) != lumaMLTZero;\nfloat spanLength=(dstP+dstN);\nbool goodSpanP=(lumaEndP<0.0) != lumaMLTZero;\nfloat spanLengthRcp=1.0/spanLength;\nbool directionN=dstN -1 ? "#define MALI 1\n" : null;
}),
t
);
})(Wt.a),
nh =
"#include\n\nuniform sampler2D textureSampler;\n\nuniform float intensity;\nuniform float animatedSeed;\n\nvarying vec2 vUV;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nvec2 seed=vUV*(animatedSeed);\nfloat grain=dither(seed,intensity);\n\nfloat lum=getLuminance(gl_FragColor.rgb);\nfloat grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;\ngl_FragColor.rgb+=grain*grainAmount;\ngl_FragColor.rgb=max(gl_FragColor.rgb,0.0);\n}";
Xt.a.ShadersStore.grainPixelShader = nh;
var ih = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === s && (s = 0), void 0 === c && (c = !1);
var l = e.call(this, t, "grain", ["intensity", "animatedSeed"], [], n, i, r, o, a, null, s, void 0, null, c) || this;
return (
(l.intensity = 30),
(l.animated = !1),
l.onApplyObservable.add(function (e) {
e.setFloat("intensity", l.intensity), e.setFloat("animatedSeed", l.animated ? Math.random() + 1 : 1);
}),
l
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
rh =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nconst vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\nvoid main(void)\n{\nvec4 tex=texture2D(textureSampler,vUV);\nvec3 c=tex.rgb;\nfloat luma=dot(c.rgb,RGBLuminanceCoefficients);\n\n\ngl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a);\n}";
Xt.a.ShadersStore.highlightsPixelShader = rh;
var oh = (function (e) {
function t(t, n, i, r, o, a, s) {
return void 0 === s && (s = 0), e.call(this, t, "highlights", null, null, n, i, r, o, a, null, s) || this;
}
return Object(h.d)(t, e), t;
})(Wt.a);
Xt.a.IncludesShadersStore.mrtFragmentDeclaration = "#if __VERSION__>=200\nlayout(location=0) out vec4 glFragData[{X}];\n#endif\n";
var ah =
"#extension GL_EXT_draw_buffers : require\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\nprecision highp int;\n#ifdef BUMP\nvarying mat4 vWorldView;\nvarying vec3 vNormalW;\n#else\nvarying vec3 vNormalV;\n#endif\nvarying vec4 vViewPos;\n#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\n#endif\n#ifdef VELOCITY\nvarying vec4 vCurrentPosition;\nvarying vec4 vPreviousPosition;\n#endif\n#ifdef NEED_UV\nvarying vec2 vUV;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#ifdef REFLECTIVITY\nvarying vec2 vReflectivityUV;\nuniform sampler2D reflectivitySampler;\n#endif\n#ifdef ALPHATEST\nuniform sampler2D diffuseSampler;\n#endif\n#include[RENDER_TARGET_COUNT]\n#include\nvoid main() {\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\ngl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\n\n#ifdef BUMP\nvec3 normalW=normalize(vNormalW);\n#include\ngl_FragData[1]=vec4(normalize(vec3(vWorldView*vec4(normalW,0.0))),1.0);\n#else\ngl_FragData[1]=vec4(normalize(vNormalV),1.0);\n#endif\n#ifdef POSITION\ngl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\n#endif\n#ifdef VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\nvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\nvec2 velocity=abs(a-b);\nvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\ngl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\n#endif\n#ifdef REFLECTIVITY\n#ifdef HAS_SPECULAR\n\nvec4 reflectivity=texture2D(reflectivitySampler,vReflectivityUV);\n#elif HAS_REFLECTIVITY\n\nvec4 reflectivity=vec4(texture2D(reflectivitySampler,vReflectivityUV).rgb,1.0);\n#else\nvec4 reflectivity=vec4(0.0,0.0,0.0,1.0);\n#endif\ngl_FragData[REFLECTIVITY_INDEX]=reflectivity;\n#endif\n}";
Xt.a.ShadersStore.geometryPixelShader = ah;
n(210);
var sh =
"precision highp float;\nprecision highp int;\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nattribute vec3 position;\nattribute vec3 normal;\n#ifdef NEED_UV\nvarying vec2 vUV;\n#ifdef ALPHATEST\nuniform mat4 diffuseMatrix;\n#endif\n#ifdef BUMP\nuniform mat4 bumpMatrix;\nvarying vec2 vBumpUV;\n#endif\n#ifdef REFLECTIVITY\nuniform mat4 reflectivityMatrix;\nvarying vec2 vReflectivityUV;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n\nuniform mat4 viewProjection;\nuniform mat4 view;\n#ifdef BUMP\nvarying mat4 vWorldView;\n#endif\n#ifdef BUMP\nvarying vec3 vNormalW;\n#else\nvarying vec3 vNormalV;\n#endif\nvarying vec4 vViewPos;\n#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\n#endif\n#ifdef VELOCITY\nuniform mat4 previousWorld;\nuniform mat4 previousViewProjection;\n#ifdef BONES_VELOCITY_ENABLED\n#if NUM_BONE_INFLUENCERS>0\nuniform mat4 mPreviousBones[BonesPerMesh];\n#endif\n#endif\nvarying vec4 vCurrentPosition;\nvarying vec4 vPreviousPosition;\n#endif\nvoid main(void)\n{\nvec3 positionUpdated=position;\nvec3 normalUpdated=normal;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#include\n#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\n\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\n#endif\n#include\nvec4 pos=vec4(finalWorld*vec4(positionUpdated,1.0));\n#ifdef BUMP\nvWorldView=view*finalWorld;\nvNormalW=normalUpdated;\n#else\nvNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\n#endif\nvViewPos=view*pos;\n#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;\npreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(positionUpdated,1.0);\n#else\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\n#endif\n#endif\n#if defined(POSITION) || defined(BUMP)\nvPositionW=pos.xyz/pos.w;\n#endif\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#ifdef NEED_UV\n#ifdef UV1\n#ifdef ALPHATEST\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#else\nvUV=uv;\n#endif\n#ifdef BUMP\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef REFLECTIVITY\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#endif\n#ifdef UV2\n#ifdef ALPHATEST\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#else\nvUV=uv2;\n#endif\n#ifdef BUMP\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\n#endif\n#ifdef REFLECTIVITY\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#endif\n#include\n}\n";
Xt.a.ShadersStore.geometryVertexShader = sh;
var ch = (function () {
function e(t, n) {
void 0 === n && (n = 1),
(this._previousTransformationMatrices = {}),
(this._previousBonesTransformationMatrices = {}),
(this.excludedSkinnedMeshesFromVelocity = []),
(this.renderTransparentMeshes = !0),
(this._enablePosition = !1),
(this._enableVelocity = !1),
(this._enableReflectivity = !1),
(this._positionIndex = -1),
(this._velocityIndex = -1),
(this._reflectivityIndex = -1),
(this._scene = t),
(this._ratio = n),
e._SceneComponentInitialization(this._scene),
this._createRenderTargets();
}
return (
Object.defineProperty(e.prototype, "renderList", {
set: function (e) {
this._multiRenderTarget.renderList = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isSupported", {
get: function () {
return this._multiRenderTarget.isSupported;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getTextureIndex = function (t) {
switch (t) {
case e.POSITION_TEXTURE_TYPE:
return this._positionIndex;
case e.VELOCITY_TEXTURE_TYPE:
return this._velocityIndex;
case e.REFLECTIVITY_TEXTURE_TYPE:
return this._reflectivityIndex;
default:
return -1;
}
}),
Object.defineProperty(e.prototype, "enablePosition", {
get: function () {
return this._enablePosition;
},
set: function (e) {
(this._enablePosition = e), this.dispose(), this._createRenderTargets();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "enableVelocity", {
get: function () {
return this._enableVelocity;
},
set: function (e) {
(this._enableVelocity = e), e || (this._previousTransformationMatrices = {}), this.dispose(), this._createRenderTargets();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "enableReflectivity", {
get: function () {
return this._enableReflectivity;
},
set: function (e) {
(this._enableReflectivity = e), this.dispose(), this._createRenderTargets();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "scene", {
get: function () {
return this._scene;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "ratio", {
get: function () {
return this._ratio;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.isReady = function (e, t) {
var n = e.getMaterial();
if (n && n.disableDepthWrite) return !1;
var i = [],
r = [wn.b.PositionKind, wn.b.NormalKind],
o = e.getMesh();
if (n) {
var a = !1;
n.needAlphaBlending() && (i.push("#define ALPHATEST"), (a = !0)),
n.bumpTexture && Mn.a.BumpTextureEnabled && (i.push("#define BUMP"), (a = !0)),
this._enableReflectivity && (n instanceof Mn.a && n.specularTexture ? (i.push("#define HAS_SPECULAR"), (a = !0)) : n instanceof Hr.a && n.reflectivityTexture && (i.push("#define HAS_REFLECTIVITY"), (a = !0))),
a && (i.push("#define NEED_UV"), o.isVerticesDataPresent(wn.b.UVKind) && (r.push(wn.b.UVKind), i.push("#define UV1")), o.isVerticesDataPresent(wn.b.UV2Kind) && (r.push(wn.b.UV2Kind), i.push("#define UV2")));
}
this._enablePosition && (i.push("#define POSITION"), i.push("#define POSITION_INDEX " + this._positionIndex)),
this._enableVelocity && (i.push("#define VELOCITY"), i.push("#define VELOCITY_INDEX " + this._velocityIndex), -1 === this.excludedSkinnedMeshesFromVelocity.indexOf(o) && i.push("#define BONES_VELOCITY_ENABLED")),
this._enableReflectivity && (i.push("#define REFLECTIVITY"), i.push("#define REFLECTIVITY_INDEX " + this._reflectivityIndex)),
o.useBones && o.computeBonesUsingShaders
? (r.push(wn.b.MatricesIndicesKind),
r.push(wn.b.MatricesWeightsKind),
o.numBoneInfluencers > 4 && (r.push(wn.b.MatricesIndicesExtraKind), r.push(wn.b.MatricesWeightsExtraKind)),
i.push("#define NUM_BONE_INFLUENCERS " + o.numBoneInfluencers),
i.push("#define BonesPerMesh " + (o.skeleton ? o.skeleton.bones.length + 1 : 0)))
: i.push("#define NUM_BONE_INFLUENCERS 0");
var s = o.morphTargetManager,
c = 0;
s && s.numInfluencers > 0 && ((c = s.numInfluencers), i.push("#define MORPHTARGETS"), i.push("#define NUM_MORPH_INFLUENCERS " + c), Ir.a.PrepareAttributesForMorphTargetsInfluencers(r, o, c)),
t && (i.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(r)),
i.push("#define RENDER_TARGET_COUNT " + this._multiRenderTarget.textures.length);
var l = i.join("\n");
return (
this._cachedDefines !== l &&
((this._cachedDefines = l),
(this._effect = this._scene
.getEngine()
.createEffect(
"geometry",
r,
[
"world",
"mBones",
"viewProjection",
"diffuseMatrix",
"view",
"previousWorld",
"previousViewProjection",
"mPreviousBones",
"morphTargetInfluences",
"bumpMatrix",
"reflectivityMatrix",
"vTangentSpaceParams",
"vBumpInfos",
],
["diffuseSampler", "bumpSampler", "reflectivitySampler"],
l,
void 0,
void 0,
void 0,
{ buffersCount: this._multiRenderTarget.textures.length - 1, maxSimultaneousMorphTargets: c }
))),
this._effect.isReady()
);
}),
(e.prototype.getGBuffer = function () {
return this._multiRenderTarget;
}),
Object.defineProperty(e.prototype, "samples", {
get: function () {
return this._multiRenderTarget.samples;
},
set: function (e) {
this._multiRenderTarget.samples = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this.getGBuffer().dispose();
}),
(e.prototype._createRenderTargets = function () {
var e = this,
t = this._scene.getEngine(),
n = 2;
if (
(this._enablePosition && ((this._positionIndex = n), n++),
this._enableVelocity && ((this._velocityIndex = n), n++),
this._enableReflectivity && ((this._reflectivityIndex = n), n++),
(this._multiRenderTarget = new ss("gBuffer", { width: t.getRenderWidth() * this._ratio, height: t.getRenderHeight() * this._ratio }, n, this._scene, {
generateMipMaps: !1,
generateDepthTexture: !0,
defaultType: 1,
})),
this.isSupported)
) {
(this._multiRenderTarget.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._multiRenderTarget.wrapV = ln.a.CLAMP_ADDRESSMODE),
(this._multiRenderTarget.refreshRate = 1),
(this._multiRenderTarget.renderParticles = !1),
(this._multiRenderTarget.renderList = null),
this._multiRenderTarget.onClearObservable.add(function (e) {
e.clear(new s.b(0, 0, 0, 1), !0, !0, !0);
});
var i = function (t) {
var n = t.getRenderingMesh(),
i = e._scene,
r = i.getEngine(),
o = t.getMaterial();
if (o) {
if (
((n._internalAbstractMeshDataInfo._isActiveIntermediate = !1),
e._enableVelocity && !e._previousTransformationMatrices[n.uniqueId] && ((e._previousTransformationMatrices[n.uniqueId] = { world: a.a.Identity(), viewProjection: i.getTransformMatrix() }), n.skeleton))
) {
var s = n.skeleton.getTransformMatrices(n);
e._previousBonesTransformationMatrices[n.uniqueId] = e._copyBonesTransformationMatrices(s, new Float32Array(s.length));
}
r.setState(o.backFaceCulling, 0, !1, i.useRightHandedSystem);
var c = n._getInstancesRenderList(t._id);
if (!c.mustReturn) {
var l = r.getCaps().instancedArrays && null !== c.visibleInstances[t._id];
if (e.isReady(t, l)) {
if ((r.enableEffect(e._effect), n._bind(t, e._effect, o.fillMode), e._effect.setMatrix("viewProjection", i.getTransformMatrix()), e._effect.setMatrix("view", i.getViewMatrix()), o)) {
if (o.needAlphaTesting()) {
var u = o.getAlphaTestTexture();
u && (e._effect.setTexture("diffuseSampler", u), e._effect.setMatrix("diffuseMatrix", u.getTextureMatrix()));
}
o.bumpTexture &&
i.getEngine().getCaps().standardDerivatives &&
Mn.a.BumpTextureEnabled &&
(e._effect.setFloat3("vBumpInfos", o.bumpTexture.coordinatesIndex, 1 / o.bumpTexture.level, o.parallaxScaleBias),
e._effect.setMatrix("bumpMatrix", o.bumpTexture.getTextureMatrix()),
e._effect.setTexture("bumpSampler", o.bumpTexture),
e._effect.setFloat2("vTangentSpaceParams", o.invertNormalMapX ? -1 : 1, o.invertNormalMapY ? -1 : 1)),
e._enableReflectivity &&
(o instanceof Mn.a && o.specularTexture
? (e._effect.setMatrix("reflectivityMatrix", o.specularTexture.getTextureMatrix()), e._effect.setTexture("reflectivitySampler", o.specularTexture))
: o instanceof Hr.a &&
o.reflectivityTexture &&
(e._effect.setMatrix("reflectivityMatrix", o.reflectivityTexture.getTextureMatrix()), e._effect.setTexture("reflectivitySampler", o.reflectivityTexture)));
}
n.useBones &&
n.computeBonesUsingShaders &&
n.skeleton &&
(e._effect.setMatrices("mBones", n.skeleton.getTransformMatrices(n)), e._enableVelocity && e._effect.setMatrices("mPreviousBones", e._previousBonesTransformationMatrices[n.uniqueId])),
Ir.a.BindMorphTargetParameters(n, e._effect),
e._enableVelocity &&
(e._effect.setMatrix("previousWorld", e._previousTransformationMatrices[n.uniqueId].world),
e._effect.setMatrix("previousViewProjection", e._previousTransformationMatrices[n.uniqueId].viewProjection)),
n._processRendering(t, e._effect, o.fillMode, c, l, function (t, n) {
return e._effect.setMatrix("world", n);
});
}
e._enableVelocity &&
((e._previousTransformationMatrices[n.uniqueId].world = n.getWorldMatrix().clone()),
(e._previousTransformationMatrices[n.uniqueId].viewProjection = e._scene.getTransformMatrix().clone()),
n.skeleton && e._copyBonesTransformationMatrices(n.skeleton.getTransformMatrices(n), e._previousBonesTransformationMatrices[n.uniqueId]));
}
}
};
this._multiRenderTarget.customRenderFunction = function (n, r, o, a) {
var s;
if (a.length) {
for (t.setColorWrite(!1), s = 0; s < a.length; s++) i(a.data[s]);
t.setColorWrite(!0);
}
for (s = 0; s < n.length; s++) i(n.data[s]);
for (s = 0; s < r.length; s++) i(r.data[s]);
if (e.renderTransparentMeshes) for (s = 0; s < o.length; s++) i(o.data[s]);
};
}
}),
(e.prototype._copyBonesTransformationMatrices = function (e, t) {
for (var n = 0; n < e.length; n++) t[n] = e[n];
return t;
}),
(e.POSITION_TEXTURE_TYPE = 1),
(e.VELOCITY_TEXTURE_TYPE = 2),
(e.REFLECTIVITY_TEXTURE_TYPE = 3),
(e._SceneComponentInitialization = function (e) {
throw zo.a.WarnImport("GeometryBufferRendererSceneComponent");
}),
e
);
})();
Object.defineProperty(ge.a.prototype, "geometryBufferRenderer", {
get: function () {
this._geometryBufferRenderer;
},
set: function (e) {
e && e.isSupported && (this._geometryBufferRenderer = e);
},
enumerable: !0,
configurable: !0,
}),
(ge.a.prototype.enableGeometryBufferRenderer = function (e) {
return (
void 0 === e && (e = 1), this._geometryBufferRenderer || ((this._geometryBufferRenderer = new ch(this, e)), this._geometryBufferRenderer.isSupported || (this._geometryBufferRenderer = null)), this._geometryBufferRenderer
);
}),
(ge.a.prototype.disableGeometryBufferRenderer = function () {
this._geometryBufferRenderer && (this._geometryBufferRenderer.dispose(), (this._geometryBufferRenderer = null));
});
var lh = (function () {
function e(e) {
(this.name = me.a.NAME_GEOMETRYBUFFERRENDERER), (this.scene = e);
}
return (
(e.prototype.register = function () {
this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER, this, this._gatherRenderTargets);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {}),
(e.prototype._gatherRenderTargets = function (e) {
this.scene._geometryBufferRenderer && e.push(this.scene._geometryBufferRenderer.getGBuffer());
}),
e
);
})();
ch._SceneComponentInitialization = function (e) {
var t = e._getComponent(me.a.NAME_GEOMETRYBUFFERRENDERER);
t || ((t = new lh(e)), e._addComponent(t));
};
var uh =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D velocitySampler;\nuniform float motionStrength;\nuniform float motionScale;\nuniform vec2 screenSize;\nvoid main(void)\n{\n#ifdef GEOMETRY_SUPPORTED\nvec2 texelSize=1.0/screenSize;\nvec2 velocityColor=texture2D(velocitySampler,vUV).rg*2.0-1.0;\nvec2 velocity=vec2(pow(velocityColor.r,3.0),pow(velocityColor.g,3.0));\nvelocity*=motionScale*motionStrength;\nfloat speed=length(velocity/texelSize);\nint samplesCount=int(clamp(speed,1.0,SAMPLES));\nvelocity=normalize(velocity)*texelSize;\nfloat hlim=float(-samplesCount)*0.5+0.5;\nvec4 result=texture2D(textureSampler,vUV);\nfor (int i=1; i=samplesCount)\nbreak;\nvec2 offset=vUV+velocity*(hlim+float(i));\nresult+=texture2D(textureSampler,offset);\n}\ngl_FragColor=result/float(samplesCount);\ngl_FragColor.a=1.0;\n#else\ngl_FragColor=texture2D(textureSampler,vUV);\n#endif\n}\n";
Xt.a.ShadersStore.motionBlurPixelShader = uh;
var hh = (function (e) {
function t(t, n, i, r, o, s, c, l, u) {
void 0 === l && (l = 0), void 0 === u && (u = !1);
var h = e.call(this, t, "motionBlur", ["motionStrength", "motionScale", "screenSize"], ["velocitySampler"], i, r, o, s, c, "#define GEOMETRY_SUPPORTED\n#define SAMPLES 64.0", l, void 0, null, u) || this;
return (
(h.motionStrength = 1),
(h._motionBlurSamples = 32),
(h._geometryBufferRenderer = n.enableGeometryBufferRenderer()),
h._geometryBufferRenderer
? ((h._geometryBufferRenderer.enableVelocity = !0),
(h.onApply = function (e) {
if ((e.setVector2("screenSize", new a.d(h.width, h.height)), e.setFloat("motionScale", n.getAnimationRatio()), e.setFloat("motionStrength", h.motionStrength), h._geometryBufferRenderer)) {
var t = h._geometryBufferRenderer.getTextureIndex(ch.VELOCITY_TEXTURE_TYPE);
e.setTexture("velocitySampler", h._geometryBufferRenderer.getGBuffer().textures[t]);
}
}))
: (g.a.Warn("Multiple Render Target support needed to compute object based motion blur"), h.updateEffect()),
h
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "motionBlurSamples", {
get: function () {
return this._motionBlurSamples;
},
set: function (e) {
(this._motionBlurSamples = e), this._geometryBufferRenderer && this.updateEffect("#define GEOMETRY_SUPPORTED\n#define SAMPLES " + e.toFixed(1));
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.excludeSkinnedMesh = function (e) {
this._geometryBufferRenderer && e.skeleton && this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity.push(e);
}),
(t.prototype.removeExcludedSkinnedMesh = function (e) {
if (this._geometryBufferRenderer && e.skeleton) {
var t = this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity.indexOf(e);
-1 !== t && this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity.splice(t, 1);
}
}),
(t.prototype.dispose = function (t) {
this._geometryBufferRenderer &&
((this._geometryBufferRenderer._previousTransformationMatrices = {}),
(this._geometryBufferRenderer._previousBonesTransformationMatrices = {}),
(this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity = [])),
e.prototype.dispose.call(this, t);
}),
t
);
})(Wt.a),
dh =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D refractionSampler;\n\nuniform vec3 baseColor;\nuniform float depth;\nuniform float colorLevel;\nvoid main() {\nfloat ref=1.0-texture2D(refractionSampler,vUV).r;\nvec2 uv=vUV-vec2(0.5);\nvec2 offset=uv*depth*ref;\nvec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb;\ngl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);\n}";
Xt.a.ShadersStore.refractionPixelShader = dh;
var ph = (function (e) {
function t(t, n, i, r, o, a, s, c, l, u) {
var h = e.call(this, t, "refraction", ["baseColor", "depth", "colorLevel"], ["refractionSampler"], a, s, c, l, u) || this;
return (
(h.color = i),
(h.depth = r),
(h.colorLevel = o),
(h._ownRefractionTexture = !0),
h.onActivateObservable.add(function (e) {
h._refTexture = h._refTexture || new ln.a(n, e.getScene());
}),
h.onApplyObservable.add(function (e) {
e.setColor3("baseColor", h.color), e.setFloat("depth", h.depth), e.setFloat("colorLevel", h.colorLevel), e.setTexture("refractionSampler", h._refTexture);
}),
h
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "refractionTexture", {
get: function () {
return this._refTexture;
},
set: function (e) {
this._refTexture && this._ownRefractionTexture && this._refTexture.dispose(), (this._refTexture = e), (this._ownRefractionTexture = !1);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.dispose = function (t) {
this._refTexture && this._ownRefractionTexture && (this._refTexture.dispose(), (this._refTexture = null)), e.prototype.dispose.call(this, t);
}),
t
);
})(Wt.a),
fh =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 screenSize;\nuniform vec2 sharpnessAmounts;\nvoid main(void)\n{\nvec2 onePixel=vec2(1.0,1.0)/screenSize;\nvec4 color=texture2D(textureSampler,vUV);\nvec4 edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1)) -\ncolor*4.0;\ngl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);\n}";
Xt.a.ShadersStore.sharpenPixelShader = fh;
var mh = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === s && (s = 0), void 0 === c && (c = !1);
var l = e.call(this, t, "sharpen", ["sharpnessAmounts", "screenSize"], null, n, i, r, o, a, null, s, void 0, null, c) || this;
return (
(l.colorAmount = 1),
(l.edgeAmount = 0.3),
(l.onApply = function (e) {
e.setFloat2("screenSize", l.width, l.height), e.setFloat2("sharpnessAmounts", l.edgeAmount, l.colorAmount);
}),
l
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
gh = (function () {
function e(e, t) {
(this.engine = e), (this._name = t), (this._renderEffects = {}), (this._renderEffectsForIsolatedPass = new Array()), (this._cameras = []);
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return this._name;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "cameras", {
get: function () {
return this._cameras;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "PostProcessRenderPipeline";
}),
Object.defineProperty(e.prototype, "isSupported", {
get: function () {
for (var e in this._renderEffects) if (this._renderEffects.hasOwnProperty(e) && !this._renderEffects[e].isSupported) return !1;
return !0;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.addEffect = function (e) {
this._renderEffects[e._name] = e;
}),
(e.prototype._rebuild = function () {}),
(e.prototype._enableEffect = function (e, t) {
var n = this._renderEffects[e];
n && n._enable($e.b.MakeArray(t || this._cameras));
}),
(e.prototype._disableEffect = function (e, t) {
var n = this._renderEffects[e];
n && n._disable($e.b.MakeArray(t || this._cameras));
}),
(e.prototype._attachCameras = function (e, t) {
var n = $e.b.MakeArray(e || this._cameras);
if (n) {
var i,
r = [];
for (i = 0; i < n.length; i++) {
var o = n[i],
a = o.name;
-1 === this._cameras.indexOf(o) ? (this._cameras[a] = o) : t && r.push(i);
}
for (i = 0; i < r.length; i++) e.splice(r[i], 1);
for (var s in this._renderEffects) this._renderEffects.hasOwnProperty(s) && this._renderEffects[s]._attachCameras(n);
}
}),
(e.prototype._detachCameras = function (e) {
var t = $e.b.MakeArray(e || this._cameras);
if (t) {
for (var n in this._renderEffects) this._renderEffects.hasOwnProperty(n) && this._renderEffects[n]._detachCameras(t);
for (var i = 0; i < t.length; i++) this._cameras.splice(this._cameras.indexOf(t[i]), 1);
}
}),
(e.prototype._update = function () {
for (var e in this._renderEffects) this._renderEffects.hasOwnProperty(e) && this._renderEffects[e]._update();
for (var t = 0; t < this._cameras.length; t++) {
var n = this._cameras[t].name;
this._renderEffectsForIsolatedPass[n] && this._renderEffectsForIsolatedPass[n]._update();
}
}),
(e.prototype._reset = function () {
(this._renderEffects = {}), (this._renderEffectsForIsolatedPass = new Array());
}),
(e.prototype._enableMSAAOnFirstPostProcess = function (e) {
if (1 === this.engine.webGLVersion) return !1;
var t = Object.keys(this._renderEffects);
if (t.length > 0) {
var n = this._renderEffects[t[0]].getPostProcesses();
n && (n[0].samples = e);
}
return !0;
}),
(e.prototype.dispose = function () {}),
Object(h.c)([Object(He.c)()], e.prototype, "_name", void 0),
e
);
})(),
bh = (function () {
function e() {
this._renderPipelines = {};
}
return (
Object.defineProperty(e.prototype, "supportedPipelines", {
get: function () {
var e = [];
for (var t in this._renderPipelines)
if (this._renderPipelines.hasOwnProperty(t)) {
var n = this._renderPipelines[t];
n.isSupported && e.push(n);
}
return e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.addPipeline = function (e) {
this._renderPipelines[e._name] = e;
}),
(e.prototype.attachCamerasToRenderPipeline = function (e, t, n) {
void 0 === n && (n = !1);
var i = this._renderPipelines[e];
i && i._attachCameras(t, n);
}),
(e.prototype.detachCamerasFromRenderPipeline = function (e, t) {
var n = this._renderPipelines[e];
n && n._detachCameras(t);
}),
(e.prototype.enableEffectInPipeline = function (e, t, n) {
var i = this._renderPipelines[e];
i && i._enableEffect(t, n);
}),
(e.prototype.disableEffectInPipeline = function (e, t, n) {
var i = this._renderPipelines[e];
i && i._disableEffect(t, n);
}),
(e.prototype.update = function () {
for (var e in this._renderPipelines)
if (this._renderPipelines.hasOwnProperty(e)) {
var t = this._renderPipelines[e];
t.isSupported ? t._update() : (t.dispose(), delete this._renderPipelines[e]);
}
}),
(e.prototype._rebuild = function () {
for (var e in this._renderPipelines) {
if (this._renderPipelines.hasOwnProperty(e)) this._renderPipelines[e]._rebuild();
}
}),
(e.prototype.dispose = function () {
for (var e in this._renderPipelines) {
if (this._renderPipelines.hasOwnProperty(e)) this._renderPipelines[e].dispose();
}
}),
e
);
})();
Object.defineProperty(ge.a.prototype, "postProcessRenderPipelineManager", {
get: function () {
if (!this._postProcessRenderPipelineManager) {
var e = this._getComponent(me.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER);
e || ((e = new _h(this)), this._addComponent(e)), (this._postProcessRenderPipelineManager = new bh());
}
return this._postProcessRenderPipelineManager;
},
enumerable: !0,
configurable: !0,
});
var _h = (function () {
function e(e) {
(this.name = me.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER), (this.scene = e);
}
return (
(e.prototype.register = function () {
this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER, this, this._gatherRenderTargets);
}),
(e.prototype.rebuild = function () {
this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager._rebuild();
}),
(e.prototype.dispose = function () {
this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager.dispose();
}),
(e.prototype._gatherRenderTargets = function () {
this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager.update();
}),
e
);
})(),
vh = (function (e) {
function t(t, n, i, r, o) {
void 0 === t && (t = ""), void 0 === n && (n = !0), void 0 === i && (i = E.a.LastCreatedScene), void 0 === o && (o = !0);
var a = e.call(this, i.getEngine(), t) || this;
(a._camerasToBeAttached = []),
(a.SharpenPostProcessId = "SharpenPostProcessEffect"),
(a.ImageProcessingPostProcessId = "ImageProcessingPostProcessEffect"),
(a.FxaaPostProcessId = "FxaaPostProcessEffect"),
(a.ChromaticAberrationPostProcessId = "ChromaticAberrationPostProcessEffect"),
(a.GrainPostProcessId = "GrainPostProcessEffect"),
(a._glowLayer = null),
(a.animations = []),
(a._imageProcessingConfigurationObserver = null),
(a._sharpenEnabled = !1),
(a._bloomEnabled = !1),
(a._depthOfFieldEnabled = !1),
(a._depthOfFieldBlurLevel = Wu.Low),
(a._fxaaEnabled = !1),
(a._imageProcessingEnabled = !0),
(a._bloomScale = 0.5),
(a._chromaticAberrationEnabled = !1),
(a._grainEnabled = !1),
(a._buildAllowed = !0),
(a._resizeObserver = null),
(a._hardwareScaleLevel = 1),
(a._bloomKernel = 64),
(a._bloomWeight = 0.15),
(a._bloomThreshold = 0.9),
(a._samples = 1),
(a._hasCleared = !1),
(a._prevPostProcess = null),
(a._prevPrevPostProcess = null),
(a._depthOfFieldSceneObserver = null),
(a._cameras = r || i.cameras),
(a._cameras = a._cameras.slice()),
(a._camerasToBeAttached = a._cameras.slice()),
(a._buildAllowed = o),
(a._scene = i);
var s = a._scene.getEngine().getCaps();
(a._hdr = n && (s.textureHalfFloatRender || s.textureFloatRender)),
a._hdr ? (s.textureHalfFloatRender ? (a._defaultPipelineTextureType = 2) : s.textureFloatRender && (a._defaultPipelineTextureType = 1)) : (a._defaultPipelineTextureType = 0),
i.postProcessRenderPipelineManager.addPipeline(a);
var c = a._scene.getEngine();
return (
(a.sharpen = new mh("sharpen", 1, null, ln.a.BILINEAR_SAMPLINGMODE, c, !1, a._defaultPipelineTextureType, !0)),
(a._sharpenEffect = new Au(
c,
a.SharpenPostProcessId,
function () {
return a.sharpen;
},
!0
)),
(a.depthOfField = new Ku(a._scene, null, a._depthOfFieldBlurLevel, a._defaultPipelineTextureType, !0)),
(a.bloom = new Lu(a._scene, a._bloomScale, a._bloomWeight, a.bloomKernel, a._defaultPipelineTextureType, !0)),
(a.chromaticAberration = new Nu("ChromaticAberration", c.getRenderWidth(), c.getRenderHeight(), 1, null, ln.a.BILINEAR_SAMPLINGMODE, c, !1, a._defaultPipelineTextureType, !0)),
(a._chromaticAberrationEffect = new Au(
c,
a.ChromaticAberrationPostProcessId,
function () {
return a.chromaticAberration;
},
!0
)),
(a.grain = new ih("Grain", 1, null, ln.a.BILINEAR_SAMPLINGMODE, c, !1, a._defaultPipelineTextureType, !0)),
(a._grainEffect = new Au(
c,
a.GrainPostProcessId,
function () {
return a.grain;
},
!0
)),
(a._resizeObserver = c.onResizeObservable.add(function () {
(a._hardwareScaleLevel = c.getHardwareScalingLevel()), (a.bloomKernel = a.bloomKernel);
})),
(a._imageProcessingConfigurationObserver = a._scene.imageProcessingConfiguration.onUpdateParameters.add(function () {
a.bloom._downscale._exposure = a._scene.imageProcessingConfiguration.exposure;
})),
a._buildPipeline(),
a
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "scene", {
get: function () {
return this._scene;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "sharpenEnabled", {
get: function () {
return this._sharpenEnabled;
},
set: function (e) {
this._sharpenEnabled !== e && ((this._sharpenEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bloomKernel", {
get: function () {
return this._bloomKernel;
},
set: function (e) {
(this._bloomKernel = e), (this.bloom.kernel = e / this._hardwareScaleLevel);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bloomWeight", {
get: function () {
return this._bloomWeight;
},
set: function (e) {
this._bloomWeight !== e && ((this.bloom.weight = e), (this._bloomWeight = e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bloomThreshold", {
get: function () {
return this._bloomThreshold;
},
set: function (e) {
this._bloomThreshold !== e && ((this.bloom.threshold = e), (this._bloomThreshold = e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bloomScale", {
get: function () {
return this._bloomScale;
},
set: function (e) {
this._bloomScale !== e && ((this._bloomScale = e), this._rebuildBloom(), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "bloomEnabled", {
get: function () {
return this._bloomEnabled;
},
set: function (e) {
this._bloomEnabled !== e && ((this._bloomEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._rebuildBloom = function () {
var e = this.bloom;
(this.bloom = new Lu(this._scene, this.bloomScale, this._bloomWeight, this.bloomKernel, this._defaultPipelineTextureType, !1)), (this.bloom.threshold = e.threshold);
for (var t = 0; t < this._cameras.length; t++) e.disposeEffects(this._cameras[t]);
}),
Object.defineProperty(t.prototype, "depthOfFieldEnabled", {
get: function () {
return this._depthOfFieldEnabled;
},
set: function (e) {
this._depthOfFieldEnabled !== e && ((this._depthOfFieldEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "depthOfFieldBlurLevel", {
get: function () {
return this._depthOfFieldBlurLevel;
},
set: function (e) {
if (this._depthOfFieldBlurLevel !== e) {
this._depthOfFieldBlurLevel = e;
var t = this.depthOfField;
(this.depthOfField = new Ku(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, !1)),
(this.depthOfField.focalLength = t.focalLength),
(this.depthOfField.focusDistance = t.focusDistance),
(this.depthOfField.fStop = t.fStop),
(this.depthOfField.lensSize = t.lensSize);
for (var n = 0; n < this._cameras.length; n++) t.disposeEffects(this._cameras[n]);
this._buildPipeline();
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fxaaEnabled", {
get: function () {
return this._fxaaEnabled;
},
set: function (e) {
this._fxaaEnabled !== e && ((this._fxaaEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "samples", {
get: function () {
return this._samples;
},
set: function (e) {
this._samples !== e && ((this._samples = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "imageProcessingEnabled", {
get: function () {
return this._imageProcessingEnabled;
},
set: function (e) {
this._imageProcessingEnabled !== e && ((this._imageProcessingEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "glowLayerEnabled", {
get: function () {
return null != this._glowLayer;
},
set: function (e) {
e && !this._glowLayer ? (this._glowLayer = new Uo("", this._scene)) : !e && this._glowLayer && (this._glowLayer.dispose(), (this._glowLayer = null));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "glowLayer", {
get: function () {
return this._glowLayer;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "chromaticAberrationEnabled", {
get: function () {
return this._chromaticAberrationEnabled;
},
set: function (e) {
this._chromaticAberrationEnabled !== e && ((this._chromaticAberrationEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "grainEnabled", {
get: function () {
return this._grainEnabled;
},
set: function (e) {
this._grainEnabled !== e && ((this._grainEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "DefaultRenderingPipeline";
}),
(t.prototype.prepare = function () {
var e = this._buildAllowed;
(this._buildAllowed = !0), this._buildPipeline(), (this._buildAllowed = e);
}),
(t.prototype._setAutoClearAndTextureSharing = function (e, t) {
void 0 === t && (t = !1),
this._hasCleared ? (e.autoClear = !1) : ((e.autoClear = !0), (this._scene.autoClear = !1), (this._hasCleared = !0)),
t || (this._prevPrevPostProcess ? e.shareOutputWith(this._prevPrevPostProcess) : e.useOwnOutput(), this._prevPostProcess && (this._prevPrevPostProcess = this._prevPostProcess), (this._prevPostProcess = e));
}),
(t.prototype._buildPipeline = function () {
var e = this;
if (this._buildAllowed) {
this._scene.autoClear = !0;
var t = this._scene.getEngine();
if (
(this._disposePostProcesses(),
null !== this._cameras && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), (this._cameras = this._camerasToBeAttached.slice())),
this._reset(),
(this._prevPostProcess = null),
(this._prevPrevPostProcess = null),
(this._hasCleared = !1),
this.depthOfFieldEnabled)
) {
if (this._cameras.length > 1) {
for (var n = 0, i = this._cameras; n < i.length; n++) {
var r = i[n];
(o = this._scene.enableDepthRenderer(r)).useOnlyInActiveCamera = !0;
}
this._depthOfFieldSceneObserver = this._scene.onAfterRenderTargetsRenderObservable.add(function (t) {
e._cameras.indexOf(t.activeCamera) > -1 && (e.depthOfField.depthTexture = t.enableDepthRenderer(t.activeCamera).getDepthMap());
});
} else {
this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);
var o = this._scene.enableDepthRenderer(this._cameras[0]);
this.depthOfField.depthTexture = o.getDepthMap();
}
this.depthOfField._isReady() || this.depthOfField._updateEffects(), this.addEffect(this.depthOfField), this._setAutoClearAndTextureSharing(this.depthOfField._effects[0], !0);
} else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);
this.bloomEnabled && (this.bloom._isReady() || this.bloom._updateEffects(), this.addEffect(this.bloom), this._setAutoClearAndTextureSharing(this.bloom._effects[0], !0)),
this._imageProcessingEnabled &&
((this.imageProcessing = new Dn("imageProcessing", 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._defaultPipelineTextureType)),
this._hdr
? (this.addEffect(
new Au(
t,
this.ImageProcessingPostProcessId,
function () {
return e.imageProcessing;
},
!0
)
),
this._setAutoClearAndTextureSharing(this.imageProcessing))
: (this._scene.imageProcessingConfiguration.applyByPostProcess = !1)),
this.sharpenEnabled && (this.sharpen.isReady() || this.sharpen.updateEffect(), this.addEffect(this._sharpenEffect), this._setAutoClearAndTextureSharing(this.sharpen)),
this.grainEnabled && (this.grain.isReady() || this.grain.updateEffect(), this.addEffect(this._grainEffect), this._setAutoClearAndTextureSharing(this.grain)),
this.chromaticAberrationEnabled &&
(this.chromaticAberration.isReady() || this.chromaticAberration.updateEffect(), this.addEffect(this._chromaticAberrationEffect), this._setAutoClearAndTextureSharing(this.chromaticAberration)),
this.fxaaEnabled &&
((this.fxaa = new th("fxaa", 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._defaultPipelineTextureType)),
this.addEffect(
new Au(
t,
this.FxaaPostProcessId,
function () {
return e.fxaa;
},
!0
)
),
this._setAutoClearAndTextureSharing(this.fxaa, !0)),
null !== this._cameras && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras),
this._scene.activeCameras && this._scene.activeCameras.length > 1 && (this._scene.autoClear = !0),
!this._enableMSAAOnFirstPostProcess(this.samples) && this.samples > 1 && g.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0");
}
}),
(t.prototype._disposePostProcesses = function (e) {
void 0 === e && (e = !1);
for (var t = 0; t < this._cameras.length; t++) {
var n = this._cameras[t];
this.imageProcessing && this.imageProcessing.dispose(n),
this.fxaa && this.fxaa.dispose(n),
e &&
(this.sharpen && this.sharpen.dispose(n),
this.depthOfField && (this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver), this.depthOfField.disposeEffects(n)),
this.bloom && this.bloom.disposeEffects(n),
this.chromaticAberration && this.chromaticAberration.dispose(n),
this.grain && this.grain.dispose(n),
this._glowLayer && this._glowLayer.dispose());
}
(this.imageProcessing = null),
(this.fxaa = null),
e &&
((this.sharpen = null),
(this._sharpenEffect = null),
(this.depthOfField = null),
(this.bloom = null),
(this.chromaticAberration = null),
(this._chromaticAberrationEffect = null),
(this.grain = null),
(this._grainEffect = null),
(this._glowLayer = null));
}),
(t.prototype.addCamera = function (e) {
this._camerasToBeAttached.push(e), this._buildPipeline();
}),
(t.prototype.removeCamera = function (e) {
var t = this._camerasToBeAttached.indexOf(e);
this._camerasToBeAttached.splice(t, 1), this._buildPipeline();
}),
(t.prototype.dispose = function () {
this._disposePostProcesses(!0),
this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras),
(this._scene.autoClear = !0),
this._resizeObserver && (this._scene.getEngine().onResizeObservable.remove(this._resizeObserver), (this._resizeObserver = null)),
this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver),
e.prototype.dispose.call(this);
}),
(t.prototype.serialize = function () {
var e = He.a.Serialize(this);
return (e.customType = "DefaultRenderingPipeline"), e;
}),
(t.Parse = function (e, n, i) {
return He.a.Parse(
function () {
return new t(e._name, e._name._hdr, n);
},
e,
n,
i
);
}),
Object(h.c)([Object(He.c)()], t.prototype, "sharpenEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "bloomKernel", null),
Object(h.c)([Object(He.c)()], t.prototype, "_bloomWeight", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_bloomThreshold", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_hdr", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "bloomWeight", null),
Object(h.c)([Object(He.c)()], t.prototype, "bloomThreshold", null),
Object(h.c)([Object(He.c)()], t.prototype, "bloomScale", null),
Object(h.c)([Object(He.c)()], t.prototype, "bloomEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldBlurLevel", null),
Object(h.c)([Object(He.c)()], t.prototype, "fxaaEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "samples", null),
Object(h.c)([Object(He.c)()], t.prototype, "imageProcessingEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "glowLayerEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "chromaticAberrationEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "grainEnabled", null),
t
);
})(gh);
c.a.RegisteredTypes["BABYLON.DefaultRenderingPipeline"] = vh;
var yh =
"\nuniform sampler2D textureSampler;\n\nuniform float gain;\nuniform float threshold;\nuniform float screen_width;\nuniform float screen_height;\n\nvarying vec2 vUV;\n\nvec4 highlightColor(vec4 color) {\nvec4 highlight=color;\nfloat luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));\nfloat lum_threshold;\nif (threshold>1.0) { lum_threshold=0.94+0.01*threshold; }\nelse { lum_threshold=0.5+0.44*threshold; }\nluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);\nhighlight*=luminance*gain;\nhighlight.a=1.0;\nreturn highlight;\n}\nvoid main(void)\n{\nvec4 original=texture2D(textureSampler,vUV);\n\nif (gain == -1.0) {\ngl_FragColor=vec4(0.0,0.0,0.0,1.0);\nreturn;\n}\nfloat w=2.0/screen_width;\nfloat h=2.0/screen_height;\nfloat weight=1.0;\n\nvec4 blurred=vec4(0.0,0.0,0.0,0.0);\n#ifdef PENTAGON\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\n#else\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\n#endif\nblurred/=39.0;\ngl_FragColor=blurred;\n\n}";
Xt.a.ShadersStore.lensHighlightsPixelShader = yh;
var Ch =
"\n\n\n\n\nuniform sampler2D textureSampler;\nuniform sampler2D highlightsSampler;\nuniform sampler2D depthSampler;\nuniform sampler2D grainSampler;\n\nuniform float grain_amount;\nuniform bool blur_noise;\nuniform float screen_width;\nuniform float screen_height;\nuniform float distortion;\nuniform bool dof_enabled;\n\nuniform float screen_distance;\nuniform float aperture;\nuniform float darken;\nuniform float edge_blur;\nuniform bool highlights;\n\nuniform float near;\nuniform float far;\n\nvarying vec2 vUV;\n\n#define PI 3.14159265\n#define TWOPI 6.28318530\n#define inverse_focal_length 0.1\n\nvec2 centered_screen_pos;\nvec2 distorted_coords;\nfloat radius2;\nfloat radius;\n\nvec2 rand(vec2 co)\n{\nfloat noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));\nfloat noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));\nreturn clamp(vec2(noise1,noise2),0.0,1.0);\n}\n\nvec2 getDistortedCoords(vec2 coords) {\nif (distortion == 0.0) { return coords; }\nvec2 direction=1.0*normalize(centered_screen_pos);\nvec2 dist_coords=vec2(0.5,0.5);\ndist_coords.x=0.5+direction.x*radius2*1.0;\ndist_coords.y=0.5+direction.y*radius2*1.0;\nfloat dist_amount=clamp(distortion*0.23,0.0,1.0);\ndist_coords=mix(coords,dist_coords,dist_amount);\nreturn dist_coords;\n}\n\nfloat sampleScreen(inout vec4 color,const in vec2 offset,const in float weight) {\n\nvec2 coords=distorted_coords;\nfloat angle=rand(coords*100.0).x*TWOPI;\ncoords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));\ncolor+=texture2D(textureSampler,coords)*weight;\nreturn weight;\n}\n\nfloat getBlurLevel(float size) {\nreturn min(3.0,ceil(size/1.0));\n}\n\nvec4 getBlurColor(float size) {\nvec4 col=texture2D(textureSampler,distorted_coords);\nif (size == 0.0) { return col; }\n\n\nfloat blur_level=getBlurLevel(size);\nfloat w=(size/screen_width);\nfloat h=(size/screen_height);\nfloat total_weight=1.0;\nvec2 sample_coords;\ntotal_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);\ntotal_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);\ntotal_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);\ntotal_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);\ntotal_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);\ntotal_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);\ntotal_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);\ntotal_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);\ntotal_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);\ntotal_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);\nif (blur_level>1.0) {\ntotal_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);\ntotal_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);\ntotal_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);\ntotal_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);\ntotal_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);\ntotal_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);\ntotal_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);\ntotal_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);\ntotal_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);\ntotal_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);\n}\nif (blur_level>2.0) {\ntotal_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);\ntotal_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);\ntotal_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);\ntotal_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);\ntotal_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);\ntotal_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);\ntotal_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);\ntotal_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);\ntotal_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);\n}\ncol/=total_weight;\n\nif (darken>0.0) {\ncol.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);\n}\n\n\n\n\nreturn col;\n}\nvoid main(void)\n{\n\ncentered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);\nradius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;\nradius=sqrt(radius2);\ndistorted_coords=getDistortedCoords(vUV);\nvec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height);\nfloat depth=texture2D(depthSampler,distorted_coords).r;\nfloat distance=near+(far-near)*depth;\nvec4 color=texture2D(textureSampler,vUV);\n\n\nfloat coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));\n\nif (dof_enabled == false || coc<0.07) { coc=0.0; }\n\nfloat edge_blur_amount=0.0;\nif (edge_blur>0.0) {\nedge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;\n}\n\nfloat blur_amount=max(edge_blur_amount,coc);\n\nif (blur_amount == 0.0) {\ngl_FragColor=texture2D(textureSampler,distorted_coords);\n}\nelse {\n\ngl_FragColor=getBlurColor(blur_amount*1.7);\n\nif (highlights) {\ngl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;\n}\nif (blur_noise) {\n\nvec2 noise=rand(distorted_coords)*0.01*blur_amount;\nvec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);\ngl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;\n}\n}\n\nif (grain_amount>0.0) {\nvec4 grain_color=texture2D(grainSampler,texels_coords*0.003);\ngl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;\n}\n}\n";
Xt.a.ShadersStore.depthOfFieldPixelShader = Ch;
var Ph = (function (e) {
function t(t, n, i, r, o) {
void 0 === r && (r = 1);
var a = e.call(this, i.getEngine(), t) || this;
return (
(a.LensChromaticAberrationEffect = "LensChromaticAberrationEffect"),
(a.HighlightsEnhancingEffect = "HighlightsEnhancingEffect"),
(a.LensDepthOfFieldEffect = "LensDepthOfFieldEffect"),
(a._pentagonBokehIsEnabled = !1),
(a._scene = i),
(a._depthTexture = i.enableDepthRenderer().getDepthMap()),
n.grain_texture ? (a._grainTexture = n.grain_texture) : a._createGrainTexture(),
(a._edgeBlur = n.edge_blur ? n.edge_blur : 0),
(a._grainAmount = n.grain_amount ? n.grain_amount : 0),
(a._chromaticAberration = n.chromatic_aberration ? n.chromatic_aberration : 0),
(a._distortion = n.distortion ? n.distortion : 0),
(a._highlightsGain = void 0 !== n.dof_gain ? n.dof_gain : -1),
(a._highlightsThreshold = n.dof_threshold ? n.dof_threshold : 1),
(a._dofDistance = void 0 !== n.dof_focus_distance ? n.dof_focus_distance : -1),
(a._dofAperture = n.dof_aperture ? n.dof_aperture : 1),
(a._dofDarken = n.dof_darken ? n.dof_darken : 0),
(a._dofPentagon = void 0 === n.dof_pentagon || n.dof_pentagon),
(a._blurNoise = void 0 === n.blur_noise || n.blur_noise),
a._createChromaticAberrationPostProcess(r),
a._createHighlightsPostProcess(r),
a._createDepthOfFieldPostProcess(r / 4),
a.addEffect(
new Au(
i.getEngine(),
a.LensChromaticAberrationEffect,
function () {
return a._chromaticAberrationPostProcess;
},
!0
)
),
a.addEffect(
new Au(
i.getEngine(),
a.HighlightsEnhancingEffect,
function () {
return a._highlightsPostProcess;
},
!0
)
),
a.addEffect(
new Au(
i.getEngine(),
a.LensDepthOfFieldEffect,
function () {
return a._depthOfFieldPostProcess;
},
!0
)
),
-1 === a._highlightsGain && a._disableEffect(a.HighlightsEnhancingEffect, null),
i.postProcessRenderPipelineManager.addPipeline(a),
o && i.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(t, o),
a
);
}
return (
Object(h.d)(t, e),
(t.prototype.getClassName = function () {
return "LensRenderingPipeline";
}),
Object.defineProperty(t.prototype, "scene", {
get: function () {
return this._scene;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "edgeBlur", {
get: function () {
return this._edgeBlur;
},
set: function (e) {
this.setEdgeBlur(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "grainAmount", {
get: function () {
return this._grainAmount;
},
set: function (e) {
this.setGrainAmount(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "chromaticAberration", {
get: function () {
return this._chromaticAberration;
},
set: function (e) {
this.setChromaticAberration(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dofAperture", {
get: function () {
return this._dofAperture;
},
set: function (e) {
this.setAperture(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "edgeDistortion", {
get: function () {
return this._distortion;
},
set: function (e) {
this.setEdgeDistortion(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "dofDistortion", {
get: function () {
return this._dofDistance;
},
set: function (e) {
this.setFocusDistance(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "darkenOutOfFocus", {
get: function () {
return this._dofDarken;
},
set: function (e) {
this.setDarkenOutOfFocus(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "blurNoise", {
get: function () {
return this._blurNoise;
},
set: function (e) {
this._blurNoise = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "pentagonBokeh", {
get: function () {
return this._pentagonBokehIsEnabled;
},
set: function (e) {
e ? this.enablePentagonBokeh() : this.disablePentagonBokeh();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "highlightsGain", {
get: function () {
return this._highlightsGain;
},
set: function (e) {
this.setHighlightsGain(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "highlightsThreshold", {
get: function () {
return this._highlightsThreshold;
},
set: function (e) {
this.setHighlightsThreshold(e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.setEdgeBlur = function (e) {
this._edgeBlur = e;
}),
(t.prototype.disableEdgeBlur = function () {
this._edgeBlur = 0;
}),
(t.prototype.setGrainAmount = function (e) {
this._grainAmount = e;
}),
(t.prototype.disableGrain = function () {
this._grainAmount = 0;
}),
(t.prototype.setChromaticAberration = function (e) {
this._chromaticAberration = e;
}),
(t.prototype.disableChromaticAberration = function () {
this._chromaticAberration = 0;
}),
(t.prototype.setEdgeDistortion = function (e) {
this._distortion = e;
}),
(t.prototype.disableEdgeDistortion = function () {
this._distortion = 0;
}),
(t.prototype.setFocusDistance = function (e) {
this._dofDistance = e;
}),
(t.prototype.disableDepthOfField = function () {
this._dofDistance = -1;
}),
(t.prototype.setAperture = function (e) {
this._dofAperture = e;
}),
(t.prototype.setDarkenOutOfFocus = function (e) {
this._dofDarken = e;
}),
(t.prototype.enablePentagonBokeh = function () {
this._highlightsPostProcess.updateEffect("#define PENTAGON\n"), (this._pentagonBokehIsEnabled = !0);
}),
(t.prototype.disablePentagonBokeh = function () {
(this._pentagonBokehIsEnabled = !1), this._highlightsPostProcess.updateEffect();
}),
(t.prototype.enableNoiseBlur = function () {
this._blurNoise = !0;
}),
(t.prototype.disableNoiseBlur = function () {
this._blurNoise = !1;
}),
(t.prototype.setHighlightsGain = function (e) {
this._highlightsGain = e;
}),
(t.prototype.setHighlightsThreshold = function (e) {
-1 === this._highlightsGain && (this._highlightsGain = 1), (this._highlightsThreshold = e);
}),
(t.prototype.disableHighlights = function () {
this._highlightsGain = -1;
}),
(t.prototype.dispose = function (e) {
void 0 === e && (e = !1),
this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras),
(this._chromaticAberrationPostProcess = null),
(this._highlightsPostProcess = null),
(this._depthOfFieldPostProcess = null),
this._grainTexture.dispose(),
e && this._scene.disableDepthRenderer();
}),
(t.prototype._createChromaticAberrationPostProcess = function (e) {
var t = this;
(this._chromaticAberrationPostProcess = new Wt.a(
"LensChromaticAberration",
"chromaticAberration",
["chromatic_aberration", "screen_width", "screen_height", "direction", "radialIntensity", "centerPosition"],
[],
e,
null,
ln.a.TRILINEAR_SAMPLINGMODE,
this._scene.getEngine(),
!1
)),
(this._chromaticAberrationPostProcess.onApply = function (e) {
e.setFloat("chromatic_aberration", t._chromaticAberration),
e.setFloat("screen_width", t._scene.getEngine().getRenderWidth()),
e.setFloat("screen_height", t._scene.getEngine().getRenderHeight()),
e.setFloat("radialIntensity", 1),
e.setFloat2("direction", 17, 17),
e.setFloat2("centerPosition", 0.5, 0.5);
});
}),
(t.prototype._createHighlightsPostProcess = function (e) {
var t = this;
(this._highlightsPostProcess = new Wt.a(
"LensHighlights",
"lensHighlights",
["gain", "threshold", "screen_width", "screen_height"],
[],
e,
null,
ln.a.TRILINEAR_SAMPLINGMODE,
this._scene.getEngine(),
!1,
this._dofPentagon ? "#define PENTAGON\n" : ""
)),
(this._highlightsPostProcess.onApply = function (e) {
e.setFloat("gain", t._highlightsGain),
e.setFloat("threshold", t._highlightsThreshold),
e.setTextureFromPostProcess("textureSampler", t._chromaticAberrationPostProcess),
e.setFloat("screen_width", t._scene.getEngine().getRenderWidth()),
e.setFloat("screen_height", t._scene.getEngine().getRenderHeight());
});
}),
(t.prototype._createDepthOfFieldPostProcess = function (e) {
var t = this;
(this._depthOfFieldPostProcess = new Wt.a(
"LensDepthOfField",
"depthOfField",
["grain_amount", "blur_noise", "screen_width", "screen_height", "distortion", "dof_enabled", "screen_distance", "aperture", "darken", "edge_blur", "highlights", "near", "far"],
["depthSampler", "grainSampler", "highlightsSampler"],
e,
null,
ln.a.TRILINEAR_SAMPLINGMODE,
this._scene.getEngine(),
!1
)),
(this._depthOfFieldPostProcess.onApply = function (e) {
e.setTexture("depthSampler", t._depthTexture),
e.setTexture("grainSampler", t._grainTexture),
e.setTextureFromPostProcess("textureSampler", t._highlightsPostProcess),
e.setTextureFromPostProcess("highlightsSampler", t._depthOfFieldPostProcess),
e.setFloat("grain_amount", t._grainAmount),
e.setBool("blur_noise", t._blurNoise),
e.setFloat("screen_width", t._scene.getEngine().getRenderWidth()),
e.setFloat("screen_height", t._scene.getEngine().getRenderHeight()),
e.setFloat("distortion", t._distortion),
e.setBool("dof_enabled", -1 !== t._dofDistance),
e.setFloat("screen_distance", 1 / (0.1 - 1 / t._dofDistance)),
e.setFloat("aperture", t._dofAperture),
e.setFloat("darken", t._dofDarken),
e.setFloat("edge_blur", t._edgeBlur),
e.setBool("highlights", -1 !== t._highlightsGain),
t._scene.activeCamera && (e.setFloat("near", t._scene.activeCamera.minZ), e.setFloat("far", t._scene.activeCamera.maxZ));
});
}),
(t.prototype._createGrainTexture = function () {
(this._grainTexture = new An.a("LensNoiseTexture", 512, this._scene, !1, ln.a.BILINEAR_SAMPLINGMODE)), (this._grainTexture.wrapU = ln.a.WRAP_ADDRESSMODE), (this._grainTexture.wrapV = ln.a.WRAP_ADDRESSMODE);
for (var e, t, n, i = this._grainTexture.getContext(), r = 0; r < 512; r++)
for (var o = 0; o < 512; o++) (e = Math.floor(255 * ((t = 0.42), (n = 0.58), Math.random() * (n - t) + t))), (i.fillStyle = "rgb(" + e + ", " + e + ", " + e + ")"), i.fillRect(r, o, 1, 1);
this._grainTexture.update(!1);
}),
t
);
})(gh),
xh =
"\nprecision highp float;\nuniform sampler2D textureSampler;\nuniform float near;\nuniform float far;\nuniform float radius;\nfloat scales[16]=float[16](\n0.1,\n0.11406250000000001,\n0.131640625,\n0.15625,\n0.187890625,\n0.2265625,\n0.272265625,\n0.325,\n0.384765625,\n0.4515625,\n0.525390625,\n0.60625,\n0.694140625,\n0.7890625,\n0.891015625,\n1.0\n);\nvarying vec2 vUV;\nfloat perspectiveDepthToViewZ( const in float invClipZ,const in float near,const in float far ) {\nreturn ( near*far )/( ( far-near )*invClipZ-far );\n}\nfloat viewZToPerspectiveDepth( const in float viewZ,const in float near,const in float far ) {\nreturn ( near*far/viewZ+far)/( far-near );\n}\nfloat viewZToOrthographicDepth( const in float viewZ,const in float near,const in float far ) {\nreturn ( viewZ+near )/( near-far );\n}\n#ifdef SSAO\nuniform sampler2D randomSampler;\nuniform sampler2D normalSampler;\nuniform float randTextureTiles;\nuniform float samplesFactor;\nuniform vec3 sampleSphere[SAMPLES];\nuniform float totalStrength;\nuniform float base;\nuniform float xViewport;\nuniform float yViewport;\nuniform float maxZ;\nuniform float minZAspect;\nuniform vec2 texelSize;\nuniform mat4 projection;\nvoid main()\n{\nvec3 random=texture2D(randomSampler,vUV*randTextureTiles).rgb;\nfloat depth=texture2D(textureSampler,vUV).r;\nfloat depthSign=depth/abs(depth);\ndepth=depth*depthSign;\nvec3 normal=texture2D(normalSampler,vUV).rgb;\nfloat occlusion=0.0;\nfloat correctedRadius=min(radius,minZAspect*depth/near);\nvec3 vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);\nvec3 origin=vViewRay*depth;\nvec3 rvec=random*2.0-1.0;\nrvec.z=0.0;\n\nfloat dotProduct=dot(rvec,normal);\nrvec=1.0-abs(dotProduct)>1e-2 ? rvec : vec3(-rvec.y,0.0,rvec.x);\nvec3 tangent=normalize(rvec-normal*dot(rvec,normal));\nvec3 bitangent=cross(normal,tangent);\nmat3 tbn=mat3(tangent,bitangent,normal);\nfloat difference;\nfor (int i=0; i1.0 || offset.y>1.0) {\ncontinue;\n}\n\nfloat sampleDepth=abs(texture2D(textureSampler,offset.xy).r);\n\ndifference=depthSign*samplePosition.z-sampleDepth;\nfloat rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);\nocclusion+=(difference>=0.0 ? 1.0 : 0.0)*rangeCheck;\n}\nocclusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));\nfloat ao=1.0-totalStrength*occlusion*samplesFactor;\nfloat result=clamp(ao+base,0.0,1.0);\ngl_FragColor=vec4(vec3(result),1.0);\n}\n#endif\n#ifdef BILATERAL_BLUR\nuniform sampler2D depthSampler;\nuniform float outSize;\nuniform float samplerOffsets[SAMPLES];\nvec4 blur9(sampler2D image,vec2 uv,float resolution,vec2 direction) {\nvec4 color=vec4(0.0);\nvec2 off1=vec2(1.3846153846)*direction;\nvec2 off2=vec2(3.2307692308)*direction;\ncolor+=texture2D(image,uv)*0.2270270270;\ncolor+=texture2D(image,uv+(off1/resolution))*0.3162162162;\ncolor+=texture2D(image,uv-(off1/resolution))*0.3162162162;\ncolor+=texture2D(image,uv+(off2/resolution))*0.0702702703;\ncolor+=texture2D(image,uv-(off2/resolution))*0.0702702703;\nreturn color;\n}\nvec4 blur13(sampler2D image,vec2 uv,float resolution,vec2 direction) {\nvec4 color=vec4(0.0);\nvec2 off1=vec2(1.411764705882353)*direction;\nvec2 off2=vec2(3.2941176470588234)*direction;\nvec2 off3=vec2(5.176470588235294)*direction;\ncolor+=texture2D(image,uv)*0.1964825501511404;\ncolor+=texture2D(image,uv+(off1/resolution))*0.2969069646728344;\ncolor+=texture2D(image,uv-(off1/resolution))*0.2969069646728344;\ncolor+=texture2D(image,uv+(off2/resolution))*0.09447039785044732;\ncolor+=texture2D(image,uv-(off2/resolution))*0.09447039785044732;\ncolor+=texture2D(image,uv+(off3/resolution))*0.010381362401148057;\ncolor+=texture2D(image,uv-(off3/resolution))*0.010381362401148057;\nreturn color;\n}\nvec4 blur13Bilateral(sampler2D image,vec2 uv,float resolution,vec2 direction) {\nvec4 color=vec4(0.0);\nvec2 off1=vec2(1.411764705882353)*direction;\nvec2 off2=vec2(3.2941176470588234)*direction;\nvec2 off3=vec2(5.176470588235294)*direction;\nfloat compareDepth=abs(texture2D(depthSampler,uv).r);\nfloat sampleDepth;\nfloat weight;\nfloat weightSum=30.0;\ncolor+=texture2D(image,uv)*30.0;\nsampleDepth=abs(texture2D(depthSampler,uv+(off1/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv+(off1/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv-(off1/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv-(off1/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv+(off2/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv+(off2/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv-(off2/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv-(off2/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv+(off3/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv+(off3/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv-(off3/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv-(off3/resolution))*weight;\nreturn color/weightSum;\n}\nvoid main()\n{\n#if EXPENSIVE\nfloat compareDepth=abs(texture2D(depthSampler,vUV).r);\nfloat texelsize=1.0/outSize;\nfloat result=0.0;\nfloat weightSum=0.0;\nfor (int i=0; i 0 ? n._ssaoCombinePostProcess.width : n._originalColorPostProcess.width),
e.setFloat("near", n._scene.activeCamera.minZ),
e.setFloat("far", n._scene.activeCamera.maxZ),
e.setFloat("radius", n.radius),
e.setTexture("depthSampler", n._depthTexture),
e.setArray("samplerOffsets", n._samplerOffsets));
}),
(this._blurVPostProcess = new Wt.a(
"BlurV",
"ssao2",
["outSize", "samplerOffsets", "near", "far", "radius"],
["depthSampler"],
t,
null,
ln.a.TRILINEAR_SAMPLINGMODE,
this._scene.getEngine(),
!1,
"#define BILATERAL_BLUR\n#define BILATERAL_BLUR_V\n#define SAMPLES 16\n#define EXPENSIVE " + (i ? "1" : "0") + "\n"
)),
(this._blurVPostProcess.onApply = function (e) {
n._scene.activeCamera &&
(e.setFloat("outSize", n._ssaoCombinePostProcess.height > 0 ? n._ssaoCombinePostProcess.height : n._originalColorPostProcess.height),
e.setFloat("near", n._scene.activeCamera.minZ),
e.setFloat("far", n._scene.activeCamera.maxZ),
e.setFloat("radius", n.radius),
e.setTexture("depthSampler", n._depthTexture),
e.setArray("samplerOffsets", n._samplerOffsets));
}),
(this._blurHPostProcess.samples = this.textureSamples),
(this._blurVPostProcess.samples = this.textureSamples);
}),
(t.prototype._rebuild = function () {
e.prototype._rebuild.call(this);
}),
(t.prototype._radicalInverse_VdC = function (e) {
return (
(this._bits[0] = e),
(this._bits[0] = ((this._bits[0] << 16) | (this._bits[0] >> 16)) >>> 0),
(this._bits[0] = ((1431655765 & this._bits[0]) << 1) | (((2863311530 & this._bits[0]) >>> 1) >>> 0)),
(this._bits[0] = ((858993459 & this._bits[0]) << 2) | (((3435973836 & this._bits[0]) >>> 2) >>> 0)),
(this._bits[0] = ((252645135 & this._bits[0]) << 4) | (((4042322160 & this._bits[0]) >>> 4) >>> 0)),
(this._bits[0] = ((16711935 & this._bits[0]) << 8) | (((4278255360 & this._bits[0]) >>> 8) >>> 0)),
2.3283064365386963e-10 * this._bits[0]
);
}),
(t.prototype._hammersley = function (e, t) {
return [e / t, this._radicalInverse_VdC(e)];
}),
(t.prototype._hemisphereSample_uniform = function (e, t) {
var n = 2 * t * Math.PI,
i = 1 - (0.85 * e + 0.15),
r = Math.sqrt(1 - i * i);
return new a.e(Math.cos(n) * r, Math.sin(n) * r, i);
}),
(t.prototype._generateHemisphere = function () {
for (var e, t = this.samples, n = [], i = 0; i < t; ) {
if (t < 16) e = this._hemisphereSample_uniform(Math.random(), Math.random());
else {
var r = this._hammersley(i, t);
e = this._hemisphereSample_uniform(r[0], r[1]);
}
n.push(e.x, e.y, e.z), i++;
}
return n;
}),
(t.prototype._createSSAOPostProcess = function (e) {
var t = this,
n = this.samples;
(this._sampleSphere = this._generateHemisphere()),
(this._ssaoPostProcess = new Wt.a(
"ssao2",
"ssao2",
["sampleSphere", "samplesFactor", "randTextureTiles", "totalStrength", "radius", "base", "range", "projection", "near", "far", "texelSize", "xViewport", "yViewport", "maxZ", "minZAspect"],
["randomSampler", "normalSampler"],
e,
null,
ln.a.BILINEAR_SAMPLINGMODE,
this._scene.getEngine(),
!1,
"#define SAMPLES " + n + "\n#define SSAO"
)),
(this._ssaoPostProcess.onApply = function (e) {
t._scene.activeCamera &&
(e.setArray3("sampleSphere", t._sampleSphere),
e.setFloat("randTextureTiles", 32),
e.setFloat("samplesFactor", 1 / t.samples),
e.setFloat("totalStrength", t.totalStrength),
e.setFloat2("texelSize", 1 / t._ssaoPostProcess.width, 1 / t._ssaoPostProcess.height),
e.setFloat("radius", t.radius),
e.setFloat("maxZ", t.maxZ),
e.setFloat("minZAspect", t.minZAspect),
e.setFloat("base", t.base),
e.setFloat("near", t._scene.activeCamera.minZ),
e.setFloat("far", t._scene.activeCamera.maxZ),
e.setFloat("xViewport", Math.tan(t._scene.activeCamera.fov / 2) * t._scene.getEngine().getAspectRatio(t._scene.activeCamera, !0)),
e.setFloat("yViewport", Math.tan(t._scene.activeCamera.fov / 2)),
e.setMatrix("projection", t._scene.getProjectionMatrix()),
e.setTexture("textureSampler", t._depthTexture),
e.setTexture("normalSampler", t._normalTexture),
e.setTexture("randomSampler", t._randomTexture));
}),
(this._ssaoPostProcess.samples = this.textureSamples);
}),
(t.prototype._createSSAOCombinePostProcess = function (e) {
var t = this;
(this._ssaoCombinePostProcess = new Wt.a("ssaoCombine", "ssaoCombine", [], ["originalColor", "viewport"], e, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1)),
(this._ssaoCombinePostProcess.onApply = function (e) {
var n = t._scene.activeCamera.viewport;
e.setVector4("viewport", a.c.Vector4[0].copyFromFloats(n.x, n.y, n.width, n.height)), e.setTextureFromPostProcess("originalColor", t._originalColorPostProcess);
}),
(this._ssaoCombinePostProcess.samples = this.textureSamples);
}),
(t.prototype._createRandomTexture = function () {
(this._randomTexture = new An.a("SSAORandomTexture", 128, this._scene, !1, ln.a.TRILINEAR_SAMPLINGMODE)), (this._randomTexture.wrapU = ln.a.WRAP_ADDRESSMODE), (this._randomTexture.wrapV = ln.a.WRAP_ADDRESSMODE);
for (
var e = this._randomTexture.getContext(),
t = function (e, t) {
return Math.random() * (t - e) + e;
},
n = a.e.Zero(),
i = 0;
i < 128;
i++
)
for (var r = 0; r < 128; r++)
(n.x = t(0, 1)),
(n.y = t(0, 1)),
(n.z = 0),
n.normalize(),
n.scaleInPlace(255),
(n.x = Math.floor(n.x)),
(n.y = Math.floor(n.y)),
(e.fillStyle = "rgb(" + n.x + ", " + n.y + ", " + n.z + ")"),
e.fillRect(i, r, 1, 1);
this._randomTexture.update(!1);
}),
(t.prototype.serialize = function () {
var e = He.a.Serialize(this);
return (e.customType = "SSAO2RenderingPipeline"), e;
}),
(t.Parse = function (e, n, i) {
return He.a.Parse(
function () {
return new t(e._name, n, e._ratio);
},
e,
n,
i
);
}),
Object(h.c)([Object(He.c)()], t.prototype, "totalStrength", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "maxZ", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "minZAspect", void 0),
Object(h.c)([Object(He.c)("samples")], t.prototype, "_samples", void 0),
Object(h.c)([Object(He.c)("textureSamples")], t.prototype, "_textureSamples", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "_ratio", void 0),
Object(h.c)([Object(He.c)("expensiveBlur")], t.prototype, "_expensiveBlur", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "radius", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "base", void 0),
t
);
})(gh);
c.a.RegisteredTypes["BABYLON.SSAO2RenderingPipeline"] = Sh;
var Oh =
"\nuniform sampler2D textureSampler;\nvarying vec2 vUV;\n#ifdef SSAO\nuniform sampler2D randomSampler;\nuniform float randTextureTiles;\nuniform float samplesFactor;\nuniform vec3 sampleSphere[SAMPLES];\nuniform float totalStrength;\nuniform float radius;\nuniform float area;\nuniform float fallOff;\nuniform float base;\nvec3 normalFromDepth(float depth,vec2 coords)\n{\nvec2 offset1=vec2(0.0,radius);\nvec2 offset2=vec2(radius,0.0);\nfloat depth1=texture2D(textureSampler,coords+offset1).r;\nfloat depth2=texture2D(textureSampler,coords+offset2).r;\nvec3 p1=vec3(offset1,depth1-depth);\nvec3 p2=vec3(offset2,depth2-depth);\nvec3 normal=cross(p1,p2);\nnormal.z=-normal.z;\nreturn normalize(normal);\n}\nvoid main()\n{\nvec3 random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);\nfloat depth=texture2D(textureSampler,vUV).r;\nvec3 position=vec3(vUV,depth);\nvec3 normal=normalFromDepth(depth,vUV);\nfloat radiusDepth=radius/depth;\nfloat occlusion=0.0;\nvec3 ray;\nvec3 hemiRay;\nfloat occlusionDepth;\nfloat difference;\nfor (int i=0; i> 0)),
e.push("#define SMOOTH_STEPS " + (this._smoothSteps >> 0)),
this.updateEffect(e.join("\n"));
}),
Object(h.c)([Object(He.c)()], t.prototype, "threshold", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "strength", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "reflectionSpecularFalloffExponent", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "step", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "roughnessFactor", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "enableSmoothReflections", null),
Object(h.c)([Object(He.c)()], t.prototype, "reflectionSamples", null),
Object(h.c)([Object(He.c)()], t.prototype, "smoothSteps", null),
t
);
})(Wt.a),
Ih =
"uniform sampler2D textureSampler;\nvarying vec2 vUV;\n#if defined(PASS_POST_PROCESS)\nvoid main(void)\n{\nvec4 color=texture2D(textureSampler,vUV);\ngl_FragColor=color;\n}\n#endif\n#if defined(DOWN_SAMPLE_X4)\nuniform vec2 dsOffsets[16];\nvoid main(void)\n{\nvec4 average=vec4(0.0,0.0,0.0,0.0);\naverage=texture2D(textureSampler,vUV+dsOffsets[0]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[1]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[2]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[3]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[4]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[5]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[6]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[7]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[8]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[9]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[10]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[11]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[12]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[13]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[14]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[15]);\naverage/=16.0;\ngl_FragColor=average;\n}\n#endif\n#if defined(BRIGHT_PASS)\nuniform vec2 dsOffsets[4];\nuniform float brightThreshold;\nvoid main(void)\n{\nvec4 average=vec4(0.0,0.0,0.0,0.0);\naverage=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));\naverage*=0.25;\nfloat luminance=length(average.rgb);\nif (luminanceshadowPixelDepth)\naccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));\ncurrentPosition+=stepL;\n}\naccumFog/=NB_STEPS;\nvec3 color=accumFog*scatteringPower;\ngl_FragColor=vec4(color*exp(color) ,1.0);\n}\n#endif\n#if defined(VLSMERGE)\nuniform sampler2D originalSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);\n}\n#endif\n#if defined(LUMINANCE)\nuniform vec2 lumOffsets[4];\nvoid main()\n{\nfloat average=0.0;\nvec4 color=vec4(0.0);\nfloat maximum=-1e20;\nvec3 weight=vec3(0.299,0.587,0.114);\nfor (int i=0; i<4; i++)\n{\ncolor=texture2D(textureSampler,vUV+ lumOffsets[i]);\n\nfloat GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\n\n#ifdef WEIGHTED_AVERAGE\nfloat GreyValue=dot(color.rgb,weight);\n#endif\n#ifdef BRIGHTNESS\nfloat GreyValue=max(color.r,max(color.g,color.b));\n#endif\n#ifdef HSL_COMPONENT\nfloat GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\n#endif\n#ifdef MAGNITUDE\nfloat GreyValue=length(color.rgb);\n#endif\nmaximum=max(maximum,GreyValue);\naverage+=(0.25*log(1e-5+GreyValue));\n}\naverage=exp(average);\ngl_FragColor=vec4(average,maximum,0.0,1.0);\n}\n#endif\n#if defined(LUMINANCE_DOWN_SAMPLE)\nuniform vec2 dsOffsets[9];\nuniform float halfDestPixelSize;\n#ifdef FINAL_DOWN_SAMPLER\n#include\n#endif\nvoid main()\n{\nvec4 color=vec4(0.0);\nfloat average=0.0;\nfor (int i=0; i<9; i++)\n{\ncolor=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);\naverage+=color.r;\n}\naverage/=9.0;\n#ifdef FINAL_DOWN_SAMPLER\ngl_FragColor=pack(average);\n#else\ngl_FragColor=vec4(average,average,0.0,1.0);\n#endif\n}\n#endif\n#if defined(HDR)\nuniform sampler2D textureAdderSampler;\nuniform float averageLuminance;\nvoid main()\n{\nvec4 color=texture2D(textureAdderSampler,vUV);\n#ifndef AUTO_EXPOSURE\nvec4 adjustedColor=color/averageLuminance;\ncolor=adjustedColor;\ncolor.a=1.0;\n#endif\ngl_FragColor=color;\n}\n#endif\n#if defined(LENS_FLARE)\n#define GHOSTS 3\nuniform sampler2D lensColorSampler;\nuniform float strength;\nuniform float ghostDispersal;\nuniform float haloWidth;\nuniform vec2 resolution;\nuniform float distortionStrength;\nfloat hash(vec2 p)\n{\nfloat h=dot(p,vec2(127.1,311.7));\nreturn -1.0+2.0*fract(sin(h)*43758.5453123);\n}\nfloat noise(in vec2 p)\n{\nvec2 i=floor(p);\nvec2 f=fract(p);\nvec2 u=f*f*(3.0-2.0*f);\nreturn mix(mix(hash(i+vec2(0.0,0.0)),\nhash(i+vec2(1.0,0.0)),u.x),\nmix(hash(i+vec2(0.0,1.0)),\nhash(i+vec2(1.0,1.0)),u.x),u.y);\n}\nfloat fbm(vec2 p)\n{\nfloat f=0.0;\nf+=0.5000*noise(p); p*=2.02;\nf+=0.2500*noise(p); p*=2.03;\nf+=0.1250*noise(p); p*=2.01;\nf+=0.0625*noise(p); p*=2.04;\nf/=0.9375;\nreturn f;\n}\nvec3 pattern(vec2 uv)\n{\nvec2 p=-1.0+2.0*uv;\nfloat p2=dot(p,p);\nfloat f=fbm(vec2(15.0*p2))/2.0;\nfloat r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));\nfloat g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));\nfloat b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));\nreturn (1.0-f)*vec3(r,g,b);\n}\nfloat luminance(vec3 color)\n{\nreturn dot(color.rgb,vec3(0.2126,0.7152,0.0722));\n}\nvec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion)\n{\nreturn vec4(\ntexture2D(tex,texcoord+direction*distortion.r).r,\ntexture2D(tex,texcoord+direction*distortion.g).g,\ntexture2D(tex,texcoord+direction*distortion.b).b,\n1.0\n);\n}\nvoid main(void)\n{\nvec2 uv=-vUV+vec2(1.0);\nvec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal;\nvec2 texelSize=1.0/resolution;\nvec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);\nvec4 result=vec4(0.0);\nfloat ghostIndice=1.0;\nfor (int i=0; i=nSamples)\nbreak;\nvec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\nresult+=texture2D(textureSampler,offset1);\n}\ngl_FragColor=result/float(nSamples);\n}\n#endif\n";
Xt.a.ShadersStore.standardPixelShader = Ih;
var Dh = (function (e) {
function t(t, n, i, r, o) {
void 0 === r && (r = null);
var a = e.call(this, n.getEngine(), t) || this;
return (
(a.downSampleX4PostProcess = null),
(a.brightPassPostProcess = null),
(a.blurHPostProcesses = []),
(a.blurVPostProcesses = []),
(a.textureAdderPostProcess = null),
(a.volumetricLightPostProcess = null),
(a.volumetricLightSmoothXPostProcess = null),
(a.volumetricLightSmoothYPostProcess = null),
(a.volumetricLightMergePostProces = null),
(a.volumetricLightFinalPostProcess = null),
(a.luminancePostProcess = null),
(a.luminanceDownSamplePostProcesses = []),
(a.hdrPostProcess = null),
(a.textureAdderFinalPostProcess = null),
(a.lensFlareFinalPostProcess = null),
(a.hdrFinalPostProcess = null),
(a.lensFlarePostProcess = null),
(a.lensFlareComposePostProcess = null),
(a.motionBlurPostProcess = null),
(a.depthOfFieldPostProcess = null),
(a.fxaaPostProcess = null),
(a.screenSpaceReflectionPostProcess = null),
(a.brightThreshold = 1),
(a.blurWidth = 512),
(a.horizontalBlur = !1),
(a.lensTexture = null),
(a.volumetricLightCoefficient = 0.2),
(a.volumetricLightPower = 4),
(a.volumetricLightBlurScale = 64),
(a.sourceLight = null),
(a.hdrMinimumLuminance = 1),
(a.hdrDecreaseRate = 0.5),
(a.hdrIncreaseRate = 0.5),
(a.lensColorTexture = null),
(a.lensFlareStrength = 20),
(a.lensFlareGhostDispersal = 1.4),
(a.lensFlareHaloWidth = 0.7),
(a.lensFlareDistortionStrength = 16),
(a.lensFlareBlurWidth = 512),
(a.lensStarTexture = null),
(a.lensFlareDirtTexture = null),
(a.depthOfFieldDistance = 10),
(a.depthOfFieldBlurWidth = 64),
(a.animations = []),
(a._currentDepthOfFieldSource = null),
(a._fixedExposure = 1),
(a._currentExposure = 1),
(a._hdrAutoExposure = !1),
(a._hdrCurrentLuminance = 1),
(a._motionStrength = 1),
(a._isObjectBasedMotionBlur = !1),
(a._camerasToBeAttached = []),
(a._bloomEnabled = !1),
(a._depthOfFieldEnabled = !1),
(a._vlsEnabled = !1),
(a._lensFlareEnabled = !1),
(a._hdrEnabled = !1),
(a._motionBlurEnabled = !1),
(a._fxaaEnabled = !1),
(a._screenSpaceReflectionsEnabled = !1),
(a._motionBlurSamples = 64),
(a._volumetricLightStepsCount = 50),
(a._samples = 1),
(a._cameras = o || n.cameras),
(a._cameras = a._cameras.slice()),
(a._camerasToBeAttached = a._cameras.slice()),
(a._scene = n),
(a._basePostProcess = r),
(a._ratio = i),
(a._floatTextureType = n.getEngine().getCaps().textureFloatRender ? 1 : 2),
n.postProcessRenderPipelineManager.addPipeline(a),
a._buildPipeline(),
a
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t.prototype, "exposure", {
get: function () {
return this._fixedExposure;
},
set: function (e) {
(this._fixedExposure = e), (this._currentExposure = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "hdrAutoExposure", {
get: function () {
return this._hdrAutoExposure;
},
set: function (e) {
if (((this._hdrAutoExposure = e), this.hdrPostProcess)) {
var t = ["#define HDR"];
e && t.push("#define AUTO_EXPOSURE"), this.hdrPostProcess.updateEffect(t.join("\n"));
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "motionStrength", {
get: function () {
return this._motionStrength;
},
set: function (e) {
(this._motionStrength = e), this._isObjectBasedMotionBlur && this.motionBlurPostProcess && (this.motionBlurPostProcess.motionStrength = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "objectBasedMotionBlur", {
get: function () {
return this._isObjectBasedMotionBlur;
},
set: function (e) {
var t = this._isObjectBasedMotionBlur !== e;
(this._isObjectBasedMotionBlur = e), t && this._buildPipeline();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "BloomEnabled", {
get: function () {
return this._bloomEnabled;
},
set: function (e) {
this._bloomEnabled !== e && ((this._bloomEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "DepthOfFieldEnabled", {
get: function () {
return this._depthOfFieldEnabled;
},
set: function (e) {
this._depthOfFieldEnabled !== e && ((this._depthOfFieldEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "LensFlareEnabled", {
get: function () {
return this._lensFlareEnabled;
},
set: function (e) {
this._lensFlareEnabled !== e && ((this._lensFlareEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "HDREnabled", {
get: function () {
return this._hdrEnabled;
},
set: function (e) {
this._hdrEnabled !== e && ((this._hdrEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "VLSEnabled", {
get: function () {
return this._vlsEnabled;
},
set: function (e) {
if (this._vlsEnabled !== e) {
if (e) if (!this._scene.enableGeometryBufferRenderer()) return void g.a.Warn("Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline");
(this._vlsEnabled = e), this._buildPipeline();
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "MotionBlurEnabled", {
get: function () {
return this._motionBlurEnabled;
},
set: function (e) {
this._motionBlurEnabled !== e && ((this._motionBlurEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "fxaaEnabled", {
get: function () {
return this._fxaaEnabled;
},
set: function (e) {
this._fxaaEnabled !== e && ((this._fxaaEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "screenSpaceReflectionsEnabled", {
get: function () {
return this._screenSpaceReflectionsEnabled;
},
set: function (e) {
this._screenSpaceReflectionsEnabled !== e && ((this._screenSpaceReflectionsEnabled = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "volumetricLightStepsCount", {
get: function () {
return this._volumetricLightStepsCount;
},
set: function (e) {
this.volumetricLightPostProcess && this.volumetricLightPostProcess.updateEffect("#define VLS\n#define NB_STEPS " + e.toFixed(1)), (this._volumetricLightStepsCount = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "motionBlurSamples", {
get: function () {
return this._motionBlurSamples;
},
set: function (e) {
this.motionBlurPostProcess &&
(this._isObjectBasedMotionBlur ? (this.motionBlurPostProcess.motionBlurSamples = e) : this.motionBlurPostProcess.updateEffect("#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES " + e.toFixed(1))),
(this._motionBlurSamples = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "samples", {
get: function () {
return this._samples;
},
set: function (e) {
this._samples !== e && ((this._samples = e), this._buildPipeline());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._buildPipeline = function () {
var e = this,
t = this._ratio,
n = this._scene;
this._disposePostProcesses(),
null !== this._cameras && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), (this._cameras = this._camerasToBeAttached.slice())),
this._reset(),
this._screenSpaceReflectionsEnabled &&
((this.screenSpaceReflectionPostProcess = new Ah("HDRPass", n, t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, this._floatTextureType)),
this.screenSpaceReflectionPostProcess.onApplyObservable.add(function () {
e._currentDepthOfFieldSource = e.screenSpaceReflectionPostProcess;
}),
this.addEffect(
new Au(
n.getEngine(),
"HDRScreenSpaceReflections",
function () {
return e.screenSpaceReflectionPostProcess;
},
!0
)
)),
this._basePostProcess
? (this.originalPostProcess = this._basePostProcess)
: (this.originalPostProcess = new Wt.a("HDRPass", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", this._floatTextureType)),
(this.originalPostProcess.autoClear = !this.screenSpaceReflectionPostProcess),
this.originalPostProcess.onApplyObservable.add(function () {
e._currentDepthOfFieldSource = e.originalPostProcess;
}),
this.addEffect(
new Au(
n.getEngine(),
"HDRPassPostProcess",
function () {
return e.originalPostProcess;
},
!0
)
),
this._bloomEnabled &&
(this._createDownSampleX4PostProcess(n, t / 4),
this._createBrightPassPostProcess(n, t / 4),
this._createBlurPostProcesses(n, t / 4, 1),
this._createTextureAdderPostProcess(n, t),
(this.textureAdderFinalPostProcess = new Wt.a("HDRDepthOfFieldSource", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)),
this.addEffect(
new Au(
n.getEngine(),
"HDRBaseDepthOfFieldSource",
function () {
return e.textureAdderFinalPostProcess;
},
!0
)
)),
this._vlsEnabled &&
(this._createVolumetricLightPostProcess(n, t),
(this.volumetricLightFinalPostProcess = new Wt.a("HDRVLSFinal", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)),
this.addEffect(
new Au(
n.getEngine(),
"HDRVLSFinal",
function () {
return e.volumetricLightFinalPostProcess;
},
!0
)
)),
this._lensFlareEnabled &&
(this._createLensFlarePostProcess(n, t),
(this.lensFlareFinalPostProcess = new Wt.a("HDRPostLensFlareDepthOfFieldSource", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)),
this.addEffect(
new Au(
n.getEngine(),
"HDRPostLensFlareDepthOfFieldSource",
function () {
return e.lensFlareFinalPostProcess;
},
!0
)
)),
this._hdrEnabled &&
(this._createLuminancePostProcesses(n, this._floatTextureType),
this._createHdrPostProcess(n, t),
(this.hdrFinalPostProcess = new Wt.a("HDRPostHDReDepthOfFieldSource", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)),
this.addEffect(
new Au(
n.getEngine(),
"HDRPostHDReDepthOfFieldSource",
function () {
return e.hdrFinalPostProcess;
},
!0
)
)),
this._depthOfFieldEnabled && (this._createBlurPostProcesses(n, t / 2, 3, "depthOfFieldBlurWidth"), this._createDepthOfFieldPostProcess(n, t)),
this._motionBlurEnabled && this._createMotionBlurPostProcess(n, t),
this._fxaaEnabled &&
((this.fxaaPostProcess = new th("fxaa", 1, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, 0)),
this.addEffect(
new Au(
n.getEngine(),
"HDRFxaa",
function () {
return e.fxaaPostProcess;
},
!0
)
)),
null !== this._cameras && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras),
!this._enableMSAAOnFirstPostProcess(this._samples) && this._samples > 1 && g.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0");
}),
(t.prototype._createDownSampleX4PostProcess = function (e, t) {
var n = this,
i = new Array(32);
(this.downSampleX4PostProcess = new Wt.a("HDRDownSampleX4", "standard", ["dsOffsets"], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define DOWN_SAMPLE_X4", this._floatTextureType)),
(this.downSampleX4PostProcess.onApply = function (e) {
for (var t = 0, r = n.downSampleX4PostProcess.width, o = n.downSampleX4PostProcess.height, a = -2; a < 2; a++)
for (var s = -2; s < 2; s++) (i[t] = (a + 0.5) * (1 / r)), (i[t + 1] = (s + 0.5) * (1 / o)), (t += 2);
e.setArray2("dsOffsets", i);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRDownSampleX4",
function () {
return n.downSampleX4PostProcess;
},
!0
)
);
}),
(t.prototype._createBrightPassPostProcess = function (e, t) {
var n = this,
i = new Array(8);
(this.brightPassPostProcess = new Wt.a("HDRBrightPass", "standard", ["dsOffsets", "brightThreshold"], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define BRIGHT_PASS", this._floatTextureType)),
(this.brightPassPostProcess.onApply = function (e) {
var t = 1 / n.brightPassPostProcess.width,
r = 1 / n.brightPassPostProcess.height;
(i[0] = -0.5 * t),
(i[1] = 0.5 * r),
(i[2] = 0.5 * t),
(i[3] = 0.5 * r),
(i[4] = -0.5 * t),
(i[5] = -0.5 * r),
(i[6] = 0.5 * t),
(i[7] = -0.5 * r),
e.setArray2("dsOffsets", i),
e.setFloat("brightThreshold", n.brightThreshold);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRBrightPass",
function () {
return n.brightPassPostProcess;
},
!0
)
);
}),
(t.prototype._createBlurPostProcesses = function (e, t, n, i) {
var r = this;
void 0 === i && (i = "blurWidth");
var o = e.getEngine(),
s = new Er("HDRBlurH_" + n, new a.d(1, 0), this[i], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, this._floatTextureType),
c = new Er("HDRBlurV_" + n, new a.d(0, 1), this[i], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, this._floatTextureType);
s.onActivateObservable.add(function () {
var e = s.width / o.getRenderWidth();
s.kernel = r[i] * e;
}),
c.onActivateObservable.add(function () {
var e = c.height / o.getRenderHeight();
c.kernel = r.horizontalBlur ? 64 * e : r[i] * e;
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRBlurH" + n,
function () {
return s;
},
!0
)
),
this.addEffect(
new Au(
e.getEngine(),
"HDRBlurV" + n,
function () {
return c;
},
!0
)
),
this.blurHPostProcesses.push(s),
this.blurVPostProcesses.push(c);
}),
(t.prototype._createTextureAdderPostProcess = function (e, t) {
var n = this;
(this.textureAdderPostProcess = new Wt.a(
"HDRTextureAdder",
"standard",
["exposure"],
["otherSampler", "lensSampler"],
t,
null,
ln.a.BILINEAR_SAMPLINGMODE,
e.getEngine(),
!1,
"#define TEXTURE_ADDER",
this._floatTextureType
)),
(this.textureAdderPostProcess.onApply = function (e) {
e.setTextureFromPostProcess("otherSampler", n._vlsEnabled ? n._currentDepthOfFieldSource : n.originalPostProcess),
e.setTexture("lensSampler", n.lensTexture),
e.setFloat("exposure", n._currentExposure),
(n._currentDepthOfFieldSource = n.textureAdderFinalPostProcess);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRTextureAdder",
function () {
return n.textureAdderPostProcess;
},
!0
)
);
}),
(t.prototype._createVolumetricLightPostProcess = function (e, t) {
var n = this,
i = e.enableGeometryBufferRenderer();
i.enablePosition = !0;
var r = i.getGBuffer();
this.volumetricLightPostProcess = new Wt.a(
"HDRVLS",
"standard",
["shadowViewProjection", "cameraPosition", "sunDirection", "sunColor", "scatteringCoefficient", "scatteringPower", "depthValues"],
["shadowMapSampler", "positionSampler"],
t / 8,
null,
ln.a.BILINEAR_SAMPLINGMODE,
e.getEngine(),
!1,
"#define VLS\n#define NB_STEPS " + this._volumetricLightStepsCount.toFixed(1)
);
var o = a.d.Zero();
(this.volumetricLightPostProcess.onApply = function (e) {
if (n.sourceLight && n.sourceLight.getShadowGenerator() && n._scene.activeCamera) {
var t = n.sourceLight.getShadowGenerator();
e.setTexture("shadowMapSampler", t.getShadowMap()),
e.setTexture("positionSampler", r.textures[2]),
e.setColor3("sunColor", n.sourceLight.diffuse),
e.setVector3("sunDirection", n.sourceLight.getShadowDirection()),
e.setVector3("cameraPosition", n._scene.activeCamera.globalPosition),
e.setMatrix("shadowViewProjection", t.getTransformMatrix()),
e.setFloat("scatteringCoefficient", n.volumetricLightCoefficient),
e.setFloat("scatteringPower", n.volumetricLightPower),
(o.x = n.sourceLight.getDepthMinZ(n._scene.activeCamera)),
(o.y = n.sourceLight.getDepthMaxZ(n._scene.activeCamera)),
e.setVector2("depthValues", o);
}
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRVLS",
function () {
return n.volumetricLightPostProcess;
},
!0
)
),
this._createBlurPostProcesses(e, t / 4, 0, "volumetricLightBlurScale"),
(this.volumetricLightMergePostProces = new Wt.a("HDRVLSMerge", "standard", [], ["originalSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define VLSMERGE")),
(this.volumetricLightMergePostProces.onApply = function (e) {
e.setTextureFromPostProcess("originalSampler", n._bloomEnabled ? n.textureAdderFinalPostProcess : n.originalPostProcess), (n._currentDepthOfFieldSource = n.volumetricLightFinalPostProcess);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRVLSMerge",
function () {
return n.volumetricLightMergePostProces;
},
!0
)
);
}),
(t.prototype._createLuminancePostProcesses = function (e, n) {
var i = this,
r = Math.pow(3, t.LuminanceSteps);
this.luminancePostProcess = new Wt.a("HDRLuminance", "standard", ["lumOffsets"], [], { width: r, height: r }, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define LUMINANCE", n);
var o = [];
(this.luminancePostProcess.onApply = function (e) {
var t = 1 / i.luminancePostProcess.width,
n = 1 / i.luminancePostProcess.height;
(o[0] = -0.5 * t), (o[1] = 0.5 * n), (o[2] = 0.5 * t), (o[3] = 0.5 * n), (o[4] = -0.5 * t), (o[5] = -0.5 * n), (o[6] = 0.5 * t), (o[7] = -0.5 * n), e.setArray2("lumOffsets", o);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRLuminance",
function () {
return i.luminancePostProcess;
},
!0
)
);
for (var s = t.LuminanceSteps - 1; s >= 0; s--) {
r = Math.pow(3, s);
var c = "#define LUMINANCE_DOWN_SAMPLE\n";
0 === s && (c += "#define FINAL_DOWN_SAMPLER");
var l = new Wt.a("HDRLuminanceDownSample" + s, "standard", ["dsOffsets", "halfDestPixelSize"], [], { width: r, height: r }, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, c, n);
this.luminanceDownSamplePostProcesses.push(l);
}
var u = this.luminancePostProcess;
this.luminanceDownSamplePostProcesses.forEach(function (t, n) {
var r = new Array(18);
(t.onApply = function (e) {
if (u) {
for (var o = 0, a = -1; a < 2; a++) for (var s = -1; s < 2; s++) (r[o] = a / u.width), (r[o + 1] = s / u.height), (o += 2);
e.setArray2("dsOffsets", r), e.setFloat("halfDestPixelSize", 0.5 / u.width), (u = n === i.luminanceDownSamplePostProcesses.length - 1 ? i.luminancePostProcess : t);
}
}),
n === i.luminanceDownSamplePostProcesses.length - 1 &&
(t.onAfterRender = function () {
var t = e.getEngine().readPixels(0, 0, 1, 1),
n = new a.f(1 / 16581375, 1 / 65025, 1 / 255, 1);
i._hdrCurrentLuminance = (t[0] * n.x + t[1] * n.y + t[2] * n.z + t[3] * n.w) / 100;
}),
i.addEffect(
new Au(
e.getEngine(),
"HDRLuminanceDownSample" + n,
function () {
return t;
},
!0
)
);
});
}),
(t.prototype._createHdrPostProcess = function (e, t) {
var n = this,
i = ["#define HDR"];
this._hdrAutoExposure && i.push("#define AUTO_EXPOSURE"),
(this.hdrPostProcess = new Wt.a("HDR", "standard", ["averageLuminance"], ["textureAdderSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, i.join("\n"), 0));
var r = 1,
o = 0,
a = 0;
(this.hdrPostProcess.onApply = function (t) {
if ((t.setTextureFromPostProcess("textureAdderSampler", n._currentDepthOfFieldSource), (o += e.getEngine().getDeltaTime()), r < 0)) r = n._hdrCurrentLuminance;
else {
var i = (a - o) / 1e3;
n._hdrCurrentLuminance < r + n.hdrDecreaseRate * i ? (r += n.hdrDecreaseRate * i) : n._hdrCurrentLuminance > r - n.hdrIncreaseRate * i ? (r -= n.hdrIncreaseRate * i) : (r = n._hdrCurrentLuminance);
}
n.hdrAutoExposure ? (n._currentExposure = n._fixedExposure / r) : ((r = z.a.Clamp(r, n.hdrMinimumLuminance, 1e20)), t.setFloat("averageLuminance", r)), (a = o), (n._currentDepthOfFieldSource = n.hdrFinalPostProcess);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDR",
function () {
return n.hdrPostProcess;
},
!0
)
);
}),
(t.prototype._createLensFlarePostProcess = function (e, t) {
var n = this;
(this.lensFlarePostProcess = new Wt.a(
"HDRLensFlare",
"standard",
["strength", "ghostDispersal", "haloWidth", "resolution", "distortionStrength"],
["lensColorSampler"],
t / 2,
null,
ln.a.BILINEAR_SAMPLINGMODE,
e.getEngine(),
!1,
"#define LENS_FLARE",
0
)),
this.addEffect(
new Au(
e.getEngine(),
"HDRLensFlare",
function () {
return n.lensFlarePostProcess;
},
!0
)
),
this._createBlurPostProcesses(e, t / 4, 2, "lensFlareBlurWidth"),
(this.lensFlareComposePostProcess = new Wt.a(
"HDRLensFlareCompose",
"standard",
["lensStarMatrix"],
["otherSampler", "lensDirtSampler", "lensStarSampler"],
t,
null,
ln.a.BILINEAR_SAMPLINGMODE,
e.getEngine(),
!1,
"#define LENS_FLARE_COMPOSE",
0
)),
this.addEffect(
new Au(
e.getEngine(),
"HDRLensFlareCompose",
function () {
return n.lensFlareComposePostProcess;
},
!0
)
);
var i = new a.d(0, 0);
this.lensFlarePostProcess.onApply = function (e) {
e.setTextureFromPostProcess("textureSampler", n._bloomEnabled ? n.blurHPostProcesses[0] : n.originalPostProcess),
e.setTexture("lensColorSampler", n.lensColorTexture),
e.setFloat("strength", n.lensFlareStrength),
e.setFloat("ghostDispersal", n.lensFlareGhostDispersal),
e.setFloat("haloWidth", n.lensFlareHaloWidth),
(i.x = n.lensFlarePostProcess.width),
(i.y = n.lensFlarePostProcess.height),
e.setVector2("resolution", i),
e.setFloat("distortionStrength", n.lensFlareDistortionStrength);
};
var r = a.a.FromValues(2, 0, -1, 0, 0, 2, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1),
o = a.a.FromValues(0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1, 0, 0, 0, 0, 1);
this.lensFlareComposePostProcess.onApply = function (e) {
if (n._scene.activeCamera) {
e.setTextureFromPostProcess("otherSampler", n.lensFlarePostProcess), e.setTexture("lensDirtSampler", n.lensFlareDirtTexture), e.setTexture("lensStarSampler", n.lensStarTexture);
var t = n._scene.activeCamera.getViewMatrix().getRow(0),
i = n._scene.activeCamera.getViewMatrix().getRow(2),
s = a.e.Dot(t.toVector3(), new a.e(1, 0, 0)) + a.e.Dot(i.toVector3(), new a.e(0, 0, 1));
s *= 4;
var c = a.a.FromValues(0.5 * Math.cos(s), -Math.sin(s), 0, 0, Math.sin(s), 0.5 * Math.cos(s), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1),
l = o.multiply(c).multiply(r);
e.setMatrix("lensStarMatrix", l), (n._currentDepthOfFieldSource = n.lensFlareFinalPostProcess);
}
};
}),
(t.prototype._createDepthOfFieldPostProcess = function (e, t) {
var n = this;
(this.depthOfFieldPostProcess = new Wt.a("HDRDepthOfField", "standard", ["distance"], ["otherSampler", "depthSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define DEPTH_OF_FIELD", 0)),
(this.depthOfFieldPostProcess.onApply = function (e) {
e.setTextureFromPostProcess("otherSampler", n._currentDepthOfFieldSource), e.setTexture("depthSampler", n._getDepthTexture()), e.setFloat("distance", n.depthOfFieldDistance);
}),
this.addEffect(
new Au(
e.getEngine(),
"HDRDepthOfField",
function () {
return n.depthOfFieldPostProcess;
},
!0
)
);
}),
(t.prototype._createMotionBlurPostProcess = function (e, t) {
var n = this;
if (this._isObjectBasedMotionBlur) {
var i = new hh("HDRMotionBlur", e, t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, 0);
(i.motionStrength = this.motionStrength), (i.motionBlurSamples = this.motionBlurSamples), (this.motionBlurPostProcess = i);
} else {
this.motionBlurPostProcess = new Wt.a(
"HDRMotionBlur",
"standard",
["inverseViewProjection", "prevViewProjection", "screenSize", "motionScale", "motionStrength"],
["depthSampler"],
t,
null,
ln.a.BILINEAR_SAMPLINGMODE,
e.getEngine(),
!1,
"#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES " + this.motionBlurSamples.toFixed(1),
0
);
var r = 0,
o = a.a.Identity(),
s = a.a.Identity(),
c = a.a.Identity(),
l = a.d.Zero();
this.motionBlurPostProcess.onApply = function (t) {
(c = e.getProjectionMatrix().multiply(e.getViewMatrix())).invertToRef(s),
t.setMatrix("inverseViewProjection", s),
t.setMatrix("prevViewProjection", o),
(o = c),
(l.x = n.motionBlurPostProcess.width),
(l.y = n.motionBlurPostProcess.height),
t.setVector2("screenSize", l),
(r = e.getEngine().getFps() / 60),
t.setFloat("motionScale", r),
t.setFloat("motionStrength", n.motionStrength),
t.setTexture("depthSampler", n._getDepthTexture());
};
}
this.addEffect(
new Au(
e.getEngine(),
"HDRMotionBlur",
function () {
return n.motionBlurPostProcess;
},
!0
)
);
}),
(t.prototype._getDepthTexture = function () {
return this._scene.getEngine().getCaps().drawBuffersExtension ? this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0] : this._scene.enableDepthRenderer().getDepthMap();
}),
(t.prototype._disposePostProcesses = function () {
for (var e = 0; e < this._cameras.length; e++) {
var t = this._cameras[e];
this.originalPostProcess && this.originalPostProcess.dispose(t),
this.screenSpaceReflectionPostProcess && this.screenSpaceReflectionPostProcess.dispose(t),
this.downSampleX4PostProcess && this.downSampleX4PostProcess.dispose(t),
this.brightPassPostProcess && this.brightPassPostProcess.dispose(t),
this.textureAdderPostProcess && this.textureAdderPostProcess.dispose(t),
this.volumetricLightPostProcess && this.volumetricLightPostProcess.dispose(t),
this.volumetricLightSmoothXPostProcess && this.volumetricLightSmoothXPostProcess.dispose(t),
this.volumetricLightSmoothYPostProcess && this.volumetricLightSmoothYPostProcess.dispose(t),
this.volumetricLightMergePostProces && this.volumetricLightMergePostProces.dispose(t),
this.volumetricLightFinalPostProcess && this.volumetricLightFinalPostProcess.dispose(t),
this.lensFlarePostProcess && this.lensFlarePostProcess.dispose(t),
this.lensFlareComposePostProcess && this.lensFlareComposePostProcess.dispose(t);
for (var n = 0; n < this.luminanceDownSamplePostProcesses.length; n++) this.luminanceDownSamplePostProcesses[n].dispose(t);
this.luminancePostProcess && this.luminancePostProcess.dispose(t),
this.hdrPostProcess && this.hdrPostProcess.dispose(t),
this.hdrFinalPostProcess && this.hdrFinalPostProcess.dispose(t),
this.depthOfFieldPostProcess && this.depthOfFieldPostProcess.dispose(t),
this.motionBlurPostProcess && this.motionBlurPostProcess.dispose(t),
this.fxaaPostProcess && this.fxaaPostProcess.dispose(t);
for (n = 0; n < this.blurHPostProcesses.length; n++) this.blurHPostProcesses[n].dispose(t);
for (n = 0; n < this.blurVPostProcesses.length; n++) this.blurVPostProcesses[n].dispose(t);
}
(this.originalPostProcess = null),
(this.downSampleX4PostProcess = null),
(this.brightPassPostProcess = null),
(this.textureAdderPostProcess = null),
(this.textureAdderFinalPostProcess = null),
(this.volumetricLightPostProcess = null),
(this.volumetricLightSmoothXPostProcess = null),
(this.volumetricLightSmoothYPostProcess = null),
(this.volumetricLightMergePostProces = null),
(this.volumetricLightFinalPostProcess = null),
(this.lensFlarePostProcess = null),
(this.lensFlareComposePostProcess = null),
(this.luminancePostProcess = null),
(this.hdrPostProcess = null),
(this.hdrFinalPostProcess = null),
(this.depthOfFieldPostProcess = null),
(this.motionBlurPostProcess = null),
(this.fxaaPostProcess = null),
(this.screenSpaceReflectionPostProcess = null),
(this.luminanceDownSamplePostProcesses = []),
(this.blurHPostProcesses = []),
(this.blurVPostProcesses = []);
}),
(t.prototype.dispose = function () {
this._disposePostProcesses(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), e.prototype.dispose.call(this);
}),
(t.prototype.serialize = function () {
var e = He.a.Serialize(this);
return (
this.sourceLight && (e.sourceLightId = this.sourceLight.id),
this.screenSpaceReflectionPostProcess && (e.screenSpaceReflectionPostProcess = He.a.Serialize(this.screenSpaceReflectionPostProcess)),
(e.customType = "StandardRenderingPipeline"),
e
);
}),
(t.Parse = function (e, n, i) {
var r = He.a.Parse(
function () {
return new t(e._name, n, e._ratio);
},
e,
n,
i
);
return (
e.sourceLightId && (r.sourceLight = n.getLightByID(e.sourceLightId)),
e.screenSpaceReflectionPostProcess &&
He.a.Parse(
function () {
return r.screenSpaceReflectionPostProcess;
},
e.screenSpaceReflectionPostProcess,
n,
i
),
r
);
}),
(t.LuminanceSteps = 6),
Object(h.c)([Object(He.c)()], t.prototype, "brightThreshold", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "blurWidth", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "horizontalBlur", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "exposure", null),
Object(h.c)([Object(He.m)("lensTexture")], t.prototype, "lensTexture", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightCoefficient", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightPower", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightBlurScale", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "hdrMinimumLuminance", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "hdrDecreaseRate", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "hdrIncreaseRate", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "hdrAutoExposure", null),
Object(h.c)([Object(He.m)("lensColorTexture")], t.prototype, "lensColorTexture", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lensFlareStrength", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lensFlareGhostDispersal", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lensFlareHaloWidth", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lensFlareDistortionStrength", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "lensFlareBlurWidth", void 0),
Object(h.c)([Object(He.m)("lensStarTexture")], t.prototype, "lensStarTexture", void 0),
Object(h.c)([Object(He.m)("lensFlareDirtTexture")], t.prototype, "lensFlareDirtTexture", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldDistance", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldBlurWidth", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "motionStrength", null),
Object(h.c)([Object(He.c)()], t.prototype, "objectBasedMotionBlur", null),
Object(h.c)([Object(He.c)()], t.prototype, "_ratio", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "BloomEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "DepthOfFieldEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "LensFlareEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "HDREnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "VLSEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "MotionBlurEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "fxaaEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "screenSpaceReflectionsEnabled", null),
Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightStepsCount", null),
Object(h.c)([Object(He.c)()], t.prototype, "motionBlurSamples", null),
Object(h.c)([Object(He.c)()], t.prototype, "samples", null),
t
);
})(gh);
c.a.RegisteredTypes["BABYLON.StandardRenderingPipeline"] = Dh;
var Rh =
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform float _ExposureAdjustment;\n#if defined(HABLE_TONEMAPPING)\nconst float A=0.15;\nconst float B=0.50;\nconst float C=0.10;\nconst float D=0.20;\nconst float E=0.02;\nconst float F=0.30;\nconst float W=11.2;\n#endif\nfloat Luminance(vec3 c)\n{\nreturn dot(c,vec3(0.22,0.707,0.071));\n}\nvoid main(void)\n{\nvec3 colour=texture2D(textureSampler,vUV).rgb;\n#if defined(REINHARD_TONEMAPPING)\nfloat lum=Luminance(colour.rgb);\nfloat lumTm=lum*_ExposureAdjustment;\nfloat scale=lumTm/(1.0+lumTm);\ncolour*=scale/lum;\n#elif defined(HABLE_TONEMAPPING)\ncolour*=_ExposureAdjustment;\nconst float ExposureBias=2.0;\nvec3 x=ExposureBias*colour;\nvec3 curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\nx=vec3(W,W,W);\nvec3 whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);\ncolour=curr*whiteScale;\n#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)\ncolour*=_ExposureAdjustment;\nvec3 X=max(vec3(0.0,0.0,0.0),colour-0.004);\nvec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\ncolour=retColor*retColor;\n#elif defined(PHOTOGRAPHIC_TONEMAPPING)\ncolour=vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);\n#endif\ngl_FragColor=vec4(colour.rgb,1.0);\n}";
Xt.a.ShadersStore.tonemapPixelShader = Rh;
var wh;
!(function (e) {
(e[(e.Hable = 0)] = "Hable"), (e[(e.Reinhard = 1)] = "Reinhard"), (e[(e.HejiDawson = 2)] = "HejiDawson"), (e[(e.Photographic = 3)] = "Photographic");
})(wh || (wh = {}));
var Lh = (function (e) {
function t(t, n, i, r, o, a, s) {
void 0 === o && (o = 2), void 0 === s && (s = 0);
var c = e.call(this, t, "tonemap", ["_ExposureAdjustment"], null, 1, r, o, a, !0, null, s) || this;
(c._operator = n), (c.exposureAdjustment = i);
var l = "#define ";
return (
c._operator === wh.Hable
? (l += "HABLE_TONEMAPPING")
: c._operator === wh.Reinhard
? (l += "REINHARD_TONEMAPPING")
: c._operator === wh.HejiDawson
? (l += "OPTIMIZED_HEJIDAWSON_TONEMAPPING")
: c._operator === wh.Photographic && (l += "PHOTOGRAPHIC_TONEMAPPING"),
c.updateEffect(l),
(c.onApply = function (e) {
e.setFloat("_ExposureAdjustment", c.exposureAdjustment);
}),
c
);
}
return Object(h.d)(t, e), t;
})(Wt.a),
Fh =
"uniform sampler2D textureSampler;\nuniform sampler2D lightScatteringSampler;\nuniform float decay;\nuniform float exposure;\nuniform float weight;\nuniform float density;\nuniform vec2 meshPositionOnScreen;\nvarying vec2 vUV;\nvoid main(void) {\nvec2 tc=vUV;\nvec2 deltaTexCoord=(tc-meshPositionOnScreen.xy);\ndeltaTexCoord*=1.0/float(NUM_SAMPLES)*density;\nfloat illuminationDecay=1.0;\nvec4 color=texture2D(lightScatteringSampler,tc)*0.4;\nfor(int i=0; i 0 && -1 !== this.excludedMeshes.indexOf(e);
}),
(t.prototype._createPass = function (e, t) {
var n = this,
i = e.getEngine();
(this._volumetricLightScatteringRTT = new mn.a("volumetricLightScatteringMap", { width: i.getRenderWidth() * t, height: i.getRenderHeight() * t }, e, !1, !0, 0)),
(this._volumetricLightScatteringRTT.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._volumetricLightScatteringRTT.wrapV = ln.a.CLAMP_ADDRESSMODE),
(this._volumetricLightScatteringRTT.renderList = null),
(this._volumetricLightScatteringRTT.renderParticles = !1),
(this._volumetricLightScatteringRTT.ignoreCameraViewport = !0);
var r = this.getCamera();
r ? r.customRenderTargets.push(this._volumetricLightScatteringRTT) : e.customRenderTargets.push(this._volumetricLightScatteringRTT);
var o,
a = function (e) {
var t = e.getRenderingMesh();
if (!n._meshExcluded(t)) {
t._internalAbstractMeshDataInfo._isActiveIntermediate = !1;
var i = e.getMaterial();
if (i) {
var r = t.getScene(),
o = r.getEngine();
o.setState(i.backFaceCulling);
var a = t._getInstancesRenderList(e._id);
if (!a.mustReturn) {
var s = o.getCaps().instancedArrays && null !== a.visibleInstances[e._id];
if (n._isReady(e, s)) {
var c = n._volumetricLightScatteringPass;
if ((t === n.mesh && (c = e.effect ? e.effect : i.getEffect()), o.enableEffect(c), t._bind(e, c, i.fillMode), t === n.mesh)) i.bind(t.getWorldMatrix(), t);
else {
if ((n._volumetricLightScatteringPass.setMatrix("viewProjection", r.getTransformMatrix()), i && i.needAlphaTesting())) {
var l = i.getAlphaTestTexture();
n._volumetricLightScatteringPass.setTexture("diffuseSampler", l), l && n._volumetricLightScatteringPass.setMatrix("diffuseMatrix", l.getTextureMatrix());
}
t.useBones && t.computeBonesUsingShaders && t.skeleton && n._volumetricLightScatteringPass.setMatrices("mBones", t.skeleton.getTransformMatrices(t));
}
t._processRendering(e, n._volumetricLightScatteringPass, Fo.a.TriangleFillMode, a, s, function (e, t) {
return c.setMatrix("world", t);
});
}
}
}
}
},
c = new s.b(0, 0, 0, 1);
this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(function () {
(o = e.clearColor), (e.clearColor = c);
}),
this._volumetricLightScatteringRTT.onAfterRenderObservable.add(function () {
e.clearColor = o;
}),
(this._volumetricLightScatteringRTT.customRenderFunction = function (t, n, i, r) {
var o,
s = e.getEngine();
if (r.length) {
for (s.setColorWrite(!1), o = 0; o < r.length; o++) a(r.data[o]);
s.setColorWrite(!0);
}
for (o = 0; o < t.length; o++) a(t.data[o]);
for (o = 0; o < n.length; o++) a(n.data[o]);
if (i.length) {
for (o = 0; o < i.length; o++) {
var c = i.data[o],
l = c.getBoundingInfo();
l && e.activeCamera && ((c._alphaIndex = c.getMesh().alphaIndex), (c._distanceToCamera = l.boundingSphere.centerWorld.subtract(e.activeCamera.position).length()));
}
var u = i.data.slice(0, i.length);
for (
u.sort(function (e, t) {
return e._alphaIndex > t._alphaIndex ? 1 : e._alphaIndex < t._alphaIndex ? -1 : e._distanceToCamera < t._distanceToCamera ? 1 : e._distanceToCamera > t._distanceToCamera ? -1 : 0;
}),
s.setAlphaMode(2),
o = 0;
o < u.length;
o++
)
a(u[o]);
s.setAlphaMode(0);
}
});
}),
(t.prototype._updateMeshScreenCoordinates = function (e) {
var t,
n = e.getTransformMatrix();
t = this.useCustomMeshPosition ? this.customMeshPosition : this.attachedNode ? this.attachedNode.position : this.mesh.parent ? this.mesh.getAbsolutePosition() : this.mesh.position;
var i = a.e.Project(t, a.a.Identity(), n, this._viewPort);
(this._screenCoordinates.x = i.x / this._viewPort.width), (this._screenCoordinates.y = i.y / this._viewPort.height), this.invert && (this._screenCoordinates.y = 1 - this._screenCoordinates.y);
}),
(t.CreateDefaultMesh = function (e, t) {
var n = Ee.a.CreatePlane(e, 1, t);
n.billboardMode = ke.a.BILLBOARDMODE_ALL;
var i = new Mn.a(e + "Material", t);
return (i.emissiveColor = new s.a(1, 1, 1)), (n.material = i), n;
}),
Object(h.c)([Object(He.o)()], t.prototype, "customMeshPosition", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "useCustomMeshPosition", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "invert", void 0),
Object(h.c)([Object(He.k)()], t.prototype, "mesh", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "excludedMeshes", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "exposure", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "decay", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "weight", void 0),
Object(h.c)([Object(He.c)()], t.prototype, "density", void 0),
t
);
})(Wt.a);
n(226), n(227);
Object.defineProperty(ge.a.prototype, "forceShowBoundingBoxes", {
get: function () {
return this._forceShowBoundingBoxes || !1;
},
set: function (e) {
(this._forceShowBoundingBoxes = e), e && this.getBoundingBoxRenderer();
},
enumerable: !0,
configurable: !0,
}),
(ge.a.prototype.getBoundingBoxRenderer = function () {
return this._boundingBoxRenderer || (this._boundingBoxRenderer = new jh(this)), this._boundingBoxRenderer;
}),
Object.defineProperty(ke.a.prototype, "showBoundingBox", {
get: function () {
return this._showBoundingBox || !1;
},
set: function (e) {
(this._showBoundingBox = e), e && this.getScene().getBoundingBoxRenderer();
},
enumerable: !0,
configurable: !0,
});
var jh = (function () {
function e(e) {
(this.name = me.a.NAME_BOUNDINGBOXRENDERER),
(this.frontColor = new s.a(1, 1, 1)),
(this.backColor = new s.a(0.1, 0.1, 0.1)),
(this.showBackLines = !0),
(this.renderList = new ii.a(32)),
(this._vertexBuffers = {}),
(this._fillIndexBuffer = null),
(this._fillIndexData = null),
(this.scene = e),
e._addComponent(this);
}
return (
(e.prototype.register = function () {
this.scene._beforeEvaluateActiveMeshStage.registerStep(me.a.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER, this, this.reset),
this.scene._activeMeshStage.registerStep(me.a.STEP_ACTIVEMESH_BOUNDINGBOXRENDERER, this, this._activeMesh),
this.scene._evaluateSubMeshStage.registerStep(me.a.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER, this, this._evaluateSubMesh),
this.scene._afterRenderingGroupDrawStage.registerStep(me.a.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER, this, this.render);
}),
(e.prototype._evaluateSubMesh = function (e, t) {
if (e.showSubMeshesBoundingBox) {
var n = t.getBoundingInfo();
null != n && ((n.boundingBox._tag = e.renderingGroupId), this.renderList.push(n.boundingBox));
}
}),
(e.prototype._activeMesh = function (e, t) {
if (e.showBoundingBox || this.scene.forceShowBoundingBoxes) {
var n = e.getBoundingInfo();
(n.boundingBox._tag = t.renderingGroupId), this.renderList.push(n.boundingBox);
}
}),
(e.prototype._prepareRessources = function () {
if (!this._colorShader) {
(this._colorShader = new Qa.a("colorShader", this.scene, "color", { attributes: [wn.b.PositionKind], uniforms: ["world", "viewProjection", "color"] })), (this._colorShader.reservedDataStore = { hidden: !0 });
var e = this.scene.getEngine(),
t = Rn.a.CreateBox({ size: 1 });
(this._vertexBuffers[wn.b.PositionKind] = new wn.b(e, t.positions, wn.b.PositionKind, !1)), this._createIndexBuffer(), (this._fillIndexData = t.indices);
}
}),
(e.prototype._createIndexBuffer = function () {
var e = this.scene.getEngine();
this._indexBuffer = e.createIndexBuffer([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 7, 1, 6, 2, 5, 3, 4]);
}),
(e.prototype.rebuild = function () {
var e = this._vertexBuffers[wn.b.PositionKind];
e && e._rebuild(), this._createIndexBuffer();
}),
(e.prototype.reset = function () {
this.renderList.reset();
}),
(e.prototype.render = function (e) {
if (0 !== this.renderList.length && (this._prepareRessources(), this._colorShader.isReady())) {
var t = this.scene.getEngine();
t.setDepthWrite(!1), this._colorShader._preBind();
for (var n = 0; n < this.renderList.length; n++) {
var i = this.renderList.data[n];
if (i._tag === e) {
var r = i.minimum,
o = i.maximum.subtract(r),
s = r.add(o.scale(0.5)),
c = a.a.Scaling(o.x, o.y, o.z).multiply(a.a.Translation(s.x, s.y, s.z)).multiply(i.getWorldMatrix());
t.bindBuffers(this._vertexBuffers, this._indexBuffer, this._colorShader.getEffect()),
this.showBackLines &&
(t.setDepthFunctionToGreaterOrEqual(),
this.scene.resetCachedMaterial(),
this._colorShader.setColor4("color", this.backColor.toColor4()),
this._colorShader.bind(c),
t.drawElementsType(Fo.a.LineListDrawMode, 0, 24)),
t.setDepthFunctionToLess(),
this.scene.resetCachedMaterial(),
this._colorShader.setColor4("color", this.frontColor.toColor4()),
this._colorShader.bind(c),
t.drawElementsType(Fo.a.LineListDrawMode, 0, 24);
}
}
this._colorShader.unbind(), t.setDepthFunctionToLessOrEqual(), t.setDepthWrite(!0);
}
}),
(e.prototype.renderOcclusionBoundingBox = function (e) {
if ((this._prepareRessources(), this._colorShader.isReady() && e._boundingInfo)) {
var t = this.scene.getEngine();
this._fillIndexBuffer || (this._fillIndexBuffer = t.createIndexBuffer(this._fillIndexData)), t.setDepthWrite(!1), t.setColorWrite(!1), this._colorShader._preBind();
var n = e._boundingInfo.boundingBox,
i = n.minimum,
r = n.maximum.subtract(i),
o = i.add(r.scale(0.5)),
s = a.a.Scaling(r.x, r.y, r.z).multiply(a.a.Translation(o.x, o.y, o.z)).multiply(n.getWorldMatrix());
t.bindBuffers(this._vertexBuffers, this._fillIndexBuffer, this._colorShader.getEffect()),
t.setDepthFunctionToLess(),
this.scene.resetCachedMaterial(),
this._colorShader.bind(s),
t.drawElementsType(Fo.a.TriangleFillMode, 0, 36),
this._colorShader.unbind(),
t.setDepthFunctionToLessOrEqual(),
t.setDepthWrite(!0),
t.setColorWrite(!0);
}
}),
(e.prototype.dispose = function () {
if (this._colorShader) {
this.renderList.dispose(), this._colorShader.dispose();
var e = this._vertexBuffers[wn.b.PositionKind];
e && (e.dispose(), (this._vertexBuffers[wn.b.PositionKind] = null)),
this.scene.getEngine()._releaseBuffer(this._indexBuffer),
this._fillIndexBuffer && (this.scene.getEngine()._releaseBuffer(this._fillIndexBuffer), (this._fillIndexBuffer = null));
}
}),
e
);
})();
(ge.a.prototype.enableDepthRenderer = function (e, t) {
if ((void 0 === t && (t = !1), !(e = e || this.activeCamera))) throw "No camera available to enable depth renderer";
if ((this._depthRenderer || (this._depthRenderer = {}), !this._depthRenderer[e.id])) {
var n = 0;
(n = this.getEngine().getCaps().textureHalfFloatRender ? 2 : this.getEngine().getCaps().textureFloatRender ? 1 : 0), (this._depthRenderer[e.id] = new la(this, n, e, t));
}
return this._depthRenderer[e.id];
}),
(ge.a.prototype.disableDepthRenderer = function (e) {
(e = e || this.activeCamera) && this._depthRenderer && this._depthRenderer[e.id] && (this._depthRenderer[e.id].dispose(), delete this._depthRenderer[e.id]);
});
var Bh = (function () {
function e(e) {
(this.name = me.a.NAME_DEPTHRENDERER), (this.scene = e);
}
return (
(e.prototype.register = function () {
this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_DEPTHRENDERER, this, this._gatherRenderTargets),
this.scene._gatherActiveCameraRenderTargetsStage.registerStep(me.a.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER, this, this._gatherActiveCameraRenderTargets);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {
for (var e in this.scene._depthRenderer) this.scene._depthRenderer[e].dispose();
}),
(e.prototype._gatherRenderTargets = function (e) {
if (this.scene._depthRenderer)
for (var t in this.scene._depthRenderer) {
var n = this.scene._depthRenderer[t];
n.enabled && !n.useOnlyInActiveCamera && e.push(n.getDepthMap());
}
}),
(e.prototype._gatherActiveCameraRenderTargets = function (e) {
if (this.scene._depthRenderer)
for (var t in this.scene._depthRenderer) {
var n = this.scene._depthRenderer[t];
n.enabled && n.useOnlyInActiveCamera && this.scene.activeCamera.id === t && e.push(n.getDepthMap());
}
}),
e
);
})();
la._SceneComponentInitialization = function (e) {
var t = e._getComponent(me.a.NAME_DEPTHRENDERER);
t || ((t = new Bh(e)), e._addComponent(t));
};
Xt.a.ShadersStore.linePixelShader = "uniform vec4 color;\nvoid main(void) {\ngl_FragColor=color;\n}";
var Vh =
"\nattribute vec3 position;\nattribute vec4 normal;\n\nuniform mat4 worldViewProjection;\nuniform float width;\nuniform float aspectRatio;\nvoid main(void) {\nvec4 viewPosition=worldViewProjection*vec4(position,1.0);\nvec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);\nvec2 currentScreen=viewPosition.xy/viewPosition.w;\nvec2 nextScreen=viewPositionNext.xy/viewPositionNext.w;\ncurrentScreen.x*=aspectRatio;\nnextScreen.x*=aspectRatio;\nvec2 dir=normalize(nextScreen-currentScreen);\nvec2 normalDir=vec2(-dir.y,dir.x);\nnormalDir*=width/2.0;\nnormalDir.x/=aspectRatio;\nvec4 offset=vec4(normalDir*normal.w,0.0,0.0);\ngl_Position=viewPosition+offset;\n}";
Xt.a.ShadersStore.lineVertexShader = Vh;
(ke.a.prototype.disableEdgesRendering = function () {
return this._edgesRenderer && (this._edgesRenderer.dispose(), (this._edgesRenderer = null)), this;
}),
(ke.a.prototype.enableEdgesRendering = function (e, t) {
return void 0 === e && (e = 0.95), void 0 === t && (t = !1), this.disableEdgesRendering(), (this._edgesRenderer = new Uh(this, e, t)), this;
}),
Object.defineProperty(ke.a.prototype, "edgesRenderer", {
get: function () {
return this._edgesRenderer;
},
enumerable: !0,
configurable: !0,
}),
(xi.b.prototype.enableEdgesRendering = function (e, t) {
return void 0 === e && (e = 0.95), void 0 === t && (t = !1), this.disableEdgesRendering(), (this._edgesRenderer = new Hh(this, e, t)), this;
}),
(xi.a.prototype.enableEdgesRendering = function (e, t) {
return void 0 === e && (e = 0.95), void 0 === t && (t = !1), xi.b.prototype.enableEdgesRendering.apply(this, arguments), this;
});
var Gh = function () {
(this.edges = new Array()), (this.edgesConnectedCount = 0);
},
Uh = (function () {
function e(e, t, n, i) {
var r = this;
void 0 === t && (t = 0.95),
void 0 === n && (n = !1),
void 0 === i && (i = !0),
(this.edgesWidthScalerForOrthographic = 1e3),
(this.edgesWidthScalerForPerspective = 50),
(this._linesPositions = new Array()),
(this._linesNormals = new Array()),
(this._linesIndices = new Array()),
(this._buffers = {}),
(this._checkVerticesInsteadOfIndices = !1),
(this.isEnabled = !0),
(this._source = e),
(this._checkVerticesInsteadOfIndices = n),
(this._epsilon = t),
this._prepareRessources(),
i && this._generateEdgesLines(),
(this._meshRebuildObserver = this._source.onRebuildObservable.add(function () {
r._rebuild();
})),
(this._meshDisposeObserver = this._source.onDisposeObservable.add(function () {
r.dispose();
}));
}
return (
(e.prototype._prepareRessources = function () {
this._lineShader ||
((this._lineShader = new Qa.a("lineShader", this._source.getScene(), "line", { attributes: ["position", "normal"], uniforms: ["worldViewProjection", "color", "width", "aspectRatio"] })),
(this._lineShader.disableDepthWrite = !0),
(this._lineShader.backFaceCulling = !1));
}),
(e.prototype._rebuild = function () {
var e = this._buffers[wn.b.PositionKind];
e && e._rebuild(), (e = this._buffers[wn.b.NormalKind]) && e._rebuild();
var t = this._source.getScene().getEngine();
this._ib = t.createIndexBuffer(this._linesIndices);
}),
(e.prototype.dispose = function () {
this._source.onRebuildObservable.remove(this._meshRebuildObserver), this._source.onDisposeObservable.remove(this._meshDisposeObserver);
var e = this._buffers[wn.b.PositionKind];
e && (e.dispose(), (this._buffers[wn.b.PositionKind] = null)),
(e = this._buffers[wn.b.NormalKind]) && (e.dispose(), (this._buffers[wn.b.NormalKind] = null)),
this._ib && this._source.getScene().getEngine()._releaseBuffer(this._ib),
this._lineShader.dispose();
}),
(e.prototype._processEdgeForAdjacencies = function (e, t, n, i, r) {
return (e === n && t === i) || (e === i && t === n) ? 0 : (e === i && t === r) || (e === r && t === i) ? 1 : (e === r && t === n) || (e === n && t === r) ? 2 : -1;
}),
(e.prototype._processEdgeForAdjacenciesWithVertices = function (e, t, n, i, r) {
return (e.equalsWithEpsilon(n) && t.equalsWithEpsilon(i)) || (e.equalsWithEpsilon(i) && t.equalsWithEpsilon(n))
? 0
: (e.equalsWithEpsilon(i) && t.equalsWithEpsilon(r)) || (e.equalsWithEpsilon(r) && t.equalsWithEpsilon(i))
? 1
: (e.equalsWithEpsilon(r) && t.equalsWithEpsilon(n)) || (e.equalsWithEpsilon(n) && t.equalsWithEpsilon(r))
? 2
: -1;
}),
(e.prototype._checkEdge = function (e, t, n, i, r) {
var o;
void 0 === t ? (o = !0) : (o = a.e.Dot(n[e], n[t]) < this._epsilon);
o && this.createLine(i, r, this._linesPositions.length / 3);
}),
(e.prototype.createLine = function (e, t, n) {
this._linesPositions.push(e.x, e.y, e.z, e.x, e.y, e.z, t.x, t.y, t.z, t.x, t.y, t.z),
this._linesNormals.push(t.x, t.y, t.z, -1, t.x, t.y, t.z, 1, e.x, e.y, e.z, -1, e.x, e.y, e.z, 1),
this._linesIndices.push(n, n + 1, n + 2, n, n + 2, n + 3);
}),
(e.prototype._generateEdgesLines = function () {
var e = this._source.getVerticesData(wn.b.PositionKind),
t = this._source.getIndices();
if (t && e) {
var n,
i,
r = new Array(),
o = new Array();
for (n = 0; n < t.length; n += 3) {
i = new Gh();
var s = t[n],
c = t[n + 1],
l = t[n + 2];
(i.p0 = new a.e(e[3 * s], e[3 * s + 1], e[3 * s + 2])), (i.p1 = new a.e(e[3 * c], e[3 * c + 1], e[3 * c + 2])), (i.p2 = new a.e(e[3 * l], e[3 * l + 1], e[3 * l + 2]));
var u = a.e.Cross(i.p1.subtract(i.p0), i.p2.subtract(i.p1));
u.normalize(), o.push(u), r.push(i);
}
for (n = 0; n < r.length; n++) {
i = r[n];
for (var h = n + 1; h < r.length; h++) {
var d = r[h];
if (3 === i.edgesConnectedCount) break;
if (3 !== d.edgesConnectedCount)
for (var p = t[3 * h], f = t[3 * h + 1], m = t[3 * h + 2], g = 0; g < 3; g++) {
var b = 0;
if (void 0 === i.edges[g]) {
switch (g) {
case 0:
b = this._checkVerticesInsteadOfIndices ? this._processEdgeForAdjacenciesWithVertices(i.p0, i.p1, d.p0, d.p1, d.p2) : this._processEdgeForAdjacencies(t[3 * n], t[3 * n + 1], p, f, m);
break;
case 1:
b = this._checkVerticesInsteadOfIndices
? this._processEdgeForAdjacenciesWithVertices(i.p1, i.p2, d.p0, d.p1, d.p2)
: this._processEdgeForAdjacencies(t[3 * n + 1], t[3 * n + 2], p, f, m);
break;
case 2:
b = this._checkVerticesInsteadOfIndices ? this._processEdgeForAdjacenciesWithVertices(i.p2, i.p0, d.p0, d.p1, d.p2) : this._processEdgeForAdjacencies(t[3 * n + 2], t[3 * n], p, f, m);
}
if (-1 !== b && ((i.edges[g] = h), (d.edges[b] = n), i.edgesConnectedCount++, d.edgesConnectedCount++, 3 === i.edgesConnectedCount)) break;
}
}
}
}
for (n = 0; n < r.length; n++) {
var _ = r[n];
this._checkEdge(n, _.edges[0], o, _.p0, _.p1), this._checkEdge(n, _.edges[1], o, _.p1, _.p2), this._checkEdge(n, _.edges[2], o, _.p2, _.p0);
}
var v = this._source.getScene().getEngine();
(this._buffers[wn.b.PositionKind] = new wn.b(v, this._linesPositions, wn.b.PositionKind, !1)),
(this._buffers[wn.b.NormalKind] = new wn.b(v, this._linesNormals, wn.b.NormalKind, !1, !1, 4)),
(this._ib = v.createIndexBuffer(this._linesIndices)),
(this._indicesCount = this._linesIndices.length);
}
}),
(e.prototype.isReady = function () {
return this._lineShader.isReady();
}),
(e.prototype.render = function () {
var e = this._source.getScene();
if (this.isReady() && e.activeCamera) {
var t = e.getEngine();
this._lineShader._preBind(),
1 !== this._source.edgesColor.a ? t.setAlphaMode(2) : t.setAlphaMode(0),
t.bindBuffers(this._buffers, this._ib, this._lineShader.getEffect()),
e.resetCachedMaterial(),
this._lineShader.setColor4("color", this._source.edgesColor),
e.activeCamera.mode === De.a.ORTHOGRAPHIC_CAMERA
? this._lineShader.setFloat("width", this._source.edgesWidth / this.edgesWidthScalerForOrthographic)
: this._lineShader.setFloat("width", this._source.edgesWidth / this.edgesWidthScalerForPerspective),
this._lineShader.setFloat("aspectRatio", t.getAspectRatio(e.activeCamera)),
this._lineShader.bind(this._source.getWorldMatrix()),
t.drawElementsType(Fo.a.TriangleFillMode, 0, this._indicesCount),
this._lineShader.unbind();
}
}),
e
);
})(),
Hh = (function (e) {
function t(t, n, i) {
void 0 === n && (n = 0.95), void 0 === i && (i = !1);
var r = e.call(this, t, n, i, !1) || this;
return r._generateEdgesLines(), r;
}
return (
Object(h.d)(t, e),
(t.prototype._generateEdgesLines = function () {
var e = this._source.getVerticesData(wn.b.PositionKind),
t = this._source.getIndices();
if (t && e) {
for (var n = a.c.Vector3[0], i = a.c.Vector3[1], r = t.length - 1, o = 0, s = 0; o < r; o += 2, s += 4) a.e.FromArrayToRef(e, 3 * t[o], n), a.e.FromArrayToRef(e, 3 * t[o + 1], i), this.createLine(n, i, s);
var c = this._source.getScene().getEngine();
(this._buffers[wn.b.PositionKind] = new wn.b(c, this._linesPositions, wn.b.PositionKind, !1)),
(this._buffers[wn.b.NormalKind] = new wn.b(c, this._linesNormals, wn.b.NormalKind, !1, !1, 4)),
(this._ib = c.createIndexBuffer(this._linesIndices)),
(this._indicesCount = this._linesIndices.length);
}
}),
t
);
})(Uh),
Wh =
(n(142),
n(174),
"#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nuniform vec4 color;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\n#include\nvoid main(void) {\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#include\ngl_FragColor=color;\n}");
Xt.a.ShadersStore.outlinePixelShader = Wh;
n(175);
var Xh =
"\nattribute vec3 position;\nattribute vec3 normal;\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\nuniform float offset;\n#include\nuniform mat4 viewProjection;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#include\nvoid main(void)\n{\nvec3 positionUpdated=position;\nvec3 normalUpdated=normal;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\nvec3 offsetPosition=positionUpdated+(normalUpdated*offset);\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(offsetPosition,1.0);\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}\n";
Xt.a.ShadersStore.outlineVertexShader = Xh;
(ge.a.prototype.getOutlineRenderer = function () {
return this._outlineRenderer || (this._outlineRenderer = new Yh(this)), this._outlineRenderer;
}),
Object.defineProperty(Ee.a.prototype, "renderOutline", {
get: function () {
return this._renderOutline;
},
set: function (e) {
e && this.getScene().getOutlineRenderer(), (this._renderOutline = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(Ee.a.prototype, "renderOverlay", {
get: function () {
return this._renderOverlay;
},
set: function (e) {
e && this.getScene().getOutlineRenderer(), (this._renderOverlay = e);
},
enumerable: !0,
configurable: !0,
});
var Yh = (function () {
function e(e) {
(this.name = me.a.NAME_OUTLINERENDERER), (this.zOffset = 1), (this.scene = e), (this._engine = e.getEngine()), this.scene._addComponent(this);
}
return (
(e.prototype.register = function () {
this.scene._beforeRenderingMeshStage.registerStep(me.a.STEP_BEFORERENDERINGMESH_OUTLINE, this, this._beforeRenderingMesh),
this.scene._afterRenderingMeshStage.registerStep(me.a.STEP_AFTERRENDERINGMESH_OUTLINE, this, this._afterRenderingMesh);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {}),
(e.prototype.render = function (e, t, n) {
var i = this;
void 0 === n && (n = !1);
var r = this.scene,
o = r.getEngine(),
a = o.getCaps().instancedArrays && null !== t.visibleInstances[e._id] && void 0 !== t.visibleInstances[e._id];
if (this.isReady(e, a)) {
var s = e.getRenderingMesh(),
c = e.getMaterial();
if (c && r.activeCamera) {
if (
(o.enableEffect(this._effect),
c.useLogarithmicDepth && this._effect.setFloat("logarithmicDepthConstant", 2 / (Math.log(r.activeCamera.maxZ + 1) / Math.LN2)),
this._effect.setFloat("offset", n ? 0 : s.outlineWidth),
this._effect.setColor4("color", n ? s.overlayColor : s.outlineColor, n ? s.overlayAlpha : c.alpha),
this._effect.setMatrix("viewProjection", r.getTransformMatrix()),
s.useBones && s.computeBonesUsingShaders && s.skeleton && this._effect.setMatrices("mBones", s.skeleton.getTransformMatrices(s)),
Ir.a.BindMorphTargetParameters(s, this._effect),
s._bind(e, this._effect, c.fillMode),
c && c.needAlphaTesting())
) {
var l = c.getAlphaTestTexture();
l && (this._effect.setTexture("diffuseSampler", l), this._effect.setMatrix("diffuseMatrix", l.getTextureMatrix()));
}
o.setZOffset(-this.zOffset),
s._processRendering(e, this._effect, c.fillMode, t, a, function (e, t) {
i._effect.setMatrix("world", t);
}),
o.setZOffset(0);
}
}
}),
(e.prototype.isReady = function (e, t) {
var n = [],
i = [wn.b.PositionKind, wn.b.NormalKind],
r = e.getMesh(),
o = e.getMaterial();
o &&
(o.needAlphaTesting() &&
(n.push("#define ALPHATEST"), r.isVerticesDataPresent(wn.b.UVKind) && (i.push(wn.b.UVKind), n.push("#define UV1")), r.isVerticesDataPresent(wn.b.UV2Kind) && (i.push(wn.b.UV2Kind), n.push("#define UV2"))),
o.useLogarithmicDepth && n.push("#define LOGARITHMICDEPTH")),
r.useBones && r.computeBonesUsingShaders
? (i.push(wn.b.MatricesIndicesKind),
i.push(wn.b.MatricesWeightsKind),
r.numBoneInfluencers > 4 && (i.push(wn.b.MatricesIndicesExtraKind), i.push(wn.b.MatricesWeightsExtraKind)),
n.push("#define NUM_BONE_INFLUENCERS " + r.numBoneInfluencers),
n.push("#define BonesPerMesh " + (r.skeleton ? r.skeleton.bones.length + 1 : 0)))
: n.push("#define NUM_BONE_INFLUENCERS 0");
var a = r.morphTargetManager,
s = 0;
a && a.numInfluencers > 0 && ((s = a.numInfluencers), n.push("#define MORPHTARGETS"), n.push("#define NUM_MORPH_INFLUENCERS " + s), Ir.a.PrepareAttributesForMorphTargetsInfluencers(i, r, s)),
t && (n.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(i));
var c = n.join("\n");
return (
this._cachedDefines !== c &&
((this._cachedDefines = c),
(this._effect = this.scene
.getEngine()
.createEffect("outline", i, ["world", "mBones", "viewProjection", "diffuseMatrix", "offset", "color", "logarithmicDepthConstant", "morphTargetInfluences"], ["diffuseSampler"], c, void 0, void 0, void 0, {
maxSimultaneousMorphTargets: s,
}))),
this._effect.isReady()
);
}),
(e.prototype._beforeRenderingMesh = function (t, n, i) {
if (((this._savedDepthWrite = this._engine.getDepthWrite()), t.renderOutline)) {
var r = n.getMaterial();
r &&
r.needAlphaBlending() &&
(this._engine.cacheStencilState(),
this._engine.setDepthWrite(!1),
this._engine.setColorWrite(!1),
this._engine.setStencilBuffer(!0),
this._engine.setStencilOperationPass(7681),
this._engine.setStencilFunction(519),
this._engine.setStencilMask(e._StencilReference),
this._engine.setStencilFunctionReference(e._StencilReference),
this.render(n, i, !0),
this._engine.setColorWrite(!0),
this._engine.setStencilFunction(517)),
this._engine.setDepthWrite(!1),
this.render(n, i),
this._engine.setDepthWrite(this._savedDepthWrite),
r && r.needAlphaBlending() && this._engine.restoreStencilState();
}
}),
(e.prototype._afterRenderingMesh = function (e, t, n) {
if (e.renderOverlay) {
var i = this._engine.getAlphaMode(),
r = this._engine.alphaState.alphaBlend;
this._engine.setAlphaMode(2), this.render(t, n, !0), this._engine.setAlphaMode(i), this._engine.setDepthWrite(this._savedDepthWrite), (this._engine.alphaState.alphaBlend = r);
}
e.renderOutline && this._savedDepthWrite && (this._engine.setDepthWrite(!0), this._engine.setColorWrite(!1), this.render(t, n), this._engine.setColorWrite(!0));
}),
(e._StencilReference = 4),
e
);
})(),
Kh = n(189),
Zh = (function () {
function e(e, t) {
(this.name = e),
(this.color = new s.b(1, 1, 1, 1)),
(this.width = 1),
(this.height = 1),
(this.angle = 0),
(this.invertU = 0),
(this.invertV = 0),
(this.animations = new Array()),
(this.isPickable = !1),
(this._animationStarted = !1),
(this._loopAnimation = !1),
(this._fromIndex = 0),
(this._toIndex = 0),
(this._delay = 0),
(this._direction = 1),
(this._time = 0),
(this.isVisible = !0),
(this._manager = t),
this._manager.sprites.push(this),
(this.position = a.e.Zero());
}
return (
Object.defineProperty(e.prototype, "size", {
get: function () {
return this.width;
},
set: function (e) {
(this.width = e), (this.height = e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.playAnimation = function (e, t, n, i, r) {
(this._fromIndex = e),
(this._toIndex = t),
(this._loopAnimation = n),
(this._delay = i),
(this._animationStarted = !0),
e < t ? (this._direction = 1) : ((this._direction = -1), (this._toIndex = e), (this._fromIndex = t)),
(this.cellIndex = e),
(this._time = 0),
(this._onAnimationEnd = r);
}),
(e.prototype.stopAnimation = function () {
this._animationStarted = !1;
}),
(e.prototype._animate = function (e) {
this._animationStarted &&
((this._time += e),
this._time > this._delay &&
((this._time = this._time % this._delay),
(this.cellIndex += this._direction),
((this._direction > 0 && this.cellIndex > this._toIndex) || (this._direction < 0 && this.cellIndex < this._fromIndex)) &&
(this._loopAnimation
? (this.cellIndex = this._direction > 0 ? this._fromIndex : this._toIndex)
: ((this.cellIndex = this._toIndex), (this._animationStarted = !1), this._onAnimationEnd && this._onAnimationEnd(), this.disposeWhenFinishedAnimating && this.dispose()))));
}),
(e.prototype.dispose = function () {
for (var e = 0; e < this._manager.sprites.length; e++) this._manager.sprites[e] == this && this._manager.sprites.splice(e, 1);
}),
e
);
})();
(ge.a.prototype._internalPickSprites = function (e, t, n, i) {
if (!Ae.a) return null;
var r = null;
if (!i) {
if (!this.activeCamera) return null;
i = this.activeCamera;
}
if (this.spriteManagers.length > 0)
for (var o = 0; o < this.spriteManagers.length; o++) {
var a = this.spriteManagers[o];
if (a.isPickable) {
var s = a.intersects(e, i, t, n);
if (s && s.hit && (n || null == r || !(s.distance >= r.distance)) && ((r = s), n)) break;
}
}
return r || new Ae.a();
}),
(ge.a.prototype._internalMultiPickSprites = function (e, t, n) {
if (!Ae.a) return null;
var i = new Array();
if (!n) {
if (!this.activeCamera) return null;
n = this.activeCamera;
}
if (this.spriteManagers.length > 0)
for (var r = 0; r < this.spriteManagers.length; r++) {
var o = this.spriteManagers[r];
if (o.isPickable) {
var a = o.multiIntersects(e, n, t);
null !== a && (i = i.concat(a));
}
}
return i;
}),
(ge.a.prototype.pickSprite = function (e, t, n, i, r) {
return this.createPickingRayInCameraSpaceToRef(e, t, this._tempSpritePickingRay, r), this._internalPickSprites(this._tempSpritePickingRay, n, i, r);
}),
(ge.a.prototype.pickSpriteWithRay = function (e, t, n, i) {
if (!this._tempSpritePickingRay) return null;
if (!i) {
if (!this.activeCamera) return null;
i = this.activeCamera;
}
return Re.TransformToRef(e, i.getViewMatrix(), this._tempSpritePickingRay), this._internalPickSprites(this._tempSpritePickingRay, t, n, i);
}),
(ge.a.prototype.multiPickSprite = function (e, t, n, i) {
return this.createPickingRayInCameraSpaceToRef(e, t, this._tempSpritePickingRay, i), this._internalMultiPickSprites(this._tempSpritePickingRay, n, i);
}),
(ge.a.prototype.multiPickSpriteWithRay = function (e, t, n) {
if (!this._tempSpritePickingRay) return null;
if (!n) {
if (!this.activeCamera) return null;
n = this.activeCamera;
}
return Re.TransformToRef(e, n.getViewMatrix(), this._tempSpritePickingRay), this._internalMultiPickSprites(this._tempSpritePickingRay, t, n);
}),
(ge.a.prototype.setPointerOverSprite = function (e) {
this._pointerOverSprite !== e &&
(this._pointerOverSprite && this._pointerOverSprite.actionManager && this._pointerOverSprite.actionManager.processTrigger(10, u.a.CreateNewFromSprite(this._pointerOverSprite, this)),
(this._pointerOverSprite = e),
this._pointerOverSprite && this._pointerOverSprite.actionManager && this._pointerOverSprite.actionManager.processTrigger(9, u.a.CreateNewFromSprite(this._pointerOverSprite, this)));
}),
(ge.a.prototype.getPointerOverSprite = function () {
return this._pointerOverSprite;
});
var qh = (function () {
function e(e) {
(this.name = me.a.NAME_SPRITE),
(this.scene = e),
(this.scene.spriteManagers = new Array()),
(this.scene._tempSpritePickingRay = Re ? Re.Zero() : null),
(this.scene.onBeforeSpritesRenderingObservable = new o.c()),
(this.scene.onAfterSpritesRenderingObservable = new o.c()),
(this._spritePredicate = function (e) {
return !!e.actionManager && e.isPickable && e.actionManager.hasPointerTriggers;
});
}
return (
(e.prototype.register = function () {
this.scene._pointerMoveStage.registerStep(me.a.STEP_POINTERMOVE_SPRITE, this, this._pointerMove),
this.scene._pointerDownStage.registerStep(me.a.STEP_POINTERDOWN_SPRITE, this, this._pointerDown),
this.scene._pointerUpStage.registerStep(me.a.STEP_POINTERUP_SPRITE, this, this._pointerUp);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {
this.scene.onBeforeSpritesRenderingObservable.clear(), this.scene.onAfterSpritesRenderingObservable.clear();
for (var e = this.scene.spriteManagers; e.length; ) e[0].dispose();
}),
(e.prototype._pickSpriteButKeepRay = function (e, t, n, i, r) {
var o = this.scene.pickSprite(t, n, this._spritePredicate, i, r);
return o && (o.ray = e ? e.ray : null), o;
}),
(e.prototype._pointerMove = function (e, t, n, i, r) {
var o = this.scene;
return (
i
? o.setPointerOverSprite(null)
: (n = this._pickSpriteButKeepRay(n, e, t, !1, o.cameraToUseForPointers || void 0)) && n.hit && n.pickedSprite
? (o.setPointerOverSprite(n.pickedSprite),
o.doNotHandleCursors ||
(o._pointerOverSprite && o._pointerOverSprite.actionManager && o._pointerOverSprite.actionManager.hoverCursor
? (r.style.cursor = o._pointerOverSprite.actionManager.hoverCursor)
: (r.style.cursor = o.hoverCursor)))
: o.setPointerOverSprite(null),
n
);
}),
(e.prototype._pointerDown = function (e, t, n, i) {
var r = this.scene;
if (((r._pickedDownSprite = null), r.spriteManagers.length > 0 && (n = r.pickSprite(e, t, this._spritePredicate, !1, r.cameraToUseForPointers || void 0)) && n.hit && n.pickedSprite && n.pickedSprite.actionManager)) {
switch (((r._pickedDownSprite = n.pickedSprite), i.button)) {
case 0:
n.pickedSprite.actionManager.processTrigger(2, u.a.CreateNewFromSprite(n.pickedSprite, r, i));
break;
case 1:
n.pickedSprite.actionManager.processTrigger(4, u.a.CreateNewFromSprite(n.pickedSprite, r, i));
break;
case 2:
n.pickedSprite.actionManager.processTrigger(3, u.a.CreateNewFromSprite(n.pickedSprite, r, i));
}
n.pickedSprite.actionManager && n.pickedSprite.actionManager.processTrigger(5, u.a.CreateNewFromSprite(n.pickedSprite, r, i));
}
return n;
}),
(e.prototype._pointerUp = function (e, t, n, i) {
var r = this.scene;
if (r.spriteManagers.length > 0) {
var o = r.pickSprite(e, t, this._spritePredicate, !1, r.cameraToUseForPointers || void 0);
o &&
(o.hit &&
o.pickedSprite &&
o.pickedSprite.actionManager &&
(o.pickedSprite.actionManager.processTrigger(7, u.a.CreateNewFromSprite(o.pickedSprite, r, i)),
o.pickedSprite.actionManager && (this.scene._inputManager._isPointerSwiping() || o.pickedSprite.actionManager.processTrigger(1, u.a.CreateNewFromSprite(o.pickedSprite, r, i)))),
r._pickedDownSprite && r._pickedDownSprite.actionManager && r._pickedDownSprite !== o.pickedSprite && r._pickedDownSprite.actionManager.processTrigger(16, u.a.CreateNewFromSprite(r._pickedDownSprite, r, i)));
}
return n;
}),
e
);
})(),
Qh =
"uniform bool alphaTest;\nvarying vec4 vColor;\n\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n\n#include\nvoid main(void) {\nvec4 color=texture2D(diffuseSampler,vUV);\nif (alphaTest)\n{\nif (color.a<0.95)\ndiscard;\n}\ncolor*=vColor;\n#include\ngl_FragColor=color;\n}";
Xt.a.ShadersStore.spritesPixelShader = Qh;
var Jh =
"\nattribute vec4 position;\nattribute vec4 options;\nattribute vec2 inverts;\nattribute vec4 cellInfo;\nattribute vec4 color;\n\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#include\nvoid main(void) {\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;\nvec2 cornerPos;\nfloat angle=position.w;\nvec2 size=vec2(options.x,options.y);\nvec2 offset=options.zw;\ncornerPos=vec2(offset.x-0.5,offset.y-0.5)*size;\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nviewPos+=rotatedCorner;\ngl_Position=projection*vec4(viewPos,1.0);\n\nvColor=color;\n\nvec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\nvec2 uvPlace=cellInfo.xy;\nvec2 uvSize=cellInfo.zw;\nvUV.x=uvPlace.x+uvSize.x*uvOffset.x;\nvUV.y=uvPlace.y+uvSize.y*uvOffset.y;\n\n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n}";
Xt.a.ShadersStore.spritesVertexShader = Jh;
var $h = (function () {
function e(e, t, n, i, r, a, s, c, l) {
if (
(void 0 === a && (a = 0.01),
void 0 === s && (s = ln.a.TRILINEAR_SAMPLINGMODE),
void 0 === c && (c = !1),
void 0 === l && (l = null),
(this.name = e),
(this.sprites = new Array()),
(this.renderingGroupId = 0),
(this.layerMask = 268435455),
(this.fogEnabled = !0),
(this.isPickable = !1),
(this._packedAndReady = !1),
(this.onDisposeObservable = new o.c()),
(this._vertexBuffers = {}),
(this._blendMode = 2),
(this.disableDepthWrite = !1),
r._getComponent(me.a.NAME_SPRITE) || r._addComponent(new qh(r)),
(this._capacity = n),
(this._fromPacked = c),
(this._spriteTexture = new ln.a(t, r, !0, !1, s)),
(this._spriteTexture.wrapU = ln.a.CLAMP_ADDRESSMODE),
(this._spriteTexture.wrapV = ln.a.CLAMP_ADDRESSMODE),
i.width && i.height)
)
(this.cellWidth = i.width), (this.cellHeight = i.height);
else {
if (void 0 === i) return;
(this.cellWidth = i), (this.cellHeight = i);
}
(this._epsilon = a), (this._scene = r), this._scene.spriteManagers.push(this);
for (var u = [], h = 0, d = 0; d < n; d++) u.push(h), u.push(h + 1), u.push(h + 2), u.push(h), u.push(h + 2), u.push(h + 3), (h += 4);
(this._indexBuffer = r.getEngine().createIndexBuffer(u)), (this._vertexData = new Float32Array(18 * n * 4)), (this._buffer = new wn.a(r.getEngine(), this._vertexData, !0, 18));
var p = this._buffer.createVertexBuffer(wn.b.PositionKind, 0, 4),
f = this._buffer.createVertexBuffer("options", 4, 4),
m = this._buffer.createVertexBuffer("inverts", 8, 2),
g = this._buffer.createVertexBuffer("cellInfo", 10, 4),
b = this._buffer.createVertexBuffer(wn.b.ColorKind, 14, 4);
(this._vertexBuffers[wn.b.PositionKind] = p),
(this._vertexBuffers.options = f),
(this._vertexBuffers.inverts = m),
(this._vertexBuffers.cellInfo = g),
(this._vertexBuffers[wn.b.ColorKind] = b),
(this._effectBase = this._scene
.getEngine()
.createEffect("sprites", [wn.b.PositionKind, "options", "inverts", "cellInfo", wn.b.ColorKind], ["view", "projection", "textureInfos", "alphaTest"], ["diffuseSampler"], "")),
(this._effectFog = this._scene
.getEngine()
.createEffect("sprites", [wn.b.PositionKind, "options", "inverts", "cellInfo", wn.b.ColorKind], ["view", "projection", "textureInfos", "alphaTest", "vFogInfos", "vFogColor"], ["diffuseSampler"], "#define FOG")),
this._fromPacked && this._makePacked(t, l);
}
return (
Object.defineProperty(e.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "texture", {
get: function () {
return this._spriteTexture;
},
set: function (e) {
this._spriteTexture = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "blendMode", {
get: function () {
return this._blendMode;
},
set: function (e) {
this._blendMode = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._makePacked = function (e, t) {
var n = this;
if (null !== t)
try {
var i = void 0;
if ((i = "string" == typeof t ? JSON.parse(t) : t).frames.length) {
for (var r = {}, o = 0; o < i.frames.length; o++) {
var a = i.frames[o];
if ("string" != typeof Object.keys(a)[0]) throw new Error("Invalid JSON Format. Check the frame values and make sure the name is the first parameter.");
r[a[Object.keys(a)[0]]] = a;
}
i.frames = r;
}
var s = Reflect.ownKeys(i.frames);
(this._spriteMap = s), (this._packedAndReady = !0), (this._cellData = i.frames);
} catch (e) {
throw ((this._fromPacked = !1), (this._packedAndReady = !1), new Error("Invalid JSON from string. Spritesheet managed with constant cell size."));
}
else {
var c = /\./g,
l = void 0;
do {
(l = c.lastIndex), c.test(e);
} while (c.lastIndex > 0);
var u = e.substring(0, l - 1) + ".json",
h = new XMLHttpRequest();
h.open("GET", u, !0),
(h.onerror = function () {
g.a.Error("JSON ERROR: Unable to load JSON file."), (n._fromPacked = !1), (n._packedAndReady = !1);
}),
(h.onload = function () {
try {
var e = JSON.parse(h.response),
t = Reflect.ownKeys(e.frames);
(n._spriteMap = t), (n._packedAndReady = !0), (n._cellData = e.frames);
} catch (e) {
throw ((n._fromPacked = !1), (n._packedAndReady = !1), new Error("Invalid JSON format. Please check documentation for format specifications."));
}
}),
h.send();
}
}),
(e.prototype._appendSpriteVertex = function (e, t, n, i, r) {
var o = 18 * e;
if (
(0 === n ? (n = this._epsilon) : 1 === n && (n = 1 - this._epsilon),
0 === i ? (i = this._epsilon) : 1 === i && (i = 1 - this._epsilon),
(this._vertexData[o] = t.position.x),
(this._vertexData[o + 1] = t.position.y),
(this._vertexData[o + 2] = t.position.z),
(this._vertexData[o + 3] = t.angle),
(this._vertexData[o + 4] = t.width),
(this._vertexData[o + 5] = t.height),
(this._vertexData[o + 6] = n),
(this._vertexData[o + 7] = i),
(this._vertexData[o + 8] = t.invertU ? 1 : 0),
(this._vertexData[o + 9] = t.invertV ? 1 : 0),
this._packedAndReady)
) {
t.cellRef || (t.cellIndex = 0);
var a = t.cellIndex;
"number" == typeof a && isFinite(a) && Math.floor(a) === a && (t.cellRef = this._spriteMap[t.cellIndex]),
(this._vertexData[o + 10] = this._cellData[t.cellRef].frame.x / r.width),
(this._vertexData[o + 11] = this._cellData[t.cellRef].frame.y / r.height),
(this._vertexData[o + 12] = this._cellData[t.cellRef].frame.w / r.width),
(this._vertexData[o + 13] = this._cellData[t.cellRef].frame.h / r.height);
} else {
t.cellIndex || (t.cellIndex = 0);
var s = r.width / this.cellWidth,
c = (t.cellIndex / s) >> 0;
(this._vertexData[o + 10] = ((t.cellIndex - c * s) * this.cellWidth) / r.width),
(this._vertexData[o + 11] = (c * this.cellHeight) / r.height),
(this._vertexData[o + 12] = this.cellWidth / r.width),
(this._vertexData[o + 13] = this.cellHeight / r.height);
}
(this._vertexData[o + 14] = t.color.r), (this._vertexData[o + 15] = t.color.g), (this._vertexData[o + 16] = t.color.b), (this._vertexData[o + 17] = t.color.a);
}),
(e.prototype.intersects = function (e, t, n, i) {
for (var r = Math.min(this._capacity, this.sprites.length), o = a.e.Zero(), s = a.e.Zero(), c = Number.MAX_VALUE, l = null, u = a.c.Vector3[0], h = a.c.Vector3[1], d = t.getViewMatrix(), p = 0; p < r; p++) {
var f = this.sprites[p];
if (f) {
if (n) {
if (!n(f)) continue;
} else if (!f.isPickable) continue;
if (
(a.e.TransformCoordinatesToRef(f.position, d, h), o.copyFromFloats(h.x - f.width / 2, h.y - f.height / 2, h.z), s.copyFromFloats(h.x + f.width / 2, h.y + f.height / 2, h.z), e.intersectsBoxMinMax(o, s))
) {
var m = a.e.Distance(h, e.origin);
if (c > m && ((c = m), (l = f), i)) break;
}
}
}
if (l) {
var g = new Ae.a();
d.invertToRef(a.c.Matrix[0]), (g.hit = !0), (g.pickedSprite = l), (g.distance = c);
var b = a.c.Vector3[2];
return b.copyFrom(e.direction), b.normalize(), b.scaleInPlace(c), e.origin.addToRef(b, u), (g.pickedPoint = a.e.TransformCoordinates(u, a.c.Matrix[0])), g;
}
return null;
}),
(e.prototype.multiIntersects = function (e, t, n) {
for (
var i,
r = Math.min(this._capacity, this.sprites.length),
o = a.e.Zero(),
s = a.e.Zero(),
c = [],
l = a.c.Vector3[0].copyFromFloats(0, 0, 0),
u = a.c.Vector3[1].copyFromFloats(0, 0, 0),
h = t.getViewMatrix(),
d = 0;
d < r;
d++
) {
var p = this.sprites[d];
if (p) {
if (n) {
if (!n(p)) continue;
} else if (!p.isPickable) continue;
if (
(a.e.TransformCoordinatesToRef(p.position, h, u), o.copyFromFloats(u.x - p.width / 2, u.y - p.height / 2, u.z), s.copyFromFloats(u.x + p.width / 2, u.y + p.height / 2, u.z), e.intersectsBoxMinMax(o, s))
) {
i = a.e.Distance(u, e.origin);
var f = new Ae.a();
c.push(f), h.invertToRef(a.c.Matrix[0]), (f.hit = !0), (f.pickedSprite = p), (f.distance = i);
var m = a.c.Vector3[2];
m.copyFrom(e.direction), m.normalize(), m.scaleInPlace(i), e.origin.addToRef(m, l), (f.pickedPoint = a.e.TransformCoordinates(l, a.c.Matrix[0]));
}
}
}
return c;
}),
(e.prototype.render = function () {
if (
this._effectBase.isReady() &&
this._effectFog.isReady() &&
this._spriteTexture &&
this._spriteTexture.isReady() &&
this.sprites.length &&
(!this._fromPacked || (this._packedAndReady && this._spriteMap && this._cellData))
) {
for (var e = this._scene.getEngine(), t = this._spriteTexture.getBaseSize(), n = e.getDeltaTime(), i = Math.min(this._capacity, this.sprites.length), r = 0, o = !0, a = 0; a < i; a++) {
var s = this.sprites[a];
s &&
s.isVisible &&
((o = !1), s._animate(n), this._appendSpriteVertex(r++, s, 0, 0, t), this._appendSpriteVertex(r++, s, 1, 0, t), this._appendSpriteVertex(r++, s, 1, 1, t), this._appendSpriteVertex(r++, s, 0, 1, t));
}
if (!o) {
this._buffer.update(this._vertexData);
var c = this._effectBase;
this._scene.fogEnabled && this._scene.fogMode !== ge.a.FOGMODE_NONE && this.fogEnabled && (c = this._effectFog), e.enableEffect(c);
var l = this._scene.getViewMatrix();
c.setTexture("diffuseSampler", this._spriteTexture),
c.setMatrix("view", l),
c.setMatrix("projection", this._scene.getProjectionMatrix()),
this._scene.fogEnabled &&
this._scene.fogMode !== ge.a.FOGMODE_NONE &&
this.fogEnabled &&
(c.setFloat4("vFogInfos", this._scene.fogMode, this._scene.fogStart, this._scene.fogEnd, this._scene.fogDensity), c.setColor3("vFogColor", this._scene.fogColor)),
e.bindBuffers(this._vertexBuffers, this._indexBuffer, c),
e.setDepthFunctionToLessOrEqual(),
this.disableDepthWrite || (c.setBool("alphaTest", !0), e.setColorWrite(!1), e.drawElementsType(Fo.a.TriangleFillMode, 0, (r / 4) * 6), e.setColorWrite(!0), c.setBool("alphaTest", !1)),
e.setAlphaMode(this._blendMode),
e.drawElementsType(Fo.a.TriangleFillMode, 0, (r / 4) * 6),
e.setAlphaMode(0);
}
}
}),
(e.prototype.dispose = function () {
this._buffer && (this._buffer.dispose(), (this._buffer = null)),
this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)),
this._spriteTexture && (this._spriteTexture.dispose(), (this._spriteTexture = null));
var e = this._scene.spriteManagers.indexOf(this);
this._scene.spriteManagers.splice(e, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear();
}),
e
);
})(),
ed =
"precision highp float;\nvarying vec3 vPosition;\nvarying vec2 vUV;\nvarying vec2 tUV;\nuniform float time;\nuniform float spriteCount;\nuniform sampler2D spriteSheet;\nuniform vec2 spriteMapSize;\nuniform vec2 outputSize;\nuniform vec2 stageSize;\nuniform sampler2D frameMap;\nuniform sampler2D tileMaps[LAYERS];\nuniform sampler2D animationMap;\nuniform vec3 colorMul;\nfloat mt;\nconst float fdStep=1./4.;\nconst float aFrameSteps=1./MAX_ANIMATION_FRAMES;\nmat4 getFrameData(float frameID){\nfloat fX=frameID/spriteCount;\nreturn mat4(\ntexture2D(frameMap,vec2(fX,0.),0.),\ntexture2D(frameMap,vec2(fX,fdStep*1.),0.),\ntexture2D(frameMap,vec2(fX,fdStep*2.),0.),\nvec4(0.)\n);\n}\nvoid main(){\nvec4 color=vec4(0.);\nvec2 tileUV=fract(tUV);\n#ifdef FLIPU\ntileUV.y=1.0-tileUV.y;\n#endif\nvec2 tileID=floor(tUV);\nvec2 sheetUnits=1./spriteMapSize;\nfloat spriteUnits=1./spriteCount;\nvec2 stageUnits=1./stageSize;\nfor(int i=0; i0.) {\nmt=mod(time*animationData.z,1.0);\nfor(float f=0.; fmt){\nframeID=animationData.x;\nbreak;\n}\nanimationData=texture2D(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);\n}\n}\n\nmat4 frameData=getFrameData(frameID+0.5);\nvec2 frameSize=(frameData[0].wz)/spriteMapSize;\nvec2 offset=frameData[0].xy*sheetUnits;\nvec2 ratio=frameData[2].xy/frameData[0].wz;\n\nif (frameData[2].z == 1.){\ntileUV.xy=tileUV.yx;\n}\nif (i == 0){\ncolor=texture2D(spriteSheet,tileUV*frameSize+offset);\n} else {\nvec4 nc=texture2D(spriteSheet,tileUV*frameSize+offset);\nfloat alpha=min(color.a+nc.a,1.0);\nvec3 mixed=mix(color.xyz,nc.xyz,nc.a);\ncolor=vec4(mixed,alpha);\n}\n}\ncolor.xyz*=colorMul;\ngl_FragColor=color;\n}";
Xt.a.ShadersStore.spriteMapPixelShader = ed;
var td =
"precision highp float;\n\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\n\nvarying vec3 vPosition;\nvarying vec2 vUV;\nvarying vec2 tUV;\nvarying vec2 stageUnits;\nvarying vec2 levelUnits;\nvarying vec2 tileID;\n\nuniform float time;\nuniform mat4 worldViewProjection;\nuniform vec2 outputSize;\nuniform vec2 stageSize;\nuniform vec2 spriteMapSize;\nuniform float stageScale;\nvoid main() {\nvec4 p=vec4( position,1. );\nvPosition=p.xyz;\nvUV=uv;\ntUV=uv*stageSize;\ngl_Position=worldViewProjection*p;\n}";
Xt.a.ShadersStore.spriteMapVertexShader = td;
var nd,
id = (function () {
function e(e, t, n, i, r) {
var o = this;
(this.name = e),
(this.sprites = []),
(this.atlasJSON = t),
(this.sprites = this.atlasJSON.frames),
(this.spriteSheet = n),
(this.options = i),
(i.stageSize = i.stageSize || new a.d(1, 1)),
(i.outputSize = i.outputSize || i.stageSize),
(i.outputPosition = i.outputPosition || a.e.Zero()),
(i.outputRotation = i.outputRotation || a.e.Zero()),
(i.layerCount = i.layerCount || 1),
(i.maxAnimationFrames = i.maxAnimationFrames || 0),
(i.baseTile = i.baseTile || 0),
(i.flipU = i.flipU || !1),
(i.colorMultiply = i.colorMultiply || new a.e(1, 1, 1)),
(this._scene = r),
(this._frameMap = this._createFrameBuffer()),
(this._tileMaps = new Array());
for (var s = 0; s < i.layerCount; s++) this._tileMaps.push(this._createTileBuffer(null, s));
this._animationMap = this._createTileAnimationBuffer(null);
var c = [];
c.push("#define LAYERS " + i.layerCount), i.flipU && c.push("#define FLIPU"), c.push("#define MAX_ANIMATION_FRAMES " + i.maxAnimationFrames + ".0");
var l,
u = Xt.a.ShadersStore.spriteMapPixelShader;
if (1 === this._scene.getEngine().webGLVersion) {
l = "";
for (s = 0; s < i.layerCount; s++) l += "if (" + s + " == i) { frameID = texture2D(tileMaps[" + s + "], (tileID + 0.5) / stageSize, 0.).x; }";
} else {
l = "switch(i) {";
for (s = 0; s < i.layerCount; s++) (l += "case " + s + " : frameID = texture(tileMaps[" + s + "], (tileID + 0.5) / stageSize, 0.).x;"), (l += "break;");
l += "}";
}
(Xt.a.ShadersStore["spriteMap" + this.name + "PixelShader"] = u.replace("#define LAYER_ID_SWITCH", l)),
(this._material = new Qa.a(
"spriteMap:" + this.name,
this._scene,
{ vertex: "spriteMap", fragment: "spriteMap" + this.name },
{
defines: c,
attributes: ["position", "normal", "uv"],
uniforms: ["worldViewProjection", "time", "stageSize", "outputSize", "spriteMapSize", "spriteCount", "time", "colorMul", "mousePosition", "curTile", "flipU"],
samplers: ["spriteSheet", "frameMap", "tileMaps", "animationMap"],
needAlphaBlending: !0,
}
)),
(this._time = 0),
this._material.setFloat("spriteCount", this.spriteCount),
this._material.setVector2("stageSize", i.stageSize),
this._material.setVector2("outputSize", i.outputSize),
this._material.setTexture("spriteSheet", this.spriteSheet),
this._material.setVector2("spriteMapSize", new a.d(1, 1)),
this._material.setVector3("colorMul", i.colorMultiply);
var h = 0,
d = function () {
o.spriteSheet && o.spriteSheet.isReady() && o.spriteSheet._texture
? o._material.setVector2("spriteMapSize", new a.d(o.spriteSheet._texture.baseWidth || 1, o.spriteSheet._texture.baseHeight || 1))
: h < 100 &&
setTimeout(function () {
h++, d();
}, 100);
};
d(),
this._material.setVector3("colorMul", i.colorMultiply),
this._material.setTexture("frameMap", this._frameMap),
this._material.setTextureArray("tileMaps", this._tileMaps),
this._material.setTexture("animationMap", this._animationMap),
this._material.setFloat("time", this._time),
(this._output = Ee.a.CreatePlane(e + ":output", 1, r, !0)),
(this._output.scaling.x = i.outputSize.x),
(this._output.scaling.y = i.outputSize.y);
this._scene.onBeforeRenderObservable.add(function () {
(o._time += o._scene.getEngine().getDeltaTime()), o._material.setFloat("time", o._time);
}),
(this._output.material = this._material);
}
return (
Object.defineProperty(e.prototype, "spriteCount", {
get: function () {
return this.sprites.length;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "position", {
get: function () {
return this._output.position;
},
set: function (e) {
this._output.position = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rotation", {
get: function () {
return this._output.rotation;
},
set: function (e) {
this._output.rotation = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "animationMap", {
get: function () {
return this._animationMap;
},
set: function (e) {
var t = e._texture._bufferView,
n = this._createTileAnimationBuffer(t);
this._animationMap.dispose(), (this._animationMap = n), this._material.setTexture("animationMap", this._animationMap);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getTileID = function () {
var e = this.getMousePosition();
return e.multiplyInPlace(this.options.stageSize || a.d.Zero()), (e.x = Math.floor(e.x)), (e.y = Math.floor(e.y)), e;
}),
(e.prototype.getMousePosition = function () {
var e = this._output,
t = this._scene.pick(this._scene.pointerX, this._scene.pointerY, function (t) {
return t === e;
});
if (!t || !t.hit || !t.getTextureCoordinates) return new a.d(-1, -1);
var n = t.getTextureCoordinates();
return n || new a.d(-1, -1);
}),
(e.prototype._createFrameBuffer = function () {
for (var e = new Array(), t = 0; t < this.spriteCount; t++) e.push(0, 0, 0, 0), e.push(0, 0, 0, 0), e.push(0, 0, 0, 0), e.push(0, 0, 0, 0);
for (t = 0; t < this.spriteCount; t++) {
var n = this.sprites[t].frame,
i = this.sprites[t].spriteSourceSize,
r = this.sprites[t].sourceSize,
o = this.sprites[t].rotated ? 1 : 0,
a = this.sprites[t].trimmed ? 1 : 0;
(e[4 * t] = n.x),
(e[4 * t + 1] = n.y),
(e[4 * t + 2] = n.w),
(e[4 * t + 3] = n.h),
(e[4 * t + 4 * this.spriteCount] = i.x),
(e[4 * t + 1 + 4 * this.spriteCount] = i.y),
(e[4 * t + 3 + 4 * this.spriteCount] = i.h),
(e[4 * t + 8 * this.spriteCount] = r.w),
(e[4 * t + 1 + 8 * this.spriteCount] = r.h),
(e[4 * t + 2 + 8 * this.spriteCount] = o),
(e[4 * t + 3 + 8 * this.spriteCount] = a);
}
var s = new Float32Array(e);
return Cs.a.CreateRGBATexture(s, this.spriteCount, 4, this._scene, !1, !1, ln.a.NEAREST_NEAREST, ue.a.TEXTURETYPE_FLOAT);
}),
(e.prototype._createTileBuffer = function (e, t) {
void 0 === t && (t = 0);
var n = new Array(),
i = this.options.stageSize.y || 0,
r = this.options.stageSize.x || 0;
if (e) n = e;
else {
var o = this.options.baseTile;
0 != t && (o = 0);
for (var a = 0; a < i; a++) for (var s = 0; s < 4 * r; s += 4) n.push(o, 0, 0, 0);
}
var c = new Float32Array(n);
return Cs.a.CreateRGBATexture(c, r, i, this._scene, !1, !1, ln.a.NEAREST_NEAREST, ue.a.TEXTURETYPE_FLOAT);
}),
(e.prototype.changeTiles = function (e, t, n) {
var i;
if ((void 0 === e && (e = 0), void 0 === n && (n = 0), null !== (i = this._tileMaps[e]._texture._bufferView))) {
var r = new Array();
t instanceof a.d ? r.push(t) : (r = t);
for (var o = this.options.stageSize.x || 0, s = 0; s < r.length; s++) {
var c = r[s];
(c.x = Math.floor(c.x)), (c.y = Math.floor(c.y)), (i[4 * c.x + c.y * (4 * o)] = n);
}
var l = this._createTileBuffer(i);
this._tileMaps[e].dispose(), (this._tileMaps[e] = l), this._material.setTextureArray("tileMap", this._tileMaps);
}
}),
(e.prototype._createTileAnimationBuffer = function (e) {
var t,
n = new Array();
if (e) t = e;
else {
for (var i = 0; i < this.spriteCount; i++) {
n.push(0, 0, 0, 0);
for (var r = 1; r < (this.options.maxAnimationFrames || 4); ) n.push(0, 0, 0, 0), r++;
}
t = new Float32Array(n);
}
return Cs.a.CreateRGBATexture(t, this.spriteCount, this.options.maxAnimationFrames || 4, this._scene, !1, !1, ln.a.NEAREST_NEAREST, ue.a.TEXTURETYPE_FLOAT);
}),
(e.prototype.addAnimationToTile = function (e, t, n, i, r) {
void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 0), void 0 === r && (r = 1);
var o = this._animationMap._texture._bufferView,
a = 4 * e + 4 * this.spriteCount * t;
if (o) {
(o[a] = n), (o[a + 1] = i), (o[a + 2] = r);
var s = this._createTileAnimationBuffer(o);
this._animationMap.dispose(), (this._animationMap = s), this._material.setTexture("animationMap", this._animationMap);
}
}),
(e.prototype.saveTileMaps = function () {
for (var e = "", t = 0; t < this._tileMaps.length; t++) t > 0 && (e += "\n\r"), (e += this._tileMaps[t]._texture._bufferView.toString());
var n = document.createElement("a");
(n.href = "data:octet/stream;charset=utf-8," + encodeURI(e)), (n.target = "_blank"), (n.download = this.name + ".tilemaps"), n.click(), n.remove();
}),
(e.prototype.loadTileMaps = function (e) {
var t = this,
n = new XMLHttpRequest();
n.open("GET", e);
var i = this.options.layerCount || 0;
(n.onload = function () {
for (var e = n.response.split("\n\r"), r = 0; r < i; r++) {
var o = e[r].split(",").map(Number),
a = t._createTileBuffer(o);
t._tileMaps[r].dispose(), (t._tileMaps[r] = a);
}
t._material.setTextureArray("tileMap", t._tileMaps);
}),
n.send();
}),
(e.prototype.dispose = function () {
this._output.dispose(),
this._material.dispose(),
this._animationMap.dispose(),
this._tileMaps.forEach(function (e) {
e.dispose();
}),
this._frameMap.dispose();
}),
e
);
})(),
rd = (function (e) {
function t(t, n, i, r, o, a, s) {
void 0 === o && (o = null), void 0 === a && (a = 0.01), void 0 === s && (s = ln.a.TRILINEAR_SAMPLINGMODE);
var c = e.call(this, t, n, i, 64, r, a, s, !0, o) || this;
return (c.name = t), c;
}
return Object(h.d)(t, e), t;
})($h),
od = n(184),
ad = n(182),
sd = n(183),
cd = n(179);
!(function (e) {
(e[(e.INIT = 0)] = "INIT"), (e[(e.RUNNING = 1)] = "RUNNING"), (e[(e.DONE = 2)] = "DONE"), (e[(e.ERROR = 3)] = "ERROR");
})(nd || (nd = {}));
var ld,
ud = (function () {
function e(e) {
(this.name = e), (this._isCompleted = !1), (this._taskState = nd.INIT);
}
return (
Object.defineProperty(e.prototype, "isCompleted", {
get: function () {
return this._isCompleted;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "taskState", {
get: function () {
return this._taskState;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "errorObject", {
get: function () {
return this._errorObject;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._setErrorObject = function (e, t) {
this._errorObject || (this._errorObject = { message: e, exception: t });
}),
(e.prototype.run = function (e, t, n) {
var i = this;
(this._taskState = nd.RUNNING),
this.runTask(
e,
function () {
i.onDoneCallback(t, n);
},
function (e, t) {
i.onErrorCallback(n, e, t);
}
);
}),
(e.prototype.runTask = function (e, t, n) {
throw new Error("runTask is not implemented");
}),
(e.prototype.reset = function () {
this._taskState = nd.INIT;
}),
(e.prototype.onErrorCallback = function (e, t, n) {
(this._taskState = nd.ERROR), (this._errorObject = { message: t, exception: n }), this.onError && this.onError(this, t, n), e();
}),
(e.prototype.onDoneCallback = function (e, t) {
try {
(this._taskState = nd.DONE), (this._isCompleted = !0), this.onSuccess && this.onSuccess(this), e();
} catch (e) {
this.onErrorCallback(t, "Task is done, error executing success callback(s)", e);
}
}),
e
);
})(),
hd = function (e, t, n) {
(this.remainingCount = e), (this.totalCount = t), (this.task = n);
},
dd = (function (e) {
function t(t, n, i, r) {
var o = e.call(this, t) || this;
return (o.name = t), (o.meshesNames = n), (o.rootUrl = i), (o.sceneFilename = r), o;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
var i = this;
$i.a.ImportMesh(
this.meshesNames,
this.rootUrl,
this.sceneFilename,
e,
function (e, n, r, o) {
(i.loadedMeshes = e), (i.loadedParticleSystems = n), (i.loadedSkeletons = r), (i.loadedAnimationGroups = o), t();
},
null,
function (e, t, i) {
n(t, i);
}
);
}),
t
);
})(ud),
pd = (function (e) {
function t(t, n) {
var i = e.call(this, t) || this;
return (i.name = t), (i.url = n), i;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
var i = this;
e._loadFile(
this.url,
function (e) {
(i.text = e), t();
},
void 0,
!1,
!1,
function (e, t) {
e && n(e.status + " " + e.statusText, t);
}
);
}),
t
);
})(ud),
fd = (function (e) {
function t(t, n) {
var i = e.call(this, t) || this;
return (i.name = t), (i.url = n), i;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
var i = this;
e._loadFile(
this.url,
function (e) {
(i.data = e), t();
},
void 0,
!0,
!0,
function (e, t) {
e && n(e.status + " " + e.statusText, t);
}
);
}),
t
);
})(ud),
md = (function (e) {
function t(t, n) {
var i = e.call(this, t) || this;
return (i.name = t), (i.url = n), i;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
var i = this,
r = new Image();
$e.b.SetCorsBehavior(this.url, r),
(r.onload = function () {
(i.image = r), t();
}),
(r.onerror = function (e) {
n("Error loading image", e);
}),
(r.src = this.url);
}),
t
);
})(ud),
gd = (function (e) {
function t(t, n, i, r, o) {
void 0 === o && (o = ln.a.TRILINEAR_SAMPLINGMODE);
var a = e.call(this, t) || this;
return (a.name = t), (a.url = n), (a.noMipmap = i), (a.invertY = r), (a.samplingMode = o), a;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
this.texture = new ln.a(
this.url,
e,
this.noMipmap,
this.invertY,
this.samplingMode,
function () {
t();
},
function (e, t) {
n(e, t);
}
);
}),
t
);
})(ud),
bd = (function (e) {
function t(t, n, i, r, o) {
var a = e.call(this, t) || this;
return (a.name = t), (a.url = n), (a.extensions = i), (a.noMipmap = r), (a.files = o), a;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
this.texture = new Ar.a(
this.url,
e,
this.extensions,
this.noMipmap,
this.files,
function () {
t();
},
function (e, t) {
n(e, t);
}
);
}),
t
);
})(ud),
_d = (function (e) {
function t(t, n, i, r, o, a, s) {
void 0 === r && (r = !1), void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = !1);
var c = e.call(this, t) || this;
return (c.name = t), (c.url = n), (c.size = i), (c.noMipmap = r), (c.generateHarmonics = o), (c.gammaSpace = a), (c.reserved = s), c;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
this.texture = new Ea(
this.url,
e,
this.size,
this.noMipmap,
this.generateHarmonics,
this.gammaSpace,
this.reserved,
function () {
t();
},
function (e, t) {
n(e, t);
}
);
}),
t
);
})(ud),
vd = (function (e) {
function t(t, n, i, r, o) {
void 0 === r && (r = !1), void 0 === o && (o = !0);
var a = e.call(this, t) || this;
return (a.name = t), (a.url = n), (a.size = i), (a.noMipmap = r), (a.gammaSpace = o), a;
}
return (
Object(h.d)(t, e),
(t.prototype.runTask = function (e, t, n) {
this.texture = new $a(
this.url,
e,
this.size,
this.noMipmap,
this.gammaSpace,
function () {
t();
},
function (e, t) {
n(e, t);
}
);
}),
t
);
})(ud),
yd = (function () {
function e(e) {
(this._isLoading = !1),
(this._tasks = new Array()),
(this._waitingTasksCount = 0),
(this._totalTasksCount = 0),
(this.onTaskSuccessObservable = new o.c()),
(this.onTaskErrorObservable = new o.c()),
(this.onTasksDoneObservable = new o.c()),
(this.onProgressObservable = new o.c()),
(this.useDefaultLoadingScreen = !0),
(this.autoHideLoadingUI = !0),
(this._scene = e);
}
return (
(e.prototype.addMeshTask = function (e, t, n, i) {
var r = new dd(e, t, n, i);
return this._tasks.push(r), r;
}),
(e.prototype.addTextFileTask = function (e, t) {
var n = new pd(e, t);
return this._tasks.push(n), n;
}),
(e.prototype.addBinaryFileTask = function (e, t) {
var n = new fd(e, t);
return this._tasks.push(n), n;
}),
(e.prototype.addImageTask = function (e, t) {
var n = new md(e, t);
return this._tasks.push(n), n;
}),
(e.prototype.addTextureTask = function (e, t, n, i, r) {
void 0 === r && (r = ln.a.TRILINEAR_SAMPLINGMODE);
var o = new gd(e, t, n, i, r);
return this._tasks.push(o), o;
}),
(e.prototype.addCubeTextureTask = function (e, t, n, i, r) {
var o = new bd(e, t, n, i, r);
return this._tasks.push(o), o;
}),
(e.prototype.addHDRCubeTextureTask = function (e, t, n, i, r, o, a) {
void 0 === i && (i = !1), void 0 === r && (r = !0), void 0 === o && (o = !1), void 0 === a && (a = !1);
var s = new _d(e, t, n, i, r, o, a);
return this._tasks.push(s), s;
}),
(e.prototype.addEquiRectangularCubeTextureAssetTask = function (e, t, n, i, r) {
void 0 === i && (i = !1), void 0 === r && (r = !0);
var o = new vd(e, t, n, i, r);
return this._tasks.push(o), o;
}),
(e.prototype.removeTask = function (e) {
var t = this._tasks.indexOf(e);
t > -1 && this._tasks.splice(t, 1);
}),
(e.prototype._decreaseWaitingTasksCount = function (e) {
this._waitingTasksCount--;
try {
this.onProgress && this.onProgress(this._waitingTasksCount, this._totalTasksCount, e), this.onProgressObservable.notifyObservers(new hd(this._waitingTasksCount, this._totalTasksCount, e));
} catch (e) {
g.a.Error("Error running progress callbacks.");
}
if (0 === this._waitingTasksCount) {
try {
var t = this._tasks.slice();
this.onFinish && this.onFinish(t);
for (var n = 0, i = t; n < i.length; n++) {
if ((e = i[n]).taskState === nd.DONE) {
var r = this._tasks.indexOf(e);
r > -1 && this._tasks.splice(r, 1);
}
}
this.onTasksDoneObservable.notifyObservers(this._tasks);
} catch (e) {
g.a.Error("Error running tasks-done callbacks.");
}
(this._isLoading = !1), this.autoHideLoadingUI && this._scene.getEngine().hideLoadingUI();
}
}),
(e.prototype._runTask = function (e) {
var t = this,
n = function (n, i) {
e._setErrorObject(n, i), t.onTaskError && t.onTaskError(e), t.onTaskErrorObservable.notifyObservers(e), t._decreaseWaitingTasksCount(e);
};
e.run(
this._scene,
function () {
try {
t.onTaskSuccess && t.onTaskSuccess(e), t.onTaskSuccessObservable.notifyObservers(e), t._decreaseWaitingTasksCount(e);
} catch (e) {
n("Error executing task success callbacks", e);
}
},
n
);
}),
(e.prototype.reset = function () {
return (this._isLoading = !1), (this._tasks = new Array()), this;
}),
(e.prototype.load = function () {
if (this._isLoading) return this;
if (((this._isLoading = !0), (this._waitingTasksCount = this._tasks.length), (this._totalTasksCount = this._tasks.length), 0 === this._waitingTasksCount))
return (this._isLoading = !1), this.onFinish && this.onFinish(this._tasks), this.onTasksDoneObservable.notifyObservers(this._tasks), this;
this.useDefaultLoadingScreen && this._scene.getEngine().displayLoadingUI();
for (var e = 0; e < this._tasks.length; e++) {
var t = this._tasks[e];
t.taskState === nd.INIT && this._runTask(t);
}
return this;
}),
(e.prototype.loadAsync = function () {
var e = this;
return new Promise(function (t, n) {
e._isLoading
? t()
: (e.onTasksDoneObservable.addOnce(function (e) {
e && e.length ? n(e) : t();
}),
e.load());
});
}),
e
);
})(),
Cd = n(138),
Pd = (function () {
function e(e, t) {
(this._meshesOrigins = []),
(this._toCenterVectors = []),
(this._scaledDirection = a.e.Zero()),
(this._newPosition = a.e.Zero()),
(this._centerPosition = a.e.Zero()),
(this._meshes = e.slice()),
t ? (this._centerMesh = t) : this._setCenterMesh();
var n = this._meshes.indexOf(this._centerMesh);
n >= 0 && this._meshes.splice(n, 1), (this._centerPosition = this._centerMesh.getAbsolutePosition().clone());
for (var i = 0; i < this._meshes.length; i++)
if (this._meshes[i]) {
var r = this._meshes[i];
(this._meshesOrigins[i] = r.getAbsolutePosition().clone()),
(this._toCenterVectors[i] = a.e.Zero()),
r._boundingInfo && this._centerMesh._boundingInfo && r._boundingInfo.boundingBox.centerWorld.subtractToRef(this._centerMesh._boundingInfo.boundingBox.centerWorld, this._toCenterVectors[i]);
}
}
return (
(e.prototype._setCenterMesh = function () {
for (var e = a.e.Zero(), t = a.e.Zero(), n = Number.MAX_VALUE, i = 0; i < this._meshes.length; i++) {
if (this._meshes[i]) (o = (r = this._meshes[i]).getBoundingInfo()) && t.addInPlace(o.boundingBox.centerWorld);
}
e = t.scale(1 / this._meshes.length);
for (i = 0; i < this._meshes.length; i++) {
var r, o;
if (this._meshes[i])
if ((o = (r = this._meshes[i]).getBoundingInfo())) {
var s = o.boundingBox.centerWorld.subtract(e).lengthSquared();
s < n && ((this._centerMesh = r), (n = s));
}
}
}),
(e.prototype.getClassName = function () {
return "MeshExploder";
}),
(e.prototype.getMeshes = function () {
var e = this._meshes.slice();
return e.unshift(this._centerMesh), e;
}),
(e.prototype.explode = function (e) {
void 0 === e && (e = 1);
for (var t = 0; t < this._meshes.length; t++)
this._meshes[t] &&
this._meshesOrigins[t] &&
this._toCenterVectors[t] &&
(this._toCenterVectors[t].scaleToRef(e, this._scaledDirection), this._meshesOrigins[t].addToRef(this._scaledDirection, this._newPosition), this._meshes[t].setAbsolutePosition(this._newPosition));
this._centerMesh.setAbsolutePosition(this._centerPosition);
}),
e
);
})(),
xd = n(118),
Td = (function () {
function e(e, t, n, i, r, o, a, s, c) {
(this.onProcessFileCallback = function () {
return !0;
}),
(this._engine = e),
(this._currentScene = t),
(this._sceneLoadedCallback = n),
(this._progressCallback = i),
(this._additionalRenderLoopLogicCallback = r),
(this._textureLoadingCallback = o),
(this._startingProcessingFilesCallback = a),
(this._onReloadCallback = s),
(this._errorCallback = c);
}
return (
Object.defineProperty(e, "FilesToLoad", {
get: function () {
return xd.a.FilesToLoad;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.monitorElementForDragNDrop = function (e) {
var t = this;
e &&
((this._elementToMonitor = e),
(this._dragEnterHandler = function (e) {
t.drag(e);
}),
(this._dragOverHandler = function (e) {
t.drag(e);
}),
(this._dropHandler = function (e) {
t.drop(e);
}),
this._elementToMonitor.addEventListener("dragenter", this._dragEnterHandler, !1),
this._elementToMonitor.addEventListener("dragover", this._dragOverHandler, !1),
this._elementToMonitor.addEventListener("drop", this._dropHandler, !1));
}),
(e.prototype.dispose = function () {
this._elementToMonitor &&
(this._elementToMonitor.removeEventListener("dragenter", this._dragEnterHandler),
this._elementToMonitor.removeEventListener("dragover", this._dragOverHandler),
this._elementToMonitor.removeEventListener("drop", this._dropHandler));
}),
(e.prototype.renderFunction = function () {
if ((this._additionalRenderLoopLogicCallback && this._additionalRenderLoopLogicCallback(), this._currentScene)) {
if (this._textureLoadingCallback) {
var e = this._currentScene.getWaitingItemsCount();
e > 0 && this._textureLoadingCallback(e);
}
this._currentScene.render();
}
}),
(e.prototype.drag = function (e) {
e.stopPropagation(), e.preventDefault();
}),
(e.prototype.drop = function (e) {
e.stopPropagation(), e.preventDefault(), this.loadFiles(e);
}),
(e.prototype._traverseFolder = function (e, t, n, i) {
var r = this,
o = e.createReader(),
a = e.fullPath.replace(/^\//, "").replace(/(.+?)\/?$/, "$1/");
o.readEntries(function (e) {
n.count += e.length;
for (var o = 0, s = e; o < s.length; o++) {
var c = s[o];
c.isFile
? c.file(function (e) {
(e.correctName = a + e.name), t.push(e), 0 == --n.count && i();
})
: c.isDirectory && r._traverseFolder(c, t, n, i);
}
--n.count && i();
});
}),
(e.prototype._processFiles = function (t) {
for (var n = 0; n < t.length; n++) {
var i = t[n].correctName.toLowerCase(),
r = i.split(".").pop();
this.onProcessFileCallback(t[n], i, r) &&
(("babylon" !== r && "stl" !== r && "obj" !== r && "gltf" !== r && "glb" !== r) || -1 !== i.indexOf(".binary.babylon") || -1 !== i.indexOf(".incremental.babylon") || (this._sceneFileToLoad = t[n]),
(e.FilesToLoad[i] = t[n]));
}
}),
(e.prototype.loadFiles = function (e) {
var t = this;
if (
(e && e.dataTransfer && e.dataTransfer.files && (this._filesToLoad = e.dataTransfer.files),
e && e.target && e.target.files && (this._filesToLoad = e.target.files),
this._filesToLoad && 0 !== this._filesToLoad.length && (this._startingProcessingFilesCallback && this._startingProcessingFilesCallback(this._filesToLoad), this._filesToLoad && this._filesToLoad.length > 0))
) {
for (var n = new Array(), i = [], r = e.dataTransfer ? e.dataTransfer.items : null, o = 0; o < this._filesToLoad.length; o++) {
var a = this._filesToLoad[o],
s = a.name.toLowerCase(),
c = void 0;
if (((a.correctName = s), r)) {
var l = r[o];
l.getAsEntry ? (c = l.getAsEntry()) : l.webkitGetAsEntry && (c = l.webkitGetAsEntry());
}
c && c.isDirectory ? i.push(c) : n.push(a);
}
if (0 === i.length) this._processFiles(n), this._processReload();
else
for (var u = { count: i.length }, h = 0, d = i; h < d.length; h++) {
var p = d[h];
this._traverseFolder(p, n, u, function () {
t._processFiles(n), 0 === u.count && t._processReload();
});
}
}
}),
(e.prototype._processReload = function () {
this._onReloadCallback ? this._onReloadCallback(this._sceneFileToLoad) : this.reload();
}),
(e.prototype.reload = function () {
var e = this;
this._sceneFileToLoad
? (this._currentScene && (g.a.errorsCount > 0 && g.a.ClearLogCache(), this._engine.stopRenderLoop()),
$i.a
.LoadAsync("file:", this._sceneFileToLoad, this._engine, function (t) {
e._progressCallback && e._progressCallback(t);
})
.then(function (t) {
e._currentScene && e._currentScene.dispose(),
(e._currentScene = t),
e._sceneLoadedCallback && e._sceneLoadedCallback(e._sceneFileToLoad, e._currentScene),
e._currentScene.executeWhenReady(function () {
e._engine.runRenderLoop(function () {
e.renderFunction();
});
});
})
.catch(function (t) {
e._errorCallback && e._errorCallback(e._sceneFileToLoad, e._currentScene, t.message);
}))
: g.a.Error("Please provide a valid .babylon file.");
}),
e
);
})(),
Sd = n(187),
Od = n(186),
Ed = (function () {
function e(e) {
void 0 === e && (e = 0), (this.priority = e);
}
return (
(e.prototype.getDescription = function () {
return "";
}),
(e.prototype.apply = function (e, t) {
return !0;
}),
e
);
})(),
Md = (function (e) {
function t(t, n, i) {
void 0 === t && (t = 0), void 0 === n && (n = 1024), void 0 === i && (i = 0.5);
var r = e.call(this, t) || this;
return (r.priority = t), (r.maximumSize = n), (r.step = i), r;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Reducing render target texture size to " + this.maximumSize;
}),
(t.prototype.apply = function (e, t) {
for (var n = !0, i = 0; i < e.textures.length; i++) {
var r = e.textures[i];
if (r.canRescale && !r.getContext) {
var o = r.getSize();
Math.max(o.width, o.height) > this.maximumSize && (r.scale(this.step), (n = !1));
}
}
return n;
}),
t
);
})(Ed),
Ad = (function (e) {
function t(t, n, i) {
void 0 === t && (t = 0), void 0 === n && (n = 2), void 0 === i && (i = 0.25);
var r = e.call(this, t) || this;
return (r.priority = t), (r.maximumScale = n), (r.step = i), (r._currentScale = -1), (r._directionOffset = 1), r;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Setting hardware scaling level to " + this._currentScale;
}),
(t.prototype.apply = function (e, t) {
return (
-1 === this._currentScale && ((this._currentScale = e.getEngine().getHardwareScalingLevel()), this._currentScale > this.maximumScale && (this._directionOffset = -1)),
(this._currentScale += this._directionOffset * this.step),
e.getEngine().setHardwareScalingLevel(this._currentScale),
1 === this._directionOffset ? this._currentScale >= this.maximumScale : this._currentScale <= this.maximumScale
);
}),
t
);
})(Ed),
Id = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Turning shadows on/off";
}),
(t.prototype.apply = function (e, t) {
return (e.shadowsEnabled = t.isInImprovementMode), !0;
}),
t
);
})(Ed),
Dd = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Turning post-processes on/off";
}),
(t.prototype.apply = function (e, t) {
return (e.postProcessesEnabled = t.isInImprovementMode), !0;
}),
t
);
})(Ed),
Rd = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Turning lens flares on/off";
}),
(t.prototype.apply = function (e, t) {
return (e.lensFlaresEnabled = t.isInImprovementMode), !0;
}),
t
);
})(Ed),
wd = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return this.onGetDescription ? this.onGetDescription() : "Running user defined callback";
}),
(t.prototype.apply = function (e, t) {
return !this.onApply || this.onApply(e, t);
}),
t
);
})(Ed),
Ld = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Turning particles on/off";
}),
(t.prototype.apply = function (e, t) {
return (e.particlesEnabled = t.isInImprovementMode), !0;
}),
t
);
})(Ed),
Fd = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(h.d)(t, e),
(t.prototype.getDescription = function () {
return "Turning render targets off";
}),
(t.prototype.apply = function (e, t) {
return (e.renderTargetsEnabled = t.isInImprovementMode), !0;
}),
t
);
})(Ed),
Nd = (function (e) {
function t() {
var t = (null !== e && e.apply(this, arguments)) || this;
return (
(t._canBeMerged = function (e) {
if (!(e instanceof Ee.a)) return !1;
var t = e;
return !t.isDisposed() && !(!t.isVisible || !t.isEnabled()) && !(t.instances.length > 0) && !t.skeleton && !t.hasLODLevels;
}),
t
);
}
return (
Object(h.d)(t, e),
Object.defineProperty(t, "UpdateSelectionTree", {
get: function () {
return t._UpdateSelectionTree;
},
set: function (e) {
t._UpdateSelectionTree = e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getDescription = function () {
return "Merging similar meshes together";
}),
(t.prototype.apply = function (e, n, i) {
for (var r = e.meshes.slice(0), o = r.length, a = 0; a < o; a++) {
var s = new Array(),
c = r[a];
if (this._canBeMerged(c)) {
s.push(c);
for (var l = a + 1; l < o; l++) {
var u = r[l];
this._canBeMerged(u) && u.material === c.material && u.checkCollisions === c.checkCollisions && (s.push(u), o--, r.splice(l, 1), l--);
}
s.length < 2 || Ee.a.MergeMeshes(s, void 0, !0);
}
}
var h = e;
return h.createOrUpdateSelectionOctree && (null != i ? i && h.createOrUpdateSelectionOctree() : t.UpdateSelectionTree && h.createOrUpdateSelectionOctree()), !0;
}),
(t._UpdateSelectionTree = !1),
t
);
})(Ed),
kd = (function () {
function e(e, t) {
void 0 === e && (e = 60), void 0 === t && (t = 2e3), (this.targetFrameRate = e), (this.trackerDuration = t), (this.optimizations = new Array());
}
return (
(e.prototype.addOptimization = function (e) {
return this.optimizations.push(e), this;
}),
(e.prototype.addCustomOptimization = function (e, t, n) {
void 0 === n && (n = 0);
var i = new wd(n);
return (i.onApply = e), (i.onGetDescription = t), this.optimizations.push(i), this;
}),
(e.LowDegradationAllowed = function (t) {
var n = new e(t),
i = 0;
return n.addOptimization(new Nd(i)), n.addOptimization(new Id(i)), n.addOptimization(new Rd(i)), i++, n.addOptimization(new Dd(i)), n.addOptimization(new Ld(i)), i++, n.addOptimization(new Md(i, 1024)), n;
}),
(e.ModerateDegradationAllowed = function (t) {
var n = new e(t),
i = 0;
return (
n.addOptimization(new Nd(i)),
n.addOptimization(new Id(i)),
n.addOptimization(new Rd(i)),
i++,
n.addOptimization(new Dd(i)),
n.addOptimization(new Ld(i)),
i++,
n.addOptimization(new Md(i, 512)),
i++,
n.addOptimization(new Fd(i)),
i++,
n.addOptimization(new Ad(i, 2)),
n
);
}),
(e.HighDegradationAllowed = function (t) {
var n = new e(t),
i = 0;
return (
n.addOptimization(new Nd(i)),
n.addOptimization(new Id(i)),
n.addOptimization(new Rd(i)),
i++,
n.addOptimization(new Dd(i)),
n.addOptimization(new Ld(i)),
i++,
n.addOptimization(new Md(i, 256)),
i++,
n.addOptimization(new Fd(i)),
i++,
n.addOptimization(new Ad(i, 4)),
n
);
}),
e
);
})(),
zd = (function () {
function e(e, t, n, i) {
var r = this;
if (
(void 0 === n && (n = !0),
void 0 === i && (i = !1),
(this._isRunning = !1),
(this._currentPriorityLevel = 0),
(this._targetFrameRate = 60),
(this._trackerDuration = 2e3),
(this._currentFrameRate = 0),
(this._improvementMode = !1),
(this.onSuccessObservable = new o.c()),
(this.onNewOptimizationAppliedObservable = new o.c()),
(this.onFailureObservable = new o.c()),
(this._options = t || new kd()),
this._options.targetFrameRate && (this._targetFrameRate = this._options.targetFrameRate),
this._options.trackerDuration && (this._trackerDuration = this._options.trackerDuration),
n)
)
for (var a = 0, s = 0, c = this._options.optimizations; s < c.length; s++) {
c[s].priority = a++;
}
(this._improvementMode = i),
(this._scene = e || E.a.LastCreatedScene),
(this._sceneDisposeObserver = this._scene.onDisposeObservable.add(function () {
(r._sceneDisposeObserver = null), r.dispose();
}));
}
return (
Object.defineProperty(e.prototype, "isInImprovementMode", {
get: function () {
return this._improvementMode;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "currentPriorityLevel", {
get: function () {
return this._currentPriorityLevel;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "currentFrameRate", {
get: function () {
return this._currentFrameRate;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "targetFrameRate", {
get: function () {
return this._targetFrameRate;
},
set: function (e) {
this._targetFrameRate = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "trackerDuration", {
get: function () {
return this._trackerDuration;
},
set: function (e) {
this._trackerDuration = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "optimizations", {
get: function () {
return this._options.optimizations;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.stop = function () {
this._isRunning = !1;
}),
(e.prototype.reset = function () {
this._currentPriorityLevel = 0;
}),
(e.prototype.start = function () {
var e = this;
this._isRunning ||
((this._isRunning = !0),
this._scene.executeWhenReady(function () {
setTimeout(function () {
e._checkCurrentState();
}, e._trackerDuration);
}));
}),
(e.prototype._checkCurrentState = function () {
var e = this;
if (this._isRunning) {
var t = this._scene,
n = this._options;
if (
((this._currentFrameRate = Math.round(t.getEngine().getFps())),
(this._improvementMode && this._currentFrameRate <= this._targetFrameRate) || (!this._improvementMode && this._currentFrameRate >= this._targetFrameRate))
)
return (this._isRunning = !1), void this.onSuccessObservable.notifyObservers(this);
for (var i = !0, r = !0, o = 0; o < n.optimizations.length; o++) {
var a = n.optimizations[o];
a.priority === this._currentPriorityLevel && ((r = !1), (i = i && a.apply(t, this)), this.onNewOptimizationAppliedObservable.notifyObservers(a));
}
if (r) return (this._isRunning = !1), void this.onFailureObservable.notifyObservers(this);
i && this._currentPriorityLevel++,
t.executeWhenReady(function () {
setTimeout(function () {
e._checkCurrentState();
}, e._trackerDuration);
});
}
}),
(e.prototype.dispose = function () {
this.stop(),
this.onSuccessObservable.clear(),
this.onFailureObservable.clear(),
this.onNewOptimizationAppliedObservable.clear(),
this._sceneDisposeObserver && this._scene.onDisposeObservable.remove(this._sceneDisposeObserver);
}),
(e.OptimizeAsync = function (t, n, i, r) {
var o = new e(t, n || kd.ModerateDegradationAllowed(), !1);
return (
i &&
o.onSuccessObservable.add(function () {
i();
}),
r &&
o.onFailureObservable.add(function () {
r();
}),
o.start(),
o
);
}),
e
);
})(),
jd = [],
Bd = function (e, t) {
jd[e.id] || e.doNotSerialize || (t.vertexData.push(e.serializeVerticeData()), (jd[e.id] = !0));
},
Vd = function (e, t) {
var n = {},
i = e._geometry;
return i && (e.getScene().getGeometryByID(i.id) || Bd(i, t.geometries)), e.serialize && e.serialize(n), n;
},
Gd = (function () {
function e() {}
return (
(e.ClearCache = function () {
jd = [];
}),
(e.Serialize = function (t) {
var n,
i,
r,
o = {};
if (
(e.ClearCache(),
(o.useDelayedTextureLoading = t.useDelayedTextureLoading),
(o.autoClear = t.autoClear),
(o.clearColor = t.clearColor.asArray()),
(o.ambientColor = t.ambientColor.asArray()),
(o.gravity = t.gravity.asArray()),
(o.collisionsEnabled = t.collisionsEnabled),
t.fogMode && 0 !== t.fogMode && ((o.fogMode = t.fogMode), (o.fogColor = t.fogColor.asArray()), (o.fogStart = t.fogStart), (o.fogEnd = t.fogEnd), (o.fogDensity = t.fogDensity)),
t.isPhysicsEnabled())
) {
var a = t.getPhysicsEngine();
a && ((o.physicsEnabled = !0), (o.physicsGravity = a.gravity.asArray()), (o.physicsEngine = a.getPhysicsPluginName()));
}
t.metadata && (o.metadata = t.metadata), (o.morphTargetManagers = []);
for (var s = 0, c = t.meshes; s < c.length; s++) {
var l = (_ = c[s]).morphTargetManager;
l && o.morphTargetManagers.push(l.serialize());
}
for (o.lights = [], n = 0; n < t.lights.length; n++) (i = t.lights[n]).doNotSerialize || o.lights.push(i.serialize());
for (o.cameras = [], n = 0; n < t.cameras.length; n++) {
var u = t.cameras[n];
u.doNotSerialize || o.cameras.push(u.serialize());
}
if ((t.activeCamera && (o.activeCameraID = t.activeCamera.id), He.a.AppendSerializedAnimations(t, o), t.animationGroups && t.animationGroups.length > 0)) {
o.animationGroups = [];
for (var h = 0; h < t.animationGroups.length; h++) {
var d = t.animationGroups[h];
o.animationGroups.push(d.serialize());
}
}
if (t.reflectionProbes && t.reflectionProbes.length > 0)
for (o.reflectionProbes = [], n = 0; n < t.reflectionProbes.length; n++) {
var p = t.reflectionProbes[n];
o.reflectionProbes.push(p.serialize());
}
for (o.materials = [], o.multiMaterials = [], n = 0; n < t.materials.length; n++) (r = t.materials[n]).doNotSerialize || o.materials.push(r.serialize());
for (o.multiMaterials = [], n = 0; n < t.multiMaterials.length; n++) {
var f = t.multiMaterials[n];
o.multiMaterials.push(f.serialize());
}
for (t.environmentTexture && (o.environmentTexture = t.environmentTexture.name), o.environmentIntensity = t.environmentIntensity, o.skeletons = [], n = 0; n < t.skeletons.length; n++) {
var m = t.skeletons[n];
m.doNotSerialize || o.skeletons.push(m.serialize());
}
for (o.transformNodes = [], n = 0; n < t.transformNodes.length; n++) t.transformNodes[n].doNotSerialize || o.transformNodes.push(t.transformNodes[n].serialize());
(o.geometries = {}),
(o.geometries.boxes = []),
(o.geometries.spheres = []),
(o.geometries.cylinders = []),
(o.geometries.toruses = []),
(o.geometries.grounds = []),
(o.geometries.planes = []),
(o.geometries.torusKnots = []),
(o.geometries.vertexData = []),
(jd = []);
var g = t.getGeometries();
for (n = 0; n < g.length; n++) {
var b = g[n];
b.isReady() && Bd(b, o.geometries);
}
for (o.meshes = [], n = 0; n < t.meshes.length; n++) {
var _;
if ((_ = t.meshes[n]) instanceof Ee.a) {
var v = _;
v.doNotSerialize || (1 !== v.delayLoadState && 0 !== v.delayLoadState) || o.meshes.push(Vd(v, o));
}
}
for (o.particleSystems = [], n = 0; n < t.particleSystems.length; n++) o.particleSystems.push(t.particleSystems[n].serialize());
t.actionManager && (o.actions = t.actionManager.serialize("scene"));
for (var y = 0, C = t._serializableComponents; y < C.length; y++) {
C[y].serialize(o);
}
return o;
}),
(e.SerializeMesh = function (t, n, i) {
void 0 === n && (n = !1), void 0 === i && (i = !1);
var r = {};
if ((e.ClearCache(), (t = t instanceof Array ? t : [t]), n || i))
for (var o = 0; o < t.length; ++o)
i &&
t[o].getDescendants().forEach(function (e) {
e instanceof Ee.a && t.indexOf(e) < 0 && !e.doNotSerialize && t.push(e);
}),
n && t[o].parent && t.indexOf(t[o].parent) < 0 && !t[o].parent.doNotSerialize && t.push(t[o].parent);
return (
t.forEach(function (e) {
!(function (e, t) {
if (1 === e.delayLoadState || 0 === e.delayLoadState) {
if (e.material && !e.material.doNotSerialize)
if (e.material instanceof Ta.a) {
if (
((t.multiMaterials = t.multiMaterials || []),
(t.materials = t.materials || []),
!t.multiMaterials.some(function (t) {
return t.id === e.material.id;
}))
) {
t.multiMaterials.push(e.material.serialize());
for (
var n = function (e) {
e &&
(t.materials.some(function (t) {
return t.id === e.id;
}) ||
t.materials.push(e.serialize()));
},
i = 0,
r = e.material.subMaterials;
i < r.length;
i++
) {
n(r[i]);
}
}
} else
(t.materials = t.materials || []),
t.materials.some(function (t) {
return t.id === e.material.id;
}) || t.materials.push(e.material.serialize());
var o = e._geometry;
o &&
(t.geometries ||
((t.geometries = {}),
(t.geometries.boxes = []),
(t.geometries.spheres = []),
(t.geometries.cylinders = []),
(t.geometries.toruses = []),
(t.geometries.grounds = []),
(t.geometries.planes = []),
(t.geometries.torusKnots = []),
(t.geometries.vertexData = [])),
Bd(o, t.geometries)),
e.skeleton && !e.skeleton.doNotSerialize && ((t.skeletons = t.skeletons || []), t.skeletons.push(e.skeleton.serialize())),
(t.meshes = t.meshes || []),
t.meshes.push(Vd(e, t));
}
})(e, r);
}),
r
);
}),
e
);
})(),
Ud = n(45),
Hd = n(168),
Wd = (function () {
function e(t, n) {
if ((void 0 === n && (n = null), !e.IsSupported(t))) throw "Your browser does not support recording so far.";
var i = t.getRenderingCanvas();
if (!i) throw "The babylon engine must have a canvas to be recorded";
(this._canvas = i), (this._canvas.isRecording = !1), (this._options = Object(h.a)(Object(h.a)({}, e._defaultOptions), n));
var r = this._canvas.captureStream(this._options.fps);
if (this._options.audioTracks)
for (var o = 0, a = this._options.audioTracks; o < a.length; o++) {
var s = a[o];
r.addTrack(s);
}
(this._mediaRecorder = new MediaRecorder(r, { mimeType: this._options.mimeType })),
(this._mediaRecorder.ondataavailable = this._handleDataAvailable.bind(this)),
(this._mediaRecorder.onerror = this._handleError.bind(this)),
(this._mediaRecorder.onstop = this._handleStop.bind(this));
}
return (
(e.IsSupported = function (e) {
var t = e.getRenderingCanvas();
return !!t && "function" == typeof t.captureStream;
}),
Object.defineProperty(e.prototype, "isRecording", {
get: function () {
return !!this._canvas && this._canvas.isRecording;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.stopRecording = function () {
this._canvas && this._mediaRecorder && this.isRecording && ((this._canvas.isRecording = !1), this._mediaRecorder.stop());
}),
(e.prototype.startRecording = function (e, t) {
var n = this;
if ((void 0 === e && (e = "babylonjs.webm"), void 0 === t && (t = 7), !this._canvas || !this._mediaRecorder)) throw "Recorder has already been disposed";
if (this.isRecording) throw "Recording already in progress";
return (
t > 0 &&
setTimeout(function () {
n.stopRecording();
}, 1e3 * t),
(this._fileName = e),
(this._recordedChunks = []),
(this._resolve = null),
(this._reject = null),
(this._canvas.isRecording = !0),
this._mediaRecorder.start(this._options.recordChunckSize),
new Promise(function (e, t) {
(n._resolve = e), (n._reject = t);
})
);
}),
(e.prototype.dispose = function () {
(this._canvas = null), (this._mediaRecorder = null), (this._recordedChunks = []), (this._fileName = null), (this._resolve = null), (this._reject = null);
}),
(e.prototype._handleDataAvailable = function (e) {
e.data.size > 0 && this._recordedChunks.push(e.data);
}),
(e.prototype._handleError = function (e) {
if ((this.stopRecording(), !this._reject)) throw new e.error();
this._reject(e.error);
}),
(e.prototype._handleStop = function () {
this.stopRecording();
var e = new Blob(this._recordedChunks);
this._resolve && this._resolve(e), window.URL.createObjectURL(e), this._fileName && $e.b.Download(e, this._fileName);
}),
(e._defaultOptions = { mimeType: "video/webm", fps: 25, recordChunckSize: 3e3 }),
e
);
})(),
Xd = n(202),
Yd = (function () {
function e() {}
return (
(e.CreateScreenshot = function (t, n, i, r, o) {
void 0 === o && (o = "image/png");
var a = e._getScreenshotSize(t, n, i),
s = a.height,
c = a.width;
if (s && c) {
$e.b._ScreenshotCanvas || ($e.b._ScreenshotCanvas = document.createElement("canvas")), ($e.b._ScreenshotCanvas.width = c), ($e.b._ScreenshotCanvas.height = s);
var l = $e.b._ScreenshotCanvas.getContext("2d"),
u = t.getRenderWidth() / t.getRenderHeight(),
h = c,
d = h / u;
d > s && (h = (d = s) * u);
var p = Math.max(0, c - h) / 2,
f = Math.max(0, s - d) / 2,
m = t.getRenderingCanvas();
l && m && l.drawImage(m, p, f, h, d), $e.b.EncodeScreenshotCanvasData(r, o);
} else g.a.Error("Invalid 'size' parameter !");
}),
(e.CreateScreenshotAsync = function (t, n, i, r) {
return (
void 0 === r && (r = "image/png"),
new Promise(function (o, a) {
e.CreateScreenshot(
t,
n,
i,
function (e) {
void 0 !== e ? o(e) : a(new Error("Data is undefined"));
},
r
);
})
);
}),
(e.CreateScreenshotUsingRenderTarget = function (t, n, i, r, o, a, s, c, l) {
void 0 === o && (o = "image/png"), void 0 === a && (a = 1), void 0 === s && (s = !1), void 0 === l && (l = !1);
var u = e._getScreenshotSize(t, n, i),
h = u.height,
d = u.width,
p = { width: d, height: h };
if (h && d) {
var f = n.getScene(),
m = null;
f.activeCamera !== n && ((m = f.activeCamera), (f.activeCamera = n));
var b = t.getRenderingCanvas();
if (b) {
var _ = { width: b.width, height: b.height };
t.setSize(d, h), f.render();
var v = new mn.a("screenShot", p, f, !1, !1, 0, !1, ln.a.NEAREST_SAMPLINGMODE);
(v.renderList = null),
(v.samples = a),
(v.renderSprites = l),
v.onAfterRenderObservable.add(function () {
$e.b.DumpFramebuffer(d, h, t, r, o, c);
});
var y = function () {
f.incrementRenderId(), f.resetCachedMaterial(), v.render(!0), v.dispose(), m && (f.activeCamera = m), t.setSize(_.width, _.height), n.getProjectionMatrix(!0);
};
if (s) {
var C = new th("antialiasing", 1, f.activeCamera);
v.addPostProcess(C),
C.getEffect().isReady()
? y()
: (C.getEffect().onCompiled = function () {
y();
});
} else y();
} else g.a.Error("No rendering canvas found !");
} else g.a.Error("Invalid 'size' parameter !");
}),
(e.CreateScreenshotUsingRenderTargetAsync = function (t, n, i, r, o, a, s, c) {
return (
void 0 === r && (r = "image/png"),
void 0 === o && (o = 1),
void 0 === a && (a = !1),
void 0 === c && (c = !1),
new Promise(function (l, u) {
e.CreateScreenshotUsingRenderTarget(
t,
n,
i,
function (e) {
void 0 !== e ? l(e) : u(new Error("Data is undefined"));
},
r,
o,
a,
s,
c
);
})
);
}),
(e._getScreenshotSize = function (e, t, n) {
var i = 0,
r = 0;
if ("object" == typeof n) {
var o = n.precision ? Math.abs(n.precision) : 1;
n.width && n.height
? ((i = n.height * o), (r = n.width * o))
: n.width && !n.height
? ((r = n.width * o), (i = Math.round(r / e.getAspectRatio(t))))
: n.height && !n.width
? ((i = n.height * o), (r = Math.round(i * e.getAspectRatio(t))))
: ((r = Math.round(e.getRenderWidth() * o)), (i = Math.round(r / e.getAspectRatio(t))));
} else isNaN(n) || ((i = n), (r = n));
return r && (r = Math.floor(r)), i && (i = Math.floor(i)), { height: 0 | i, width: 0 | r };
}),
e
);
})();
($e.b.CreateScreenshot = Yd.CreateScreenshot),
($e.b.CreateScreenshotAsync = Yd.CreateScreenshotAsync),
($e.b.CreateScreenshotUsingRenderTarget = Yd.CreateScreenshotUsingRenderTarget),
($e.b.CreateScreenshotUsingRenderTargetAsync = Yd.CreateScreenshotUsingRenderTargetAsync),
(function (e) {
(e[(e.Checkbox = 0)] = "Checkbox"), (e[(e.Slider = 1)] = "Slider"), (e[(e.Vector3 = 2)] = "Vector3"), (e[(e.Quaternion = 3)] = "Quaternion"), (e[(e.Color3 = 4)] = "Color3"), (e[(e.String = 5)] = "String");
})(ld || (ld = {}));
var Kd = n(158),
Zd = n(197),
qd = n(181),
Qd = n(74),
Jd = n(163),
$d = (function (e) {
function t(n, i) {
void 0 === i && (i = {});
var r = e.call(this, n) || this;
return (
(r.options = i),
(r._direction = new a.e(0, 0, -1)),
(r._mat = new a.a()),
(r._onSelectEnabled = !1),
(r._origin = new a.e(0, 0, 0)),
(r.lastNativeXRHitResults = []),
(r.onHitTestResultObservable = new o.c()),
(r._onHitTestResults = function (e) {
var t = e.map(function (e) {
var t = a.a.FromArray(e.hitMatrix);
return (
r._xrSessionManager.scene.useRightHandedSystem || t.toggleModelMatrixHandInPlace(),
r.options.worldParentNode && t.multiplyToRef(r.options.worldParentNode.getWorldMatrix(), t),
{ xrHitResult: e, transformationMatrix: t }
);
});
(r.lastNativeXRHitResults = e), r.onHitTestResultObservable.notifyObservers(t);
}),
(r._onSelect = function (e) {
r._onSelectEnabled && t.XRHitTestWithSelectEvent(e, r._xrSessionManager.referenceSpace);
}),
r
);
}
return (
Object(h.d)(t, e),
(t.XRHitTestWithRay = function (e, t, n, i) {
return e.requestHitTest(t, n).then(function (e) {
var t =
i ||
function (e) {
return !!e.hitMatrix;
};
return e.filter(t);
});
}),
(t.XRHitTestWithSelectEvent = function (e, t) {
var n = e.frame.getPose(e.inputSource.targetRaySpace, t);
if (!n) return Promise.resolve([]);
var i = new XRRay(n.transform);
return this.XRHitTestWithRay(e.frame.session, i, t);
}),
(t.prototype.attach = function () {
return !!e.prototype.attach.call(this) && (this.options.testOnPointerDownOnly && this._xrSessionManager.session.addEventListener("select", this._onSelect, !1), !0);
}),
(t.prototype.detach = function () {
return !!e.prototype.detach.call(this) && ((this._onSelectEnabled = !1), this._xrSessionManager.session.removeEventListener("select", this._onSelect), !0);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onHitTestResultObservable.clear();
}),
(t.prototype._onXRFrame = function (e) {
if (this.attached && !this.options.testOnPointerDownOnly) {
var n = e.getViewerPose(this._xrSessionManager.referenceSpace);
if (n) {
a.a.FromArrayToRef(n.transform.matrix, 0, this._mat),
a.e.TransformCoordinatesFromFloatsToRef(0, 0, 0, this._mat, this._origin),
a.e.TransformCoordinatesFromFloatsToRef(0, 0, -1, this._mat, this._direction),
this._direction.subtractInPlace(this._origin),
this._direction.normalize();
var i = new XRRay({ x: this._origin.x, y: this._origin.y, z: this._origin.z, w: 0 }, { x: this._direction.x, y: this._direction.y, z: this._direction.z, w: 0 });
t.XRHitTestWithRay(this._xrSessionManager.session, i, this._xrSessionManager.referenceSpace).then(this._onHitTestResults);
}
}
}),
(t.Name = ao.HIT_TEST),
(t.Version = 1),
t
);
})(vo);
so.AddWebXRFeature(
$d.Name,
function (e, t) {
return function () {
return new $d(e, t);
};
},
$d.Version,
!0
);
var ep = 0,
tp = (function (e) {
function t(t, n) {
void 0 === n && (n = {});
var i = e.call(this, t) || this;
return (
(i._options = n),
(i._enabled = !1),
(i._lastFrameDetected = new Set()),
(i._onSelect = function (e) {
if (i._options.addAnchorOnSelect) {
var t = function (e) {
if (e.length) {
var t = e[0],
n = new XRRigidTransform(t.hitMatrix);
i.addAnchorAtRigidTransformation(n);
}
};
i._hitTestModule && !i._hitTestModule.options.testOnPointerDownOnly && t(i._hitTestModule.lastNativeXRHitResults), $d.XRHitTestWithSelectEvent(e, i._xrSessionManager.referenceSpace).then(t), i._planeDetector;
}
}),
(i._trackedAnchors = []),
(i.onAnchorAddedObservable = new o.c()),
(i.onAnchorRemovedObservable = new o.c()),
(i.onAnchorUpdatedObservable = new o.c()),
i
);
}
return (
Object(h.d)(t, e),
(t.prototype.addAnchorAtRigidTransformation = function (e, t) {
return (t || this._xrSessionManager.session).createAnchor(e, this._xrSessionManager.referenceSpace);
}),
(t.prototype.attach = function () {
return !!e.prototype.attach.call(this) && (this._options.addAnchorOnSelect && this._xrSessionManager.session.addEventListener("select", this._onSelect, !1), !0);
}),
(t.prototype.detach = function () {
return !!e.prototype.detach.call(this) && (this._xrSessionManager.session.removeEventListener("select", this._onSelect), !0);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onAnchorAddedObservable.clear(), this.onAnchorRemovedObservable.clear(), this.onAnchorUpdatedObservable.clear();
}),
(t.prototype.setHitTestModule = function (e) {
this._hitTestModule = e;
}),
(t.prototype.setPlaneDetector = function (e, t) {
void 0 === t && (t = !0), (this._planeDetector = e), (this._options.usePlaneDetection = t);
}),
(t.prototype._onXRFrame = function (e) {
var t = this;
if (this.attached && this._enabled && e) {
var n = e.trackedAnchors;
n &&
n.size &&
(this._trackedAnchors
.filter(function (e) {
return !n.has(e.xrAnchor);
})
.map(function (e) {
var n = t._trackedAnchors.indexOf(e);
t._trackedAnchors.splice(n, 1), t.onAnchorRemovedObservable.notifyObservers(e);
}),
n.forEach(function (n) {
if (t._lastFrameDetected.has(n)) {
if (n.lastChangedTime === t._xrSessionManager.currentTimestamp) {
var i = t._findIndexInAnchorArray(n),
r = t._trackedAnchors[i];
t._updateAnchorWithXRFrame(n, r, e), t.onAnchorUpdatedObservable.notifyObservers(r);
}
} else {
var o = { id: ep++, xrAnchor: n },
a = t._updateAnchorWithXRFrame(n, o, e);
t._trackedAnchors.push(a), t.onAnchorAddedObservable.notifyObservers(a);
}
}),
(this._lastFrameDetected = n));
}
}),
(t.prototype._findIndexInAnchorArray = function (e) {
for (var t = 0; t < this._trackedAnchors.length; ++t) if (this._trackedAnchors[t].xrAnchor === e) return t;
return -1;
}),
(t.prototype._updateAnchorWithXRFrame = function (e, t, n) {
var i = n.getPose(e.anchorSpace, this._xrSessionManager.referenceSpace);
if (i) {
var r = t.transformationMatrix || new a.a();
a.a.FromArrayToRef(i.transform.matrix, 0, r),
this._xrSessionManager.scene.useRightHandedSystem || r.toggleModelMatrixHandInPlace(),
(t.transformationMatrix = r),
this._options.worldParentNode && r.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), r);
}
return t;
}),
(t.Name = ao.ANCHOR_SYSTEM),
(t.Version = 1),
t
);
})(vo),
np = 0,
ip = (function (e) {
function t(t, n) {
void 0 === n && (n = {});
var i = e.call(this, t) || this;
return (
(i._options = n),
(i._detectedPlanes = []),
(i._enabled = !1),
(i._lastFrameDetected = new Set()),
(i.onPlaneAddedObservable = new o.c()),
(i.onPlaneRemovedObservable = new o.c()),
(i.onPlaneUpdatedObservable = new o.c()),
i._xrSessionManager.session
? i._init()
: i._xrSessionManager.onXRSessionInit.addOnce(function () {
i._init();
}),
i
);
}
return (
Object(h.d)(t, e),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onPlaneAddedObservable.clear(), this.onPlaneRemovedObservable.clear(), this.onPlaneUpdatedObservable.clear();
}),
(t.prototype._onXRFrame = function (e) {
var t = this;
if (this.attached && this._enabled && e) {
var n = e.worldInformation.detectedPlanes;
n &&
n.size &&
(this._detectedPlanes
.filter(function (e) {
return !n.has(e.xrPlane);
})
.map(function (e) {
var n = t._detectedPlanes.indexOf(e);
t._detectedPlanes.splice(n, 1), t.onPlaneRemovedObservable.notifyObservers(e);
}),
n.forEach(function (n) {
if (t._lastFrameDetected.has(n)) {
if (n.lastChangedTime === t._xrSessionManager.currentTimestamp) {
var i = t.findIndexInPlaneArray(n);
o = t._detectedPlanes[i];
t._updatePlaneWithXRPlane(n, o, e), t.onPlaneUpdatedObservable.notifyObservers(o);
}
} else {
var r = { id: np++, xrPlane: n, polygonDefinition: [] },
o = t._updatePlaneWithXRPlane(n, r, e);
t._detectedPlanes.push(o), t.onPlaneAddedObservable.notifyObservers(o);
}
}),
(this._lastFrameDetected = n));
}
}),
(t.prototype._init = function () {
this._xrSessionManager.session.updateWorldTrackingState &&
(this._xrSessionManager.session.updateWorldTrackingState({ planeDetectionState: { enabled: !0 } }), (this._enabled = !0), this._detectedPlanes.length && (this._detectedPlanes = []));
}),
(t.prototype._updatePlaneWithXRPlane = function (e, t, n) {
var i = this;
t.polygonDefinition = e.polygon.map(function (e) {
var t = i._xrSessionManager.scene.useRightHandedSystem ? 1 : -1;
return new a.e(e.x, e.y, e.z * t);
});
var r = n.getPose(e.planeSpace, this._xrSessionManager.referenceSpace);
if (r) {
var o = t.transformationMatrix || new a.a();
a.a.FromArrayToRef(r.transform.matrix, 0, o),
this._xrSessionManager.scene.useRightHandedSystem || o.toggleModelMatrixHandInPlace(),
(t.transformationMatrix = o),
this._options.worldParentNode && o.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), o);
}
return t;
}),
(t.prototype.findIndexInPlaneArray = function (e) {
for (var t = 0; t < this._detectedPlanes.length; ++t) if (this._detectedPlanes[t].xrPlane === e) return t;
return -1;
}),
(t.Name = ao.PLANE_DETECTION),
(t.Version = 1),
t
);
})(vo);
so.AddWebXRFeature(
ip.Name,
function (e, t) {
return function () {
return new ip(e, t);
};
},
ip.Version
);
var rp = (function (e) {
function t(t, n) {
void 0 === n && (n = {});
var i = e.call(this, t) || this;
return (i.options = n), (i.onBackgroundStateChangedObservable = new o.c()), i;
}
return (
Object(h.d)(t, e),
(t.prototype.attach = function () {
return this._setBackgroundState(!1), e.prototype.attach.call(this);
}),
(t.prototype.detach = function () {
return this._setBackgroundState(!0), e.prototype.detach.call(this);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this.onBackgroundStateChangedObservable.clear();
}),
(t.prototype._onXRFrame = function (e) {}),
(t.prototype._setBackgroundState = function (e) {
var t = this._xrSessionManager.scene;
if (!this.options.ignoreEnvironmentHelper)
if (this.options.environmentHelperRemovalFlags) {
if (this.options.environmentHelperRemovalFlags.skyBox) {
var n = t.getMeshByName("BackgroundSkybox");
n && n.setEnabled(e);
}
if (this.options.environmentHelperRemovalFlags.ground) {
var i = t.getMeshByName("BackgroundPlane");
i && i.setEnabled(e);
}
} else {
var r = t.getMeshByName("BackgroundHelper");
r && r.setEnabled(e);
}
this.options.backgroundMeshes &&
this.options.backgroundMeshes.forEach(function (t) {
return t.setEnabled(e);
}),
this.onBackgroundStateChangedObservable.notifyObservers(e);
}),
(t.Name = ao.BACKGROUND_REMOVER),
(t.Version = 1),
t
);
})(vo);
so.AddWebXRFeature(
rp.Name,
function (e, t) {
return function () {
return new rp(e, t);
};
},
rp.Version,
!0
);
var op = function () {},
ap = (function (e) {
function t(t, n) {
var i = e.call(this, t) || this;
return (
(i._options = n),
(i._attachController = function (e) {
if (!i._controllers[e.uniqueId])
if ((i._xrSessionManager.scene.isPhysicsEnabled() || g.a.Warn("physics engine not enabled, skipped. Please add this controller manually."), i._options.physicsProperties.useControllerMesh))
e.onMotionControllerInitObservable.addOnce(function (t) {
t.onModelLoadedObservable.addOnce(function () {
var n = new Ci(t.rootMesh, Ci.MeshImpostor, Object(h.a)({ mass: 0 }, i._options.physicsProperties)),
r = e.grip || e.pointer;
i._controllers[e.uniqueId] = { xrController: e, impostor: n, oldPos: r.position.clone(), oldRotation: r.rotationQuaternion.clone() };
});
});
else {
var t = i._options.physicsProperties.impostorType || Ci.SphereImpostor,
n = i._options.physicsProperties.impostorSize || 0.1,
r = mi.CreateSphere("impostor-mesh-" + e.uniqueId, { diameterX: "number" == typeof n ? n : n.width, diameterY: "number" == typeof n ? n : n.height, diameterZ: "number" == typeof n ? n : n.depth });
(r.isVisible = i._debugMode), (r.isPickable = !1), (r.rotationQuaternion = new a.b());
var o = e.grip || e.pointer;
r.position.copyFrom(o.position), r.rotationQuaternion.copyFrom(o.rotationQuaternion);
var s = new Ci(r, t, Object(h.a)({ mass: 0 }, i._options.physicsProperties));
i._controllers[e.uniqueId] = { xrController: e, impostor: s, impostorMesh: r };
}
}),
(i._controllers = {}),
(i._debugMode = !1),
(i._delta = 0),
(i._lastTimestamp = 0),
(i._tmpQuaternion = new a.b()),
(i._tmpVector = new a.e()),
i._options.physicsProperties || (i._options.physicsProperties = {}),
i
);
}
return (
Object(h.d)(t, e),
(t.prototype._enablePhysicsDebug = function () {
var e = this;
(this._debugMode = !0),
Object.keys(this._controllers).forEach(function (t) {
var n = e._controllers[t];
n.impostorMesh && (n.impostorMesh.isVisible = !0);
});
}),
(t.prototype.addController = function (e) {
this._attachController(e);
}),
(t.prototype.attach = function () {
var t = this;
if (!e.prototype.attach.call(this)) return !1;
if (!this._options.xrInput) return !0;
if (
(this._options.xrInput.controllers.forEach(this._attachController),
this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController),
this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, function (e) {
t._detachController(e.uniqueId);
}),
this._options.enableHeadsetImpostor)
) {
var n = this._options.headsetImpostorParams || { impostorType: Ci.SphereImpostor, restitution: 0.8, impostorSize: 0.3 },
i = n.impostorSize || 0.3;
(this._headsetMesh = mi.CreateSphere("headset-mesh", { diameterX: "number" == typeof i ? i : i.width, diameterY: "number" == typeof i ? i : i.height, diameterZ: "number" == typeof i ? i : i.depth })),
(this._headsetMesh.rotationQuaternion = new a.b()),
(this._headsetMesh.isVisible = !1),
(this._headsetImpostor = new Ci(this._headsetMesh, n.impostorType, Object(h.a)({ mass: 0 }, n)));
}
return !0;
}),
(t.prototype.detach = function () {
var t = this;
return (
!!e.prototype.detach.call(this) &&
(Object.keys(this._controllers).forEach(function (e) {
t._detachController(e);
}),
this._headsetMesh && this._headsetMesh.dispose(),
!0)
);
}),
(t.prototype.getHeadsetImpostor = function () {
return this._headsetImpostor;
}),
(t.prototype.getImpostorForController = function (e) {
var t = "string" == typeof e ? e : e.uniqueId;
return this._controllers[t] ? this._controllers[t].impostor : null;
}),
(t.prototype.setPhysicsProperties = function (e) {
this._options.physicsProperties = Object(h.a)(Object(h.a)({}, this._options.physicsProperties), e);
}),
(t.prototype._onXRFrame = function (e) {
var t = this;
(this._delta = this._xrSessionManager.currentTimestamp - this._lastTimestamp),
(this._lastTimestamp = this._xrSessionManager.currentTimestamp),
this._headsetMesh && (this._headsetMesh.position.copyFrom(this._options.xrInput.xrCamera.position), this._headsetMesh.rotationQuaternion.copyFrom(this._options.xrInput.xrCamera.rotationQuaternion)),
Object.keys(this._controllers).forEach(function (e) {
var n = t._controllers[e],
i = n.xrController.grip || n.xrController.pointer,
r = n.oldPos || n.impostorMesh.position,
o = n.oldRotation || n.impostorMesh.rotationQuaternion;
if ((i.position.subtractToRef(r, t._tmpVector), t._tmpVector.scaleInPlace(1e3 / t._delta), n.impostor.setLinearVelocity(t._tmpVector), t._debugMode, !o.equalsWithEpsilon(i.rotationQuaternion))) {
o.conjugateInPlace().multiplyToRef(i.rotationQuaternion, t._tmpQuaternion);
var a = Math.sqrt(t._tmpQuaternion.x * t._tmpQuaternion.x + t._tmpQuaternion.y * t._tmpQuaternion.y + t._tmpQuaternion.z * t._tmpQuaternion.z);
if ((t._tmpVector.set(t._tmpQuaternion.x, t._tmpQuaternion.y, t._tmpQuaternion.z), a < 0.001)) t._tmpVector.scaleInPlace(2);
else {
var s = 2 * Math.atan2(a, t._tmpQuaternion.w);
t._tmpVector.scaleInPlace(s / (a * (t._delta / 1e3)));
}
n.impostor.setAngularVelocity(t._tmpVector), t._debugMode;
}
r.copyFrom(i.position), o.copyFrom(i.rotationQuaternion);
});
}),
(t.prototype._detachController = function (e) {
var t = this._controllers[e];
t && (t.impostorMesh && t.impostorMesh.dispose(), delete this._controllers[e]);
}),
(t.Name = ao.PHYSICS_CONTROLLERS),
(t.Version = 1),
t
);
})(vo);
so.AddWebXRFeature(
ap.Name,
function (e, t) {
return function () {
return new ap(e, t);
};
},
ap.Version,
!0
);
var sp = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, cp["left-right"], n, i) || this;
return (
(r._mapping = {
defaultButton: { valueNodeName: "VALUE", unpressedNodeName: "UNPRESSED", pressedNodeName: "PRESSED" },
defaultAxis: { valueNodeName: "VALUE", minNodeName: "MIN", maxNodeName: "MAX" },
buttons: {
"xr-standard-trigger": { rootNodeName: "SELECT", componentProperty: "button", states: ["default", "touched", "pressed"] },
"xr-standard-squeeze": { rootNodeName: "GRASP", componentProperty: "state", states: ["pressed"] },
"xr-standard-touchpad": { rootNodeName: "TOUCHPAD_PRESS", labelAnchorNodeName: "squeeze-label", touchPointNodeName: "TOUCH" },
"xr-standard-thumbstick": { rootNodeName: "THUMBSTICK_PRESS", componentProperty: "state", states: ["pressed"] },
},
axes: {
"xr-standard-touchpad": { "x-axis": { rootNodeName: "TOUCHPAD_TOUCH_X" }, "y-axis": { rootNodeName: "TOUCHPAD_TOUCH_Y" } },
"xr-standard-thumbstick": { "x-axis": { rootNodeName: "THUMBSTICK_X" }, "y-axis": { rootNodeName: "THUMBSTICK_Y" } },
},
}),
(r.profileId = "microsoft-mixed-reality"),
r
);
}
return (
Object(h.d)(t, e),
(t.prototype._getFilenameAndPath = function () {
return { filename: "left" === this.handness ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME, path: t.MODEL_BASE_URL + "default/" };
}),
(t.prototype._getModelLoadingConstraints = function () {
var e = $i.a.IsPluginForExtensionAvailable(".glb");
return e || g.a.Warn("glTF / glb loaded was not registered, using generic controller instead"), e;
}),
(t.prototype._processLoadedModel = function (e) {
var t = this;
this.rootMesh &&
(this.getComponentIds().forEach(function (e, n) {
if (!t.disableAnimation && e && t.rootMesh) {
var i = t._mapping.buttons[e],
r = i.rootNodeName;
if (!r) return void g.a.Log("Skipping unknown button at index: " + n + " with mapped name: " + e);
var o = t._getChildByName(t.rootMesh, r);
if (!o) return void g.a.Warn("Missing button mesh with name: " + r);
if (
((i.valueMesh = t._getImmediateChildByName(o, t._mapping.defaultButton.valueNodeName)),
(i.pressedMesh = t._getImmediateChildByName(o, t._mapping.defaultButton.pressedNodeName)),
(i.unpressedMesh = t._getImmediateChildByName(o, t._mapping.defaultButton.unpressedNodeName)),
i.valueMesh && i.pressedMesh && i.unpressedMesh)
) {
var a = t.getComponent(e);
a &&
a.onButtonStateChangedObservable.add(
function (e) {
t._lerpTransform(i, e.value);
},
void 0,
!0
);
} else g.a.Warn("Missing button submesh under mesh with name: " + r);
}
}),
this.getComponentIds().forEach(function (e, n) {
var i = t.getComponent(e);
i.isAxes() &&
["x-axis", "y-axis"].forEach(function (n) {
if (t.rootMesh) {
var r = t._mapping.axes[e][n],
o = t._getChildByName(t.rootMesh, r.rootNodeName);
o
? ((r.valueMesh = t._getImmediateChildByName(o, t._mapping.defaultAxis.valueNodeName)),
(r.minMesh = t._getImmediateChildByName(o, t._mapping.defaultAxis.minNodeName)),
(r.maxMesh = t._getImmediateChildByName(o, t._mapping.defaultAxis.maxNodeName)),
r.valueMesh && r.minMesh && r.maxMesh
? i &&
i.onAxisValueChangedObservable.add(
function (e) {
var i = "x-axis" === n ? e.x : e.y;
t._lerpTransform(r, i, !0);
},
void 0,
!0
)
: g.a.Warn("Missing axis submesh under mesh with name: " + r.rootNodeName))
: g.a.Warn("Missing axis mesh with name: " + r.rootNodeName);
}
});
}));
}),
(t.prototype._setRootMesh = function (e) {
var t;
(this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)), (this.rootMesh.isPickable = !1);
for (var n = 0; n < e.length; n++) {
var i = e[n];
(i.isPickable = !1), i.parent || (t = i);
}
t && t.setParent(this.rootMesh), (this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0));
}),
(t.prototype._updateModel = function () {}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/microsoft/"),
(t.MODEL_LEFT_FILENAME = "left.glb"),
(t.MODEL_RIGHT_FILENAME = "right.glb"),
t
);
})(uo);
mo.RegisterController("windows-mixed-reality", function (e, t) {
return new sp(t, e.gamepad, e.handedness);
});
var cp = {
left: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": {
type: "trigger",
gamepadIndices: { button: 0 },
rootNodeName: "xr_standard_trigger",
visualResponses: {
xr_standard_trigger_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_trigger_pressed_value",
minNodeName: "xr_standard_trigger_pressed_min",
maxNodeName: "xr_standard_trigger_pressed_max",
},
},
},
"xr-standard-squeeze": {
type: "squeeze",
gamepadIndices: { button: 1 },
rootNodeName: "xr_standard_squeeze",
visualResponses: {
xr_standard_squeeze_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_squeeze_pressed_value",
minNodeName: "xr_standard_squeeze_pressed_min",
maxNodeName: "xr_standard_squeeze_pressed_max",
},
},
},
"xr-standard-touchpad": {
type: "touchpad",
gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 },
rootNodeName: "xr_standard_touchpad",
visualResponses: {
xr_standard_touchpad_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_pressed_value",
minNodeName: "xr_standard_touchpad_pressed_min",
maxNodeName: "xr_standard_touchpad_pressed_max",
},
xr_standard_touchpad_xaxis_pressed: {
componentProperty: "xAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_xaxis_pressed_value",
minNodeName: "xr_standard_touchpad_xaxis_pressed_min",
maxNodeName: "xr_standard_touchpad_xaxis_pressed_max",
},
xr_standard_touchpad_yaxis_pressed: {
componentProperty: "yAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_yaxis_pressed_value",
minNodeName: "xr_standard_touchpad_yaxis_pressed_min",
maxNodeName: "xr_standard_touchpad_yaxis_pressed_max",
},
xr_standard_touchpad_xaxis_touched: {
componentProperty: "xAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_xaxis_touched_value",
minNodeName: "xr_standard_touchpad_xaxis_touched_min",
maxNodeName: "xr_standard_touchpad_xaxis_touched_max",
},
xr_standard_touchpad_yaxis_touched: {
componentProperty: "yAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_yaxis_touched_value",
minNodeName: "xr_standard_touchpad_yaxis_touched_min",
maxNodeName: "xr_standard_touchpad_yaxis_touched_max",
},
xr_standard_touchpad_axes_touched: { componentProperty: "state", states: ["touched", "pressed"], valueNodeProperty: "visibility", valueNodeName: "xr_standard_touchpad_axes_touched_value" },
},
touchPointNodeName: "xr_standard_touchpad_axes_touched_value",
},
"xr-standard-thumbstick": {
type: "thumbstick",
gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 },
rootNodeName: "xr_standard_thumbstick",
visualResponses: {
xr_standard_thumbstick_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_thumbstick_pressed_value",
minNodeName: "xr_standard_thumbstick_pressed_min",
maxNodeName: "xr_standard_thumbstick_pressed_max",
},
xr_standard_thumbstick_xaxis_pressed: {
componentProperty: "xAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_thumbstick_xaxis_pressed_value",
minNodeName: "xr_standard_thumbstick_xaxis_pressed_min",
maxNodeName: "xr_standard_thumbstick_xaxis_pressed_max",
},
xr_standard_thumbstick_yaxis_pressed: {
componentProperty: "yAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_thumbstick_yaxis_pressed_value",
minNodeName: "xr_standard_thumbstick_yaxis_pressed_min",
maxNodeName: "xr_standard_thumbstick_yaxis_pressed_max",
},
},
},
},
gamepadMapping: "xr-standard",
rootNodeName: "microsoft-mixed-reality-left",
assetPath: "left.glb",
},
right: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": {
type: "trigger",
gamepadIndices: { button: 0 },
rootNodeName: "xr_standard_trigger",
visualResponses: {
xr_standard_trigger_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_trigger_pressed_value",
minNodeName: "xr_standard_trigger_pressed_min",
maxNodeName: "xr_standard_trigger_pressed_max",
},
},
},
"xr-standard-squeeze": {
type: "squeeze",
gamepadIndices: { button: 1 },
rootNodeName: "xr_standard_squeeze",
visualResponses: {
xr_standard_squeeze_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_squeeze_pressed_value",
minNodeName: "xr_standard_squeeze_pressed_min",
maxNodeName: "xr_standard_squeeze_pressed_max",
},
},
},
"xr-standard-touchpad": {
type: "touchpad",
gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 },
rootNodeName: "xr_standard_touchpad",
visualResponses: {
xr_standard_touchpad_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_pressed_value",
minNodeName: "xr_standard_touchpad_pressed_min",
maxNodeName: "xr_standard_touchpad_pressed_max",
},
xr_standard_touchpad_xaxis_pressed: {
componentProperty: "xAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_xaxis_pressed_value",
minNodeName: "xr_standard_touchpad_xaxis_pressed_min",
maxNodeName: "xr_standard_touchpad_xaxis_pressed_max",
},
xr_standard_touchpad_yaxis_pressed: {
componentProperty: "yAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_yaxis_pressed_value",
minNodeName: "xr_standard_touchpad_yaxis_pressed_min",
maxNodeName: "xr_standard_touchpad_yaxis_pressed_max",
},
xr_standard_touchpad_xaxis_touched: {
componentProperty: "xAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_xaxis_touched_value",
minNodeName: "xr_standard_touchpad_xaxis_touched_min",
maxNodeName: "xr_standard_touchpad_xaxis_touched_max",
},
xr_standard_touchpad_yaxis_touched: {
componentProperty: "yAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_touchpad_yaxis_touched_value",
minNodeName: "xr_standard_touchpad_yaxis_touched_min",
maxNodeName: "xr_standard_touchpad_yaxis_touched_max",
},
xr_standard_touchpad_axes_touched: { componentProperty: "state", states: ["touched", "pressed"], valueNodeProperty: "visibility", valueNodeName: "xr_standard_touchpad_axes_touched_value" },
},
touchPointNodeName: "xr_standard_touchpad_axes_touched_value",
},
"xr-standard-thumbstick": {
type: "thumbstick",
gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 },
rootNodeName: "xr_standard_thumbstick",
visualResponses: {
xr_standard_thumbstick_pressed: {
componentProperty: "button",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_thumbstick_pressed_value",
minNodeName: "xr_standard_thumbstick_pressed_min",
maxNodeName: "xr_standard_thumbstick_pressed_max",
},
xr_standard_thumbstick_xaxis_pressed: {
componentProperty: "xAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_thumbstick_xaxis_pressed_value",
minNodeName: "xr_standard_thumbstick_xaxis_pressed_min",
maxNodeName: "xr_standard_thumbstick_xaxis_pressed_max",
},
xr_standard_thumbstick_yaxis_pressed: {
componentProperty: "yAxis",
states: ["default", "touched", "pressed"],
valueNodeProperty: "transform",
valueNodeName: "xr_standard_thumbstick_yaxis_pressed_value",
minNodeName: "xr_standard_thumbstick_yaxis_pressed_min",
maxNodeName: "xr_standard_thumbstick_yaxis_pressed_max",
},
},
},
},
gamepadMapping: "xr-standard",
rootNodeName: "microsoft-mixed-reality-right",
assetPath: "right.glb",
},
},
lp = (function (e) {
function t(t, n, i, r, o) {
void 0 === r && (r = !1), void 0 === o && (o = !1);
var a = e.call(this, t, up[i], n, i) || this;
return (a._forceLegacyControllers = o), (a.profileId = "oculus-touch"), a;
}
return (
Object(h.d)(t, e),
(t.prototype._getFilenameAndPath = function () {
return { filename: "left" === this.handness ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME, path: this._isQuest() ? t.QUEST_MODEL_BASE_URL : t.MODEL_BASE_URL };
}),
(t.prototype._getModelLoadingConstraints = function () {
return !0;
}),
(t.prototype._processLoadedModel = function (e) {
var t = this,
n = this._isQuest(),
i = "right" === this.handness ? -1 : 1;
this.getComponentIds().forEach(function (e) {
var r = e && t.getComponent(e);
r &&
r.onButtonStateChangedObservable.add(
function (r) {
if (t.rootMesh && !t.disableAnimation)
switch (e) {
case "xr-standard-trigger":
return void (
n ||
((t._modelRootNode.getChildren()[3].rotation.x = 0.2 * -r.value),
(t._modelRootNode.getChildren()[3].position.y = 0.005 * -r.value),
(t._modelRootNode.getChildren()[3].position.z = 0.005 * -r.value))
);
case "xr-standard-squeeze":
return void (n || (t._modelRootNode.getChildren()[4].position.x = i * r.value * 0.0035));
case "xr-standard-thumbstick":
return;
case "a-button":
case "x-button":
return void (n || (r.pressed ? (t._modelRootNode.getChildren()[1].position.y = -0.001) : (t._modelRootNode.getChildren()[1].position.y = 0)));
case "b-button":
case "y-button":
return void (n || (r.pressed ? (t._modelRootNode.getChildren()[2].position.y = -0.001) : (t._modelRootNode.getChildren()[2].position.y = 0)));
}
},
void 0,
!0
);
});
}),
(t.prototype._setRootMesh = function (e) {
(this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)),
(this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0)),
e.forEach(function (e) {
e.isPickable = !1;
}),
this._isQuest() ? (this._modelRootNode = e[0]) : ((this._modelRootNode = e[1]), (this.rootMesh.position.y = 0.034), (this.rootMesh.position.z = 0.052)),
(this._modelRootNode.parent = this.rootMesh);
}),
(t.prototype._updateModel = function () {}),
(t.prototype._isQuest = function () {
return !!navigator.userAgent.match(/Quest/gi) && !this._forceLegacyControllers;
}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/oculus/"),
(t.MODEL_LEFT_FILENAME = "left.babylon"),
(t.MODEL_RIGHT_FILENAME = "right.babylon"),
(t.QUEST_MODEL_BASE_URL = "https://controllers.babylonjs.com/oculusQuest/"),
t
);
})(uo);
mo.RegisterController("oculus-touch", function (e, t) {
return new lp(t, e.gamepad, e.handedness);
}),
mo.RegisterController("oculus-touch-legacy", function (e, t) {
return new lp(t, e.gamepad, e.handedness, !0);
});
var up = {
left: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} },
"xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} },
"xr-standard-thumbstick": { type: "thumbstick", gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 }, rootNodeName: "xr_standard_thumbstick", visualResponses: {} },
"x-button": { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "x_button", visualResponses: {} },
"y-button": { type: "button", gamepadIndices: { button: 5 }, rootNodeName: "y_button", visualResponses: {} },
thumbrest: { type: "button", gamepadIndices: { button: 6 }, rootNodeName: "thumbrest", visualResponses: {} },
},
gamepadMapping: "xr-standard",
rootNodeName: "oculus-touch-v2-left",
assetPath: "left.glb",
},
right: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} },
"xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} },
"xr-standard-thumbstick": { type: "thumbstick", gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 }, rootNodeName: "xr_standard_thumbstick", visualResponses: {} },
"a-button": { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "a_button", visualResponses: {} },
"b-button": { type: "button", gamepadIndices: { button: 5 }, rootNodeName: "b_button", visualResponses: {} },
thumbrest: { type: "button", gamepadIndices: { button: 6 }, rootNodeName: "thumbrest", visualResponses: {} },
},
gamepadMapping: "xr-standard",
rootNodeName: "oculus-touch-v2-right",
assetPath: "right.glb",
},
},
hp = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, dp[i], n, i) || this;
return (r.profileId = "htc-vive"), r;
}
return (
Object(h.d)(t, e),
(t.prototype._getFilenameAndPath = function () {
return { filename: t.MODEL_FILENAME, path: t.MODEL_BASE_URL };
}),
(t.prototype._getModelLoadingConstraints = function () {
return !0;
}),
(t.prototype._processLoadedModel = function (e) {
var t = this;
this.getComponentIds().forEach(function (e) {
var n = e && t.getComponent(e);
n &&
n.onButtonStateChangedObservable.add(
function (n) {
if (t.rootMesh && !t.disableAnimation)
switch (e) {
case "xr-standard-trigger":
return void (t._modelRootNode.getChildren()[6].rotation.x = 0.15 * -n.value);
case "xr-standard-touchpad":
case "xr-standard-squeeze":
return;
}
},
void 0,
!0
);
});
}),
(t.prototype._setRootMesh = function (e) {
(this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)),
e.forEach(function (e) {
e.isPickable = !1;
}),
(this._modelRootNode = e[1]),
(this._modelRootNode.parent = this.rootMesh),
(this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0));
}),
(t.prototype._updateModel = function () {}),
(t.MODEL_BASE_URL = "https://controllers.babylonjs.com/vive/"),
(t.MODEL_FILENAME = "wand.babylon"),
t
);
})(uo);
mo.RegisterController("htc-vive", function (e, t) {
return new hp(t, e.gamepad, e.handedness);
});
var dp = {
left: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} },
"xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} },
"xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: {} },
menu: { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "menu", visualResponses: {} },
},
gamepadMapping: "xr-standard",
rootNodeName: "htc_vive_none",
assetPath: "none.glb",
},
right: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} },
"xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} },
"xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: {} },
menu: { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "menu", visualResponses: {} },
},
gamepadMapping: "xr-standard",
rootNodeName: "htc_vive_none",
assetPath: "none.glb",
},
none: {
selectComponentId: "xr-standard-trigger",
components: {
"xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} },
"xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} },
"xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: {} },
menu: { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "menu", visualResponses: {} },
},
gamepadMapping: "xr-standard",
rootNodeName: "htc-vive-none",
assetPath: "none.glb",
},
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return h;
});
var i = n(58),
r = n(1),
o = n(148),
a = n(152),
s = { min: 0, max: 0 },
c = { min: 0, max: 0 },
l = function (e, t, n) {
var i = r.e.Dot(t.centerWorld, e),
o = Math.abs(r.e.Dot(t.directions[0], e)) * t.extendSize.x + Math.abs(r.e.Dot(t.directions[1], e)) * t.extendSize.y + Math.abs(r.e.Dot(t.directions[2], e)) * t.extendSize.z;
(n.min = i - o), (n.max = i + o);
},
u = function (e, t, n) {
return l(e, t, s), l(e, n, c), !(s.min > c.max || c.min > s.max);
},
h = (function () {
function e(e, t, n) {
(this._isLocked = !1), (this.boundingBox = new o.a(e, t, n)), (this.boundingSphere = new a.a(e, t, n));
}
return (
(e.prototype.reConstruct = function (e, t, n) {
this.boundingBox.reConstruct(e, t, n), this.boundingSphere.reConstruct(e, t, n);
}),
Object.defineProperty(e.prototype, "minimum", {
get: function () {
return this.boundingBox.minimum;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "maximum", {
get: function () {
return this.boundingBox.maximum;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isLocked", {
get: function () {
return this._isLocked;
},
set: function (e) {
this._isLocked = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.update = function (e) {
this._isLocked || (this.boundingBox._update(e), this.boundingSphere._update(e));
}),
(e.prototype.centerOn = function (t, n) {
var i = e.TmpVector3[0].copyFrom(t).subtractInPlace(n),
r = e.TmpVector3[1].copyFrom(t).addInPlace(n);
return this.boundingBox.reConstruct(i, r, this.boundingBox.getWorldMatrix()), this.boundingSphere.reConstruct(i, r, this.boundingBox.getWorldMatrix()), this;
}),
(e.prototype.scale = function (e) {
return this.boundingBox.scale(e), this.boundingSphere.scale(e), this;
}),
(e.prototype.isInFrustum = function (e, t) {
return void 0 === t && (t = 0), !((2 !== t && 3 !== t) || !this.boundingSphere.isCenterInFrustum(e)) || (!!this.boundingSphere.isInFrustum(e) && (!(1 !== t && 3 !== t) || this.boundingBox.isInFrustum(e)));
}),
Object.defineProperty(e.prototype, "diagonalLength", {
get: function () {
var t = this.boundingBox;
return t.maximumWorld.subtractToRef(t.minimumWorld, e.TmpVector3[0]).length();
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.isCompletelyInFrustum = function (e) {
return this.boundingBox.isCompletelyInFrustum(e);
}),
(e.prototype._checkCollision = function (e) {
return e._canDoCollision(this.boundingSphere.centerWorld, this.boundingSphere.radiusWorld, this.boundingBox.minimumWorld, this.boundingBox.maximumWorld);
}),
(e.prototype.intersectsPoint = function (e) {
return !!this.boundingSphere.centerWorld && !!this.boundingSphere.intersectsPoint(e) && !!this.boundingBox.intersectsPoint(e);
}),
(e.prototype.intersects = function (e, t) {
if (!a.a.Intersects(this.boundingSphere, e.boundingSphere)) return !1;
if (!o.a.Intersects(this.boundingBox, e.boundingBox)) return !1;
if (!t) return !0;
var n = this.boundingBox,
i = e.boundingBox;
return (
!!u(n.directions[0], n, i) &&
!!u(n.directions[1], n, i) &&
!!u(n.directions[2], n, i) &&
!!u(i.directions[0], n, i) &&
!!u(i.directions[1], n, i) &&
!!u(i.directions[2], n, i) &&
!!u(r.e.Cross(n.directions[0], i.directions[0]), n, i) &&
!!u(r.e.Cross(n.directions[0], i.directions[1]), n, i) &&
!!u(r.e.Cross(n.directions[0], i.directions[2]), n, i) &&
!!u(r.e.Cross(n.directions[1], i.directions[0]), n, i) &&
!!u(r.e.Cross(n.directions[1], i.directions[1]), n, i) &&
!!u(r.e.Cross(n.directions[1], i.directions[2]), n, i) &&
!!u(r.e.Cross(n.directions[2], i.directions[0]), n, i) &&
!!u(r.e.Cross(n.directions[2], i.directions[1]), n, i) &&
!!u(r.e.Cross(n.directions[2], i.directions[2]), n, i)
);
}),
(e.TmpVector3 = i.a.BuildArray(2, r.e.Zero)),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e(e, t, n, i, r, o) {
(this.source = e), (this.pointerX = t), (this.pointerY = n), (this.meshUnderPointer = i), (this.sourceEvent = r), (this.additionalData = o);
}
return (
(e.CreateNew = function (t, n, i) {
var r = t.getScene();
return new e(t, r.pointerX, r.pointerY, r.meshUnderPointer || t, n, i);
}),
(e.CreateNewFromSprite = function (t, n, i, r) {
return new e(t, n.pointerX, n.pointerY, n.meshUnderPointer, i, r);
}),
(e.CreateNewFromScene = function (t, n) {
return new e(null, t.pointerX, t.pointerY, t.meshUnderPointer, n);
}),
(e.CreateNewFromPrimitive = function (t, n, i, r) {
return new e(t, n.x, n.y, null, i, r);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i,
r = function () {
return void 0 === i && (i = Boolean(window && document && document.all && !window.atob)), i;
},
o = (function () {
var e = {};
return function (t) {
if (void 0 === e[t]) {
var n = document.querySelector(t);
if (window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement)
try {
n = n.contentDocument.head;
} catch (e) {
n = null;
}
e[t] = n;
}
return e[t];
};
})(),
a = [];
function s(e) {
for (var t = -1, n = 0; n < a.length; n++)
if (a[n].identifier === e) {
t = n;
break;
}
return t;
}
function c(e, t) {
for (var n = {}, i = [], r = 0; r < e.length; r++) {
var o = e[r],
c = t.base ? o[0] + t.base : o[0],
l = n[c] || 0,
u = "".concat(c, " ").concat(l);
n[c] = l + 1;
var h = s(u),
d = { css: o[1], media: o[2], sourceMap: o[3] };
-1 !== h ? (a[h].references++, a[h].updater(d)) : a.push({ identifier: u, updater: g(d, t), references: 1 }), i.push(u);
}
return i;
}
function l(e) {
var t = document.createElement("style"),
i = e.attributes || {};
if (void 0 === i.nonce) {
var r = n.nc;
r && (i.nonce = r);
}
if (
(Object.keys(i).forEach(function (e) {
t.setAttribute(e, i[e]);
}),
"function" == typeof e.insert)
)
e.insert(t);
else {
var a = o(e.insert || "head");
if (!a) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
a.appendChild(t);
}
return t;
}
var u,
h =
((u = []),
function (e, t) {
return (u[e] = t), u.filter(Boolean).join("\n");
});
function d(e, t, n, i) {
var r = n ? "" : i.media ? "@media ".concat(i.media, " {").concat(i.css, "}") : i.css;
if (e.styleSheet) e.styleSheet.cssText = h(t, r);
else {
var o = document.createTextNode(r),
a = e.childNodes;
a[t] && e.removeChild(a[t]), a.length ? e.insertBefore(o, a[t]) : e.appendChild(o);
}
}
function p(e, t, n) {
var i = n.css,
r = n.media,
o = n.sourceMap;
if ((r ? e.setAttribute("media", r) : e.removeAttribute("media"), o && btoa && (i += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))), " */")), e.styleSheet))
e.styleSheet.cssText = i;
else {
for (; e.firstChild; ) e.removeChild(e.firstChild);
e.appendChild(document.createTextNode(i));
}
}
var f = null,
m = 0;
function g(e, t) {
var n, i, r;
if (t.singleton) {
var o = m++;
(n = f || (f = l(t))), (i = d.bind(null, n, o, !1)), (r = d.bind(null, n, o, !0));
} else
(n = l(t)),
(i = p.bind(null, n, t)),
(r = function () {
!(function (e) {
if (null === e.parentNode) return !1;
e.parentNode.removeChild(e);
})(n);
});
return (
i(e),
function (t) {
if (t) {
if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return;
i((e = t));
} else r();
}
);
}
e.exports = function (e, t) {
(t = t || {}).singleton || "boolean" == typeof t.singleton || (t.singleton = r());
var n = c((e = e || []), t);
return function (e) {
if (((e = e || []), "[object Array]" === Object.prototype.toString.call(e))) {
for (var i = 0; i < n.length; i++) {
var r = s(n[i]);
a[r].references--;
}
for (var o = c(e, t), l = 0; l < n.length; l++) {
var u = s(n[l]);
0 === a[u].references && (a[u].updater(), a.splice(u, 1));
}
n = o;
}
};
};
},
function (e, t, n) {
"use strict";
e.exports = function (e) {
var t = [];
return (
(t.toString = function () {
return this.map(function (t) {
var n = (function (e, t) {
var n = e[1] || "",
i = e[3];
if (!i) return n;
if (t && "function" == typeof btoa) {
var r = ((a = i), (s = btoa(unescape(encodeURIComponent(JSON.stringify(a))))), (c = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s)), "/*# ".concat(c, " */")),
o = i.sources.map(function (e) {
return "/*# sourceURL=".concat(i.sourceRoot || "").concat(e, " */");
});
return [n].concat(o).concat([r]).join("\n");
}
var a, s, c;
return [n].join("\n");
})(t, e);
return t[2] ? "@media ".concat(t[2], " {").concat(n, "}") : n;
}).join("");
}),
(t.i = function (e, n, i) {
"string" == typeof e && (e = [[null, e, ""]]);
var r = {};
if (i)
for (var o = 0; o < this.length; o++) {
var a = this[o][0];
null != a && (r[a] = !0);
}
for (var s = 0; s < e.length; s++) {
var c = [].concat(e[s]);
(i && r[c[0]]) || (n && (c[2] ? (c[2] = "".concat(n, " and ").concat(c[2])) : (c[2] = n)), t.push(c));
}
}),
t
);
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(14),
s = n(102),
c = n(120),
l = (function (e) {
function t(t, n, i, r) {
void 0 === r && (r = !0);
var s = e.call(this, t, n, i, r) || this;
return (
(s.ellipsoid = new o.e(0.5, 1, 0.5)),
(s.ellipsoidOffset = new o.e(0, 0, 0)),
(s.checkCollisions = !1),
(s.applyGravity = !1),
(s._needMoveForGravity = !1),
(s._oldPosition = o.e.Zero()),
(s._diffPosition = o.e.Zero()),
(s._newPosition = o.e.Zero()),
(s._collisionMask = -1),
(s._onCollisionPositionChange = function (e, t, n) {
void 0 === n && (n = null);
var i;
(i = t),
s._newPosition.copyFrom(i),
s._newPosition.subtractToRef(s._oldPosition, s._diffPosition),
s._diffPosition.length() > a.a.CollisionsEpsilon && (s.position.addInPlace(s._diffPosition), s.onCollide && n && s.onCollide(n));
}),
(s.inputs = new c.a(s)),
s.inputs.addKeyboard().addMouse(),
s
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "angularSensibility", {
get: function () {
var e = this.inputs.attached.mouse;
return e ? e.angularSensibility : 0;
},
set: function (e) {
var t = this.inputs.attached.mouse;
t && (t.angularSensibility = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysUp", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysUp : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysUp = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysDown", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysDown : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysDown = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysLeft", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysLeft : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysLeft = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "keysRight", {
get: function () {
var e = this.inputs.attached.keyboard;
return e ? e.keysRight : [];
},
set: function (e) {
var t = this.inputs.attached.keyboard;
t && (t.keysRight = e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.attachControl = function (e, t) {
this.inputs.attachElement(e, t);
}),
(t.prototype.detachControl = function (e) {
this.inputs.detachElement(e), (this.cameraDirection = new o.e(0, 0, 0)), (this.cameraRotation = new o.d(0, 0));
}),
Object.defineProperty(t.prototype, "collisionMask", {
get: function () {
return this._collisionMask;
},
set: function (e) {
this._collisionMask = isNaN(e) ? -1 : e;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._collideWithWorld = function (e) {
(this.parent ? o.e.TransformCoordinates(this.position, this.parent.getWorldMatrix()) : this.position).subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition),
this._oldPosition.addInPlace(this.ellipsoidOffset);
var t = this.getScene().collisionCoordinator;
this._collider || (this._collider = t.createCollider()), (this._collider._radius = this.ellipsoid), (this._collider.collisionMask = this._collisionMask);
var n = e;
this.applyGravity && (n = e.add(this.getScene().gravity)), t.getNewPosition(this._oldPosition, n, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);
}),
(t.prototype._checkInputs = function () {
this._localDirection || ((this._localDirection = o.e.Zero()), (this._transformedDirection = o.e.Zero())), this.inputs.checkInputs(), e.prototype._checkInputs.call(this);
}),
(t.prototype._decideIfNeedsToMove = function () {
return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;
}),
(t.prototype._updatePosition = function () {
this.checkCollisions && this.getScene().collisionsEnabled ? this._collideWithWorld(this.cameraDirection) : e.prototype._updatePosition.call(this);
}),
(t.prototype.dispose = function () {
this.inputs.clear(), e.prototype.dispose.call(this);
}),
(t.prototype.getClassName = function () {
return "FreeCamera";
}),
Object(i.c)([Object(r.o)()], t.prototype, "ellipsoid", void 0),
Object(i.c)([Object(r.o)()], t.prototype, "ellipsoidOffset", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "checkCollisions", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "applyGravity", void 0),
t
);
})(s.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return u;
});
var i = n(2),
r = n(3),
o = n(6),
a = n(1),
s = n(25),
c = n(204),
l = n(109),
u =
(n(74),
(function () {
function e(t) {
(this.metadata = null),
(this.reservedDataStore = null),
(this._hasAlpha = !1),
(this.getAlphaFromRGB = !1),
(this.level = 1),
(this.coordinatesIndex = 0),
(this._coordinatesMode = 0),
(this.wrapU = 1),
(this.wrapV = 1),
(this.wrapR = 1),
(this.anisotropicFilteringLevel = e.DEFAULT_ANISOTROPIC_FILTERING_LEVEL),
(this.gammaSpace = !0),
(this.invertZ = !1),
(this.lodLevelInAlpha = !1),
(this.isRenderTarget = !1),
(this.animations = new Array()),
(this.onDisposeObservable = new o.c()),
(this._onDisposeObserver = null),
(this.delayLoadState = 0),
(this._scene = null),
(this._texture = null),
(this._uid = null),
(this._cachedSize = l.a.Zero()),
(this._scene = t || s.a.LastCreatedScene),
this._scene && ((this.uniqueId = this._scene.getUniqueId()), this._scene.addTexture(this)),
(this._uid = null);
}
return (
Object.defineProperty(e.prototype, "hasAlpha", {
get: function () {
return this._hasAlpha;
},
set: function (e) {
this._hasAlpha !== e && ((this._hasAlpha = e), this._scene && this._scene.markAllMaterialsAsDirty(17));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "coordinatesMode", {
get: function () {
return this._coordinatesMode;
},
set: function (e) {
this._coordinatesMode !== e && ((this._coordinatesMode = e), this._scene && this._scene.markAllMaterialsAsDirty(1));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isCube", {
get: function () {
return !!this._texture && this._texture.isCube;
},
set: function (e) {
this._texture && (this._texture.isCube = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "is3D", {
get: function () {
return !!this._texture && this._texture.is3D;
},
set: function (e) {
this._texture && (this._texture.is3D = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "is2DArray", {
get: function () {
return !!this._texture && this._texture.is2DArray;
},
set: function (e) {
this._texture && (this._texture.is2DArray = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isRGBD", {
get: function () {
return null != this._texture && this._texture._isRGBD;
},
set: function (e) {
this._texture && (this._texture._isRGBD = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "noMipmap", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "lodGenerationOffset", {
get: function () {
return this._texture ? this._texture._lodGenerationOffset : 0;
},
set: function (e) {
this._texture && (this._texture._lodGenerationOffset = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "lodGenerationScale", {
get: function () {
return this._texture ? this._texture._lodGenerationScale : 0;
},
set: function (e) {
this._texture && (this._texture._lodGenerationScale = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "linearSpecularLOD", {
get: function () {
return !!this._texture && this._texture._linearSpecularLOD;
},
set: function (e) {
this._texture && (this._texture._linearSpecularLOD = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "irradianceTexture", {
get: function () {
return this._texture ? this._texture._irradianceTexture : null;
},
set: function (e) {
this._texture && (this._texture._irradianceTexture = e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "uid", {
get: function () {
return this._uid || (this._uid = c.a.RandomId()), this._uid;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.toString = function () {
return this.name;
}),
(e.prototype.getClassName = function () {
return "BaseTexture";
}),
Object.defineProperty(e.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isBlocking", {
get: function () {
return !0;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype.getTextureMatrix = function () {
return a.a.IdentityReadOnly;
}),
(e.prototype.getReflectionTextureMatrix = function () {
return a.a.IdentityReadOnly;
}),
(e.prototype.getInternalTexture = function () {
return this._texture;
}),
(e.prototype.isReadyOrNotBlocking = function () {
return !this.isBlocking || this.isReady();
}),
(e.prototype.isReady = function () {
return 4 === this.delayLoadState ? (this.delayLoad(), !1) : !!this._texture && this._texture.isReady;
}),
(e.prototype.getSize = function () {
if (this._texture) {
if (this._texture.width) return (this._cachedSize.width = this._texture.width), (this._cachedSize.height = this._texture.height), this._cachedSize;
if (this._texture._size) return (this._cachedSize.width = this._texture._size), (this._cachedSize.height = this._texture._size), this._cachedSize;
}
return this._cachedSize;
}),
(e.prototype.getBaseSize = function () {
return this.isReady() && this._texture ? (this._texture._size ? new l.a(this._texture._size, this._texture._size) : new l.a(this._texture.baseWidth, this._texture.baseHeight)) : l.a.Zero();
}),
(e.prototype.updateSamplingMode = function (e) {
if (this._texture) {
var t = this.getScene();
t && t.getEngine().updateTextureSamplingMode(e, this._texture);
}
}),
(e.prototype.scale = function (e) {}),
Object.defineProperty(e.prototype, "canRescale", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._getFromCache = function (e, t, n, i) {
if (!this._scene) return null;
for (var r = this._scene.getEngine().getLoadedTexturesCache(), o = 0; o < r.length; o++) {
var a = r[o];
if (!((void 0 !== i && i !== a.invertY) || a.url !== e || a.generateMipMaps !== !t || (n && n !== a.samplingMode))) return a.incrementReferences(), a;
}
return null;
}),
(e.prototype._rebuild = function () {}),
(e.prototype.delayLoad = function () {}),
(e.prototype.clone = function () {
return null;
}),
Object.defineProperty(e.prototype, "textureType", {
get: function () {
return this._texture && void 0 !== this._texture.type ? this._texture.type : 0;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "textureFormat", {
get: function () {
return this._texture && void 0 !== this._texture.format ? this._texture.format : 5;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._markAllSubMeshesAsTexturesDirty = function () {
var e = this.getScene();
e && e.markAllMaterialsAsDirty(1);
}),
(e.prototype.readPixels = function (e, t, n) {
if ((void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = null), !this._texture)) return null;
var i = this.getSize(),
r = i.width,
o = i.height,
a = this.getScene();
if (!a) return null;
var s = a.getEngine();
return (
0 != t && ((r /= Math.pow(2, t)), (o /= Math.pow(2, t)), (r = Math.round(r)), (o = Math.round(o))),
this._texture.isCube ? s._readTexturePixels(this._texture, r, o, e, t, n) : s._readTexturePixels(this._texture, r, o, -1, t, n)
);
}),
(e.prototype.releaseInternalTexture = function () {
this._texture && (this._texture.dispose(), (this._texture = null));
}),
Object.defineProperty(e.prototype, "_lodTextureHigh", {
get: function () {
return this._texture ? this._texture._lodTextureHigh : null;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "_lodTextureMid", {
get: function () {
return this._texture ? this._texture._lodTextureMid : null;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "_lodTextureLow", {
get: function () {
return this._texture ? this._texture._lodTextureLow : null;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
if (this._scene) {
this._scene.stopAnimation && this._scene.stopAnimation(this), this._scene._removePendingData(this);
var e = this._scene.textures.indexOf(this);
e >= 0 && this._scene.textures.splice(e, 1), this._scene.onTextureRemovedObservable.notifyObservers(this);
}
void 0 !== this._texture && (this.releaseInternalTexture(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear());
}),
(e.prototype.serialize = function () {
if (!this.name) return null;
var e = r.a.Serialize(this);
return r.a.AppendSerializedAnimations(this, e), e;
}),
(e.WhenAllReady = function (e, t) {
var n = e.length;
if (0 !== n)
for (
var i,
r,
o = function () {
if ((i = e[a]).isReady()) 0 == --n && t();
else if ((r = i.onLoadObservable)) {
var o = function () {
r.removeCallback(o), 0 == --n && t();
};
r.add(o);
}
},
a = 0;
a < e.length;
a++
)
o();
else t();
}),
(e.DEFAULT_ANISOTROPIC_FILTERING_LEVEL = 4),
Object(i.c)([Object(r.c)()], e.prototype, "uniqueId", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "name", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "metadata", void 0),
Object(i.c)([Object(r.c)("hasAlpha")], e.prototype, "_hasAlpha", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "getAlphaFromRGB", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "level", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "coordinatesIndex", void 0),
Object(i.c)([Object(r.c)("coordinatesMode")], e.prototype, "_coordinatesMode", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "wrapU", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "wrapV", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "wrapR", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "anisotropicFilteringLevel", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "isCube", null),
Object(i.c)([Object(r.c)()], e.prototype, "is3D", null),
Object(i.c)([Object(r.c)()], e.prototype, "is2DArray", null),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "gammaSpace", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "invertZ", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "lodLevelInAlpha", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "lodGenerationOffset", null),
Object(i.c)([Object(r.c)()], e.prototype, "lodGenerationScale", null),
Object(i.c)([Object(r.c)()], e.prototype, "linearSpecularLOD", null),
Object(i.c)([Object(r.m)()], e.prototype, "irradianceTexture", null),
Object(i.c)([Object(r.c)()], e.prototype, "isRenderTarget", void 0),
e
);
})());
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(76),
r = (function () {
function e() {
(this._startMonitoringTime = 0),
(this._min = 0),
(this._max = 0),
(this._average = 0),
(this._lastSecAverage = 0),
(this._current = 0),
(this._totalValueCount = 0),
(this._totalAccumulated = 0),
(this._lastSecAccumulated = 0),
(this._lastSecTime = 0),
(this._lastSecValueCount = 0);
}
return (
Object.defineProperty(e.prototype, "min", {
get: function () {
return this._min;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "max", {
get: function () {
return this._max;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "average", {
get: function () {
return this._average;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "lastSecAverage", {
get: function () {
return this._lastSecAverage;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "current", {
get: function () {
return this._current;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "total", {
get: function () {
return this._totalAccumulated;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "count", {
get: function () {
return this._totalValueCount;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.fetchNewFrame = function () {
this._totalValueCount++, (this._current = 0), this._lastSecValueCount++;
}),
(e.prototype.addCount = function (t, n) {
e.Enabled && ((this._current += t), n && this._fetchResult());
}),
(e.prototype.beginMonitoring = function () {
e.Enabled && (this._startMonitoringTime = i.a.Now);
}),
(e.prototype.endMonitoring = function (t) {
if ((void 0 === t && (t = !0), e.Enabled)) {
t && this.fetchNewFrame();
var n = i.a.Now;
(this._current = n - this._startMonitoringTime), t && this._fetchResult();
}
}),
(e.prototype._fetchResult = function () {
(this._totalAccumulated += this._current),
(this._lastSecAccumulated += this._current),
(this._min = Math.min(this._min, this._current)),
(this._max = Math.max(this._max, this._current)),
(this._average = this._totalAccumulated / this._totalValueCount);
var e = i.a.Now;
e - this._lastSecTime > 1e3 && ((this._lastSecAverage = this._lastSecAccumulated / this._lastSecValueCount), (this._lastSecTime = e), (this._lastSecAccumulated = 0), (this._lastSecValueCount = 0));
}),
(e.Enabled = !0),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "bonesDeclaration",
r =
"#if NUM_BONE_INFLUENCERS>0\n#ifdef BONETEXTURE\nuniform sampler2D boneSampler;\nuniform float boneTextureWidth;\n#else\nuniform mat4 mBones[BonesPerMesh];\n#endif\nattribute vec4 matricesIndices;\nattribute vec4 matricesWeights;\n#if NUM_BONE_INFLUENCERS>4\nattribute vec4 matricesIndicesExtra;\nattribute vec4 matricesWeightsExtra;\n#endif\n#ifdef BONETEXTURE\nmat4 readMatrixFromRawSampler(sampler2D smp,float index)\n{\nfloat offset=index*4.0;\nfloat dx=1.0/boneTextureWidth;\nvec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));\nvec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));\nvec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));\nvec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));\nreturn mat4(m0,m1,m2,m3);\n}\n#endif\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "instancesDeclaration",
r = "#ifdef INSTANCES\nattribute vec4 world0;\nattribute vec4 world1;\nattribute vec4 world2;\nattribute vec4 world3;\n#else\nuniform mat4 world;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "instancesVertex",
r = "#ifdef INSTANCES\nmat4 finalWorld=mat4(world0,world1,world2,world3);\n#else\nmat4 finalWorld=world;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i =
"#if NUM_BONE_INFLUENCERS>0\nmat4 influence;\n#ifdef BONETEXTURE\ninfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\n#endif\n#else\ninfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\n#endif\nfinalWorld=finalWorld*influence;\n#endif";
n(7).a.IncludesShadersStore.bonesVertex = i;
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return p;
}),
n.d(t, "d", function () {
return f;
}),
n.d(t, "c", function () {
return m;
}),
n.d(t, "a", function () {
return g;
});
var i = n(2),
r = n(97),
o = n(56),
a = n(6),
s = n(118),
c = n(181),
l = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(i.d)(t, e),
(t._setPrototypeOf =
Object.setPrototypeOf ||
function (e, t) {
return (e.__proto__ = t), e;
}),
t
);
})(Error),
u = n(53),
h = n(38),
d = n(170),
p = (function (e) {
function t(n, i) {
var o = e.call(this, n) || this;
return (o.name = "LoadFileError"), l._setPrototypeOf(o, t.prototype), i instanceof r.a ? (o.request = i) : (o.file = i), o;
}
return Object(i.d)(t, e), t;
})(l),
f = (function (e) {
function t(n, i) {
var r = e.call(this, n) || this;
return (r.request = i), (r.name = "RequestFileError"), l._setPrototypeOf(r, t.prototype), r;
}
return Object(i.d)(t, e), t;
})(l),
m = (function (e) {
function t(n, i) {
var r = e.call(this, n) || this;
return (r.file = i), (r.name = "ReadFileError"), l._setPrototypeOf(r, t.prototype), r;
}
return Object(i.d)(t, e), t;
})(l),
g = (function () {
function e() {}
return (
(e._CleanUrl = function (e) {
return (e = e.replace(/#/gm, "%23"));
}),
(e.SetCorsBehavior = function (t, n) {
if ((!t || 0 !== t.indexOf("data:")) && e.CorsBehavior)
if ("string" == typeof e.CorsBehavior || this.CorsBehavior instanceof String) n.crossOrigin = e.CorsBehavior;
else {
var i = e.CorsBehavior(t);
i && (n.crossOrigin = i);
}
}),
(e.LoadImage = function (t, n, i, r, o) {
var a;
void 0 === o && (o = "");
var c = !1;
if (
(t instanceof ArrayBuffer || ArrayBuffer.isView(t)
? "undefined" != typeof Blob
? ((a = URL.createObjectURL(new Blob([t], { type: o }))), (c = !0))
: (a = "data:" + o + ";base64," + u.a.EncodeArrayBufferToBase64(t))
: t instanceof Blob
? ((a = URL.createObjectURL(t)), (c = !0))
: ((a = e._CleanUrl(t)), (a = e.PreprocessUrl(t))),
"undefined" == typeof Image)
)
return (
e.LoadFile(
a,
function (e) {
createImageBitmap(new Blob([e], { type: o }))
.then(function (e) {
n(e), c && URL.revokeObjectURL(a);
})
.catch(function (e) {
i && i("Error while trying to load image: " + t, e);
});
},
void 0,
r || void 0,
!0,
function (e, n) {
i && i("Error while trying to load image: " + t, n);
}
),
null
);
var l = new Image();
e.SetCorsBehavior(a, l);
var h = function () {
l.removeEventListener("load", h), l.removeEventListener("error", d), n(l), c && l.src && URL.revokeObjectURL(l.src);
},
d = function (e) {
l.removeEventListener("load", h), l.removeEventListener("error", d), i && i("Error while trying to load image: " + t, e), c && l.src && URL.revokeObjectURL(l.src);
};
l.addEventListener("load", h), l.addEventListener("error", d);
var p = function () {
l.src = a;
};
if ("data:" !== a.substr(0, 5) && r && r.enableTexturesOffline)
r.open(function () {
r && r.loadImage(a, l);
}, p);
else {
if (-1 !== a.indexOf("file:")) {
var f = decodeURIComponent(a.substring(5).toLowerCase());
if (s.a.FilesToLoad[f]) {
try {
var m;
try {
m = URL.createObjectURL(s.a.FilesToLoad[f]);
} catch (e) {
m = URL.createObjectURL(s.a.FilesToLoad[f]);
}
(l.src = m), (c = !0);
} catch (e) {
l.src = "";
}
return l;
}
}
p();
}
return l;
}),
(e.ReadFile = function (e, t, n, i, r) {
var o = new FileReader(),
s = {
onCompleteObservable: new a.c(),
abort: function () {
return o.abort();
},
};
return (
(o.onloadend = function (e) {
return s.onCompleteObservable.notifyObservers(s);
}),
r &&
(o.onerror = function (t) {
r(new m("Unable to read " + e.name, e));
}),
(o.onload = function (e) {
t(e.target.result);
}),
n && (o.onprogress = n),
i ? o.readAsArrayBuffer(e) : o.readAsText(e),
s
);
}),
(e.LoadFile = function (t, n, i, r, o, a) {
if (-1 !== t.indexOf("file:")) {
var c = decodeURIComponent(t.substring(5).toLowerCase());
0 === c.indexOf("./") && (c = c.substring(2));
var l = s.a.FilesToLoad[c];
if (l)
return e.ReadFile(
l,
n,
i,
o,
a
? function (e) {
return a(void 0, new p(e.message, e.file));
}
: void 0
);
}
return e.RequestFile(
t,
function (e, t) {
n(e, t ? t.responseURL : void 0);
},
i,
r,
o,
a
? function (e) {
a(e.request, new p(e.message, e.request));
}
: void 0
);
}),
(e.RequestFile = function (t, n, i, s, c, l, u) {
(t = e._CleanUrl(t)), (t = e.PreprocessUrl(t));
var h = e.BaseUrl + t,
d = !1,
p = {
onCompleteObservable: new a.c(),
abort: function () {
return (d = !0);
},
},
m = function () {
var t = new r.a(),
a = null;
p.abort = function () {
(d = !0), t.readyState !== (XMLHttpRequest.DONE || 4) && t.abort(), null !== a && (clearTimeout(a), (a = null));
};
var s = function (m) {
t.open("GET", h), u && u(t), c && (t.responseType = "arraybuffer"), i && t.addEventListener("progress", i);
var g = function () {
t.removeEventListener("loadend", g), p.onCompleteObservable.notifyObservers(p), p.onCompleteObservable.clear();
};
t.addEventListener("loadend", g);
var b = function () {
if (!d && t.readyState === (XMLHttpRequest.DONE || 4)) {
if ((t.removeEventListener("readystatechange", b), (t.status >= 200 && t.status < 300) || (0 === t.status && (!o.a.IsWindowObjectExist() || e.IsFileURL()))))
return void n(c ? t.response : t.responseText, t);
var i = e.DefaultRetryStrategy;
if (i) {
var u = i(h, t, m);
if (-1 !== u)
return (
t.removeEventListener("loadend", g),
(t = new r.a()),
void (a = setTimeout(function () {
return s(m + 1);
}, u))
);
}
var p = new f("Error status: " + t.status + " " + t.statusText + " - Unable to load " + h, t);
l && l(p);
}
};
t.addEventListener("readystatechange", b), t.send();
};
s(0);
};
if (s && s.enableSceneOffline) {
var g = function (e) {
e && e.status > 400 ? l && l(e) : m();
};
s.open(function () {
s &&
s.loadFile(
e.BaseUrl + t,
function (e) {
d || n(e), p.onCompleteObservable.notifyObservers(p);
},
i
? function (e) {
d || i(e);
}
: void 0,
g,
c
);
}, g);
} else m();
return p;
}),
(e.IsFileURL = function () {
return "file:" === location.protocol;
}),
(e.DefaultRetryStrategy = c.a.ExponentialBackoff()),
(e.BaseUrl = ""),
(e.CorsBehavior = "anonymous"),
(e.PreprocessUrl = function (e) {
return e;
}),
e
);
})();
(h.a._FileToolsLoadImage = g.LoadImage.bind(g)), (h.a._FileToolsLoadFile = g.LoadFile.bind(g)), (d.a._FileToolsLoadFile = g.LoadFile.bind(g));
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(2),
r = n(10),
o = n(8),
a = (n(225), n(112)),
s = (function (e) {
function t(t, n, i, r, s, c) {
void 0 === i && (i = null), void 0 === s && (s = 3), void 0 === c && (c = 5);
var l = e.call(this, null, i, !r, void 0, s, void 0, void 0, void 0, void 0, c) || this;
(l.name = t),
(l._engine = l.getScene().getEngine()),
(l.wrapU = o.a.CLAMP_ADDRESSMODE),
(l.wrapV = o.a.CLAMP_ADDRESSMODE),
(l._generateMipMaps = r),
n.getContext
? ((l._canvas = n), (l._texture = l._engine.createDynamicTexture(n.width, n.height, r, s)))
: ((l._canvas = a.a.CreateCanvas(1, 1)), n.width || 0 === n.width ? (l._texture = l._engine.createDynamicTexture(n.width, n.height, r, s)) : (l._texture = l._engine.createDynamicTexture(n, n, r, s)));
var u = l.getSize();
return (l._canvas.width = u.width), (l._canvas.height = u.height), (l._context = l._canvas.getContext("2d")), l;
}
return (
Object(i.d)(t, e),
(t.prototype.getClassName = function () {
return "DynamicTexture";
}),
Object.defineProperty(t.prototype, "canRescale", {
get: function () {
return !0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._recreate = function (e) {
(this._canvas.width = e.width), (this._canvas.height = e.height), this.releaseInternalTexture(), (this._texture = this._engine.createDynamicTexture(e.width, e.height, this._generateMipMaps, this.samplingMode));
}),
(t.prototype.scale = function (e) {
var t = this.getSize();
(t.width *= e), (t.height *= e), this._recreate(t);
}),
(t.prototype.scaleTo = function (e, t) {
var n = this.getSize();
(n.width = e), (n.height = t), this._recreate(n);
}),
(t.prototype.getContext = function () {
return this._context;
}),
(t.prototype.clear = function () {
var e = this.getSize();
this._context.fillRect(0, 0, e.width, e.height);
}),
(t.prototype.update = function (e, t) {
void 0 === t && (t = !1), this._engine.updateDynamicTexture(this._texture, this._canvas, void 0 === e || e, t, this._format || void 0);
}),
(t.prototype.drawText = function (e, t, n, i, r, o, a, s) {
void 0 === s && (s = !0);
var c = this.getSize();
if ((o && ((this._context.fillStyle = o), this._context.fillRect(0, 0, c.width, c.height)), (this._context.font = i), null == t)) {
var l = this._context.measureText(e);
t = (c.width - l.width) / 2;
}
if (null == n) {
var u = parseInt(i.replace(/\D/g, ""));
n = c.height / 2 + u / 3.65;
}
(this._context.fillStyle = r), this._context.fillText(e, t, n), s && this.update(a);
}),
(t.prototype.clone = function () {
var e = this.getScene();
if (!e) return this;
var n = this.getSize(),
i = new t(this.name, n, e, this._generateMipMaps);
return (i.hasAlpha = this.hasAlpha), (i.level = this.level), (i.wrapU = this.wrapU), (i.wrapV = this.wrapV), i;
}),
(t.prototype.serialize = function () {
var t = this.getScene();
t && !t.isReady() && r.a.Warn("The scene must be ready before serializing the dynamic texture");
var n = e.prototype.serialize.call(this);
return this._canvas.toDataURL && (n.base64String = this._canvas.toDataURL()), (n.invertY = this._invertY), (n.samplingMode = this.samplingMode), n;
}),
(t.prototype._rebuild = function () {
this.update();
}),
t
);
})(o.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(56),
r = (function () {
function e() {}
return (
Object.defineProperty(e, "Now", {
get: function () {
return i.a.IsWindowObjectExist() && window.performance && window.performance.now ? window.performance.now() : Date.now();
},
enumerable: !0,
configurable: !0,
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e(e, t, n, i) {
(this.x = e), (this.y = t), (this.width = n), (this.height = i);
}
return (
(e.prototype.toGlobal = function (t, n) {
return new e(this.x * t, this.y * n, this.width * t, this.height * n);
}),
(e.prototype.toGlobalToRef = function (e, t, n) {
return (n.x = this.x * e), (n.y = this.y * t), (n.width = this.width * e), (n.height = this.height * t), this;
}),
(e.prototype.clone = function () {
return new e(this.x, this.y, this.width, this.height);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
}),
n.d(t, "b", function () {
return l;
});
var i = n(2),
r = n(4),
o = n(153),
a = n(63),
s = n(161),
c = (function () {
function e() {
(this._materialDefines = null), (this._materialEffect = null);
}
return (
Object.defineProperty(e.prototype, "materialDefines", {
get: function () {
return this._materialDefines;
},
set: function (e) {
this._materialDefines = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "effect", {
get: function () {
return this._materialEffect;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setEffect = function (e, t) {
void 0 === t && (t = null), this._materialEffect !== e ? ((this._materialDefines = t), (this._materialEffect = e)) : e || (this._materialDefines = null);
}),
e
);
})(),
l = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === c && (c = !0);
var l = e.call(this) || this;
return (
(l.materialIndex = t),
(l.verticesStart = n),
(l.verticesCount = i),
(l.indexStart = r),
(l.indexCount = o),
(l._linesIndexCount = 0),
(l._linesIndexBuffer = null),
(l._lastColliderWorldVertices = null),
(l._lastColliderTransformMatrix = null),
(l._renderId = 0),
(l._alphaIndex = 0),
(l._distanceToCamera = 0),
(l._currentMaterial = null),
(l._mesh = a),
(l._renderingMesh = s || a),
a.subMeshes.push(l),
(l._trianglePlanes = []),
(l._id = a.subMeshes.length - 1),
c && (l.refreshBoundingInfo(), a.computeWorldMatrix(!0)),
l
);
}
return (
Object(i.d)(t, e),
(t.AddToMesh = function (e, n, i, r, o, a, s, c) {
return void 0 === c && (c = !0), new t(e, n, i, r, o, a, s, c);
}),
Object.defineProperty(t.prototype, "IsGlobal", {
get: function () {
return 0 === this.verticesStart && this.verticesCount === this._mesh.getTotalVertices();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getBoundingInfo = function () {
return this.IsGlobal ? this._mesh.getBoundingInfo() : this._boundingInfo;
}),
(t.prototype.setBoundingInfo = function (e) {
return (this._boundingInfo = e), this;
}),
(t.prototype.getMesh = function () {
return this._mesh;
}),
(t.prototype.getRenderingMesh = function () {
return this._renderingMesh;
}),
(t.prototype.getMaterial = function () {
var e = this._renderingMesh.material;
if (null == e) return this._mesh.getScene().defaultMaterial;
if (e.getSubMaterial) {
var t = e.getSubMaterial(this.materialIndex);
return this._currentMaterial !== t && ((this._currentMaterial = t), (this._materialDefines = null)), t;
}
return e;
}),
(t.prototype.refreshBoundingInfo = function (e) {
if ((void 0 === e && (e = null), (this._lastColliderWorldVertices = null), this.IsGlobal || !this._renderingMesh || !this._renderingMesh.geometry)) return this;
if ((e || (e = this._renderingMesh.getVerticesData(r.b.PositionKind)), !e)) return (this._boundingInfo = this._mesh.getBoundingInfo()), this;
var t,
n = this._renderingMesh.getIndices();
if (0 === this.indexStart && this.indexCount === n.length) {
var i = this._renderingMesh.getBoundingInfo();
t = { minimum: i.minimum.clone(), maximum: i.maximum.clone() };
} else t = Object(s.b)(e, n, this.indexStart, this.indexCount, this._renderingMesh.geometry.boundingBias);
return this._boundingInfo ? this._boundingInfo.reConstruct(t.minimum, t.maximum) : (this._boundingInfo = new a.a(t.minimum, t.maximum)), this;
}),
(t.prototype._checkCollision = function (e) {
return this.getBoundingInfo()._checkCollision(e);
}),
(t.prototype.updateBoundingInfo = function (e) {
var t = this.getBoundingInfo();
return t || (this.refreshBoundingInfo(), (t = this.getBoundingInfo())), t && t.update(e), this;
}),
(t.prototype.isInFrustum = function (e) {
var t = this.getBoundingInfo();
return !!t && t.isInFrustum(e, this._mesh.cullingStrategy);
}),
(t.prototype.isCompletelyInFrustum = function (e) {
var t = this.getBoundingInfo();
return !!t && t.isCompletelyInFrustum(e);
}),
(t.prototype.render = function (e) {
return this._renderingMesh.render(this, e, this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh ? this._mesh : void 0), this;
}),
(t.prototype._getLinesIndexBuffer = function (e, t) {
if (!this._linesIndexBuffer) {
for (var n = [], i = this.indexStart; i < this.indexStart + this.indexCount; i += 3) n.push(e[i], e[i + 1], e[i + 1], e[i + 2], e[i + 2], e[i]);
(this._linesIndexBuffer = t.createIndexBuffer(n)), (this._linesIndexCount = n.length);
}
return this._linesIndexBuffer;
}),
(t.prototype.canIntersects = function (e) {
var t = this.getBoundingInfo();
return !!t && e.intersectsBox(t.boundingBox);
}),
(t.prototype.intersects = function (e, t, n, i, r) {
var o = this.getMaterial();
if (!o) return null;
var a = 3,
s = !1;
switch (o.fillMode) {
case 3:
case 4:
case 5:
case 6:
case 8:
return null;
case 7:
(a = 1), (s = !0);
}
return "InstancedLinesMesh" === this._mesh.getClassName() || "LinesMesh" === this._mesh.getClassName()
? n.length
? this._intersectLines(e, t, n, this._mesh.intersectionThreshold, i)
: this._intersectUnIndexedLines(e, t, n, this._mesh.intersectionThreshold, i)
: !n.length && this._mesh._unIndexed
? this._intersectUnIndexedTriangles(e, t, n, i, r)
: this._intersectTriangles(e, t, n, a, s, i, r);
}),
(t.prototype._intersectLines = function (e, t, n, i, r) {
for (var a = null, s = this.indexStart; s < this.indexStart + this.indexCount; s += 2) {
var c = t[n[s]],
l = t[n[s + 1]],
u = e.intersectionSegment(c, l, i);
if (!(u < 0) && (r || !a || u < a.distance) && (((a = new o.a(null, null, u)).faceId = s / 2), r)) break;
}
return a;
}),
(t.prototype._intersectUnIndexedLines = function (e, t, n, i, r) {
for (var a = null, s = this.verticesStart; s < this.verticesStart + this.verticesCount; s += 2) {
var c = t[s],
l = t[s + 1],
u = e.intersectionSegment(c, l, i);
if (!(u < 0) && (r || !a || u < a.distance) && (((a = new o.a(null, null, u)).faceId = s / 2), r)) break;
}
return a;
}),
(t.prototype._intersectTriangles = function (e, t, n, i, r, o, a) {
for (var s = null, c = -1, l = this.indexStart; l < this.indexStart + this.indexCount; l += i) {
c++;
var u = n[l],
h = n[l + 1],
d = n[l + 2];
if (r && 4294967295 === d) l += 2;
else {
var p = t[u],
f = t[h],
m = t[d];
if (!a || a(p, f, m, e)) {
var g = e.intersectsTriangle(p, f, m);
if (g) {
if (g.distance < 0) continue;
if ((o || !s || g.distance < s.distance) && (((s = g).faceId = c), o)) break;
}
}
}
}
return s;
}),
(t.prototype._intersectUnIndexedTriangles = function (e, t, n, i, r) {
for (var o = null, a = this.verticesStart; a < this.verticesStart + this.verticesCount; a += 3) {
var s = t[a],
c = t[a + 1],
l = t[a + 2];
if (!r || r(s, c, l, e)) {
var u = e.intersectsTriangle(s, c, l);
if (u) {
if (u.distance < 0) continue;
if ((i || !o || u.distance < o.distance) && (((o = u).faceId = a / 3), i)) break;
}
}
}
return o;
}),
(t.prototype._rebuild = function () {
this._linesIndexBuffer && (this._linesIndexBuffer = null);
}),
(t.prototype.clone = function (e, n) {
var i = new t(this.materialIndex, this.verticesStart, this.verticesCount, this.indexStart, this.indexCount, e, n, !1);
if (!this.IsGlobal) {
var r = this.getBoundingInfo();
if (!r) return i;
i._boundingInfo = new a.a(r.minimum, r.maximum);
}
return i;
}),
(t.prototype.dispose = function () {
this._linesIndexBuffer && (this._mesh.getScene().getEngine()._releaseBuffer(this._linesIndexBuffer), (this._linesIndexBuffer = null));
var e = this._mesh.subMeshes.indexOf(this);
this._mesh.subMeshes.splice(e, 1);
}),
(t.prototype.getClassName = function () {
return "SubMesh";
}),
(t.CreateFromIndices = function (e, n, i, r, o) {
for (var a = Number.MAX_VALUE, s = -Number.MAX_VALUE, c = (o || r).getIndices(), l = n; l < n + i; l++) {
var u = c[l];
u < a && (a = u), u > s && (s = u);
}
return new t(e, a, s - a + 1, n, i, r, o);
}),
t
);
})(c);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return p;
});
var i = n(1),
r = n(5),
o = n(16),
a = n(4),
s = n(78),
c = n(103),
l = n(63),
u = n(12),
h = n(45),
d = n(161),
p = (function () {
function e(e, t, n, i, r) {
void 0 === i && (i = !1),
void 0 === r && (r = null),
(this.delayLoadState = 0),
(this._totalVertices = 0),
(this._isDisposed = !1),
(this._indexBufferIsUpdatable = !1),
(this.id = e),
(this.uniqueId = t.getUniqueId()),
(this._engine = t.getEngine()),
(this._meshes = []),
(this._scene = t),
(this._vertexBuffers = {}),
(this._indices = []),
(this._updatable = i),
n ? this.setAllVerticesData(n, i) : ((this._totalVertices = 0), (this._indices = [])),
this._engine.getCaps().vertexArrayObject && (this._vertexArrayObjects = {}),
r && (this.applyToMesh(r), r.computeWorldMatrix(!0));
}
return (
Object.defineProperty(e.prototype, "boundingBias", {
get: function () {
return this._boundingBias;
},
set: function (e) {
this._boundingBias ? this._boundingBias.copyFrom(e) : (this._boundingBias = e.clone()), this._updateBoundingInfo(!0, null);
},
enumerable: !0,
configurable: !0,
}),
(e.CreateGeometryForMesh = function (t) {
var n = new e(e.RandomId(), t.getScene());
return n.applyToMesh(t), n;
}),
Object.defineProperty(e.prototype, "extend", {
get: function () {
return this._extend;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype.getEngine = function () {
return this._engine;
}),
(e.prototype.isReady = function () {
return 1 === this.delayLoadState || 0 === this.delayLoadState;
}),
Object.defineProperty(e.prototype, "doNotSerialize", {
get: function () {
for (var e = 0; e < this._meshes.length; e++) if (!this._meshes[e].doNotSerialize) return !1;
return !0;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._rebuild = function () {
for (var e in (this._vertexArrayObjects && (this._vertexArrayObjects = {}), 0 !== this._meshes.length && this._indices && (this._indexBuffer = this._engine.createIndexBuffer(this._indices)), this._vertexBuffers)) {
this._vertexBuffers[e]._rebuild();
}
}),
(e.prototype.setAllVerticesData = function (e, t) {
e.applyToGeometry(this, t), this.notifyUpdate();
}),
(e.prototype.setVerticesData = function (e, t, n, i) {
void 0 === n && (n = !1);
var r = new a.b(this._engine, t, e, n, 0 === this._meshes.length, i);
this.setVerticesBuffer(r);
}),
(e.prototype.removeVerticesData = function (e) {
this._vertexBuffers[e] && (this._vertexBuffers[e].dispose(), delete this._vertexBuffers[e]);
}),
(e.prototype.setVerticesBuffer = function (e, t) {
void 0 === t && (t = null);
var n = e.getKind();
if ((this._vertexBuffers[n] && this._vertexBuffers[n].dispose(), (this._vertexBuffers[n] = e), n === a.b.PositionKind)) {
var i = e.getData();
null != t ? (this._totalVertices = t) : null != i && (this._totalVertices = i.length / (e.byteStride / 4)), this._updateExtend(i), this._resetPointsArrayCache();
for (var r = this._meshes, o = r.length, s = 0; s < o; s++) {
var c = r[s];
(c._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)), c._createGlobalSubMesh(!1), c.computeWorldMatrix(!0);
}
}
this.notifyUpdate(n), this._vertexArrayObjects && (this._disposeVertexArrayObjects(), (this._vertexArrayObjects = {}));
}),
(e.prototype.updateVerticesDataDirectly = function (e, t, n, i) {
void 0 === i && (i = !1);
var r = this.getVertexBuffer(e);
r && (r.updateDirectly(t, n, i), this.notifyUpdate(e));
}),
(e.prototype.updateVerticesData = function (e, t, n) {
void 0 === n && (n = !1);
var i = this.getVertexBuffer(e);
i && (i.update(t), e === a.b.PositionKind && this._updateBoundingInfo(n, t), this.notifyUpdate(e));
}),
(e.prototype._updateBoundingInfo = function (e, t) {
if ((e && this._updateExtend(t), this._resetPointsArrayCache(), e))
for (var n = 0, i = this._meshes; n < i.length; n++) {
var r = i[n];
r._boundingInfo ? r._boundingInfo.reConstruct(this._extend.minimum, this._extend.maximum) : (r._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum));
for (var o = 0, a = r.subMeshes; o < a.length; o++) {
a[o].refreshBoundingInfo();
}
}
}),
(e.prototype._bind = function (e, t) {
if (e) {
void 0 === t && (t = this._indexBuffer);
var n = this.getVertexBuffers();
n &&
(t == this._indexBuffer && this._vertexArrayObjects
? (this._vertexArrayObjects[e.key] || (this._vertexArrayObjects[e.key] = this._engine.recordVertexArrayObject(n, t, e)), this._engine.bindVertexArrayObject(this._vertexArrayObjects[e.key], t))
: this._engine.bindBuffers(n, t, e));
}
}),
(e.prototype.getTotalVertices = function () {
return this.isReady() ? this._totalVertices : 0;
}),
(e.prototype.getVerticesData = function (e, t, n) {
var i = this.getVertexBuffer(e);
if (!i) return null;
var r = i.getData();
if (!r) return null;
var o = i.getSize() * a.b.GetTypeByteLength(i.type),
s = this._totalVertices * i.getSize();
if (i.type !== a.b.FLOAT || i.byteStride !== o) {
var c = [];
return (
i.forEach(s, function (e) {
return c.push(e);
}),
c
);
}
if (!(r instanceof Array || r instanceof Float32Array) || 0 !== i.byteOffset || r.length !== s) {
if (r instanceof Array) {
var l = i.byteOffset / 4;
return u.b.Slice(r, l, l + s);
}
if (r instanceof ArrayBuffer) return new Float32Array(r, i.byteOffset, s);
l = r.byteOffset + i.byteOffset;
if (n || (t && 1 !== this._meshes.length)) {
var h = new Float32Array(s),
d = new Float32Array(r.buffer, l, s);
return h.set(d), h;
}
return new Float32Array(r.buffer, l, s);
}
return n || (t && 1 !== this._meshes.length) ? u.b.Slice(r) : r;
}),
(e.prototype.isVertexBufferUpdatable = function (e) {
var t = this._vertexBuffers[e];
return !!t && t.isUpdatable();
}),
(e.prototype.getVertexBuffer = function (e) {
return this.isReady() ? this._vertexBuffers[e] : null;
}),
(e.prototype.getVertexBuffers = function () {
return this.isReady() ? this._vertexBuffers : null;
}),
(e.prototype.isVerticesDataPresent = function (e) {
return this._vertexBuffers ? void 0 !== this._vertexBuffers[e] : !!this._delayInfo && -1 !== this._delayInfo.indexOf(e);
}),
(e.prototype.getVerticesDataKinds = function () {
var e,
t = [];
if (!this._vertexBuffers && this._delayInfo) for (e in this._delayInfo) t.push(e);
else for (e in this._vertexBuffers) t.push(e);
return t;
}),
(e.prototype.updateIndices = function (e, t, n) {
if ((void 0 === n && (n = !1), this._indexBuffer))
if (this._indexBufferIsUpdatable) {
var i = e.length !== this._indices.length;
if ((n || (this._indices = e.slice()), this._engine.updateDynamicIndexBuffer(this._indexBuffer, e, t), i))
for (var r = 0, o = this._meshes; r < o.length; r++) {
o[r]._createGlobalSubMesh(!0);
}
} else this.setIndices(e, null, !0);
}),
(e.prototype.setIndices = function (e, t, n) {
void 0 === t && (t = null),
void 0 === n && (n = !1),
this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer),
this._disposeVertexArrayObjects(),
(this._indices = e),
(this._indexBufferIsUpdatable = n),
0 !== this._meshes.length && this._indices && (this._indexBuffer = this._engine.createIndexBuffer(this._indices, n)),
null != t && (this._totalVertices = t);
for (var i = 0, r = this._meshes; i < r.length; i++) {
r[i]._createGlobalSubMesh(!0);
}
this.notifyUpdate();
}),
(e.prototype.getTotalIndices = function () {
return this.isReady() ? this._indices.length : 0;
}),
(e.prototype.getIndices = function (e, t) {
if (!this.isReady()) return null;
var n = this._indices;
if (t || (e && 1 !== this._meshes.length)) {
for (var i = n.length, r = [], o = 0; o < i; o++) r.push(n[o]);
return r;
}
return n;
}),
(e.prototype.getIndexBuffer = function () {
return this.isReady() ? this._indexBuffer : null;
}),
(e.prototype._releaseVertexArrayObject = function (e) {
void 0 === e && (e = null), e && this._vertexArrayObjects && this._vertexArrayObjects[e.key] && (this._engine.releaseVertexArrayObject(this._vertexArrayObjects[e.key]), delete this._vertexArrayObjects[e.key]);
}),
(e.prototype.releaseForMesh = function (e, t) {
var n = this._meshes,
i = n.indexOf(e);
-1 !== i && (n.splice(i, 1), (e._geometry = null), 0 === n.length && t && this.dispose());
}),
(e.prototype.applyToMesh = function (e) {
if (e._geometry !== this) {
var t = e._geometry;
t && t.releaseForMesh(e);
var n = this._meshes;
(e._geometry = this), this._scene.pushGeometry(this), n.push(e), this.isReady() ? this._applyToMesh(e) : (e._boundingInfo = this._boundingInfo);
}
}),
(e.prototype._updateExtend = function (e) {
void 0 === e && (e = null), e || (e = this.getVerticesData(a.b.PositionKind)), (this._extend = Object(d.a)(e, 0, this._totalVertices, this.boundingBias, 3));
}),
(e.prototype._applyToMesh = function (e) {
var t = this._meshes.length;
for (var n in this._vertexBuffers) {
1 === t && this._vertexBuffers[n].create();
var i = this._vertexBuffers[n].getBuffer();
i && (i.references = t),
n === a.b.PositionKind && (this._extend || this._updateExtend(), (e._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)), e._createGlobalSubMesh(!1), e._updateBoundingInfo());
}
1 === t && this._indices && this._indices.length > 0 && (this._indexBuffer = this._engine.createIndexBuffer(this._indices)),
this._indexBuffer && (this._indexBuffer.references = t),
e._syncGeometryWithMorphTargetManager(),
e.synchronizeInstances();
}),
(e.prototype.notifyUpdate = function (e) {
this.onGeometryUpdated && this.onGeometryUpdated(this, e);
for (var t = 0, n = this._meshes; t < n.length; t++) {
n[t]._markSubMeshesAsAttributesDirty();
}
}),
(e.prototype.load = function (e, t) {
2 !== this.delayLoadState && (this.isReady() ? t && t() : ((this.delayLoadState = 2), this._queueLoad(e, t)));
}),
(e.prototype._queueLoad = function (e, t) {
var n = this;
this.delayLoadingFile &&
(e._addPendingData(this),
e._loadFile(
this.delayLoadingFile,
function (i) {
if (n._delayLoadingFunction) {
n._delayLoadingFunction(JSON.parse(i), n), (n.delayLoadState = 1), (n._delayInfo = []), e._removePendingData(n);
for (var r = n._meshes, o = r.length, a = 0; a < o; a++) n._applyToMesh(r[a]);
t && t();
}
},
void 0,
!0
));
}),
(e.prototype.toLeftHanded = function () {
var e = this.getIndices(!1);
if (null != e && e.length > 0) {
for (var t = 0; t < e.length; t += 3) {
var n = e[t + 0];
(e[t + 0] = e[t + 2]), (e[t + 2] = n);
}
this.setIndices(e);
}
var i = this.getVerticesData(a.b.PositionKind, !1);
if (null != i && i.length > 0) {
for (t = 0; t < i.length; t += 3) i[t + 2] = -i[t + 2];
this.setVerticesData(a.b.PositionKind, i, !1);
}
var r = this.getVerticesData(a.b.NormalKind, !1);
if (null != r && r.length > 0) {
for (t = 0; t < r.length; t += 3) r[t + 2] = -r[t + 2];
this.setVerticesData(a.b.NormalKind, r, !1);
}
}),
(e.prototype._resetPointsArrayCache = function () {
this._positions = null;
}),
(e.prototype._generatePointsArray = function () {
if (this._positions) return !0;
var e = this.getVerticesData(a.b.PositionKind);
if (!e || 0 === e.length) return !1;
this._positions = [];
for (var t = 0; t < e.length; t += 3) this._positions.push(i.e.FromArray(e, t));
return !0;
}),
(e.prototype.isDisposed = function () {
return this._isDisposed;
}),
(e.prototype._disposeVertexArrayObjects = function () {
if (this._vertexArrayObjects) {
for (var e in this._vertexArrayObjects) this._engine.releaseVertexArrayObject(this._vertexArrayObjects[e]);
this._vertexArrayObjects = {};
}
}),
(e.prototype.dispose = function () {
var e,
t = this._meshes,
n = t.length;
for (e = 0; e < n; e++) this.releaseForMesh(t[e]);
for (var i in ((this._meshes = []), this._disposeVertexArrayObjects(), this._vertexBuffers)) this._vertexBuffers[i].dispose();
(this._vertexBuffers = {}),
(this._totalVertices = 0),
this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer),
(this._indexBuffer = null),
(this._indices = []),
(this.delayLoadState = 0),
(this.delayLoadingFile = null),
(this._delayLoadingFunction = null),
(this._delayInfo = []),
(this._boundingInfo = null),
this._scene.removeGeometry(this),
(this._isDisposed = !0);
}),
(e.prototype.copy = function (t) {
var n = new o.a();
n.indices = [];
var i = this.getIndices();
if (i) for (var r = 0; r < i.length; r++) n.indices.push(i[r]);
var a,
s = !1,
c = !1;
for (a in this._vertexBuffers) {
var u = this.getVerticesData(a);
if (u && (u instanceof Float32Array ? n.set(new Float32Array(u), a) : n.set(u.slice(0), a), !c)) {
var h = this.getVertexBuffer(a);
h && (c = !(s = h.isUpdatable()));
}
}
var d = new e(t, this._scene, n, s);
for (a in ((d.delayLoadState = this.delayLoadState), (d.delayLoadingFile = this.delayLoadingFile), (d._delayLoadingFunction = this._delayLoadingFunction), this._delayInfo))
(d._delayInfo = d._delayInfo || []), d._delayInfo.push(a);
return (d._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)), d;
}),
(e.prototype.serialize = function () {
var e = {};
return (e.id = this.id), (e.updatable = this._updatable), h.a && h.a.HasTags(this) && (e.tags = h.a.GetTags(this)), e;
}),
(e.prototype.toNumberArray = function (e) {
return Array.isArray(e) ? e : Array.prototype.slice.call(e);
}),
(e.prototype.serializeVerticeData = function () {
var e = this.serialize();
return (
this.isVerticesDataPresent(a.b.PositionKind) && ((e.positions = this.toNumberArray(this.getVerticesData(a.b.PositionKind))), this.isVertexBufferUpdatable(a.b.PositionKind) && (e.positions._updatable = !0)),
this.isVerticesDataPresent(a.b.NormalKind) && ((e.normals = this.toNumberArray(this.getVerticesData(a.b.NormalKind))), this.isVertexBufferUpdatable(a.b.NormalKind) && (e.normals._updatable = !0)),
this.isVerticesDataPresent(a.b.TangentKind) && ((e.tangets = this.toNumberArray(this.getVerticesData(a.b.TangentKind))), this.isVertexBufferUpdatable(a.b.TangentKind) && (e.tangets._updatable = !0)),
this.isVerticesDataPresent(a.b.UVKind) && ((e.uvs = this.toNumberArray(this.getVerticesData(a.b.UVKind))), this.isVertexBufferUpdatable(a.b.UVKind) && (e.uvs._updatable = !0)),
this.isVerticesDataPresent(a.b.UV2Kind) && ((e.uv2s = this.toNumberArray(this.getVerticesData(a.b.UV2Kind))), this.isVertexBufferUpdatable(a.b.UV2Kind) && (e.uv2s._updatable = !0)),
this.isVerticesDataPresent(a.b.UV3Kind) && ((e.uv3s = this.toNumberArray(this.getVerticesData(a.b.UV3Kind))), this.isVertexBufferUpdatable(a.b.UV3Kind) && (e.uv3s._updatable = !0)),
this.isVerticesDataPresent(a.b.UV4Kind) && ((e.uv4s = this.toNumberArray(this.getVerticesData(a.b.UV4Kind))), this.isVertexBufferUpdatable(a.b.UV4Kind) && (e.uv4s._updatable = !0)),
this.isVerticesDataPresent(a.b.UV5Kind) && ((e.uv5s = this.toNumberArray(this.getVerticesData(a.b.UV5Kind))), this.isVertexBufferUpdatable(a.b.UV5Kind) && (e.uv5s._updatable = !0)),
this.isVerticesDataPresent(a.b.UV6Kind) && ((e.uv6s = this.toNumberArray(this.getVerticesData(a.b.UV6Kind))), this.isVertexBufferUpdatable(a.b.UV6Kind) && (e.uv6s._updatable = !0)),
this.isVerticesDataPresent(a.b.ColorKind) && ((e.colors = this.toNumberArray(this.getVerticesData(a.b.ColorKind))), this.isVertexBufferUpdatable(a.b.ColorKind) && (e.colors._updatable = !0)),
this.isVerticesDataPresent(a.b.MatricesIndicesKind) &&
((e.matricesIndices = this.toNumberArray(this.getVerticesData(a.b.MatricesIndicesKind))),
(e.matricesIndices._isExpanded = !0),
this.isVertexBufferUpdatable(a.b.MatricesIndicesKind) && (e.matricesIndices._updatable = !0)),
this.isVerticesDataPresent(a.b.MatricesWeightsKind) &&
((e.matricesWeights = this.toNumberArray(this.getVerticesData(a.b.MatricesWeightsKind))), this.isVertexBufferUpdatable(a.b.MatricesWeightsKind) && (e.matricesWeights._updatable = !0)),
(e.indices = this.toNumberArray(this.getIndices())),
e
);
}),
(e.ExtractFromMesh = function (e, t) {
var n = e._geometry;
return n ? n.copy(t) : null;
}),
(e.RandomId = function () {
return u.b.RandomId();
}),
(e._ImportGeometry = function (t, n) {
var i = n.getScene(),
o = t.geometryId;
if (o) {
var c = i.getGeometryByID(o);
c && c.applyToMesh(n);
} else if (t instanceof ArrayBuffer) {
var l = n._binaryInfo;
if (l.positionsAttrDesc && l.positionsAttrDesc.count > 0) {
var u = new Float32Array(t, l.positionsAttrDesc.offset, l.positionsAttrDesc.count);
n.setVerticesData(a.b.PositionKind, u, !1);
}
if (l.normalsAttrDesc && l.normalsAttrDesc.count > 0) {
var h = new Float32Array(t, l.normalsAttrDesc.offset, l.normalsAttrDesc.count);
n.setVerticesData(a.b.NormalKind, h, !1);
}
if (l.tangetsAttrDesc && l.tangetsAttrDesc.count > 0) {
var d = new Float32Array(t, l.tangetsAttrDesc.offset, l.tangetsAttrDesc.count);
n.setVerticesData(a.b.TangentKind, d, !1);
}
if (l.uvsAttrDesc && l.uvsAttrDesc.count > 0) {
var p = new Float32Array(t, l.uvsAttrDesc.offset, l.uvsAttrDesc.count);
n.setVerticesData(a.b.UVKind, p, !1);
}
if (l.uvs2AttrDesc && l.uvs2AttrDesc.count > 0) {
var f = new Float32Array(t, l.uvs2AttrDesc.offset, l.uvs2AttrDesc.count);
n.setVerticesData(a.b.UV2Kind, f, !1);
}
if (l.uvs3AttrDesc && l.uvs3AttrDesc.count > 0) {
var m = new Float32Array(t, l.uvs3AttrDesc.offset, l.uvs3AttrDesc.count);
n.setVerticesData(a.b.UV3Kind, m, !1);
}
if (l.uvs4AttrDesc && l.uvs4AttrDesc.count > 0) {
var g = new Float32Array(t, l.uvs4AttrDesc.offset, l.uvs4AttrDesc.count);
n.setVerticesData(a.b.UV4Kind, g, !1);
}
if (l.uvs5AttrDesc && l.uvs5AttrDesc.count > 0) {
var b = new Float32Array(t, l.uvs5AttrDesc.offset, l.uvs5AttrDesc.count);
n.setVerticesData(a.b.UV5Kind, b, !1);
}
if (l.uvs6AttrDesc && l.uvs6AttrDesc.count > 0) {
var _ = new Float32Array(t, l.uvs6AttrDesc.offset, l.uvs6AttrDesc.count);
n.setVerticesData(a.b.UV6Kind, _, !1);
}
if (l.colorsAttrDesc && l.colorsAttrDesc.count > 0) {
var v = new Float32Array(t, l.colorsAttrDesc.offset, l.colorsAttrDesc.count);
n.setVerticesData(a.b.ColorKind, v, !1, l.colorsAttrDesc.stride);
}
if (l.matricesIndicesAttrDesc && l.matricesIndicesAttrDesc.count > 0) {
for (var y = new Int32Array(t, l.matricesIndicesAttrDesc.offset, l.matricesIndicesAttrDesc.count), C = [], P = 0; P < y.length; P++) {
var x = y[P];
C.push(255 & x), C.push((65280 & x) >> 8), C.push((16711680 & x) >> 16), C.push(x >> 24);
}
n.setVerticesData(a.b.MatricesIndicesKind, C, !1);
}
if (l.matricesWeightsAttrDesc && l.matricesWeightsAttrDesc.count > 0) {
var T = new Float32Array(t, l.matricesWeightsAttrDesc.offset, l.matricesWeightsAttrDesc.count);
n.setVerticesData(a.b.MatricesWeightsKind, T, !1);
}
if (l.indicesAttrDesc && l.indicesAttrDesc.count > 0) {
var S = new Int32Array(t, l.indicesAttrDesc.offset, l.indicesAttrDesc.count);
n.setIndices(S, null);
}
if (l.subMeshesAttrDesc && l.subMeshesAttrDesc.count > 0) {
var O = new Int32Array(t, l.subMeshesAttrDesc.offset, 5 * l.subMeshesAttrDesc.count);
n.subMeshes = [];
for (P = 0; P < l.subMeshesAttrDesc.count; P++) {
var E = O[5 * P + 0],
M = O[5 * P + 1],
A = O[5 * P + 2],
I = O[5 * P + 3],
D = O[5 * P + 4];
s.b.AddToMesh(E, M, A, I, D, n);
}
}
} else if (t.positions && t.normals && t.indices) {
if (
(n.setVerticesData(a.b.PositionKind, t.positions, t.positions._updatable),
n.setVerticesData(a.b.NormalKind, t.normals, t.normals._updatable),
t.tangents && n.setVerticesData(a.b.TangentKind, t.tangents, t.tangents._updatable),
t.uvs && n.setVerticesData(a.b.UVKind, t.uvs, t.uvs._updatable),
t.uvs2 && n.setVerticesData(a.b.UV2Kind, t.uvs2, t.uvs2._updatable),
t.uvs3 && n.setVerticesData(a.b.UV3Kind, t.uvs3, t.uvs3._updatable),
t.uvs4 && n.setVerticesData(a.b.UV4Kind, t.uvs4, t.uvs4._updatable),
t.uvs5 && n.setVerticesData(a.b.UV5Kind, t.uvs5, t.uvs5._updatable),
t.uvs6 && n.setVerticesData(a.b.UV6Kind, t.uvs6, t.uvs6._updatable),
t.colors && n.setVerticesData(a.b.ColorKind, r.b.CheckColors4(t.colors, t.positions.length / 3), t.colors._updatable),
t.matricesIndices)
)
if (t.matricesIndices._isExpanded) delete t.matricesIndices._isExpanded, n.setVerticesData(a.b.MatricesIndicesKind, t.matricesIndices, t.matricesIndices._updatable);
else {
for (C = [], P = 0; P < t.matricesIndices.length; P++) {
var R = t.matricesIndices[P];
C.push(255 & R), C.push((65280 & R) >> 8), C.push((16711680 & R) >> 16), C.push(R >> 24);
}
n.setVerticesData(a.b.MatricesIndicesKind, C, t.matricesIndices._updatable);
}
if (t.matricesIndicesExtra)
if (t.matricesIndicesExtra._isExpanded) delete t.matricesIndices._isExpanded, n.setVerticesData(a.b.MatricesIndicesExtraKind, t.matricesIndicesExtra, t.matricesIndicesExtra._updatable);
else {
for (C = [], P = 0; P < t.matricesIndicesExtra.length; P++) {
R = t.matricesIndicesExtra[P];
C.push(255 & R), C.push((65280 & R) >> 8), C.push((16711680 & R) >> 16), C.push(R >> 24);
}
n.setVerticesData(a.b.MatricesIndicesExtraKind, C, t.matricesIndicesExtra._updatable);
}
t.matricesWeights && (e._CleanMatricesWeights(t, n), n.setVerticesData(a.b.MatricesWeightsKind, t.matricesWeights, t.matricesWeights._updatable)),
t.matricesWeightsExtra && n.setVerticesData(a.b.MatricesWeightsExtraKind, t.matricesWeightsExtra, t.matricesWeights._updatable),
n.setIndices(t.indices, null);
}
if (t.subMeshes) {
n.subMeshes = [];
for (var w = 0; w < t.subMeshes.length; w++) {
var L = t.subMeshes[w];
s.b.AddToMesh(L.materialIndex, L.verticesStart, L.verticesCount, L.indexStart, L.indexCount, n);
}
}
n._shouldGenerateFlatShading && (n.convertToFlatShadedMesh(), delete n._shouldGenerateFlatShading), n.computeWorldMatrix(!0), i.onMeshImportedObservable.notifyObservers(n);
}),
(e._CleanMatricesWeights = function (e, t) {
if (c.a.CleanBoneMatrixWeights) {
var n = 0;
if (e.skeletonId > -1) {
var i = t.getScene().getLastSkeletonByID(e.skeletonId);
if (i) {
n = i.bones.length;
for (
var r = t.getVerticesData(a.b.MatricesIndicesKind),
o = t.getVerticesData(a.b.MatricesIndicesExtraKind),
s = e.matricesWeights,
l = e.matricesWeightsExtra,
u = e.numBoneInfluencer,
h = s.length,
d = 0;
d < h;
d += 4
) {
for (var p = 0, f = -1, m = 0; m < 4; m++) {
(p += g = s[d + m]), g < 0.001 && f < 0 && (f = m);
}
if (l)
for (m = 0; m < 4; m++) {
var g;
(p += g = l[d + m]), g < 0.001 && f < 0 && (f = m + 4);
}
if (((f < 0 || f > u - 1) && (f = u - 1), p > 0.001)) {
var b = 1 / p;
for (m = 0; m < 4; m++) s[d + m] *= b;
if (l) for (m = 0; m < 4; m++) l[d + m] *= b;
} else f >= 4 ? ((l[d + f - 4] = 1 - p), (o[d + f - 4] = n)) : ((s[d + f] = 1 - p), (r[d + f] = n));
}
t.setVerticesData(a.b.MatricesIndicesKind, r), e.matricesWeightsExtra && t.setVerticesData(a.b.MatricesIndicesExtraKind, o);
}
}
}
}),
(e.Parse = function (t, n, r) {
if (n.getGeometryByID(t.id)) return null;
var s = new e(t.id, n, void 0, t.updatable);
return (
h.a && h.a.AddTagsTo(s, t.tags),
t.delayLoadingFile
? ((s.delayLoadState = 4),
(s.delayLoadingFile = r + t.delayLoadingFile),
(s._boundingInfo = new l.a(i.e.FromArray(t.boundingBoxMinimum), i.e.FromArray(t.boundingBoxMaximum))),
(s._delayInfo = []),
t.hasUVs && s._delayInfo.push(a.b.UVKind),
t.hasUVs2 && s._delayInfo.push(a.b.UV2Kind),
t.hasUVs3 && s._delayInfo.push(a.b.UV3Kind),
t.hasUVs4 && s._delayInfo.push(a.b.UV4Kind),
t.hasUVs5 && s._delayInfo.push(a.b.UV5Kind),
t.hasUVs6 && s._delayInfo.push(a.b.UV6Kind),
t.hasColors && s._delayInfo.push(a.b.ColorKind),
t.hasMatricesIndices && s._delayInfo.push(a.b.MatricesIndicesKind),
t.hasMatricesWeights && s._delayInfo.push(a.b.MatricesWeightsKind),
(s._delayLoadingFunction = o.a.ImportVertexData))
: o.a.ImportVertexData(t, s),
n.pushGeometry(s, !0),
s
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.ALPHA_DISABLE = 0),
(e.ALPHA_ADD = 1),
(e.ALPHA_COMBINE = 2),
(e.ALPHA_SUBTRACT = 3),
(e.ALPHA_MULTIPLY = 4),
(e.ALPHA_MAXIMIZED = 5),
(e.ALPHA_ONEONE = 6),
(e.ALPHA_PREMULTIPLIED = 7),
(e.ALPHA_PREMULTIPLIED_PORTERDUFF = 8),
(e.ALPHA_INTERPOLATE = 9),
(e.ALPHA_SCREENMODE = 10),
(e.ALPHA_ONEONE_ONEONE = 11),
(e.ALPHA_ALPHATOCOLOR = 12),
(e.ALPHA_REVERSEONEMINUS = 13),
(e.ALPHA_SRC_DSTONEMINUSSRCALPHA = 14),
(e.ALPHA_ONEONE_ONEZERO = 15),
(e.ALPHA_EXCLUSION = 16),
(e.ALPHA_EQUATION_ADD = 0),
(e.ALPHA_EQUATION_SUBSTRACT = 1),
(e.ALPHA_EQUATION_REVERSE_SUBTRACT = 2),
(e.ALPHA_EQUATION_MAX = 3),
(e.ALPHA_EQUATION_MIN = 4),
(e.ALPHA_EQUATION_DARKEN = 5),
(e.DELAYLOADSTATE_NONE = 0),
(e.DELAYLOADSTATE_LOADED = 1),
(e.DELAYLOADSTATE_LOADING = 2),
(e.DELAYLOADSTATE_NOTLOADED = 4),
(e.NEVER = 512),
(e.ALWAYS = 519),
(e.LESS = 513),
(e.EQUAL = 514),
(e.LEQUAL = 515),
(e.GREATER = 516),
(e.GEQUAL = 518),
(e.NOTEQUAL = 517),
(e.KEEP = 7680),
(e.REPLACE = 7681),
(e.INCR = 7682),
(e.DECR = 7683),
(e.INVERT = 5386),
(e.INCR_WRAP = 34055),
(e.DECR_WRAP = 34056),
(e.TEXTURE_CLAMP_ADDRESSMODE = 0),
(e.TEXTURE_WRAP_ADDRESSMODE = 1),
(e.TEXTURE_MIRROR_ADDRESSMODE = 2),
(e.TEXTUREFORMAT_ALPHA = 0),
(e.TEXTUREFORMAT_LUMINANCE = 1),
(e.TEXTUREFORMAT_LUMINANCE_ALPHA = 2),
(e.TEXTUREFORMAT_RGB = 4),
(e.TEXTUREFORMAT_RGBA = 5),
(e.TEXTUREFORMAT_RED = 6),
(e.TEXTUREFORMAT_R = 6),
(e.TEXTUREFORMAT_RG = 7),
(e.TEXTUREFORMAT_RED_INTEGER = 8),
(e.TEXTUREFORMAT_R_INTEGER = 8),
(e.TEXTUREFORMAT_RG_INTEGER = 9),
(e.TEXTUREFORMAT_RGB_INTEGER = 10),
(e.TEXTUREFORMAT_RGBA_INTEGER = 11),
(e.TEXTURETYPE_UNSIGNED_BYTE = 0),
(e.TEXTURETYPE_UNSIGNED_INT = 0),
(e.TEXTURETYPE_FLOAT = 1),
(e.TEXTURETYPE_HALF_FLOAT = 2),
(e.TEXTURETYPE_BYTE = 3),
(e.TEXTURETYPE_SHORT = 4),
(e.TEXTURETYPE_UNSIGNED_SHORT = 5),
(e.TEXTURETYPE_INT = 6),
(e.TEXTURETYPE_UNSIGNED_INTEGER = 7),
(e.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8),
(e.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9),
(e.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10),
(e.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11),
(e.TEXTURETYPE_UNSIGNED_INT_24_8 = 12),
(e.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13),
(e.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14),
(e.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15),
(e.TEXTURE_NEAREST_SAMPLINGMODE = 1),
(e.TEXTURE_NEAREST_NEAREST = 1),
(e.TEXTURE_BILINEAR_SAMPLINGMODE = 2),
(e.TEXTURE_LINEAR_LINEAR = 2),
(e.TEXTURE_TRILINEAR_SAMPLINGMODE = 3),
(e.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3),
(e.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4),
(e.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5),
(e.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6),
(e.TEXTURE_NEAREST_LINEAR = 7),
(e.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8),
(e.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9),
(e.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10),
(e.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11),
(e.TEXTURE_LINEAR_NEAREST = 12),
(e.TEXTURE_EXPLICIT_MODE = 0),
(e.TEXTURE_SPHERICAL_MODE = 1),
(e.TEXTURE_PLANAR_MODE = 2),
(e.TEXTURE_CUBIC_MODE = 3),
(e.TEXTURE_PROJECTION_MODE = 4),
(e.TEXTURE_SKYBOX_MODE = 5),
(e.TEXTURE_INVCUBIC_MODE = 6),
(e.TEXTURE_EQUIRECTANGULAR_MODE = 7),
(e.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8),
(e.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9),
(e.SCALEMODE_FLOOR = 1),
(e.SCALEMODE_NEAREST = 2),
(e.SCALEMODE_CEILING = 3),
(e.MATERIAL_TextureDirtyFlag = 1),
(e.MATERIAL_LightDirtyFlag = 2),
(e.MATERIAL_FresnelDirtyFlag = 4),
(e.MATERIAL_AttributesDirtyFlag = 8),
(e.MATERIAL_MiscDirtyFlag = 16),
(e.MATERIAL_AllDirtyFlag = 31),
(e.MATERIAL_TriangleFillMode = 0),
(e.MATERIAL_WireFrameFillMode = 1),
(e.MATERIAL_PointFillMode = 2),
(e.MATERIAL_PointListDrawMode = 3),
(e.MATERIAL_LineListDrawMode = 4),
(e.MATERIAL_LineLoopDrawMode = 5),
(e.MATERIAL_LineStripDrawMode = 6),
(e.MATERIAL_TriangleStripDrawMode = 7),
(e.MATERIAL_TriangleFanDrawMode = 8),
(e.MATERIAL_ClockWiseSideOrientation = 0),
(e.MATERIAL_CounterClockWiseSideOrientation = 1),
(e.ACTION_NothingTrigger = 0),
(e.ACTION_OnPickTrigger = 1),
(e.ACTION_OnLeftPickTrigger = 2),
(e.ACTION_OnRightPickTrigger = 3),
(e.ACTION_OnCenterPickTrigger = 4),
(e.ACTION_OnPickDownTrigger = 5),
(e.ACTION_OnDoublePickTrigger = 6),
(e.ACTION_OnPickUpTrigger = 7),
(e.ACTION_OnPickOutTrigger = 16),
(e.ACTION_OnLongPressTrigger = 8),
(e.ACTION_OnPointerOverTrigger = 9),
(e.ACTION_OnPointerOutTrigger = 10),
(e.ACTION_OnEveryFrameTrigger = 11),
(e.ACTION_OnIntersectionEnterTrigger = 12),
(e.ACTION_OnIntersectionExitTrigger = 13),
(e.ACTION_OnKeyDownTrigger = 14),
(e.ACTION_OnKeyUpTrigger = 15),
(e.PARTICLES_BILLBOARDMODE_Y = 2),
(e.PARTICLES_BILLBOARDMODE_ALL = 7),
(e.PARTICLES_BILLBOARDMODE_STRETCHED = 8),
(e.MESHES_CULLINGSTRATEGY_STANDARD = 0),
(e.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1),
(e.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2),
(e.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3),
(e.SCENELOADER_NO_LOGGING = 0),
(e.SCENELOADER_MINIMAL_LOGGING = 1),
(e.SCENELOADER_SUMMARY_LOGGING = 2),
(e.SCENELOADER_DETAILED_LOGGING = 3),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(1),
r = n(4),
o = (function () {
function e() {
(this._pickingUnavailable = !1),
(this.hit = !1),
(this.distance = 0),
(this.pickedPoint = null),
(this.pickedMesh = null),
(this.bu = 0),
(this.bv = 0),
(this.faceId = -1),
(this.subMeshId = 0),
(this.pickedSprite = null),
(this.originMesh = null),
(this.ray = null);
}
return (
(e.prototype.getNormal = function (e, t) {
if ((void 0 === e && (e = !1), void 0 === t && (t = !0), !this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(r.b.NormalKind))) return null;
var n,
o = this.pickedMesh.getIndices();
if (!o) return null;
if (t) {
var a = this.pickedMesh.getVerticesData(r.b.NormalKind),
s = i.e.FromArray(a, 3 * o[3 * this.faceId]),
c = i.e.FromArray(a, 3 * o[3 * this.faceId + 1]),
l = i.e.FromArray(a, 3 * o[3 * this.faceId + 2]);
(s = s.scale(this.bu)), (c = c.scale(this.bv)), (l = l.scale(1 - this.bu - this.bv)), (n = new i.e(s.x + c.x + l.x, s.y + c.y + l.y, s.z + c.z + l.z));
} else {
var u = this.pickedMesh.getVerticesData(r.b.PositionKind),
h = i.e.FromArray(u, 3 * o[3 * this.faceId]),
d = i.e.FromArray(u, 3 * o[3 * this.faceId + 1]),
p = i.e.FromArray(u, 3 * o[3 * this.faceId + 2]),
f = h.subtract(d),
m = p.subtract(d);
n = i.e.Cross(f, m);
}
if (e) {
var g = this.pickedMesh.getWorldMatrix();
this.pickedMesh.nonUniformScaling && (i.c.Matrix[0].copyFrom(g), (g = i.c.Matrix[0]).setTranslationFromFloats(0, 0, 0), g.invert(), g.transposeToRef(i.c.Matrix[1]), (g = i.c.Matrix[1])),
(n = i.e.TransformNormal(n, g));
}
return n.normalize(), n;
}),
(e.prototype.getTextureCoordinates = function () {
if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(r.b.UVKind)) return null;
var e = this.pickedMesh.getIndices();
if (!e) return null;
var t = this.pickedMesh.getVerticesData(r.b.UVKind);
if (!t) return null;
var n = i.d.FromArray(t, 2 * e[3 * this.faceId]),
o = i.d.FromArray(t, 2 * e[3 * this.faceId + 1]),
a = i.d.FromArray(t, 2 * e[3 * this.faceId + 2]);
return (n = n.scale(this.bu)), (o = o.scale(this.bv)), (a = a.scale(1 - this.bu - this.bv)), new i.d(n.x + o.x + a.x, n.y + o.y + a.y);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "clipPlaneFragment",
r =
"#ifdef CLIPPLANE\nif (fClipDistance>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE2\nif (fClipDistance2>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE3\nif (fClipDistance3>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE4\nif (fClipDistance4>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE5\nif (fClipDistance5>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE6\nif (fClipDistance6>0.0)\n{\ndiscard;\n}\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "clipPlaneVertex",
r =
"#ifdef CLIPPLANE\nfClipDistance=dot(worldPos,vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nfClipDistance2=dot(worldPos,vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nfClipDistance3=dot(worldPos,vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nfClipDistance4=dot(worldPos,vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nfClipDistance5=dot(worldPos,vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nfClipDistance6=dot(worldPos,vClipPlane6);\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(1),
r = n(5),
o = n(9),
a = n(16);
(a.a.CreateBox = function (e) {
var t,
n = [0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23],
o = [
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
-1,
0,
0,
-1,
0,
0,
-1,
0,
0,
-1,
1,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
-1,
0,
0,
-1,
0,
0,
-1,
0,
0,
-1,
0,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
-1,
0,
0,
-1,
0,
0,
-1,
0,
0,
-1,
0,
],
s = [],
c = e.width || e.size || 1,
l = e.height || e.size || 1,
u = e.depth || e.size || 1,
h = e.wrap || !1,
d = void 0 === e.topBaseAt ? 1 : e.topBaseAt,
p = void 0 === e.bottomBaseAt ? 0 : e.bottomBaseAt,
f = [2, 0, 3, 1][(d = (d + 4) % 4)],
m = [2, 0, 1, 3][(p = (p + 4) % 4)],
g = [
1,
-1,
1,
-1,
-1,
1,
-1,
1,
1,
1,
1,
1,
1,
1,
-1,
-1,
1,
-1,
-1,
-1,
-1,
1,
-1,
-1,
1,
1,
-1,
1,
-1,
-1,
1,
-1,
1,
1,
1,
1,
-1,
1,
1,
-1,
-1,
1,
-1,
-1,
-1,
-1,
1,
-1,
-1,
1,
1,
-1,
1,
-1,
1,
1,
-1,
1,
1,
1,
1,
-1,
1,
1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
1,
];
if (h) {
(n = [2, 3, 0, 2, 0, 1, 4, 5, 6, 4, 6, 7, 9, 10, 11, 9, 11, 8, 12, 14, 15, 12, 13, 14]),
(g = [-1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1]);
for (
var b = [
[1, 1, 1],
[-1, 1, 1],
[-1, 1, -1],
[1, 1, -1],
],
_ = [
[-1, -1, 1],
[1, -1, 1],
[1, -1, -1],
[-1, -1, -1],
],
v = [17, 18, 19, 16],
y = [22, 23, 20, 21];
f > 0;
)
b.unshift(b.pop()), v.unshift(v.pop()), f--;
for (; m > 0; ) _.unshift(_.pop()), y.unshift(y.pop()), m--;
(b = b.flat()), (_ = _.flat()), (g = g.concat(b).concat(_)), n.push(v[0], v[2], v[3], v[0], v[1], v[2]), n.push(y[0], y[2], y[3], y[0], y[1], y[2]);
}
var C = [c / 2, l / 2, u / 2];
t = g.reduce(function (e, t, n) {
return e.concat(t * C[n % 3]);
}, []);
for (var P = 0 === e.sideOrientation ? 0 : e.sideOrientation || a.a.DEFAULTSIDE, x = e.faceUV || new Array(6), T = e.faceColors, S = [], O = 0; O < 6; O++)
void 0 === x[O] && (x[O] = new i.f(0, 0, 1, 1)), T && void 0 === T[O] && (T[O] = new r.b(1, 1, 1, 1));
for (var E = 0; E < 6; E++) if ((s.push(x[E].z, x[E].w), s.push(x[E].x, x[E].w), s.push(x[E].x, x[E].y), s.push(x[E].z, x[E].y), T)) for (var M = 0; M < 4; M++) S.push(T[E].r, T[E].g, T[E].b, T[E].a);
a.a._ComputeSides(P, t, n, o, s, e.frontUVs, e.backUVs);
var A = new a.a();
if (((A.indices = n), (A.positions = t), (A.normals = o), (A.uvs = s), T)) {
var I = P === a.a.DOUBLESIDE ? S.concat(S) : S;
A.colors = I;
}
return A;
}),
(o.a.CreateBox = function (e, t, n, i, r) {
void 0 === n && (n = null);
var o = { size: t, sideOrientation: r, updatable: i };
return s.CreateBox(e, o, n);
});
var s = (function () {
function e() {}
return (
(e.CreateBox = function (e, t, n) {
void 0 === n && (n = null);
var i = new o.a(e, n);
return (t.sideOrientation = o.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), a.a.CreateBox(t).applyToMesh(i, t.updatable), i;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(1),
r = (function () {
function e(e, t, n, r) {
(this.normal = new i.e(e, t, n)), (this.d = r);
}
return (
(e.prototype.asArray = function () {
return [this.normal.x, this.normal.y, this.normal.z, this.d];
}),
(e.prototype.clone = function () {
return new e(this.normal.x, this.normal.y, this.normal.z, this.d);
}),
(e.prototype.getClassName = function () {
return "Plane";
}),
(e.prototype.getHashCode = function () {
var e = this.normal.getHashCode();
return (e = (397 * e) ^ (0 | this.d));
}),
(e.prototype.normalize = function () {
var e = Math.sqrt(this.normal.x * this.normal.x + this.normal.y * this.normal.y + this.normal.z * this.normal.z),
t = 0;
return 0 !== e && (t = 1 / e), (this.normal.x *= t), (this.normal.y *= t), (this.normal.z *= t), (this.d *= t), this;
}),
(e.prototype.transform = function (t) {
var n = e._TmpMatrix;
i.a.TransposeToRef(t, n);
var r = n.m,
o = this.normal.x,
a = this.normal.y,
s = this.normal.z,
c = this.d;
return new e(o * r[0] + a * r[1] + s * r[2] + c * r[3], o * r[4] + a * r[5] + s * r[6] + c * r[7], o * r[8] + a * r[9] + s * r[10] + c * r[11], o * r[12] + a * r[13] + s * r[14] + c * r[15]);
}),
(e.prototype.dotCoordinate = function (e) {
return this.normal.x * e.x + this.normal.y * e.y + this.normal.z * e.z + this.d;
}),
(e.prototype.copyFromPoints = function (e, t, n) {
var i,
r = t.x - e.x,
o = t.y - e.y,
a = t.z - e.z,
s = n.x - e.x,
c = n.y - e.y,
l = n.z - e.z,
u = o * l - a * c,
h = a * s - r * l,
d = r * c - o * s,
p = Math.sqrt(u * u + h * h + d * d);
return (i = 0 !== p ? 1 / p : 0), (this.normal.x = u * i), (this.normal.y = h * i), (this.normal.z = d * i), (this.d = -(this.normal.x * e.x + this.normal.y * e.y + this.normal.z * e.z)), this;
}),
(e.prototype.isFrontFacingTo = function (e, t) {
return i.e.Dot(this.normal, e) <= t;
}),
(e.prototype.signedDistanceTo = function (e) {
return i.e.Dot(e, this.normal) + this.d;
}),
(e.FromArray = function (t) {
return new e(t[0], t[1], t[2], t[3]);
}),
(e.FromPoints = function (t, n, i) {
var r = new e(0, 0, 0, 0);
return r.copyFromPoints(t, n, i), r;
}),
(e.FromPositionAndNormal = function (t, n) {
var i = new e(0, 0, 0, 0);
return n.normalize(), (i.normal = n), (i.d = -(n.x * t.x + n.y * t.y + n.z * t.z)), i;
}),
(e.SignedDistanceToPlaneFromPositionAndNormal = function (e, t, n) {
var r = -(t.x * e.x + t.y * e.y + t.z * e.z);
return i.e.Dot(n, t) + r;
}),
(e._TmpMatrix = i.a.Identity()),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "clipPlaneFragmentDeclaration",
r =
"#ifdef CLIPPLANE\nvarying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nvarying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nvarying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nvarying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nvarying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nvarying float fClipDistance6;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "fogFragmentDeclaration",
r =
"#ifdef FOG\n#define FOGMODE_NONE 0.\n#define FOGMODE_EXP 1.\n#define FOGMODE_EXP2 2.\n#define FOGMODE_LINEAR 3.\n#define E 2.71828\nuniform vec4 vFogInfos;\nuniform vec3 vFogColor;\nvarying vec3 vFogDistance;\nfloat CalcFogFactor()\n{\nfloat fogCoeff=1.0;\nfloat fogStart=vFogInfos.y;\nfloat fogEnd=vFogInfos.z;\nfloat fogDensity=vFogInfos.w;\nfloat fogDistance=length(vFogDistance);\nif (FOGMODE_LINEAR == vFogInfos.x)\n{\nfogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);\n}\nelse if (FOGMODE_EXP == vFogInfos.x)\n{\nfogCoeff=1.0/pow(E,fogDistance*fogDensity);\n}\nelse if (FOGMODE_EXP2 == vFogInfos.x)\n{\nfogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);\n}\nreturn clamp(fogCoeff,0.0,1.0);\n}\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "clipPlaneVertexDeclaration",
r =
"#ifdef CLIPPLANE\nuniform vec4 vClipPlane;\nvarying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;\nvarying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;\nvarying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;\nvarying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;\nvarying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;\nvarying float fClipDistance6;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
}),
n.d(t, "b", function () {
return o;
}),
n.d(t, "c", function () {
return a;
});
var i = n(2),
r = (function () {
function e() {}
return (e.KEYDOWN = 1), (e.KEYUP = 2), e;
})(),
o = function (e, t) {
(this.type = e), (this.event = t);
},
a = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (i.type = t), (i.event = n), (i.skipOnPointerObservable = !1), i;
}
return Object(i.d)(t, e), t;
})(o);
},
function (e, t, n) {
"use strict";
var i = "#ifdef FOG\nfloat fog=CalcFogFactor();\ncolor.rgb=fog*color.rgb+(1.0-fog)*vFogColor;\n#endif";
n(7).a.IncludesShadersStore.fogFragment = i;
},
function (e, t, n) {
"use strict";
var i = "fogVertexDeclaration",
r = "#ifdef FOG\nvarying vec3 vFogDistance;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(2),
r = n(8),
o =
(n(155),
(function (e) {
function t(t, n, i, o, a, s, c, l, u) {
void 0 === s && (s = !0), void 0 === c && (c = !1), void 0 === l && (l = 3), void 0 === u && (u = 0);
var h = e.call(this, null, a, !s, c) || this;
return (h.format = o), (h._engine = a.getEngine()), (h._texture = a.getEngine().createRawTexture(t, n, i, o, s, c, l, null, u)), (h.wrapU = r.a.CLAMP_ADDRESSMODE), (h.wrapV = r.a.CLAMP_ADDRESSMODE), h;
}
return (
Object(i.d)(t, e),
(t.prototype.update = function (e) {
this._engine.updateRawTexture(this._texture, e, this._texture.format, this._texture.invertY, null, this._texture.type);
}),
(t.CreateLuminanceTexture = function (e, n, i, r, o, a, s) {
return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), new t(e, n, i, 1, r, o, a, s);
}),
(t.CreateLuminanceAlphaTexture = function (e, n, i, r, o, a, s) {
return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), new t(e, n, i, 2, r, o, a, s);
}),
(t.CreateAlphaTexture = function (e, n, i, r, o, a, s) {
return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), new t(e, n, i, 0, r, o, a, s);
}),
(t.CreateRGBTexture = function (e, n, i, r, o, a, s, c) {
return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), void 0 === c && (c = 0), new t(e, n, i, 4, r, o, a, s, c);
}),
(t.CreateRGBATexture = function (e, n, i, r, o, a, s, c) {
return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), void 0 === c && (c = 0), new t(e, n, i, 5, r, o, a, s, c);
}),
(t.CreateRTexture = function (e, n, i, o, a, s, c, l) {
return void 0 === a && (a = !0), void 0 === s && (s = !1), void 0 === c && (c = r.a.TRILINEAR_SAMPLINGMODE), void 0 === l && (l = 1), new t(e, n, i, 6, o, a, s, c, l);
}),
t
);
})(r.a));
},
function (e, t, n) {
"use strict";
var i = "#ifdef FOG\nvFogDistance=(view*worldPos).xyz;\n#endif";
n(7).a.IncludesShadersStore.fogVertex = i;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(2),
r = n(28),
o = n(45),
a = n(13),
s = (function (e) {
function t(t, n) {
var i = e.call(this, t, n, !0) || this;
return n.multiMaterials.push(i), (i.subMaterials = new Array()), (i._storeEffectOnSubMeshes = !0), i;
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "subMaterials", {
get: function () {
return this._subMaterials;
},
set: function (e) {
(this._subMaterials = e), this._hookArray(e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getChildren = function () {
return this.subMaterials;
}),
(t.prototype._hookArray = function (e) {
var t = this,
n = e.push;
e.push = function () {
for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r];
var o = n.apply(e, i);
return t._markAllSubMeshesAsTexturesDirty(), o;
};
var i = e.splice;
e.splice = function (n, r) {
var o = i.apply(e, [n, r]);
return t._markAllSubMeshesAsTexturesDirty(), o;
};
}),
(t.prototype.getSubMaterial = function (e) {
return e < 0 || e >= this.subMaterials.length ? this.getScene().defaultMaterial : this.subMaterials[e];
}),
(t.prototype.getActiveTextures = function () {
var t;
return (t = e.prototype.getActiveTextures.call(this)).concat.apply(
t,
this.subMaterials.map(function (e) {
return e ? e.getActiveTextures() : [];
})
);
}),
(t.prototype.getClassName = function () {
return "MultiMaterial";
}),
(t.prototype.isReadyForSubMesh = function (e, t, n) {
for (var i = 0; i < this.subMaterials.length; i++) {
var r = this.subMaterials[i];
if (r) {
if (r._storeEffectOnSubMeshes) {
if (!r.isReadyForSubMesh(e, t, n)) return !1;
continue;
}
if (!r.isReady(e)) return !1;
}
}
return !0;
}),
(t.prototype.clone = function (e, n) {
for (var i = new t(e, this.getScene()), r = 0; r < this.subMaterials.length; r++) {
var o = null,
a = this.subMaterials[r];
(o = n && a ? a.clone(e + "-" + a.name) : this.subMaterials[r]), i.subMaterials.push(o);
}
return i;
}),
(t.prototype.serialize = function () {
var e = {};
(e.name = this.name), (e.id = this.id), o.a && (e.tags = o.a.GetTags(this)), (e.materials = []);
for (var t = 0; t < this.subMaterials.length; t++) {
var n = this.subMaterials[t];
n ? e.materials.push(n.id) : e.materials.push(null);
}
return e;
}),
(t.prototype.dispose = function (t, n, i) {
var r = this.getScene();
if (r) {
if (i)
for (var o = 0; o < this.subMaterials.length; o++) {
var a = this.subMaterials[o];
a && a.dispose(t, n);
}
(o = r.multiMaterials.indexOf(this)) >= 0 && r.multiMaterials.splice(o, 1), e.prototype.dispose.call(this, t, n);
}
}),
(t.ParseMultiMaterial = function (e, n) {
var i = new t(e.name, n);
(i.id = e.id), o.a && o.a.AddTagsTo(i, e.tags);
for (var r = 0; r < e.materials.length; r++) {
var a = e.materials[r];
a ? i.subMaterials.push(n.getLastMaterialByID(a)) : i.subMaterials.push(null);
}
return i;
}),
t
);
})(r.a);
a.a.RegisteredTypes["BABYLON.MultiMaterial"] = s;
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return B;
}),
n.d(t, "a", function () {
return V;
});
var i = n(2),
r = n(3),
o = n(10),
a = n(47),
s = n(158),
c = n(18),
l = n(1),
u = n(4),
h = n(5),
d = n(17),
p = n(11),
f = (function () {
function e(t) {
(this._isEnabled = !1),
(this.isEnabled = !1),
(this.intensity = 1),
(this.roughness = 0),
(this._indexOfRefraction = e._DefaultIndexOfRefraction),
(this.indexOfRefraction = e._DefaultIndexOfRefraction),
(this._texture = null),
(this.texture = null),
(this._bumpTexture = null),
(this.bumpTexture = null),
(this._isTintEnabled = !1),
(this.isTintEnabled = !1),
(this.tintColor = h.a.White()),
(this.tintColorAtDistance = 1),
(this.tintThickness = 1),
(this._tintTexture = null),
(this.tintTexture = null),
(this._internalMarkAllSubMeshesAsTexturesDirty = t);
}
return (
(e.prototype._markAllSubMeshesAsTexturesDirty = function () {
this._internalMarkAllSubMeshesAsTexturesDirty();
}),
(e.prototype.isReadyForSubMesh = function (e, t, n, i) {
if (e._areTexturesDirty && t.texturesEnabled) {
if (this._texture && d.a.ClearCoatTextureEnabled && !this._texture.isReadyOrNotBlocking()) return !1;
if (n.getCaps().standardDerivatives && this._bumpTexture && d.a.ClearCoatBumpTextureEnabled && !i && !this._bumpTexture.isReady()) return !1;
if (this._isTintEnabled && this._tintTexture && d.a.ClearCoatTintTextureEnabled && !this._tintTexture.isReadyOrNotBlocking()) return !1;
}
return !0;
}),
(e.prototype.prepareDefines = function (t, n) {
this._isEnabled
? ((t.CLEARCOAT = !0),
t._areTexturesDirty &&
n.texturesEnabled &&
(this._texture && d.a.ClearCoatTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._texture, t, "CLEARCOAT_TEXTURE") : (t.CLEARCOAT_TEXTURE = !1),
this._bumpTexture && d.a.ClearCoatBumpTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._bumpTexture, t, "CLEARCOAT_BUMP") : (t.CLEARCOAT_BUMP = !1),
(t.CLEARCOAT_DEFAULTIOR = this._indexOfRefraction === e._DefaultIndexOfRefraction),
this._isTintEnabled
? ((t.CLEARCOAT_TINT = !0), this._tintTexture && d.a.ClearCoatTintTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._tintTexture, t, "CLEARCOAT_TINT_TEXTURE") : (t.CLEARCOAT_TINT_TEXTURE = !1))
: ((t.CLEARCOAT_TINT = !1), (t.CLEARCOAT_TINT_TEXTURE = !1))))
: ((t.CLEARCOAT = !1), (t.CLEARCOAT_TEXTURE = !1), (t.CLEARCOAT_BUMP = !1), (t.CLEARCOAT_TINT = !1), (t.CLEARCOAT_TINT_TEXTURE = !1));
}),
(e.prototype.bindForSubMesh = function (e, t, n, i, r, o, a) {
if (!e.useUbo || !r || !e.isSync) {
this._texture && d.a.ClearCoatTextureEnabled && (e.updateFloat2("vClearCoatInfos", this._texture.coordinatesIndex, this._texture.level), p.a.BindTextureMatrix(this._texture, e, "clearCoat")),
this._bumpTexture &&
n.getCaps().standardDerivatives &&
d.a.ClearCoatTextureEnabled &&
!i &&
(e.updateFloat2("vClearCoatBumpInfos", this._bumpTexture.coordinatesIndex, this._bumpTexture.level),
p.a.BindTextureMatrix(this._bumpTexture, e, "clearCoatBump"),
t._mirroredCameraPosition ? e.updateFloat2("vClearCoatTangentSpaceParams", o ? 1 : -1, a ? 1 : -1) : e.updateFloat2("vClearCoatTangentSpaceParams", o ? -1 : 1, a ? -1 : 1)),
this._tintTexture &&
d.a.ClearCoatTintTextureEnabled &&
(e.updateFloat2("vClearCoatTintInfos", this._tintTexture.coordinatesIndex, this._tintTexture.level), p.a.BindTextureMatrix(this._tintTexture, e, "clearCoatTint")),
e.updateFloat2("vClearCoatParams", this.intensity, this.roughness);
var s = 1 - this._indexOfRefraction,
c = 1 + this._indexOfRefraction,
l = Math.pow(-s / c, 2),
u = 1 / this._indexOfRefraction;
e.updateFloat4("vClearCoatRefractionParams", l, u, s, c),
this._isTintEnabled &&
(e.updateFloat4("vClearCoatTintParams", this.tintColor.r, this.tintColor.g, this.tintColor.b, Math.max(1e-5, this.tintThickness)),
e.updateFloat("clearCoatColorAtDistance", Math.max(1e-5, this.tintColorAtDistance)));
}
t.texturesEnabled &&
(this._texture && d.a.ClearCoatTextureEnabled && e.setTexture("clearCoatSampler", this._texture),
this._bumpTexture && n.getCaps().standardDerivatives && d.a.ClearCoatBumpTextureEnabled && !i && e.setTexture("clearCoatBumpSampler", this._bumpTexture),
this._isTintEnabled && this._tintTexture && d.a.ClearCoatTintTextureEnabled && e.setTexture("clearCoatTintSampler", this._tintTexture));
}),
(e.prototype.hasTexture = function (e) {
return this._texture === e || this._bumpTexture === e || this._tintTexture === e;
}),
(e.prototype.getActiveTextures = function (e) {
this._texture && e.push(this._texture), this._bumpTexture && e.push(this._bumpTexture), this._tintTexture && e.push(this._tintTexture);
}),
(e.prototype.getAnimatables = function (e) {
this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture),
this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture),
this._tintTexture && this._tintTexture.animations && this._tintTexture.animations.length > 0 && e.push(this._tintTexture);
}),
(e.prototype.dispose = function (e) {
e && (this._texture && this._texture.dispose(), this._bumpTexture && this._bumpTexture.dispose(), this._tintTexture && this._tintTexture.dispose());
}),
(e.prototype.getClassName = function () {
return "PBRClearCoatConfiguration";
}),
(e.AddFallbacks = function (e, t, n) {
return e.CLEARCOAT_BUMP && t.addFallback(n++, "CLEARCOAT_BUMP"), e.CLEARCOAT_TINT && t.addFallback(n++, "CLEARCOAT_TINT"), e.CLEARCOAT && t.addFallback(n++, "CLEARCOAT"), n;
}),
(e.AddUniforms = function (e) {
e.push(
"vClearCoatTangentSpaceParams",
"vClearCoatParams",
"vClearCoatRefractionParams",
"vClearCoatTintParams",
"clearCoatColorAtDistance",
"clearCoatMatrix",
"clearCoatBumpMatrix",
"clearCoatTintMatrix",
"vClearCoatInfos",
"vClearCoatBumpInfos",
"vClearCoatTintInfos"
);
}),
(e.AddSamplers = function (e) {
e.push("clearCoatSampler", "clearCoatBumpSampler", "clearCoatTintSampler");
}),
(e.PrepareUniformBuffer = function (e) {
e.addUniform("vClearCoatParams", 2),
e.addUniform("vClearCoatRefractionParams", 4),
e.addUniform("vClearCoatInfos", 2),
e.addUniform("clearCoatMatrix", 16),
e.addUniform("vClearCoatBumpInfos", 2),
e.addUniform("vClearCoatTangentSpaceParams", 2),
e.addUniform("clearCoatBumpMatrix", 16),
e.addUniform("vClearCoatTintParams", 4),
e.addUniform("clearCoatColorAtDistance", 1),
e.addUniform("vClearCoatTintInfos", 2),
e.addUniform("clearCoatTintMatrix", 16);
}),
(e.prototype.copyTo = function (e) {
r.a.Clone(function () {
return e;
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.prototype.parse = function (e, t, n) {
var i = this;
r.a.Parse(
function () {
return i;
},
e,
t,
n
);
}),
(e._DefaultIndexOfRefraction = 1.5),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "intensity", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "roughness", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "indexOfRefraction", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "texture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "bumpTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isTintEnabled", void 0),
Object(i.c)([Object(r.e)()], e.prototype, "tintColor", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "tintColorAtDistance", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "tintThickness", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "tintTexture", void 0),
e
);
})(),
m = (function () {
function e(e) {
(this._isEnabled = !1), (this.isEnabled = !1), (this.intensity = 1), (this.direction = new l.d(1, 0)), (this._texture = null), (this.texture = null), (this._internalMarkAllSubMeshesAsTexturesDirty = e);
}
return (
(e.prototype._markAllSubMeshesAsTexturesDirty = function () {
this._internalMarkAllSubMeshesAsTexturesDirty();
}),
(e.prototype.isReadyForSubMesh = function (e, t) {
return !(e._areTexturesDirty && t.texturesEnabled && this._texture && d.a.AnisotropicTextureEnabled && !this._texture.isReadyOrNotBlocking());
}),
(e.prototype.prepareDefines = function (e, t, n) {
this._isEnabled
? ((e.ANISOTROPIC = this._isEnabled),
this._isEnabled && !t.isVerticesDataPresent(u.b.TangentKind) && ((e._needUVs = !0), (e.MAINUV1 = !0)),
e._areTexturesDirty && n.texturesEnabled && (this._texture && d.a.AnisotropicTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._texture, e, "ANISOTROPIC_TEXTURE") : (e.ANISOTROPIC_TEXTURE = !1)))
: ((e.ANISOTROPIC = !1), (e.ANISOTROPIC_TEXTURE = !1));
}),
(e.prototype.bindForSubMesh = function (e, t, n) {
(e.useUbo && n && e.isSync) ||
(this._texture && d.a.AnisotropicTextureEnabled && (e.updateFloat2("vAnisotropyInfos", this._texture.coordinatesIndex, this._texture.level), p.a.BindTextureMatrix(this._texture, e, "anisotropy")),
e.updateFloat3("vAnisotropy", this.direction.x, this.direction.y, this.intensity)),
t.texturesEnabled && this._texture && d.a.AnisotropicTextureEnabled && e.setTexture("anisotropySampler", this._texture);
}),
(e.prototype.hasTexture = function (e) {
return this._texture === e;
}),
(e.prototype.getActiveTextures = function (e) {
this._texture && e.push(this._texture);
}),
(e.prototype.getAnimatables = function (e) {
this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture);
}),
(e.prototype.dispose = function (e) {
e && this._texture && this._texture.dispose();
}),
(e.prototype.getClassName = function () {
return "PBRAnisotropicConfiguration";
}),
(e.AddFallbacks = function (e, t, n) {
return e.ANISOTROPIC && t.addFallback(n++, "ANISOTROPIC"), n;
}),
(e.AddUniforms = function (e) {
e.push("vAnisotropy", "vAnisotropyInfos", "anisotropyMatrix");
}),
(e.PrepareUniformBuffer = function (e) {
e.addUniform("vAnisotropy", 3), e.addUniform("vAnisotropyInfos", 2), e.addUniform("anisotropyMatrix", 16);
}),
(e.AddSamplers = function (e) {
e.push("anisotropySampler");
}),
(e.prototype.copyTo = function (e) {
r.a.Clone(function () {
return e;
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.prototype.parse = function (e, t, n) {
var i = this;
r.a.Parse(
function () {
return i;
},
e,
t,
n
);
}),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "intensity", void 0),
Object(i.c)([Object(r.n)()], e.prototype, "direction", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "texture", void 0),
e
);
})(),
g = (function () {
function e(t) {
(this._useEnergyConservation = e.DEFAULT_USE_ENERGY_CONSERVATION),
(this.useEnergyConservation = e.DEFAULT_USE_ENERGY_CONSERVATION),
(this._useSmithVisibilityHeightCorrelated = e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED),
(this.useSmithVisibilityHeightCorrelated = e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED),
(this._useSphericalHarmonics = e.DEFAULT_USE_SPHERICAL_HARMONICS),
(this.useSphericalHarmonics = e.DEFAULT_USE_SPHERICAL_HARMONICS),
(this._useSpecularGlossinessInputEnergyConservation = e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION),
(this.useSpecularGlossinessInputEnergyConservation = e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION),
(this._internalMarkAllSubMeshesAsMiscDirty = t);
}
return (
(e.prototype._markAllSubMeshesAsMiscDirty = function () {
this._internalMarkAllSubMeshesAsMiscDirty();
}),
(e.prototype.prepareDefines = function (e) {
(e.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated),
(e.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated),
(e.SPHERICAL_HARMONICS = this._useSphericalHarmonics),
(e.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation);
}),
(e.prototype.getClassName = function () {
return "PBRBRDFConfiguration";
}),
(e.prototype.copyTo = function (e) {
r.a.Clone(function () {
return e;
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.prototype.parse = function (e, t, n) {
var i = this;
r.a.Parse(
function () {
return i;
},
e,
t,
n
);
}),
(e.DEFAULT_USE_ENERGY_CONSERVATION = !0),
(e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = !0),
(e.DEFAULT_USE_SPHERICAL_HARMONICS = !0),
(e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = !0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useEnergyConservation", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useSmithVisibilityHeightCorrelated", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useSphericalHarmonics", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useSpecularGlossinessInputEnergyConservation", void 0),
e
);
})(),
b = (function () {
function e(e) {
(this._isEnabled = !1),
(this.isEnabled = !1),
(this._linkSheenWithAlbedo = !1),
(this.linkSheenWithAlbedo = !1),
(this.intensity = 1),
(this.color = h.a.White()),
(this._texture = null),
(this.texture = null),
(this._internalMarkAllSubMeshesAsTexturesDirty = e);
}
return (
(e.prototype._markAllSubMeshesAsTexturesDirty = function () {
this._internalMarkAllSubMeshesAsTexturesDirty();
}),
(e.prototype.isReadyForSubMesh = function (e, t) {
return !(e._areTexturesDirty && t.texturesEnabled && this._texture && d.a.SheenTextureEnabled && !this._texture.isReadyOrNotBlocking());
}),
(e.prototype.prepareDefines = function (e, t) {
this._isEnabled
? ((e.SHEEN = this._isEnabled),
(e.SHEEN_LINKWITHALBEDO = this._linkSheenWithAlbedo),
e._areTexturesDirty && t.texturesEnabled && (this._texture && d.a.SheenTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._texture, e, "SHEEN_TEXTURE") : (e.SHEEN_TEXTURE = !1)))
: ((e.SHEEN = !1), (e.SHEEN_TEXTURE = !1), (e.SHEEN_LINKWITHALBEDO = !1));
}),
(e.prototype.bindForSubMesh = function (e, t, n) {
(e.useUbo && n && e.isSync) ||
(this._texture && d.a.SheenTextureEnabled && (e.updateFloat2("vSheenInfos", this._texture.coordinatesIndex, this._texture.level), p.a.BindTextureMatrix(this._texture, e, "sheen")),
e.updateFloat4("vSheenColor", this.color.r, this.color.g, this.color.b, this.intensity)),
t.texturesEnabled && this._texture && d.a.SheenTextureEnabled && e.setTexture("sheenSampler", this._texture);
}),
(e.prototype.hasTexture = function (e) {
return this._texture === e;
}),
(e.prototype.getActiveTextures = function (e) {
this._texture && e.push(this._texture);
}),
(e.prototype.getAnimatables = function (e) {
this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture);
}),
(e.prototype.dispose = function (e) {
e && this._texture && this._texture.dispose();
}),
(e.prototype.getClassName = function () {
return "PBRSheenConfiguration";
}),
(e.AddFallbacks = function (e, t, n) {
return e.SHEEN && t.addFallback(n++, "SHEEN"), n;
}),
(e.AddUniforms = function (e) {
e.push("vSheenColor", "vSheenInfos", "sheenMatrix");
}),
(e.PrepareUniformBuffer = function (e) {
e.addUniform("vSheenColor", 4), e.addUniform("vSheenInfos", 2), e.addUniform("sheenMatrix", 16);
}),
(e.AddSamplers = function (e) {
e.push("sheenSampler");
}),
(e.prototype.copyTo = function (e) {
r.a.Clone(function () {
return e;
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.prototype.parse = function (e, t, n) {
var i = this;
r.a.Parse(
function () {
return i;
},
e,
t,
n
);
}),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isEnabled", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "linkSheenWithAlbedo", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "intensity", void 0),
Object(i.c)([Object(r.e)()], e.prototype, "color", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "texture", void 0),
e
);
})(),
_ = (function () {
function e(e) {
(this._isRefractionEnabled = !1),
(this.isRefractionEnabled = !1),
(this._isTranslucencyEnabled = !1),
(this.isTranslucencyEnabled = !1),
(this._isScatteringEnabled = !1),
(this.refractionIntensity = 1),
(this.translucencyIntensity = 1),
(this.scatteringIntensity = 1),
(this._thicknessTexture = null),
(this.thicknessTexture = null),
(this._refractionTexture = null),
(this.refractionTexture = null),
(this._indexOfRefraction = 1),
(this.indexOfRefraction = 1),
(this._invertRefractionY = !1),
(this.invertRefractionY = !1),
(this._linkRefractionWithTransparency = !1),
(this.linkRefractionWithTransparency = !1),
(this.minimumThickness = 0),
(this.maximumThickness = 1),
(this.tintColor = h.a.White()),
(this.tintColorAtDistance = 1),
(this.diffusionDistance = h.a.White()),
(this._useMaskFromThicknessTexture = !1),
(this.useMaskFromThicknessTexture = !1),
(this._internalMarkAllSubMeshesAsTexturesDirty = e);
}
return (
(e.prototype._markAllSubMeshesAsTexturesDirty = function () {
this._internalMarkAllSubMeshesAsTexturesDirty();
}),
(e.prototype.isReadyForSubMesh = function (e, t) {
if (e._areTexturesDirty && t.texturesEnabled) {
if (this._thicknessTexture && d.a.ThicknessTextureEnabled && !this._thicknessTexture.isReadyOrNotBlocking()) return !1;
var n = this._getRefractionTexture(t);
if (n && d.a.RefractionTextureEnabled && !n.isReadyOrNotBlocking()) return !1;
}
return !0;
}),
(e.prototype.prepareDefines = function (e, t) {
if (
e._areTexturesDirty &&
((e.SUBSURFACE = !1),
(e.SS_TRANSLUCENCY = this._isTranslucencyEnabled),
(e.SS_SCATERRING = this._isScatteringEnabled),
(e.SS_THICKNESSANDMASK_TEXTURE = !1),
(e.SS_MASK_FROM_THICKNESS_TEXTURE = !1),
(e.SS_REFRACTION = !1),
(e.SS_REFRACTIONMAP_3D = !1),
(e.SS_GAMMAREFRACTION = !1),
(e.SS_RGBDREFRACTION = !1),
(e.SS_LINEARSPECULARREFRACTION = !1),
(e.SS_REFRACTIONMAP_OPPOSITEZ = !1),
(e.SS_LODINREFRACTIONALPHA = !1),
(e.SS_LINKREFRACTIONTOTRANSPARENCY = !1),
(this._isRefractionEnabled || this._isTranslucencyEnabled || this._isScatteringEnabled) &&
((e.SUBSURFACE = !0),
e._areTexturesDirty && t.texturesEnabled && this._thicknessTexture && d.a.ThicknessTextureEnabled && p.a.PrepareDefinesForMergedUV(this._thicknessTexture, e, "SS_THICKNESSANDMASK_TEXTURE"),
(e.SS_MASK_FROM_THICKNESS_TEXTURE = this._useMaskFromThicknessTexture)),
this._isRefractionEnabled && t.texturesEnabled)
) {
var n = this._getRefractionTexture(t);
n &&
d.a.RefractionTextureEnabled &&
((e.SS_REFRACTION = !0),
(e.SS_REFRACTIONMAP_3D = n.isCube),
(e.SS_GAMMAREFRACTION = n.gammaSpace),
(e.SS_RGBDREFRACTION = n.isRGBD),
(e.SS_LINEARSPECULARREFRACTION = n.linearSpecularLOD),
(e.SS_REFRACTIONMAP_OPPOSITEZ = n.invertZ),
(e.SS_LODINREFRACTIONALPHA = n.lodLevelInAlpha),
(e.SS_LINKREFRACTIONTOTRANSPARENCY = this._linkRefractionWithTransparency));
}
}),
(e.prototype.bindForSubMesh = function (e, t, n, i, r) {
var o = this._getRefractionTexture(t);
if (!e.useUbo || !i || !e.isSync) {
if (
(this._thicknessTexture &&
d.a.ThicknessTextureEnabled &&
(e.updateFloat2("vThicknessInfos", this._thicknessTexture.coordinatesIndex, this._thicknessTexture.level), p.a.BindTextureMatrix(this._thicknessTexture, e, "thickness")),
e.updateFloat2("vThicknessParam", this.minimumThickness, this.maximumThickness - this.minimumThickness),
o && d.a.RefractionTextureEnabled)
) {
e.updateMatrix("refractionMatrix", o.getReflectionTextureMatrix());
var a = 1;
o.isCube || (o.depth && (a = o.depth)),
e.updateFloat4("vRefractionInfos", o.level, 1 / this._indexOfRefraction, a, this._invertRefractionY ? -1 : 1),
e.updateFloat3("vRefractionMicrosurfaceInfos", o.getSize().width, o.lodGenerationScale, o.lodGenerationOffset);
}
e.updateColor3("vDiffusionDistance", this.diffusionDistance),
e.updateFloat4("vTintColor", this.tintColor.r, this.tintColor.g, this.tintColor.b, this.tintColorAtDistance),
e.updateFloat3("vSubSurfaceIntensity", this.refractionIntensity, this.translucencyIntensity, this.scatteringIntensity);
}
t.texturesEnabled &&
(this._thicknessTexture && d.a.ThicknessTextureEnabled && e.setTexture("thicknessSampler", this._thicknessTexture),
o &&
d.a.RefractionTextureEnabled &&
(r
? e.setTexture("refractionSampler", o)
: (e.setTexture("refractionSampler", o._lodTextureMid || o), e.setTexture("refractionSamplerLow", o._lodTextureLow || o), e.setTexture("refractionSamplerHigh", o._lodTextureHigh || o))));
}),
(e.prototype.unbind = function (e) {
return !(!this._refractionTexture || !this._refractionTexture.isRenderTarget) && (e.setTexture("refractionSampler", null), !0);
}),
(e.prototype._getRefractionTexture = function (e) {
return this._refractionTexture ? this._refractionTexture : this._isRefractionEnabled ? e.environmentTexture : null;
}),
Object.defineProperty(e.prototype, "disableAlphaBlending", {
get: function () {
return this.isRefractionEnabled && this._linkRefractionWithTransparency;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.fillRenderTargetTextures = function (e) {
d.a.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget && e.push(this._refractionTexture);
}),
(e.prototype.hasTexture = function (e) {
return this._thicknessTexture === e || this._refractionTexture === e;
}),
(e.prototype.hasRenderTargetTextures = function () {
return !!(d.a.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget);
}),
(e.prototype.getActiveTextures = function (e) {
this._thicknessTexture && e.push(this._thicknessTexture), this._refractionTexture && e.push(this._refractionTexture);
}),
(e.prototype.getAnimatables = function (e) {
this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0 && e.push(this._thicknessTexture),
this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0 && e.push(this._refractionTexture);
}),
(e.prototype.dispose = function (e) {
e && (this._thicknessTexture && this._thicknessTexture.dispose(), this._refractionTexture && this._refractionTexture.dispose());
}),
(e.prototype.getClassName = function () {
return "PBRSubSurfaceConfiguration";
}),
(e.AddFallbacks = function (e, t, n) {
return e.SS_SCATERRING && t.addFallback(n++, "SS_SCATERRING"), e.SS_TRANSLUCENCY && t.addFallback(n++, "SS_TRANSLUCENCY"), n;
}),
(e.AddUniforms = function (e) {
e.push("vDiffusionDistance", "vTintColor", "vSubSurfaceIntensity", "vRefractionMicrosurfaceInfos", "vRefractionInfos", "vThicknessInfos", "vThicknessParam", "refractionMatrix", "thicknessMatrix");
}),
(e.AddSamplers = function (e) {
e.push("thicknessSampler", "refractionSampler", "refractionSamplerLow", "refractionSamplerHigh");
}),
(e.PrepareUniformBuffer = function (e) {
e.addUniform("vRefractionMicrosurfaceInfos", 3),
e.addUniform("vRefractionInfos", 4),
e.addUniform("refractionMatrix", 16),
e.addUniform("vThicknessInfos", 2),
e.addUniform("thicknessMatrix", 16),
e.addUniform("vThicknessParam", 2),
e.addUniform("vDiffusionDistance", 3),
e.addUniform("vTintColor", 4),
e.addUniform("vSubSurfaceIntensity", 3);
}),
(e.prototype.copyTo = function (e) {
r.a.Clone(function () {
return e;
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.prototype.parse = function (e, t, n) {
var i = this;
r.a.Parse(
function () {
return i;
},
e,
t,
n
);
}),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isRefractionEnabled", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isTranslucencyEnabled", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "refractionIntensity", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "translucencyIntensity", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "scatteringIntensity", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "thicknessTexture", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "refractionTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "indexOfRefraction", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "invertRefractionY", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "linkRefractionWithTransparency", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "minimumThickness", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "maximumThickness", void 0),
Object(i.c)([Object(r.e)()], e.prototype, "tintColor", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "tintColorAtDistance", void 0),
Object(i.c)([Object(r.e)()], e.prototype, "diffusionDistance", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "useMaskFromThicknessTexture", void 0),
e
);
})(),
v = n(50),
y = n(41),
C = n(46),
P = n(8),
x = (n(213), n(7)),
T =
"uniform vec3 vReflectionColor;\nuniform vec4 vAlbedoColor;\n\nuniform vec4 vLightingIntensity;\nuniform vec4 vReflectivityColor;\nuniform vec3 vEmissiveColor;\nuniform float visibility;\n\n#ifdef ALBEDO\nuniform vec2 vAlbedoInfos;\n#endif\n#ifdef AMBIENT\nuniform vec4 vAmbientInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#ifdef OPACITY\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef REFLECTIVITY\nuniform vec3 vReflectivityInfos;\n#endif\n#ifdef MICROSURFACEMAP\nuniform vec2 vMicroSurfaceSamplerInfos;\n#endif\n\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION)\nuniform mat4 view;\n#endif\n\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\n#endif\n#endif\n\n#ifdef CLEARCOAT\nuniform vec2 vClearCoatParams;\nuniform vec4 vClearCoatRefractionParams;\n#ifdef CLEARCOAT_TEXTURE\nuniform vec2 vClearCoatInfos;\nuniform mat4 clearCoatMatrix;\n#endif\n#ifdef CLEARCOAT_BUMP\nuniform vec2 vClearCoatBumpInfos;\nuniform vec2 vClearCoatTangentSpaceParams;\nuniform mat4 clearCoatBumpMatrix;\n#endif\n#ifdef CLEARCOAT_TINT\nuniform vec4 vClearCoatTintParams;\nuniform float clearCoatColorAtDistance;\n#ifdef CLEARCOAT_TINT_TEXTURE\nuniform vec2 vClearCoatTintInfos;\nuniform mat4 clearCoatTintMatrix;\n#endif\n#endif\n#endif\n\n#ifdef ANISOTROPIC\nuniform vec3 vAnisotropy;\n#ifdef ANISOTROPIC_TEXTURE\nuniform vec2 vAnisotropyInfos;\nuniform mat4 anisotropyMatrix;\n#endif\n#endif\n\n#ifdef SHEEN\nuniform vec4 vSheenColor;\n#ifdef SHEEN_TEXTURE\nuniform vec2 vSheenInfos;\nuniform mat4 sheenMatrix;\n#endif\n#endif\n\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\nuniform vec3 vRefractionMicrosurfaceInfos;\nuniform vec4 vRefractionInfos;\nuniform mat4 refractionMatrix;\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nuniform vec2 vThicknessInfos;\nuniform mat4 thicknessMatrix;\n#endif\nuniform vec2 vThicknessParam;\nuniform vec3 vDiffusionDistance;\nuniform vec4 vTintColor;\nuniform vec3 vSubSurfaceIntensity;\n#endif";
x.a.IncludesShadersStore.pbrFragmentDeclaration = T;
var S =
"layout(std140,column_major) uniform;\nuniform Material\n{\nuniform vec2 vAlbedoInfos;\nuniform vec4 vAmbientInfos;\nuniform vec2 vOpacityInfos;\nuniform vec2 vEmissiveInfos;\nuniform vec2 vLightmapInfos;\nuniform vec3 vReflectivityInfos;\nuniform vec2 vMicroSurfaceSamplerInfos;\nuniform vec2 vReflectionInfos;\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\nuniform vec3 vBumpInfos;\nuniform mat4 albedoMatrix;\nuniform mat4 ambientMatrix;\nuniform mat4 opacityMatrix;\nuniform mat4 emissiveMatrix;\nuniform mat4 lightmapMatrix;\nuniform mat4 reflectivityMatrix;\nuniform mat4 microSurfaceSamplerMatrix;\nuniform mat4 bumpMatrix;\nuniform vec2 vTangentSpaceParams;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionColor;\nuniform vec4 vAlbedoColor;\nuniform vec4 vLightingIntensity;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float pointSize;\nuniform vec4 vReflectivityColor;\nuniform vec3 vEmissiveColor;\nuniform float visibility;\nuniform vec2 vClearCoatParams;\nuniform vec4 vClearCoatRefractionParams;\nuniform vec2 vClearCoatInfos;\nuniform mat4 clearCoatMatrix;\nuniform vec2 vClearCoatBumpInfos;\nuniform vec2 vClearCoatTangentSpaceParams;\nuniform mat4 clearCoatBumpMatrix;\nuniform vec4 vClearCoatTintParams;\nuniform float clearCoatColorAtDistance;\nuniform vec2 vClearCoatTintInfos;\nuniform mat4 clearCoatTintMatrix;\nuniform vec3 vAnisotropy;\nuniform vec2 vAnisotropyInfos;\nuniform mat4 anisotropyMatrix;\nuniform vec4 vSheenColor;\nuniform vec2 vSheenInfos;\nuniform mat4 sheenMatrix;\nuniform vec3 vRefractionMicrosurfaceInfos;\nuniform vec4 vRefractionInfos;\nuniform mat4 refractionMatrix;\nuniform vec2 vThicknessInfos;\nuniform mat4 thicknessMatrix;\nuniform vec2 vThicknessParam;\nuniform vec3 vDiffusionDistance;\nuniform vec4 vTintColor;\nuniform vec3 vSubSurfaceIntensity;\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};";
x.a.IncludesShadersStore.pbrUboDeclaration = S;
var O =
"uniform vec4 vEyePosition;\nuniform vec3 vAmbientColor;\nuniform vec4 vCameraInfos;\n\nvarying vec3 vPositionW;\n#if DEBUGMODE>0\nuniform vec2 vDebugMode;\nvarying vec4 vClipSpacePosition;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vec3 vEnvironmentIrradiance;\n#endif\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif";
x.a.IncludesShadersStore.pbrFragmentExtraDeclaration = O;
n(60), n(61);
var E =
"#ifdef ALBEDO\n#if ALBEDODIRECTUV == 1\n#define vAlbedoUV vMainUV1\n#elif ALBEDODIRECTUV == 2\n#define vAlbedoUV vMainUV2\n#else\nvarying vec2 vAlbedoUV;\n#endif\nuniform sampler2D albedoSampler;\n#endif\n#ifdef AMBIENT\n#if AMBIENTDIRECTUV == 1\n#define vAmbientUV vMainUV1\n#elif AMBIENTDIRECTUV == 2\n#define vAmbientUV vMainUV2\n#else\nvarying vec2 vAmbientUV;\n#endif\nuniform sampler2D ambientSampler;\n#endif\n#ifdef OPACITY\n#if OPACITYDIRECTUV == 1\n#define vOpacityUV vMainUV1\n#elif OPACITYDIRECTUV == 2\n#define vOpacityUV vMainUV2\n#else\nvarying vec2 vOpacityUV;\n#endif\nuniform sampler2D opacitySampler;\n#endif\n#ifdef EMISSIVE\n#if EMISSIVEDIRECTUV == 1\n#define vEmissiveUV vMainUV1\n#elif EMISSIVEDIRECTUV == 2\n#define vEmissiveUV vMainUV2\n#else\nvarying vec2 vEmissiveUV;\n#endif\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef LIGHTMAP\n#if LIGHTMAPDIRECTUV == 1\n#define vLightmapUV vMainUV1\n#elif LIGHTMAPDIRECTUV == 2\n#define vLightmapUV vMainUV2\n#else\nvarying vec2 vLightmapUV;\n#endif\nuniform sampler2D lightmapSampler;\n#endif\n#ifdef REFLECTIVITY\n#if REFLECTIVITYDIRECTUV == 1\n#define vReflectivityUV vMainUV1\n#elif REFLECTIVITYDIRECTUV == 2\n#define vReflectivityUV vMainUV2\n#else\nvarying vec2 vReflectivityUV;\n#endif\nuniform sampler2D reflectivitySampler;\n#endif\n#ifdef MICROSURFACEMAP\n#if MICROSURFACEMAPDIRECTUV == 1\n#define vMicroSurfaceSamplerUV vMainUV1\n#elif MICROSURFACEMAPDIRECTUV == 2\n#define vMicroSurfaceSamplerUV vMainUV2\n#else\nvarying vec2 vMicroSurfaceSamplerUV;\n#endif\nuniform sampler2D microSurfaceSampler;\n#endif\n#ifdef CLEARCOAT\n#ifdef CLEARCOAT_TEXTURE\n#if CLEARCOAT_TEXTUREDIRECTUV == 1\n#define vClearCoatUV vMainUV1\n#elif CLEARCOAT_TEXTUREDIRECTUV == 2\n#define vClearCoatUV vMainUV2\n#else\nvarying vec2 vClearCoatUV;\n#endif\nuniform sampler2D clearCoatSampler;\n#endif\n#ifdef CLEARCOAT_BUMP\n#if CLEARCOAT_BUMPDIRECTUV == 1\n#define vClearCoatBumpUV vMainUV1\n#elif CLEARCOAT_BUMPDIRECTUV == 2\n#define vClearCoatBumpUV vMainUV2\n#else\nvarying vec2 vClearCoatBumpUV;\n#endif\nuniform sampler2D clearCoatBumpSampler;\n#endif\n#ifdef CLEARCOAT_TINT_TEXTURE\n#if CLEARCOAT_TINT_TEXTUREDIRECTUV == 1\n#define vClearCoatTintUV vMainUV1\n#elif CLEARCOAT_TINT_TEXTUREDIRECTUV == 2\n#define vClearCoatTintUV vMainUV2\n#else\nvarying vec2 vClearCoatTintUV;\n#endif\nuniform sampler2D clearCoatTintSampler;\n#endif\n#endif\n#ifdef SHEEN\n#ifdef SHEEN_TEXTURE\n#if SHEEN_TEXTUREDIRECTUV == 1\n#define vSheenUV vMainUV1\n#elif SHEEN_TEXTUREDIRECTUV == 2\n#define vSheenUV vMainUV2\n#else\nvarying vec2 vSheenUV;\n#endif\nuniform sampler2D sheenSampler;\n#endif\n#endif\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_TEXTURE\n#if ANISOTROPIC_TEXTUREDIRECTUV == 1\n#define vAnisotropyUV vMainUV1\n#elif ANISOTROPIC_TEXTUREDIRECTUV == 2\n#define vAnisotropyUV vMainUV2\n#else\nvarying vec2 vAnisotropyUV;\n#endif\nuniform sampler2D anisotropySampler;\n#endif\n#endif\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform samplerCube irradianceSampler;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform sampler2D reflectionSamplerLow;\nuniform sampler2D reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform sampler2D irradianceSampler;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#endif\n#ifdef ENVIRONMENTBRDF\nuniform sampler2D environmentBrdfSampler;\n#endif\n\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\n#ifdef SS_REFRACTIONMAP_3D\n#define sampleRefraction(s,c) textureCube(s,c)\nuniform samplerCube refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;\nuniform samplerCube refractionSamplerHigh;\n#endif\n#else\n#define sampleRefraction(s,c) texture2D(s,c)\nuniform sampler2D refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;\nuniform samplerCube refractionSamplerHigh;\n#endif\n#endif\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\n#if SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 1\n#define vThicknessUV vMainUV1\n#elif SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 2\n#define vThicknessUV vMainUV2\n#else\nvarying vec2 vThicknessUV;\n#endif\nuniform sampler2D thicknessSampler;\n#endif\n#endif";
x.a.IncludesShadersStore.pbrFragmentSamplersDeclaration = E;
n(140), n(86), n(142), n(87), n(59);
var M =
"\n#define RECIPROCAL_PI2 0.15915494\n#define RECIPROCAL_PI 0.31830988618\n\n#define MINIMUMVARIANCE 0.0005\nfloat convertRoughnessToAverageSlope(float roughness)\n{\n\nreturn square(roughness)+MINIMUMVARIANCE;\n}\nfloat fresnelGrazingReflectance(float reflectance0) {\n\n\nfloat reflectance90=saturate(reflectance0*25.0);\nreturn reflectance90;\n}\nvec2 getAARoughnessFactors(vec3 normalVector) {\n#ifdef SPECULARAA\nvec3 nDfdx=dFdx(normalVector.xyz);\nvec3 nDfdy=dFdy(normalVector.xyz);\nfloat slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));\n\nfloat geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);\n\nfloat geometricAlphaGFactor=sqrt(slopeSquare);\n\ngeometricAlphaGFactor*=0.75;\nreturn vec2(geometricRoughnessFactor,geometricAlphaGFactor);\n#else\nreturn vec2(0.);\n#endif\n}\n#ifdef ANISOTROPIC\n\n\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {\nfloat alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);\nfloat alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);\nreturn vec2(alphaT,alphaB);\n}\n\n\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy) {\nvec3 anisotropicFrameDirection=anisotropy>=0.0 ? B : T;\nvec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);\nvec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);\nvec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));\nreturn anisotropicNormal;\n\n}\n#endif\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\n\n\n\nvec3 cocaLambert(vec3 alpha,float distance) {\nreturn exp(-alpha*distance);\n}\n\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {\nreturn cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));\n}\n\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {\nreturn -log(color)/distance;\n}\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\nvec3 clearCoatAbsorption=mix(vec3(1.0),\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\nclearCoatIntensity);\nreturn clearCoatAbsorption;\n}\n#endif\n\n\n\n\n#ifdef MICROSURFACEAUTOMATIC\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\n{\nconst float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;\nfloat reflectivityLuminance=getLuminance(reflectivityColor);\nfloat reflectivityLuma=sqrt(reflectivityLuminance);\nmicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;\nreturn microSurface;\n}\n#endif";
x.a.IncludesShadersStore.pbrHelperFunctions = M;
n(141), n(99);
var A =
"#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nuniform vec3 vSphericalL00;\nuniform vec3 vSphericalL1_1;\nuniform vec3 vSphericalL10;\nuniform vec3 vSphericalL11;\nuniform vec3 vSphericalL2_2;\nuniform vec3 vSphericalL2_1;\nuniform vec3 vSphericalL20;\nuniform vec3 vSphericalL21;\nuniform vec3 vSphericalL22;\n\n\n\n\n\n\n\nvec3 computeEnvironmentIrradiance(vec3 normal) {\nreturn vSphericalL00\n+vSphericalL1_1*(normal.y)\n+vSphericalL10*(normal.z)\n+vSphericalL11*(normal.x)\n+vSphericalL2_2*(normal.y*normal.x)\n+vSphericalL2_1*(normal.y*normal.z)\n+vSphericalL20*((3.0*normal.z*normal.z)-1.0)\n+vSphericalL21*(normal.z*normal.x)\n+vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));\n}\n#else\nuniform vec3 vSphericalX;\nuniform vec3 vSphericalY;\nuniform vec3 vSphericalZ;\nuniform vec3 vSphericalXX_ZZ;\nuniform vec3 vSphericalYY_ZZ;\nuniform vec3 vSphericalZZ;\nuniform vec3 vSphericalXY;\nuniform vec3 vSphericalYZ;\nuniform vec3 vSphericalZX;\n\nvec3 computeEnvironmentIrradiance(vec3 normal) {\n\n\n\n\n\n\n\n\n\nfloat Nx=normal.x;\nfloat Ny=normal.y;\nfloat Nz=normal.z;\nvec3 C1=vSphericalZZ.rgb;\nvec3 Cx=vSphericalX.rgb;\nvec3 Cy=vSphericalY.rgb;\nvec3 Cz=vSphericalZ.rgb;\nvec3 Cxx_zz=vSphericalXX_ZZ.rgb;\nvec3 Cyy_zz=vSphericalYY_ZZ.rgb;\nvec3 Cxy=vSphericalXY.rgb;\nvec3 Cyz=vSphericalYZ.rgb;\nvec3 Czx=vSphericalZX.rgb;\nvec3 a1=Cyy_zz*Ny+Cy;\nvec3 a2=Cyz*Nz+a1;\nvec3 b1=Czx*Nz+Cx;\nvec3 b2=Cxy*Ny+b1;\nvec3 b3=Cxx_zz*Nx+b2;\nvec3 t1=Cz*Nz+C1;\nvec3 t2=a2*Ny+t1;\nvec3 t3=b3*Nx+t2;\nreturn t3;\n}\n#endif\n#endif";
x.a.IncludesShadersStore.harmonicsFunctions = A;
var I =
"\nstruct preLightingInfo\n{\n\nvec3 lightOffset;\nfloat lightDistanceSquared;\nfloat lightDistance;\n\nfloat attenuation;\n\nvec3 L;\nvec3 H;\nfloat NdotV;\nfloat NdotLUnclamped;\nfloat NdotL;\nfloat VdotH;\nfloat roughness;\n};\npreLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\nresult.lightOffset=lightData.xyz-vPositionW;\nresult.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);\n\nresult.lightDistance=sqrt(result.lightDistanceSquared);\n\nresult.L=normalize(result.lightOffset);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\nresult.NdotLUnclamped=dot(N,result.L);\nresult.NdotL=saturateEps(result.NdotLUnclamped);\nreturn result;\n}\npreLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\nresult.lightDistance=length(-lightData.xyz);\n\nresult.L=normalize(-lightData.xyz);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\nresult.NdotLUnclamped=dot(N,result.L);\nresult.NdotL=saturateEps(result.NdotLUnclamped);\nreturn result;\n}\npreLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\n\nresult.NdotL=dot(N,lightData.xyz)*0.5+0.5;\nresult.NdotL=saturateEps(result.NdotL);\nresult.NdotLUnclamped=result.NdotL;\n#ifdef SPECULARTERM\nresult.L=normalize(lightData.xyz);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\n#endif\nreturn result;\n}";
x.a.IncludesShadersStore.pbrDirectLightingSetupFunctions = I;
var D =
"float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)\n{\nreturn max(0.,1.0-length(lightOffset)/range);\n}\nfloat computeDistanceLightFalloff_Physical(float lightDistanceSquared)\n{\nreturn 1.0/maxEps(lightDistanceSquared);\n}\nfloat computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange)\n{\nfloat lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);\nfloat factor=lightDistanceSquared*inverseSquaredRange;\nfloat attenuation=saturate(1.0-factor*factor);\nattenuation*=attenuation;\n\nlightDistanceFalloff*=attenuation;\nreturn lightDistanceFalloff;\n}\nfloat computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDistanceLightFalloff_Physical(lightDistanceSquared);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\n#else\nreturn computeDistanceLightFalloff_Standard(lightOffset,range);\n#endif\n}\nfloat computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent)\n{\nfloat falloff=0.0;\nfloat cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));\nif (cosAngle>=cosHalfAngle)\n{\nfalloff=max(0.,pow(cosAngle,exponent));\n}\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle)\n{\nconst float kMinusLog2ConeAngleIntensityRatio=6.64385618977;\n\n\n\n\n\nfloat concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);\n\n\nvec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);\nfloat falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset)\n{\n\n\n\nfloat cd=dot(-lightDirection,directionToLightCenterW);\nfloat falloff=saturate(cd*lightAngleScale+lightAngleOffset);\n\nfalloff*=falloff;\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\n#else\nreturn computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\n#endif\n}";
x.a.IncludesShadersStore.pbrDirectLightingFalloffFunctions = D;
var R =
"\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\n\n\n\n\n#ifdef MS_BRDF_ENERGY_CONSERVATION\n\n\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\nreturn 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\n}\n#endif\n#ifdef ENVIRONMENTBRDF\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness) {\n\nvec2 UV=vec2(NdotV,perceptualRoughness);\n\nvec4 brdfLookup=texture2D(environmentBrdfSampler,UV);\n#ifdef ENVIRONMENTBRDF_RGBD\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\n#endif\nreturn brdfLookup.rgb;\n}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\n#endif\nreturn reflectance;\n}\n#endif\n#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{\n\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\n}\n#endif\n#if defined(SHEEN) && defined(REFLECTION)\n\nvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {\nvec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\nreturn sheenEnvironmentReflectance;\n}\n#endif\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\n{\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\n}\nfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\n{\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\n}\n#ifdef CLEARCOAT\n\n\n\n\n\nvec3 getR0RemappedForClearCoat(vec3 f0) {\n#ifdef CLEARCOAT_DEFAULTIOR\n#ifdef MOBILE\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\n#else\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\n#endif\n#else\nvec3 s=sqrt(f0);\nvec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\nreturn t*t;\n#endif\n}\n#endif\n\n\n\n\n\n\nfloat normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)\n{\n\n\n\nfloat a2=square(alphaG);\nfloat d=NdotH*NdotH*(a2-1.0)+1.0;\nreturn a2/(PI*d*d);\n}\n#ifdef SHEEN\n\nfloat normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)\n{\nfloat invR=1./alphaG;\nfloat cos2h=NdotH*NdotH;\nfloat sin2h=1.-cos2h;\nreturn (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\n}\n#endif\n#ifdef ANISOTROPIC\n\n\nfloat normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {\nfloat a2=alphaTB.x*alphaTB.y;\nvec3 v=vec3(alphaTB.y*TdotH,alphaTB.x*BdotH,a2*NdotH);\nfloat v2=dot(v,v);\nfloat w2=a2/v2;\nreturn a2*w2*w2*RECIPROCAL_PI;\n}\n#endif\n\n\n\n\n#ifdef BRDF_V_HEIGHT_CORRELATED\n\n\n\nfloat smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {\n#ifdef MOBILE\n\nfloat GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\nfloat GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\nreturn 0.5/(GGXV+GGXL);\n#else\nfloat a2=alphaG*alphaG;\nfloat GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\nfloat GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\nreturn 0.5/(GGXV+GGXL);\n#endif\n}\n#else\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfloat smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)\n{\n#ifdef MOBILE\n\nreturn 1.0/(dot+alphaG+(1.0-alphaG)*dot ));\n#else\nfloat alphaSquared=alphaG*alphaG;\nreturn 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\n#endif\n}\nfloat smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)\n{\nfloat visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\n\nreturn visibility;\n}\n#endif\n#ifdef ANISOTROPIC\n\n\nfloat smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {\nfloat lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\nfloat lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\nfloat v=0.5/(lambdaV+lambdaL);\nreturn v;\n}\n#endif\n#ifdef CLEARCOAT\nfloat visibility_Kelemen(float VdotH) {\n\n\n\nreturn 0.25/(VdotH*VdotH);\n}\n#endif\n#ifdef SHEEN\n\n\n\nfloat visibility_Ashikhmin(float NdotL,float NdotV)\n{\nreturn 1./(4.*(NdotL+NdotV-NdotL*NdotV));\n}\n#endif\n\n\n\n\n\n\n\nfloat diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {\n\n\nfloat diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\nfloat diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\nfloat diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\nfloat fresnel =\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\nreturn fresnel/PI;\n}\n#ifdef SS_TRANSLUCENCY\n\n\nvec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {\nvec3 S=1./maxEps(diffusionDistance);\nvec3 temp=exp((-0.333333333*thickness)*S);\nreturn tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\n}\n\n\nfloat computeWrappedDiffuseNdotL(float NdotL,float w) {\nfloat t=1.0+w;\nfloat invt2=1.0/square(t);\nreturn saturate((NdotL+w)*invt2);\n}\n#endif\n";
x.a.IncludesShadersStore.pbrBRDFFunctions = R;
var w =
"#define CLEARCOATREFLECTANCE90 1.0\n\nstruct lightingInfo\n{\nvec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef CLEARCOAT\n\n\nvec4 clearCoat;\n#endif\n#ifdef SHEEN\nvec3 sheen;\n#endif\n};\n\nfloat adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\n\nfloat lightRoughness=lightRadius/lightDistance;\n\nfloat totalRoughness=saturate(lightRoughness+roughness);\nreturn totalRoughness;\n#else\nreturn roughness;\n#endif\n}\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {\nreturn mix(groundColor,lightColor,info.NdotL);\n}\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {\nfloat diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);\nreturn diffuseTerm*info.attenuation*info.NdotL*lightColor;\n}\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\nstrq/=strq.w;\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\nreturn toLinearSpace(textureColor);\n}\n#ifdef SS_TRANSLUCENCY\nvec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {\nfloat NdotL=absEps(info.NdotLUnclamped);\n\nfloat wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);\n\nfloat trAdapt=step(0.,info.NdotLUnclamped);\nvec3 transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\nfloat diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\nreturn diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;\n}\n#endif\n#ifdef SPECULARTERM\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\n#else\nfloat smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\n#endif\nvec3 specTerm=fresnel*distribution*smithVisibility;\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n#ifdef ANISOTROPIC\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat TdotH=dot(T,info.H);\nfloat BdotH=dot(B,info.H);\nfloat TdotV=dot(T,V);\nfloat BdotV=dot(B,V);\nfloat TdotL=dot(T,info.L);\nfloat BdotL=dot(B,info.L);\nfloat alphaG=convertRoughnessToAverageSlope(info.roughness);\nvec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);\nalphaTB=max(alphaTB,square(geometricRoughnessFactor));\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);\nfloat smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);\nvec3 specTerm=fresnel*distribution*smithVisibility;\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n#ifdef CLEARCOAT\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {\nfloat NccdotL=saturateEps(dot(Ncc,info.L));\nfloat NccdotH=saturateEps(dot(Ncc,info.H));\nfloat clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\nfloat fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\nfresnel*=clearCoatIntensity;\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);\nfloat kelemenVisibility=visibility_Kelemen(info.VdotH);\nfloat clearCoatTerm=fresnel*distribution*kelemenVisibility;\nreturn vec4(\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\n1.0-fresnel\n);\n}\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\nvec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);\nfloat NdotLRefract=saturateEps(dot(Ncc,LRefract));\nvec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);\nreturn absorption;\n}\n#endif\n#ifdef SHEEN\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\n\n\nfloat fresnel=1.;\nfloat distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);\nfloat ashikhminvisibility=visibility_Ashikhmin(info.NdotL,info.NdotV);\nfloat sheenTerm=fresnel*distribution*ashikhminvisibility;\nreturn sheenTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n";
x.a.IncludesShadersStore.pbrDirectLightingFunctions = w;
var L =
"#if defined(REFLECTION) || defined(SS_REFRACTION)\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {\nfloat microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;\nfloat lod=log2(microsurfaceAverageSlopeTexels);\nreturn lod;\n}\nfloat getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {\nfloat lod=log2(cubeMapDimensionPixels)*roughness;\nreturn lod;\n}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)\nfloat environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {\n\n\nfloat temp=NdotVUnclamped+ambientOcclusion;\nreturn saturate(square(temp)-1.0+ambientOcclusion);\n}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)\nfloat environmentHorizonOcclusion(vec3 view,vec3 normal) {\n\nvec3 reflection=reflect(view,normal);\nfloat temp=saturate(1.0+1.1*dot(reflection,normal));\nreturn square(temp);\n}\n#endif\n\n\n\n\n#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)\n\n\n#define UNPACK_LOD(x) (1.0-x)*255.0\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {\nfloat microsurfaceAverageSlope=alphaG;\n\n\n\n\n\n\nmicrosurfaceAverageSlope*=sqrt(abs(NdotV));\nreturn getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);\n}\n#endif";
x.a.IncludesShadersStore.pbrIBLFunctions = L;
n(172), n(171), n(82), n(173), n(114), n(100), n(174), n(90);
var F =
"#if DEBUGMODE>0\nif (vClipSpacePosition.x/vClipSpacePosition.w= 1) && e.prototype.needAlphaBlendingForMesh.call(this, t);
}),
(t.prototype.needAlphaTesting = function () {
return (
!!this._forceAlphaTest ||
(!this.subSurface.disableAlphaBlending && null != this._albedoTexture && this._albedoTexture.hasAlpha && (null == this._transparencyMode || this._transparencyMode === t.PBRMATERIAL_ALPHATEST))
);
}),
(t.prototype._shouldUseAlphaFromAlbedoTexture = function () {
return null != this._albedoTexture && this._albedoTexture.hasAlpha && this._useAlphaFromAlbedoTexture && this._transparencyMode !== t.PBRMATERIAL_OPAQUE;
}),
(t.prototype.getAlphaTestTexture = function () {
return this._albedoTexture;
}),
(t.prototype.isReadyForSubMesh = function (e, t, n) {
if (t.effect && this.isFrozen && t.effect._wasPreviouslyReady) return !0;
t._materialDefines || (t._materialDefines = new B());
var i = t._materialDefines;
if (!this.checkReadyOnEveryCall && t.effect && i._renderId === this.getScene().getRenderId()) return !0;
var r = this.getScene(),
a = r.getEngine();
if (i._areTexturesDirty && r.texturesEnabled) {
if (this._albedoTexture && d.a.DiffuseTextureEnabled && !this._albedoTexture.isReadyOrNotBlocking()) return !1;
if (this._ambientTexture && d.a.AmbientTextureEnabled && !this._ambientTexture.isReadyOrNotBlocking()) return !1;
if (this._opacityTexture && d.a.OpacityTextureEnabled && !this._opacityTexture.isReadyOrNotBlocking()) return !1;
var s = this._getReflectionTexture();
if (s && d.a.ReflectionTextureEnabled) {
if (!s.isReadyOrNotBlocking()) return !1;
if (s.irradianceTexture && !s.irradianceTexture.isReadyOrNotBlocking()) return !1;
}
if (this._lightmapTexture && d.a.LightmapTextureEnabled && !this._lightmapTexture.isReadyOrNotBlocking()) return !1;
if (this._emissiveTexture && d.a.EmissiveTextureEnabled && !this._emissiveTexture.isReadyOrNotBlocking()) return !1;
if (d.a.SpecularTextureEnabled) {
if (this._metallicTexture) {
if (!this._metallicTexture.isReadyOrNotBlocking()) return !1;
} else if (this._reflectivityTexture && !this._reflectivityTexture.isReadyOrNotBlocking()) return !1;
if (this._microSurfaceTexture && !this._microSurfaceTexture.isReadyOrNotBlocking()) return !1;
}
if (a.getCaps().standardDerivatives && this._bumpTexture && d.a.BumpTextureEnabled && !this._disableBumpMap && !this._bumpTexture.isReady()) return !1;
if (this._environmentBRDFTexture && d.a.ReflectionTextureEnabled && !this._environmentBRDFTexture.isReady()) return !1;
}
if (!(this.subSurface.isReadyForSubMesh(i, r) && this.clearCoat.isReadyForSubMesh(i, r, a, this._disableBumpMap) && this.sheen.isReadyForSubMesh(i, r) && this.anisotropy.isReadyForSubMesh(i, r))) return !1;
if (i._areImageProcessingDirty && this._imageProcessingConfiguration && !this._imageProcessingConfiguration.isReady()) return !1;
a.getCaps().standardDerivatives || e.isVerticesDataPresent(u.b.NormalKind) || (e.createNormals(!0), o.a.Warn("PBRMaterial: Normals have been created for the mesh: " + e.name));
var c = t.effect,
l = i._areLightsDisposed,
h = this._prepareEffect(e, i, this.onCompiled, this.onError, n);
if (h)
if (this.allowShaderHotSwapping && c && !h.isReady()) {
if (((h = c), (this._rebuildInParallel = !0), i.markAsUnprocessed(), l)) return (i._areLightsDisposed = !0), !1;
} else (this._rebuildInParallel = !1), r.resetCachedMaterial(), t.setEffect(h, i), this.buildUniformLayout();
return !(!t.effect || !t.effect.isReady()) && ((i._renderId = r.getRenderId()), (t.effect._wasPreviouslyReady = !0), !0);
}),
(t.prototype.isMetallicWorkflow = function () {
return !(null == this._metallic && null == this._roughness && !this._metallicTexture);
}),
(t.prototype._prepareEffect = function (e, t, n, i, r, o) {
if ((void 0 === n && (n = null), void 0 === i && (i = null), void 0 === r && (r = null), void 0 === o && (o = null), this._prepareDefines(e, t, r, o), !t.isDirty)) return null;
t.markAsProcessed();
var a = this.getScene().getEngine(),
s = new j.a(),
c = 0;
t.USESPHERICALINVERTEX && s.addFallback(c++, "USESPHERICALINVERTEX"),
t.FOG && s.addFallback(c, "FOG"),
t.SPECULARAA && s.addFallback(c, "SPECULARAA"),
t.POINTSIZE && s.addFallback(c, "POINTSIZE"),
t.LOGARITHMICDEPTH && s.addFallback(c, "LOGARITHMICDEPTH"),
t.PARALLAX && s.addFallback(c, "PARALLAX"),
t.PARALLAXOCCLUSION && s.addFallback(c++, "PARALLAXOCCLUSION"),
(c = m.AddFallbacks(t, s, c)),
(c = m.AddFallbacks(t, s, c)),
(c = _.AddFallbacks(t, s, c)),
(c = b.AddFallbacks(t, s, c)),
t.ENVIRONMENTBRDF && s.addFallback(c++, "ENVIRONMENTBRDF"),
t.TANGENT && s.addFallback(c++, "TANGENT"),
t.BUMP && s.addFallback(c++, "BUMP"),
(c = p.a.HandleFallbacksForShadows(t, s, this._maxSimultaneousLights, c++)),
t.SPECULARTERM && s.addFallback(c++, "SPECULARTERM"),
t.USESPHERICALFROMREFLECTIONMAP && s.addFallback(c++, "USESPHERICALFROMREFLECTIONMAP"),
t.USEIRRADIANCEMAP && s.addFallback(c++, "USEIRRADIANCEMAP"),
t.LIGHTMAP && s.addFallback(c++, "LIGHTMAP"),
t.NORMAL && s.addFallback(c++, "NORMAL"),
t.AMBIENT && s.addFallback(c++, "AMBIENT"),
t.EMISSIVE && s.addFallback(c++, "EMISSIVE"),
t.VERTEXCOLOR && s.addFallback(c++, "VERTEXCOLOR"),
t.MORPHTARGETS && s.addFallback(c++, "MORPHTARGETS"),
t.MULTIVIEW && s.addFallback(0, "MULTIVIEW");
var l = [u.b.PositionKind];
t.NORMAL && l.push(u.b.NormalKind),
t.TANGENT && l.push(u.b.TangentKind),
t.UV1 && l.push(u.b.UVKind),
t.UV2 && l.push(u.b.UV2Kind),
t.VERTEXCOLOR && l.push(u.b.ColorKind),
p.a.PrepareAttributesForBones(l, e, t, s),
p.a.PrepareAttributesForInstances(l, t),
p.a.PrepareAttributesForMorphTargets(l, e, t);
var h = "pbr",
d = [
"world",
"view",
"viewProjection",
"vEyePosition",
"vLightsType",
"vAmbientColor",
"vAlbedoColor",
"vReflectivityColor",
"vEmissiveColor",
"visibility",
"vReflectionColor",
"vFogInfos",
"vFogColor",
"pointSize",
"vAlbedoInfos",
"vAmbientInfos",
"vOpacityInfos",
"vReflectionInfos",
"vReflectionPosition",
"vReflectionSize",
"vEmissiveInfos",
"vReflectivityInfos",
"vMicroSurfaceSamplerInfos",
"vBumpInfos",
"vLightmapInfos",
"mBones",
"vClipPlane",
"vClipPlane2",
"vClipPlane3",
"vClipPlane4",
"vClipPlane5",
"vClipPlane6",
"albedoMatrix",
"ambientMatrix",
"opacityMatrix",
"reflectionMatrix",
"emissiveMatrix",
"reflectivityMatrix",
"normalMatrix",
"microSurfaceSamplerMatrix",
"bumpMatrix",
"lightmapMatrix",
"vLightingIntensity",
"logarithmicDepthConstant",
"vSphericalX",
"vSphericalY",
"vSphericalZ",
"vSphericalXX_ZZ",
"vSphericalYY_ZZ",
"vSphericalZZ",
"vSphericalXY",
"vSphericalYZ",
"vSphericalZX",
"vSphericalL00",
"vSphericalL1_1",
"vSphericalL10",
"vSphericalL11",
"vSphericalL2_2",
"vSphericalL2_1",
"vSphericalL20",
"vSphericalL21",
"vSphericalL22",
"vReflectionMicrosurfaceInfos",
"vTangentSpaceParams",
"boneTextureWidth",
"vDebugMode",
],
g = [
"albedoSampler",
"reflectivitySampler",
"ambientSampler",
"emissiveSampler",
"bumpSampler",
"lightmapSampler",
"opacitySampler",
"reflectionSampler",
"reflectionSamplerLow",
"reflectionSamplerHigh",
"irradianceSampler",
"microSurfaceSampler",
"environmentBrdfSampler",
"boneSampler",
],
y = ["Material", "Scene"];
_.AddUniforms(d),
_.AddSamplers(g),
f.AddUniforms(d),
f.AddSamplers(g),
m.AddUniforms(d),
m.AddSamplers(g),
b.AddUniforms(d),
b.AddSamplers(g),
v.a && (v.a.PrepareUniforms(d, t), v.a.PrepareSamplers(g, t)),
p.a.PrepareUniformsAndSamplersList({ uniformsNames: d, uniformBuffersNames: y, samplers: g, defines: t, maxSimultaneousLights: this._maxSimultaneousLights }),
this.customShaderNameResolve && (h = this.customShaderNameResolve(h, d, y, g, t));
var C = t.toString();
return a.createEffect(
h,
{
attributes: l,
uniformsNames: d,
uniformBuffersNames: y,
samplers: g,
defines: C,
fallbacks: s,
onCompiled: n,
onError: i,
indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: t.NUM_MORPH_INFLUENCERS },
},
a
);
}),
(t.prototype._prepareDefines = function (e, n, i, r) {
void 0 === i && (i = null), void 0 === r && (r = null);
var o = this.getScene(),
a = o.getEngine();
if (
(p.a.PrepareDefinesForLights(o, e, n, !0, this._maxSimultaneousLights, this._disableLighting),
(n._needNormals = !0),
p.a.PrepareDefinesForMultiview(o, n),
(n.METALLICWORKFLOW = this.isMetallicWorkflow()),
n._areTexturesDirty)
) {
if (((n._needUVs = !1), o.texturesEnabled)) {
o.getEngine().getCaps().textureLOD && (n.LODBASEDMICROSFURACE = !0),
this._albedoTexture && d.a.DiffuseTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._albedoTexture, n, "ALBEDO"), (n.GAMMAALBEDO = this._albedoTexture.gammaSpace)) : (n.ALBEDO = !1),
this._ambientTexture && d.a.AmbientTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._ambientTexture, n, "AMBIENT"), (n.AMBIENTINGRAYSCALE = this._useAmbientInGrayScale)) : (n.AMBIENT = !1),
this._opacityTexture && d.a.OpacityTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._opacityTexture, n, "OPACITY"), (n.OPACITYRGB = this._opacityTexture.getAlphaFromRGB)) : (n.OPACITY = !1);
var s = this._getReflectionTexture();
if (s && d.a.ReflectionTextureEnabled) {
switch (
((n.REFLECTION = !0),
(n.GAMMAREFLECTION = s.gammaSpace),
(n.RGBDREFLECTION = s.isRGBD),
(n.REFLECTIONMAP_OPPOSITEZ = this.getScene().useRightHandedSystem ? !s.invertZ : s.invertZ),
(n.LODINREFLECTIONALPHA = s.lodLevelInAlpha),
(n.LINEARSPECULARREFLECTION = s.linearSpecularLOD),
s.coordinatesMode === P.a.INVCUBIC_MODE && (n.INVERTCUBICMAP = !0),
(n.REFLECTIONMAP_3D = s.isCube),
(n.REFLECTIONMAP_CUBIC = !1),
(n.REFLECTIONMAP_EXPLICIT = !1),
(n.REFLECTIONMAP_PLANAR = !1),
(n.REFLECTIONMAP_PROJECTION = !1),
(n.REFLECTIONMAP_SKYBOX = !1),
(n.REFLECTIONMAP_SPHERICAL = !1),
(n.REFLECTIONMAP_EQUIRECTANGULAR = !1),
(n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1),
(n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1),
s.coordinatesMode)
) {
case P.a.EXPLICIT_MODE:
n.REFLECTIONMAP_EXPLICIT = !0;
break;
case P.a.PLANAR_MODE:
n.REFLECTIONMAP_PLANAR = !0;
break;
case P.a.PROJECTION_MODE:
n.REFLECTIONMAP_PROJECTION = !0;
break;
case P.a.SKYBOX_MODE:
n.REFLECTIONMAP_SKYBOX = !0;
break;
case P.a.SPHERICAL_MODE:
n.REFLECTIONMAP_SPHERICAL = !0;
break;
case P.a.EQUIRECTANGULAR_MODE:
n.REFLECTIONMAP_EQUIRECTANGULAR = !0;
break;
case P.a.FIXED_EQUIRECTANGULAR_MODE:
n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !0;
break;
case P.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:
n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !0;
break;
case P.a.CUBIC_MODE:
case P.a.INVCUBIC_MODE:
default:
(n.REFLECTIONMAP_CUBIC = !0), (n.USE_LOCAL_REFLECTIONMAP_CUBIC = !!s.boundingBoxSize);
}
s.coordinatesMode !== P.a.SKYBOX_MODE &&
(s.irradianceTexture
? ((n.USEIRRADIANCEMAP = !0), (n.USESPHERICALFROMREFLECTIONMAP = !1))
: s.isCube &&
((n.USESPHERICALFROMREFLECTIONMAP = !0),
(n.USEIRRADIANCEMAP = !1),
this._forceIrradianceInFragment || o.getEngine().getCaps().maxVaryingVectors <= 8 ? (n.USESPHERICALINVERTEX = !1) : (n.USESPHERICALINVERTEX = !0)));
} else
(n.REFLECTION = !1),
(n.REFLECTIONMAP_3D = !1),
(n.REFLECTIONMAP_SPHERICAL = !1),
(n.REFLECTIONMAP_PLANAR = !1),
(n.REFLECTIONMAP_CUBIC = !1),
(n.USE_LOCAL_REFLECTIONMAP_CUBIC = !1),
(n.REFLECTIONMAP_PROJECTION = !1),
(n.REFLECTIONMAP_SKYBOX = !1),
(n.REFLECTIONMAP_EXPLICIT = !1),
(n.REFLECTIONMAP_EQUIRECTANGULAR = !1),
(n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1),
(n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1),
(n.INVERTCUBICMAP = !1),
(n.USESPHERICALFROMREFLECTIONMAP = !1),
(n.USEIRRADIANCEMAP = !1),
(n.USESPHERICALINVERTEX = !1),
(n.REFLECTIONMAP_OPPOSITEZ = !1),
(n.LODINREFLECTIONALPHA = !1),
(n.GAMMAREFLECTION = !1),
(n.RGBDREFLECTION = !1),
(n.LINEARSPECULARREFLECTION = !1);
this._lightmapTexture && d.a.LightmapTextureEnabled
? (p.a.PrepareDefinesForMergedUV(this._lightmapTexture, n, "LIGHTMAP"),
(n.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap),
(n.GAMMALIGHTMAP = this._lightmapTexture.gammaSpace),
(n.RGBDLIGHTMAP = this._lightmapTexture.isRGBD))
: (n.LIGHTMAP = !1),
this._emissiveTexture && d.a.EmissiveTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._emissiveTexture, n, "EMISSIVE") : (n.EMISSIVE = !1),
d.a.SpecularTextureEnabled
? (this._metallicTexture
? (p.a.PrepareDefinesForMergedUV(this._metallicTexture, n, "REFLECTIVITY"),
(n.ROUGHNESSSTOREINMETALMAPALPHA = this._useRoughnessFromMetallicTextureAlpha),
(n.ROUGHNESSSTOREINMETALMAPGREEN = !this._useRoughnessFromMetallicTextureAlpha && this._useRoughnessFromMetallicTextureGreen),
(n.METALLNESSSTOREINMETALMAPBLUE = this._useMetallnessFromMetallicTextureBlue),
(n.AOSTOREINMETALMAPRED = this._useAmbientOcclusionFromMetallicTextureRed),
(n.METALLICF0FACTORFROMMETALLICMAP = this._useMetallicF0FactorFromMetallicTexture))
: this._reflectivityTexture
? (p.a.PrepareDefinesForMergedUV(this._reflectivityTexture, n, "REFLECTIVITY"),
(n.MICROSURFACEFROMREFLECTIVITYMAP = this._useMicroSurfaceFromReflectivityMapAlpha),
(n.MICROSURFACEAUTOMATIC = this._useAutoMicroSurfaceFromReflectivityMap))
: (n.REFLECTIVITY = !1),
this._microSurfaceTexture ? p.a.PrepareDefinesForMergedUV(this._microSurfaceTexture, n, "MICROSURFACEMAP") : (n.MICROSURFACEMAP = !1))
: ((n.REFLECTIVITY = !1), (n.MICROSURFACEMAP = !1)),
o.getEngine().getCaps().standardDerivatives && this._bumpTexture && d.a.BumpTextureEnabled && !this._disableBumpMap
? (p.a.PrepareDefinesForMergedUV(this._bumpTexture, n, "BUMP"),
this._useParallax && this._albedoTexture && d.a.DiffuseTextureEnabled ? ((n.PARALLAX = !0), (n.PARALLAXOCCLUSION = !!this._useParallaxOcclusion)) : (n.PARALLAX = !1),
(n.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap))
: (n.BUMP = !1),
this._environmentBRDFTexture && d.a.ReflectionTextureEnabled
? ((n.ENVIRONMENTBRDF = !0), (n.ENVIRONMENTBRDF_RGBD = this._environmentBRDFTexture.isRGBD))
: ((n.ENVIRONMENTBRDF = !1), (n.ENVIRONMENTBRDF_RGBD = !1)),
this._shouldUseAlphaFromAlbedoTexture() ? (n.ALPHAFROMALBEDO = !0) : (n.ALPHAFROMALBEDO = !1);
}
(n.SPECULAROVERALPHA = this._useSpecularOverAlpha),
this._lightFalloff === t.LIGHTFALLOFF_STANDARD
? ((n.USEPHYSICALLIGHTFALLOFF = !1), (n.USEGLTFLIGHTFALLOFF = !1))
: this._lightFalloff === t.LIGHTFALLOFF_GLTF
? ((n.USEPHYSICALLIGHTFALLOFF = !1), (n.USEGLTFLIGHTFALLOFF = !0))
: ((n.USEPHYSICALLIGHTFALLOFF = !0), (n.USEGLTFLIGHTFALLOFF = !1)),
(n.RADIANCEOVERALPHA = this._useRadianceOverAlpha),
!this.backFaceCulling && this._twoSidedLighting ? (n.TWOSIDEDLIGHTING = !0) : (n.TWOSIDEDLIGHTING = !1),
(n.SPECULARAA = o.getEngine().getCaps().standardDerivatives && this._enableSpecularAntiAliasing);
}
(n._areTexturesDirty || n._areMiscDirty) &&
((n.ALPHATESTVALUE = this._alphaCutOff + (this._alphaCutOff % 1 == 0 ? "." : "")),
(n.PREMULTIPLYALPHA = 7 === this.alphaMode || 8 === this.alphaMode),
(n.ALPHABLEND = this.needAlphaBlendingForMesh(e)),
(n.ALPHAFRESNEL = this._useAlphaFresnel || this._useLinearAlphaFresnel),
(n.LINEARALPHAFRESNEL = this._useLinearAlphaFresnel)),
n._areImageProcessingDirty && this._imageProcessingConfiguration && this._imageProcessingConfiguration.prepareDefines(n),
(n.FORCENORMALFORWARD = this._forceNormalForward),
(n.RADIANCEOCCLUSION = this._useRadianceOcclusion),
(n.HORIZONOCCLUSION = this._useHorizonOcclusion),
n._areMiscDirty &&
(p.a.PrepareDefinesForMisc(e, o, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e) || this._forceAlphaTest, n),
(n.UNLIT = this._unlit || ((this.pointsCloud || this.wireframe) && !e.isVerticesDataPresent(u.b.NormalKind))),
(n.DEBUGMODE = this._debugMode)),
this.subSurface.prepareDefines(n, o),
this.clearCoat.prepareDefines(n, o),
this.anisotropy.prepareDefines(n, e, o),
this.brdf.prepareDefines(n),
this.sheen.prepareDefines(n, o),
p.a.PrepareDefinesForFrameBoundValues(o, a, n, !!i, r),
p.a.PrepareDefinesForAttributes(e, n, !0, !0, !0, this._transparencyMode !== t.PBRMATERIAL_OPAQUE);
}),
(t.prototype.forceCompilation = function (e, t, n) {
var r = this,
o = Object(i.a)({ clipPlane: !1, useInstances: !1 }, n),
a = new B(),
s = this._prepareEffect(e, a, void 0, void 0, o.useInstances, o.clipPlane);
s.isReady()
? t && t(this)
: s.onCompileObservable.add(function () {
t && t(r);
});
}),
(t.prototype.buildUniformLayout = function () {
var e = this._uniformBuffer;
e.addUniform("vAlbedoInfos", 2),
e.addUniform("vAmbientInfos", 4),
e.addUniform("vOpacityInfos", 2),
e.addUniform("vEmissiveInfos", 2),
e.addUniform("vLightmapInfos", 2),
e.addUniform("vReflectivityInfos", 3),
e.addUniform("vMicroSurfaceSamplerInfos", 2),
e.addUniform("vReflectionInfos", 2),
e.addUniform("vReflectionPosition", 3),
e.addUniform("vReflectionSize", 3),
e.addUniform("vBumpInfos", 3),
e.addUniform("albedoMatrix", 16),
e.addUniform("ambientMatrix", 16),
e.addUniform("opacityMatrix", 16),
e.addUniform("emissiveMatrix", 16),
e.addUniform("lightmapMatrix", 16),
e.addUniform("reflectivityMatrix", 16),
e.addUniform("microSurfaceSamplerMatrix", 16),
e.addUniform("bumpMatrix", 16),
e.addUniform("vTangentSpaceParams", 2),
e.addUniform("reflectionMatrix", 16),
e.addUniform("vReflectionColor", 3),
e.addUniform("vAlbedoColor", 4),
e.addUniform("vLightingIntensity", 4),
e.addUniform("vReflectionMicrosurfaceInfos", 3),
e.addUniform("pointSize", 1),
e.addUniform("vReflectivityColor", 4),
e.addUniform("vEmissiveColor", 3),
e.addUniform("visibility", 1),
f.PrepareUniformBuffer(e),
m.PrepareUniformBuffer(e),
b.PrepareUniformBuffer(e),
_.PrepareUniformBuffer(e),
e.create();
}),
(t.prototype.unbind = function () {
if (this._activeEffect) {
var t = !1;
this._reflectionTexture && this._reflectionTexture.isRenderTarget && (this._activeEffect.setTexture("reflection2DSampler", null), (t = !0)),
this.subSurface.unbind(this._activeEffect) && (t = !0),
t && this._markAllSubMeshesAsTexturesDirty();
}
e.prototype.unbind.call(this);
}),
(t.prototype.bindForSubMesh = function (e, t, n) {
var i = this.getScene(),
r = n._materialDefines;
if (r) {
var o = n.effect;
if (o) {
(this._activeEffect = o), r.INSTANCES || this.bindOnlyWorldMatrix(e), r.OBJECTSPACE_NORMALMAP && (e.toNormalMatrix(this._normalMatrix), this.bindOnlyNormalMatrix(this._normalMatrix));
var a = this._mustRebind(i, o, t.visibility);
p.a.BindBonesParameters(t, this._activeEffect);
var s = null,
l = this._uniformBuffer;
if (a) {
var u = i.getEngine();
if ((l.bindToEffect(o, "Material"), this.bindViewProjection(o), (s = this._getReflectionTexture()), !l.useUbo || !this.isFrozen || !l.isSync)) {
if (i.texturesEnabled) {
if (
(this._albedoTexture &&
d.a.DiffuseTextureEnabled &&
(l.updateFloat2("vAlbedoInfos", this._albedoTexture.coordinatesIndex, this._albedoTexture.level), p.a.BindTextureMatrix(this._albedoTexture, l, "albedo")),
this._ambientTexture &&
d.a.AmbientTextureEnabled &&
(l.updateFloat4("vAmbientInfos", this._ambientTexture.coordinatesIndex, this._ambientTexture.level, this._ambientTextureStrength, this._ambientTextureImpactOnAnalyticalLights),
p.a.BindTextureMatrix(this._ambientTexture, l, "ambient")),
this._opacityTexture &&
d.a.OpacityTextureEnabled &&
(l.updateFloat2("vOpacityInfos", this._opacityTexture.coordinatesIndex, this._opacityTexture.level), p.a.BindTextureMatrix(this._opacityTexture, l, "opacity")),
s && d.a.ReflectionTextureEnabled)
) {
if ((l.updateMatrix("reflectionMatrix", s.getReflectionTextureMatrix()), l.updateFloat2("vReflectionInfos", s.level, 0), s.boundingBoxSize)) {
var f = s;
l.updateVector3("vReflectionPosition", f.boundingBoxPosition), l.updateVector3("vReflectionSize", f.boundingBoxSize);
}
if (!r.USEIRRADIANCEMAP) {
var m = s.sphericalPolynomial;
if (r.USESPHERICALFROMREFLECTIONMAP && m)
if (r.SPHERICAL_HARMONICS) {
var g = m.preScaledHarmonics;
this._activeEffect.setVector3("vSphericalL00", g.l00),
this._activeEffect.setVector3("vSphericalL1_1", g.l1_1),
this._activeEffect.setVector3("vSphericalL10", g.l10),
this._activeEffect.setVector3("vSphericalL11", g.l11),
this._activeEffect.setVector3("vSphericalL2_2", g.l2_2),
this._activeEffect.setVector3("vSphericalL2_1", g.l2_1),
this._activeEffect.setVector3("vSphericalL20", g.l20),
this._activeEffect.setVector3("vSphericalL21", g.l21),
this._activeEffect.setVector3("vSphericalL22", g.l22);
} else
this._activeEffect.setFloat3("vSphericalX", m.x.x, m.x.y, m.x.z),
this._activeEffect.setFloat3("vSphericalY", m.y.x, m.y.y, m.y.z),
this._activeEffect.setFloat3("vSphericalZ", m.z.x, m.z.y, m.z.z),
this._activeEffect.setFloat3("vSphericalXX_ZZ", m.xx.x - m.zz.x, m.xx.y - m.zz.y, m.xx.z - m.zz.z),
this._activeEffect.setFloat3("vSphericalYY_ZZ", m.yy.x - m.zz.x, m.yy.y - m.zz.y, m.yy.z - m.zz.z),
this._activeEffect.setFloat3("vSphericalZZ", m.zz.x, m.zz.y, m.zz.z),
this._activeEffect.setFloat3("vSphericalXY", m.xy.x, m.xy.y, m.xy.z),
this._activeEffect.setFloat3("vSphericalYZ", m.yz.x, m.yz.y, m.yz.z),
this._activeEffect.setFloat3("vSphericalZX", m.zx.x, m.zx.y, m.zx.z);
}
l.updateFloat3("vReflectionMicrosurfaceInfos", s.getSize().width, s.lodGenerationScale, s.lodGenerationOffset);
}
this._emissiveTexture &&
d.a.EmissiveTextureEnabled &&
(l.updateFloat2("vEmissiveInfos", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level), p.a.BindTextureMatrix(this._emissiveTexture, l, "emissive")),
this._lightmapTexture &&
d.a.LightmapTextureEnabled &&
(l.updateFloat2("vLightmapInfos", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level), p.a.BindTextureMatrix(this._lightmapTexture, l, "lightmap")),
d.a.SpecularTextureEnabled &&
(this._metallicTexture
? (l.updateFloat3("vReflectivityInfos", this._metallicTexture.coordinatesIndex, this._metallicTexture.level, this._ambientTextureStrength),
p.a.BindTextureMatrix(this._metallicTexture, l, "reflectivity"))
: this._reflectivityTexture &&
(l.updateFloat3("vReflectivityInfos", this._reflectivityTexture.coordinatesIndex, this._reflectivityTexture.level, 1),
p.a.BindTextureMatrix(this._reflectivityTexture, l, "reflectivity")),
this._microSurfaceTexture &&
(l.updateFloat2("vMicroSurfaceSamplerInfos", this._microSurfaceTexture.coordinatesIndex, this._microSurfaceTexture.level),
p.a.BindTextureMatrix(this._microSurfaceTexture, l, "microSurfaceSampler"))),
this._bumpTexture &&
u.getCaps().standardDerivatives &&
d.a.BumpTextureEnabled &&
!this._disableBumpMap &&
(l.updateFloat3("vBumpInfos", this._bumpTexture.coordinatesIndex, this._bumpTexture.level, this._parallaxScaleBias),
p.a.BindTextureMatrix(this._bumpTexture, l, "bump"),
i._mirroredCameraPosition
? l.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? 1 : -1, this._invertNormalMapY ? 1 : -1)
: l.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? -1 : 1, this._invertNormalMapY ? -1 : 1));
}
if ((this.pointsCloud && l.updateFloat("pointSize", this.pointSize), r.METALLICWORKFLOW)) {
(h.c.Color3[0].r = void 0 === this._metallic || null === this._metallic ? 1 : this._metallic), (h.c.Color3[0].g = void 0 === this._roughness || null === this._roughness ? 1 : this._roughness);
var b = 0.08 * this._metallicF0Factor;
l.updateColor4("vReflectivityColor", h.c.Color3[0], b);
} else l.updateColor4("vReflectivityColor", this._reflectivityColor, this._microSurface);
l.updateColor3("vEmissiveColor", d.a.EmissiveTextureEnabled ? this._emissiveColor : h.a.BlackReadOnly),
l.updateColor3("vReflectionColor", this._reflectionColor),
!r.SS_REFRACTION && this.subSurface.linkRefractionWithTransparency ? l.updateColor4("vAlbedoColor", this._albedoColor, 1) : l.updateColor4("vAlbedoColor", this._albedoColor, this.alpha),
l.updateFloat("visibility", t.visibility),
(this._lightingInfos.x = this._directIntensity),
(this._lightingInfos.y = this._emissiveIntensity),
(this._lightingInfos.z = this._environmentIntensity * i.environmentIntensity),
(this._lightingInfos.w = this._specularIntensity),
l.updateVector4("vLightingIntensity", this._lightingInfos);
}
i.texturesEnabled &&
(this._albedoTexture && d.a.DiffuseTextureEnabled && l.setTexture("albedoSampler", this._albedoTexture),
this._ambientTexture && d.a.AmbientTextureEnabled && l.setTexture("ambientSampler", this._ambientTexture),
this._opacityTexture && d.a.OpacityTextureEnabled && l.setTexture("opacitySampler", this._opacityTexture),
s &&
d.a.ReflectionTextureEnabled &&
(r.LODBASEDMICROSFURACE
? l.setTexture("reflectionSampler", s)
: (l.setTexture("reflectionSampler", s._lodTextureMid || s), l.setTexture("reflectionSamplerLow", s._lodTextureLow || s), l.setTexture("reflectionSamplerHigh", s._lodTextureHigh || s)),
r.USEIRRADIANCEMAP && l.setTexture("irradianceSampler", s.irradianceTexture)),
r.ENVIRONMENTBRDF && l.setTexture("environmentBrdfSampler", this._environmentBRDFTexture),
this._emissiveTexture && d.a.EmissiveTextureEnabled && l.setTexture("emissiveSampler", this._emissiveTexture),
this._lightmapTexture && d.a.LightmapTextureEnabled && l.setTexture("lightmapSampler", this._lightmapTexture),
d.a.SpecularTextureEnabled &&
(this._metallicTexture ? l.setTexture("reflectivitySampler", this._metallicTexture) : this._reflectivityTexture && l.setTexture("reflectivitySampler", this._reflectivityTexture),
this._microSurfaceTexture && l.setTexture("microSurfaceSampler", this._microSurfaceTexture)),
this._bumpTexture && u.getCaps().standardDerivatives && d.a.BumpTextureEnabled && !this._disableBumpMap && l.setTexture("bumpSampler", this._bumpTexture)),
this.subSurface.bindForSubMesh(l, i, u, this.isFrozen, r.LODBASEDMICROSFURACE),
this.clearCoat.bindForSubMesh(l, i, u, this._disableBumpMap, this.isFrozen, this._invertNormalMapX, this._invertNormalMapY),
this.anisotropy.bindForSubMesh(l, i, this.isFrozen),
this.sheen.bindForSubMesh(l, i, this.isFrozen),
p.a.BindClipPlane(this._activeEffect, i),
i.ambientColor.multiplyToRef(this._ambientColor, this._globalAmbientColor);
var _ = i._forcedViewPosition ? i._forcedViewPosition : i._mirroredCameraPosition ? i._mirroredCameraPosition : i.activeCamera.globalPosition,
v = i.useRightHandedSystem === (null != i._mirroredCameraPosition);
o.setFloat4("vEyePosition", _.x, _.y, _.z, v ? -1 : 1), o.setColor3("vAmbientColor", this._globalAmbientColor), o.setFloat2("vDebugMode", this.debugLimit, this.debugFactor);
}
(!a && this.isFrozen) ||
(i.lightsEnabled && !this._disableLighting && p.a.BindLights(i, t, this._activeEffect, r, this._maxSimultaneousLights, this._rebuildInParallel),
((i.fogEnabled && t.applyFog && i.fogMode !== c.a.FOGMODE_NONE) || s) && this.bindView(o),
p.a.BindFogParameters(i, t, this._activeEffect, !0),
r.NUM_MORPH_INFLUENCERS && p.a.BindMorphTargetParameters(t, this._activeEffect),
this._imageProcessingConfiguration.bind(this._activeEffect),
p.a.BindLogDepth(r, this._activeEffect, i)),
l.update(),
this._afterBind(t, this._activeEffect);
}
}
}),
(t.prototype.getAnimatables = function () {
var e = [];
return (
this._albedoTexture && this._albedoTexture.animations && this._albedoTexture.animations.length > 0 && e.push(this._albedoTexture),
this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0 && e.push(this._ambientTexture),
this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0 && e.push(this._opacityTexture),
this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0 && e.push(this._reflectionTexture),
this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0 && e.push(this._emissiveTexture),
this._metallicTexture && this._metallicTexture.animations && this._metallicTexture.animations.length > 0
? e.push(this._metallicTexture)
: this._reflectivityTexture && this._reflectivityTexture.animations && this._reflectivityTexture.animations.length > 0 && e.push(this._reflectivityTexture),
this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture),
this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0 && e.push(this._lightmapTexture),
this.subSurface.getAnimatables(e),
this.clearCoat.getAnimatables(e),
this.sheen.getAnimatables(e),
this.anisotropy.getAnimatables(e),
e
);
}),
(t.prototype._getReflectionTexture = function () {
return this._reflectionTexture ? this._reflectionTexture : this.getScene().environmentTexture;
}),
(t.prototype.getActiveTextures = function () {
var t = e.prototype.getActiveTextures.call(this);
return (
this._albedoTexture && t.push(this._albedoTexture),
this._ambientTexture && t.push(this._ambientTexture),
this._opacityTexture && t.push(this._opacityTexture),
this._reflectionTexture && t.push(this._reflectionTexture),
this._emissiveTexture && t.push(this._emissiveTexture),
this._reflectivityTexture && t.push(this._reflectivityTexture),
this._metallicTexture && t.push(this._metallicTexture),
this._microSurfaceTexture && t.push(this._microSurfaceTexture),
this._bumpTexture && t.push(this._bumpTexture),
this._lightmapTexture && t.push(this._lightmapTexture),
this.subSurface.getActiveTextures(t),
this.clearCoat.getActiveTextures(t),
this.sheen.getActiveTextures(t),
this.anisotropy.getActiveTextures(t),
t
);
}),
(t.prototype.hasTexture = function (t) {
return (
!!e.prototype.hasTexture.call(this, t) ||
this._albedoTexture === t ||
this._ambientTexture === t ||
this._opacityTexture === t ||
this._reflectionTexture === t ||
this._reflectivityTexture === t ||
this._metallicTexture === t ||
this._microSurfaceTexture === t ||
this._bumpTexture === t ||
this._lightmapTexture === t ||
this.subSurface.hasTexture(t) ||
this.clearCoat.hasTexture(t) ||
this.sheen.hasTexture(t) ||
this.anisotropy.hasTexture(t)
);
}),
(t.prototype.dispose = function (t, n) {
n &&
(this._albedoTexture && this._albedoTexture.dispose(),
this._ambientTexture && this._ambientTexture.dispose(),
this._opacityTexture && this._opacityTexture.dispose(),
this._reflectionTexture && this._reflectionTexture.dispose(),
this._environmentBRDFTexture && this.getScene().environmentBRDFTexture !== this._environmentBRDFTexture && this._environmentBRDFTexture.dispose(),
this._emissiveTexture && this._emissiveTexture.dispose(),
this._metallicTexture && this._metallicTexture.dispose(),
this._reflectivityTexture && this._reflectivityTexture.dispose(),
this._bumpTexture && this._bumpTexture.dispose(),
this._lightmapTexture && this._lightmapTexture.dispose()),
this.subSurface.dispose(n),
this.clearCoat.dispose(n),
this.sheen.dispose(n),
this.anisotropy.dispose(n),
this._renderTargets.dispose(),
this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),
e.prototype.dispose.call(this, t, n);
}),
(t.PBRMATERIAL_OPAQUE = 0),
(t.PBRMATERIAL_ALPHATEST = 1),
(t.PBRMATERIAL_ALPHABLEND = 2),
(t.PBRMATERIAL_ALPHATESTANDBLEND = 3),
(t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = 0),
(t.LIGHTFALLOFF_PHYSICAL = 0),
(t.LIGHTFALLOFF_GLTF = 1),
(t.LIGHTFALLOFF_STANDARD = 2),
Object(i.c)([Object(r.i)()], t.prototype, "_imageProcessingConfiguration", void 0),
Object(i.c)([Object(r.b)("_markAllSubMeshesAsMiscDirty")], t.prototype, "debugMode", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "useLogarithmicDepth", null),
Object(i.c)([Object(r.c)()], t.prototype, "transparencyMode", null),
t
);
})(C.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(5),
s = n(35),
c = n(57);
s.a.AddNodeConstructor("Light_Type_3", function (e, t) {
return function () {
return new l(e, o.e.Zero(), t);
};
});
var l = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r.groundColor = new a.a(0, 0, 0)), (r.direction = n || o.e.Up()), r;
}
return (
Object(i.d)(t, e),
(t.prototype._buildUniformLayout = function () {
this._uniformBuffer.addUniform("vLightData", 4),
this._uniformBuffer.addUniform("vLightDiffuse", 4),
this._uniformBuffer.addUniform("vLightSpecular", 4),
this._uniformBuffer.addUniform("vLightGround", 3),
this._uniformBuffer.addUniform("shadowsInfo", 3),
this._uniformBuffer.addUniform("depthValues", 2),
this._uniformBuffer.create();
}),
(t.prototype.getClassName = function () {
return "HemisphericLight";
}),
(t.prototype.setDirectionToTarget = function (e) {
return (this.direction = o.e.Normalize(e.subtract(o.e.Zero()))), this.direction;
}),
(t.prototype.getShadowGenerator = function () {
return null;
}),
(t.prototype.transferToEffect = function (e, t) {
var n = o.e.Normalize(this.direction);
return this._uniformBuffer.updateFloat4("vLightData", n.x, n.y, n.z, 0, t), this._uniformBuffer.updateColor3("vLightGround", this.groundColor.scale(this.intensity), t), this;
}),
(t.prototype.transferToNodeMaterialEffect = function (e, t) {
var n = o.e.Normalize(this.direction);
return e.setFloat3(t, n.x, n.y, n.z), this;
}),
(t.prototype.computeWorldMatrix = function () {
return this._worldMatrix || (this._worldMatrix = o.a.Identity()), this._worldMatrix;
}),
(t.prototype.getTypeID = function () {
return c.a.LIGHTTYPEID_HEMISPHERICLIGHT;
}),
(t.prototype.prepareLightSpecificDefines = function (e, t) {
e["HEMILIGHT" + t] = !0;
}),
Object(i.c)([Object(r.e)()], t.prototype, "groundColor", void 0),
Object(i.c)([Object(r.o)()], t.prototype, "direction", void 0),
t
);
})(c.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
this._xhr = new XMLHttpRequest();
}
return (
(e.prototype._injectCustomRequestHeaders = function () {
for (var t in e.CustomRequestHeaders) {
var n = e.CustomRequestHeaders[t];
n && this._xhr.setRequestHeader(t, n);
}
}),
Object.defineProperty(e.prototype, "onprogress", {
get: function () {
return this._xhr.onprogress;
},
set: function (e) {
this._xhr.onprogress = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "readyState", {
get: function () {
return this._xhr.readyState;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "status", {
get: function () {
return this._xhr.status;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "statusText", {
get: function () {
return this._xhr.statusText;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "response", {
get: function () {
return this._xhr.response;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "responseURL", {
get: function () {
return this._xhr.responseURL;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "responseText", {
get: function () {
return this._xhr.responseText;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "responseType", {
get: function () {
return this._xhr.responseType;
},
set: function (e) {
this._xhr.responseType = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.addEventListener = function (e, t, n) {
this._xhr.addEventListener(e, t, n);
}),
(e.prototype.removeEventListener = function (e, t, n) {
this._xhr.removeEventListener(e, t, n);
}),
(e.prototype.abort = function () {
this._xhr.abort();
}),
(e.prototype.send = function (t) {
e.CustomRequestHeaders && this._injectCustomRequestHeaders(), this._xhr.send(t);
}),
(e.prototype.open = function (t, n) {
for (var i = 0, r = e.CustomRequestModifiers; i < r.length; i++) {
(0, r[i])(this._xhr, n);
}
return (n = (n = n.replace("file:http:", "http:")).replace("file:https:", "https:")), this._xhr.open(t, n, !0);
}),
(e.prototype.setRequestHeader = function (e, t) {
this._xhr.setRequestHeader(e, t);
}),
(e.prototype.getResponseHeader = function (e) {
return this._xhr.getResponseHeader(e);
}),
(e.CustomRequestHeaders = {}),
(e.CustomRequestModifiers = new Array()),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return d;
});
var i = n(2),
r = n(3),
o = n(12),
a = n(1),
s = n(68),
c = n(8),
l = n(13),
u = (n(230), n(53)),
h = n(6),
d = (function (e) {
function t(t, n, i, r, s, l, u, d, p, f, m, g, b) {
var _;
void 0 === i && (i = null),
void 0 === r && (r = !1),
void 0 === s && (s = null),
void 0 === l && (l = null),
void 0 === u && (u = null),
void 0 === d && (d = 5),
void 0 === p && (p = !1),
void 0 === f && (f = null),
void 0 === m && (m = !1),
void 0 === g && (g = 0.8),
void 0 === b && (b = 0);
var v = e.call(this, n) || this;
if (
((v.onLoadObservable = new h.c()),
(v.boundingBoxPosition = a.e.Zero()),
(v._rotationY = 0),
(v._files = null),
(v._forcedExtension = null),
(v._extensions = null),
(v._prefiltered = !1),
(v.name = t),
(v.url = t),
(v._noMipmap = r),
(v.hasAlpha = !1),
(v._format = d),
(v.isCube = !0),
(v._textureMatrix = a.a.Identity()),
(v._createPolynomials = m),
(v.coordinatesMode = c.a.CUBIC_MODE),
(v._extensions = i),
(v._files = s),
(v._forcedExtension = f),
!t && !s)
)
return v;
var y = t.lastIndexOf("."),
C = f || (y > -1 ? t.substring(y).toLowerCase() : ""),
P = ".dds" === C,
x = ".env" === C;
if (
(x ? ((v.gammaSpace = !1), (v._prefiltered = !1), (v.anisotropicFilteringLevel = 1)) : ((v._prefiltered = p), p && ((v.gammaSpace = !1), (v.anisotropicFilteringLevel = 1))),
(v._texture = v._getFromCache(t, r)),
!s && (x || P || i || (i = ["_px.jpg", "_py.jpg", "_pz.jpg", "_nx.jpg", "_ny.jpg", "_nz.jpg"]), (s = []), i))
)
for (var T = 0; T < i.length; T++) s.push(t + i[T]);
v._files = s;
var S = function () {
v.onLoadObservable.notifyObservers(v), l && l();
};
return (
v._texture
? v._texture.isReady
? o.b.SetImmediate(function () {
return S();
})
: v._texture.onLoadedObservable.add(function () {
return S();
})
: n.useDelayedTextureLoading
? (v.delayLoadState = 4)
: ((v._texture = p ? n.getEngine().createPrefilteredCubeTexture(t, n, g, b, l, u, d, f, v._createPolynomials) : n.getEngine().createCubeTexture(t, n, s, r, l, u, v._format, f, !1, g, b)),
null === (_ = v._texture) ||
void 0 === _ ||
_.onLoadedObservable.add(function () {
return v.onLoadObservable.notifyObservers(v);
})),
v
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "boundingBoxSize", {
get: function () {
return this._boundingBoxSize;
},
set: function (e) {
if (!this._boundingBoxSize || !this._boundingBoxSize.equals(e)) {
this._boundingBoxSize = e;
var t = this.getScene();
t && t.markAllMaterialsAsDirty(1);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rotationY", {
get: function () {
return this._rotationY;
},
set: function (e) {
(this._rotationY = e), this.setReflectionTextureMatrix(a.a.RotationY(this._rotationY));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "noMipmap", {
get: function () {
return this._noMipmap;
},
enumerable: !0,
configurable: !0,
}),
(t.CreateFromImages = function (e, n, i) {
var r = "";
return (
e.forEach(function (e) {
return (r += e);
}),
new t(r, n, null, i, e)
);
}),
(t.CreateFromPrefilteredData = function (e, n, i, r) {
void 0 === i && (i = null), void 0 === r && (r = !0);
var o = n.useDelayedTextureLoading;
n.useDelayedTextureLoading = !1;
var a = new t(e, n, null, !1, null, null, null, void 0, !0, i, r);
return (n.useDelayedTextureLoading = o), a;
}),
Object.defineProperty(t.prototype, "isPrefiltered", {
get: function () {
return this._prefiltered;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "CubeTexture";
}),
(t.prototype.updateURL = function (e, t, n, i) {
void 0 === i && (i = !1),
this.url && (this.releaseInternalTexture(), this.getScene().markAllMaterialsAsDirty(1)),
(this.name && !u.a.StartsWith(this.name, "data:")) || (this.name = e),
(this.url = e),
(this.delayLoadState = 4),
(this._prefiltered = i),
this._prefiltered && ((this.gammaSpace = !1), (this.anisotropicFilteringLevel = 1)),
(this._forcedExtension = t || null),
n && (this._delayedOnLoad = n),
this.delayLoad(t);
}),
(t.prototype.delayLoad = function (e) {
var t,
n = this;
if (4 === this.delayLoadState) {
var i = this.getScene();
i &&
((this.delayLoadState = 1),
(this._texture = this._getFromCache(this.url, this._noMipmap)),
this._texture ||
(this._prefiltered
? (this._texture = i.getEngine().createPrefilteredCubeTexture(this.url, i, 0.8, 0, this._delayedOnLoad, void 0, this._format, void 0, this._createPolynomials))
: (this._texture = i.getEngine().createCubeTexture(this.url, i, this._files, this._noMipmap, this._delayedOnLoad, null, this._format, e)),
null === (t = this._texture) ||
void 0 === t ||
t.onLoadedObservable.add(function () {
return n.onLoadObservable.notifyObservers(n);
})));
}
}),
(t.prototype.getReflectionTextureMatrix = function () {
return this._textureMatrix;
}),
(t.prototype.setReflectionTextureMatrix = function (e) {
var t = this;
e.updateFlag !== this._textureMatrix.updateFlag &&
(e.isIdentity() !== this._textureMatrix.isIdentity() &&
this.getScene().markAllMaterialsAsDirty(1, function (e) {
return -1 !== e.getActiveTextures().indexOf(t);
}),
(this._textureMatrix = e));
}),
(t.Parse = function (e, n, i) {
var o = r.a.Parse(
function () {
var r = !1;
return e.prefiltered && (r = e.prefiltered), new t(i + e.name, n, e.extensions, !1, e.files || null, null, null, void 0, r, e.forcedExtension);
},
e,
n
);
if ((e.boundingBoxPosition && (o.boundingBoxPosition = a.e.FromArray(e.boundingBoxPosition)), e.boundingBoxSize && (o.boundingBoxSize = a.e.FromArray(e.boundingBoxSize)), e.animations))
for (var s = 0; s < e.animations.length; s++) {
var c = e.animations[s],
u = l.a.GetClass("BABYLON.Animation");
u && o.animations.push(u.Parse(c));
}
return o;
}),
(t.prototype.clone = function () {
var e = this,
n = this.getScene(),
i = 0,
o = r.a.Clone(function () {
if (!n) return e;
var r = new t(e.url, n, e._extensions, e._noMipmap, e._files);
return (i = r.uniqueId), r;
}, this);
return (o.uniqueId = i), o;
}),
Object(i.c)([Object(r.c)("rotationY")], t.prototype, "rotationY", null),
Object(i.c)([Object(r.c)("files")], t.prototype, "_files", void 0),
Object(i.c)([Object(r.c)("forcedExtension")], t.prototype, "_forcedExtension", void 0),
Object(i.c)([Object(r.c)("extensions")], t.prototype, "_extensions", void 0),
Object(i.c)([Object(r.j)("textureMatrix")], t.prototype, "_textureMatrix", void 0),
t
);
})(s.a);
(c.a._CubeTextureParser = d.Parse), (l.a.RegisteredTypes["BABYLON.CubeTexture"] = d);
},
function (e, t, n) {
"use strict";
var i = "shadowsFragmentFunctions",
r =
"#ifdef SHADOWS\n#ifndef SHADOWFLOAT\n\nfloat unpack(vec4 color)\n{\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\nreturn dot(color,bit_shift);\n}\n#endif\nfloat computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff)\n{\nfloat mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));\nreturn mix(value,1.0,mask);\n}\nfloat computeShadowCube(vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues)\n{\nvec3 directionToLight=vPositionW-lightPosition;\nfloat depth=length(directionToLight);\ndepth=(depth+depthValues.x)/(depthValues.y);\ndepth=clamp(depth,0.,1.0);\ndirectionToLight=normalize(directionToLight);\ndirectionToLight.y=-directionToLight.y;\n#ifndef SHADOWFLOAT\nfloat shadow=unpack(textureCube(shadowSampler,directionToLight));\n#else\nfloat shadow=textureCube(shadowSampler,directionToLight).x;\n#endif\nif (depth>shadow)\n{\nreturn darkness;\n}\nreturn 1.0;\n}\nfloat computeShadowWithPoissonSamplingCube(vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues)\n{\nvec3 directionToLight=vPositionW-lightPosition;\nfloat depth=length(directionToLight);\ndepth=(depth+depthValues.x)/(depthValues.y);\ndepth=clamp(depth,0.,1.0);\ndirectionToLight=normalize(directionToLight);\ndirectionToLight.y=-directionToLight.y;\nfloat visibility=1.;\nvec3 poissonDisk[4];\npoissonDisk[0]=vec3(-1.0,1.0,-1.0);\npoissonDisk[1]=vec3(1.0,-1.0,-1.0);\npoissonDisk[2]=vec3(-1.0,-1.0,-1.0);\npoissonDisk[3]=vec3(1.0,-1.0,1.0);\n\n#ifndef SHADOWFLOAT\nif (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))shadow)\n{\nreturn computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff);\n}\nreturn 1.;\n}\n#endif\nfloat computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadow=unpack(texture2D(shadowSampler,uv));\n#else\nfloat shadow=texture2D(shadowSampler,uv).x;\n#endif\nif (shadowPixelDepth>shadow)\n{\nreturn computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff);\n}\nreturn 1.;\n}\nfloat computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\nfloat visibility=1.;\nvec2 poissonDisk[4];\npoissonDisk[0]=vec2(-0.94201624,-0.39906216);\npoissonDisk[1]=vec2(0.94558609,-0.76890725);\npoissonDisk[2]=vec2(-0.094184101,-0.92938870);\npoissonDisk[3]=vec2(0.34495938,0.29387760);\n\n#ifndef SHADOWFLOAT\nif (unpack(texture2D(shadowSampler,uv+poissonDisk[0]*mapSize))1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadowMapSample=unpack(texture2D(shadowSampler,uv));\n#else\nfloat shadowMapSample=texture2D(shadowSampler,uv).x;\n#endif\nfloat esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\nreturn computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\n}\nfloat computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadowMapSample=unpack(texture2D(shadowSampler,uv));\n#else\nfloat shadowMapSample=texture2D(shadowSampler,uv).x;\n#endif\nfloat esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\nreturn computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\n}\n#ifdef WEBGL2\n#define GREATEST_LESS_THAN_ONE 0.99999994\n\nfloat computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\nfloat shadow=texture(shadowSampler,uvDepthLayer);\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\n\n\nvec2 uvw0=3.-2.*st;\nvec2 uvw1=1.+2.*st;\nvec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\nvec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\nshadow=shadow/16.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\nvec2 uvw0=4.-3.*st;\nvec2 uvw1=vec2(7.);\nvec2 uvw2=1.+3.*st;\nvec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\nvec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\nshadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\nshadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));\nshadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));\nshadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));\nshadow=shadow/144.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\nfloat computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff)\n{\nif (depthMetric>1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nfloat shadow=texture2D(shadowSampler,uvDepth);\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nif (depthMetric>1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\n\n\nvec2 uvw0=3.-2.*st;\nvec2 uvw1=1.+2.*st;\nvec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\nvec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z));\nshadow=shadow/16.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nif (depthMetric>1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\nvec2 uvw0=4.-3.*st;\nvec2 uvw1=vec2(7.);\nvec2 uvw2=1.+3.*st;\nvec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\nvec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z));\nshadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z));\nshadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z));\nshadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z));\nshadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z));\nshadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z));\nshadow=shadow/144.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\nconst vec3 PoissonSamplers32[64]=vec3[64](\nvec3(0.06407013,0.05409927,0.),\nvec3(0.7366577,0.5789394,0.),\nvec3(-0.6270542,-0.5320278,0.),\nvec3(-0.4096107,0.8411095,0.),\nvec3(0.6849564,-0.4990818,0.),\nvec3(-0.874181,-0.04579735,0.),\nvec3(0.9989998,0.0009880066,0.),\nvec3(-0.004920578,-0.9151649,0.),\nvec3(0.1805763,0.9747483,0.),\nvec3(-0.2138451,0.2635818,0.),\nvec3(0.109845,0.3884785,0.),\nvec3(0.06876755,-0.3581074,0.),\nvec3(0.374073,-0.7661266,0.),\nvec3(0.3079132,-0.1216763,0.),\nvec3(-0.3794335,-0.8271583,0.),\nvec3(-0.203878,-0.07715034,0.),\nvec3(0.5912697,0.1469799,0.),\nvec3(-0.88069,0.3031784,0.),\nvec3(0.5040108,0.8283722,0.),\nvec3(-0.5844124,0.5494877,0.),\nvec3(0.6017799,-0.1726654,0.),\nvec3(-0.5554981,0.1559997,0.),\nvec3(-0.3016369,-0.3900928,0.),\nvec3(-0.5550632,-0.1723762,0.),\nvec3(0.925029,0.2995041,0.),\nvec3(-0.2473137,0.5538505,0.),\nvec3(0.9183037,-0.2862392,0.),\nvec3(0.2469421,0.6718712,0.),\nvec3(0.3916397,-0.4328209,0.),\nvec3(-0.03576927,-0.6220032,0.),\nvec3(-0.04661255,0.7995201,0.),\nvec3(0.4402924,0.3640312,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.)\n);\nconst vec3 PoissonSamplers64[64]=vec3[64](\nvec3(-0.613392,0.617481,0.),\nvec3(0.170019,-0.040254,0.),\nvec3(-0.299417,0.791925,0.),\nvec3(0.645680,0.493210,0.),\nvec3(-0.651784,0.717887,0.),\nvec3(0.421003,0.027070,0.),\nvec3(-0.817194,-0.271096,0.),\nvec3(-0.705374,-0.668203,0.),\nvec3(0.977050,-0.108615,0.),\nvec3(0.063326,0.142369,0.),\nvec3(0.203528,0.214331,0.),\nvec3(-0.667531,0.326090,0.),\nvec3(-0.098422,-0.295755,0.),\nvec3(-0.885922,0.215369,0.),\nvec3(0.566637,0.605213,0.),\nvec3(0.039766,-0.396100,0.),\nvec3(0.751946,0.453352,0.),\nvec3(0.078707,-0.715323,0.),\nvec3(-0.075838,-0.529344,0.),\nvec3(0.724479,-0.580798,0.),\nvec3(0.222999,-0.215125,0.),\nvec3(-0.467574,-0.405438,0.),\nvec3(-0.248268,-0.814753,0.),\nvec3(0.354411,-0.887570,0.),\nvec3(0.175817,0.382366,0.),\nvec3(0.487472,-0.063082,0.),\nvec3(-0.084078,0.898312,0.),\nvec3(0.488876,-0.783441,0.),\nvec3(0.470016,0.217933,0.),\nvec3(-0.696890,-0.549791,0.),\nvec3(-0.149693,0.605762,0.),\nvec3(0.034211,0.979980,0.),\nvec3(0.503098,-0.308878,0.),\nvec3(-0.016205,-0.872921,0.),\nvec3(0.385784,-0.393902,0.),\nvec3(-0.146886,-0.859249,0.),\nvec3(0.643361,0.164098,0.),\nvec3(0.634388,-0.049471,0.),\nvec3(-0.688894,0.007843,0.),\nvec3(0.464034,-0.188818,0.),\nvec3(-0.440840,0.137486,0.),\nvec3(0.364483,0.511704,0.),\nvec3(0.034028,0.325968,0.),\nvec3(0.099094,-0.308023,0.),\nvec3(0.693960,-0.366253,0.),\nvec3(0.678884,-0.204688,0.),\nvec3(0.001801,0.780328,0.),\nvec3(0.145177,-0.898984,0.),\nvec3(0.062655,-0.611866,0.),\nvec3(0.315226,-0.604297,0.),\nvec3(-0.780145,0.486251,0.),\nvec3(-0.371868,0.882138,0.),\nvec3(0.200476,0.494430,0.),\nvec3(-0.494552,-0.711051,0.),\nvec3(0.612476,0.705252,0.),\nvec3(-0.578845,-0.768792,0.),\nvec3(-0.772454,-0.090976,0.),\nvec3(0.504440,0.372295,0.),\nvec3(0.155736,0.065157,0.),\nvec3(0.391522,0.849605,0.),\nvec3(-0.620106,-0.328104,0.),\nvec3(0.789239,-0.419965,0.),\nvec3(-0.545396,0.538133,0.),\nvec3(-0.178564,-0.596057,0.)\n);\n\n\n\n\n\nfloat computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\nfloat blockerDepth=0.0;\nfloat sumBlockerDepth=0.0;\nfloat numBlocker=0.0;\nfor (int i=0; i1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nfloat blockerDepth=0.0;\nfloat sumBlockerDepth=0.0;\nfloat numBlocker=0.0;\nfor (int i=0; i= 0 ? (this.rotation.y = -Math.atan(t.z / t.x) + Math.PI / 2) : (this.rotation.y = -Math.atan(t.z / t.x) - Math.PI / 2),
(this.rotation.z = 0),
isNaN(this.rotation.x) && (this.rotation.x = 0),
isNaN(this.rotation.y) && (this.rotation.y = 0),
isNaN(this.rotation.z) && (this.rotation.z = 0),
this.rotationQuaternion && a.b.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion);
}),
(t.prototype.getTarget = function () {
return this._currentTarget;
}),
(t.prototype._decideIfNeedsToMove = function () {
return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;
}),
(t.prototype._updatePosition = function () {
if (this.parent) return this.parent.getWorldMatrix().invertToRef(a.c.Matrix[0]), a.e.TransformNormalToRef(this.cameraDirection, a.c.Matrix[0], a.c.Vector3[0]), void this.position.addInPlace(a.c.Vector3[0]);
this.position.addInPlace(this.cameraDirection);
}),
(t.prototype._checkInputs = function () {
var t = this._decideIfNeedsToMove(),
n = Math.abs(this.cameraRotation.x) > 0 || Math.abs(this.cameraRotation.y) > 0;
if ((t && this._updatePosition(), n)) {
if (((this.rotation.x += this.cameraRotation.x), (this.rotation.y += this.cameraRotation.y), this.rotationQuaternion))
this.rotation.lengthSquared() && a.b.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion);
if (!this.noRotationConstraint) {
this.rotation.x > 1.570796 && (this.rotation.x = 1.570796), this.rotation.x < -1.570796 && (this.rotation.x = -1.570796);
}
}
t &&
(Math.abs(this.cameraDirection.x) < this.speed * s.a && (this.cameraDirection.x = 0),
Math.abs(this.cameraDirection.y) < this.speed * s.a && (this.cameraDirection.y = 0),
Math.abs(this.cameraDirection.z) < this.speed * s.a && (this.cameraDirection.z = 0),
this.cameraDirection.scaleInPlace(this.inertia)),
n &&
(Math.abs(this.cameraRotation.x) < this.speed * s.a && (this.cameraRotation.x = 0),
Math.abs(this.cameraRotation.y) < this.speed * s.a && (this.cameraRotation.y = 0),
this.cameraRotation.scaleInPlace(this.inertia)),
e.prototype._checkInputs.call(this);
}),
(t.prototype._updateCameraRotationMatrix = function () {
this.rotationQuaternion ? this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix) : a.a.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);
}),
(t.prototype._rotateUpVectorWithCameraRotationMatrix = function () {
return a.e.TransformNormalToRef(this._defaultUp, this._cameraRotationMatrix, this.upVector), this;
}),
(t.prototype._getViewMatrix = function () {
return (
this.lockedTarget && this.setTarget(this._getLockedTargetPosition()),
this._updateCameraRotationMatrix(),
this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z
? (this._rotateUpVectorWithCameraRotationMatrix(), (this._cachedQuaternionRotationZ = this.rotationQuaternion.z))
: this._cachedRotationZ != this.rotation.z && (this._rotateUpVectorWithCameraRotationMatrix(), (this._cachedRotationZ = this.rotation.z)),
a.e.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint),
this.position.addToRef(this._transformedReferencePoint, this._currentTarget),
this.updateUpVectorFromRotation &&
(this.rotationQuaternion
? c.a.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector)
: (a.b.FromEulerVectorToRef(this.rotation, this._tmpQuaternion), c.a.Y.rotateByQuaternionToRef(this._tmpQuaternion, this.upVector))),
this._computeViewMatrix(this.position, this._currentTarget, this.upVector),
this._viewMatrix
);
}),
(t.prototype._computeViewMatrix = function (e, t, n) {
if (this.parent) {
var i = this.parent.getWorldMatrix();
a.e.TransformCoordinatesToRef(e, i, this._globalPosition),
a.e.TransformCoordinatesToRef(t, i, this._globalCurrentTarget),
a.e.TransformNormalToRef(n, i, this._globalCurrentUpVector),
this._markSyncedWithParent();
} else this._globalPosition.copyFrom(e), this._globalCurrentTarget.copyFrom(t), this._globalCurrentUpVector.copyFrom(n);
this.getScene().useRightHandedSystem
? a.a.LookAtRHToRef(this._globalPosition, this._globalCurrentTarget, this._globalCurrentUpVector, this._viewMatrix)
: a.a.LookAtLHToRef(this._globalPosition, this._globalCurrentTarget, this._globalCurrentUpVector, this._viewMatrix);
}),
(t.prototype.createRigCamera = function (e, n) {
if (this.cameraRigMode !== o.a.RIG_MODE_NONE) {
var i = new t(e, this.position.clone(), this.getScene());
return (
(i.isRigCamera = !0),
(i.rigParent = this),
(this.cameraRigMode !== o.a.RIG_MODE_VR && this.cameraRigMode !== o.a.RIG_MODE_WEBVR) ||
(this.rotationQuaternion || (this.rotationQuaternion = new a.b()), (i._cameraRigParams = {}), (i.rotationQuaternion = new a.b())),
i
);
}
return null;
}),
(t.prototype._updateRigCameras = function () {
var t = this._rigCameras[0],
n = this._rigCameras[1];
switch ((this.computeWorldMatrix(), this.cameraRigMode)) {
case o.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
case o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
case o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
case o.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:
case o.a.RIG_MODE_STEREOSCOPIC_INTERLACED:
var i = this.cameraRigMode === o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1,
r = this.cameraRigMode === o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;
this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * i, t), this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * r, n);
break;
case o.a.RIG_MODE_VR:
t.rotationQuaternion
? (t.rotationQuaternion.copyFrom(this.rotationQuaternion), n.rotationQuaternion.copyFrom(this.rotationQuaternion))
: (t.rotation.copyFrom(this.rotation), n.rotation.copyFrom(this.rotation)),
t.position.copyFrom(this.position),
n.position.copyFrom(this.position);
}
e.prototype._updateRigCameras.call(this);
}),
(t.prototype._getRigCamPositionAndTarget = function (e, n) {
this.getTarget().subtractToRef(this.position, t._TargetFocalPoint), t._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);
var i = t._TargetFocalPoint.addInPlace(this.position);
a.a.TranslationToRef(-i.x, -i.y, -i.z, t._TargetTransformMatrix),
t._TargetTransformMatrix.multiplyToRef(a.a.RotationY(e), t._RigCamTransformMatrix),
a.a.TranslationToRef(i.x, i.y, i.z, t._TargetTransformMatrix),
t._RigCamTransformMatrix.multiplyToRef(t._TargetTransformMatrix, t._RigCamTransformMatrix),
a.e.TransformCoordinatesToRef(this.position, t._RigCamTransformMatrix, n.position),
n.setTarget(i);
}),
(t.prototype.getClassName = function () {
return "TargetCamera";
}),
(t._RigCamTransformMatrix = new a.a()),
(t._TargetTransformMatrix = new a.a()),
(t._TargetFocalPoint = new a.e()),
Object(i.c)([Object(r.o)()], t.prototype, "rotation", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "speed", void 0),
Object(i.c)([Object(r.k)("lockedTargetId")], t.prototype, "lockedTarget", void 0),
t
);
})(o.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
Object.defineProperty(e, "ForceFullSceneLoadingForIncremental", {
get: function () {
return e._ForceFullSceneLoadingForIncremental;
},
set: function (t) {
e._ForceFullSceneLoadingForIncremental = t;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "ShowLoadingScreen", {
get: function () {
return e._ShowLoadingScreen;
},
set: function (t) {
e._ShowLoadingScreen = t;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "loggingLevel", {
get: function () {
return e._loggingLevel;
},
set: function (t) {
e._loggingLevel = t;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "CleanBoneMatrixWeights", {
get: function () {
return e._CleanBoneMatrixWeights;
},
set: function (t) {
e._CleanBoneMatrixWeights = t;
},
enumerable: !0,
configurable: !0,
}),
(e._ForceFullSceneLoadingForIncremental = !1),
(e._ShowLoadingScreen = !0),
(e._CleanBoneMatrixWeights = !1),
(e._loggingLevel = 0),
e
);
})();
},
function (e, t, n) {
"use strict";
e.exports = function (e, t) {
return (
t || (t = {}),
"string" != typeof (e = e && e.__esModule ? e.default : e)
? e
: (/^['"].*['"]$/.test(e) && (e = e.slice(1, -1)), t.hash && (e += t.hash), /["'() \t\n]/.test(e) || t.needQuotes ? '"'.concat(e.replace(/"/g, '\\"').replace(/\n/g, "\\n"), '"') : e)
);
};
},
function (e, t, n) {
"use strict";
var i = "lightsFragmentFunctions",
r =
"\nstruct lightingInfo\n{\nvec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef NDOTL\nfloat ndl;\n#endif\n};\nlightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {\nlightingInfo result;\nvec3 lightVectorW;\nfloat attenuation=1.0;\nif (lightData.w == 0.)\n{\nvec3 direction=lightData.xyz-vPositionW;\nattenuation=max(0.,1.0-length(direction)/range);\nlightVectorW=normalize(direction);\n}\nelse\n{\nlightVectorW=normalize(-lightData.xyz);\n}\n\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\n\nvec3 angleW=normalize(viewDirectionW+lightVectorW);\nfloat specComp=max(0.,dot(vNormal,angleW));\nspecComp=pow(specComp,max(1.,glossiness));\nresult.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;\n}\nlightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {\nlightingInfo result;\nvec3 direction=lightData.xyz-vPositionW;\nvec3 lightVectorW=normalize(direction);\nfloat attenuation=max(0.,1.0-length(direction)/range);\n\nfloat cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));\nif (cosAngle>=lightDirection.w)\n{\ncosAngle=max(0.,pow(cosAngle,lightData.w));\nattenuation*=cosAngle;\n\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\n\nvec3 angleW=normalize(viewDirectionW+lightVectorW);\nfloat specComp=max(0.,dot(vNormal,angleW));\nspecComp=pow(specComp,max(1.,glossiness));\nresult.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;\n}\nresult.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;\n}\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {\nlightingInfo result;\n\nfloat ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\n\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);\nfloat specComp=max(0.,dot(vNormal,angleW));\nspecComp=pow(specComp,max(1.,glossiness));\nresult.specular=specComp*specularColor;\n#endif\nreturn result;\n}\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\nstrq/=strq.w;\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\nreturn textureColor;\n}";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return p;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(4),
s = n(8),
c = n(11),
l = n(28),
u = n(13),
h = n(5),
d = n(43),
p = (function (e) {
function t(t, n, r, a) {
void 0 === a && (a = {});
var s = e.call(this, t, n) || this;
return (
(s._textures = {}),
(s._textureArrays = {}),
(s._floats = {}),
(s._ints = {}),
(s._floatsArrays = {}),
(s._colors3 = {}),
(s._colors3Arrays = {}),
(s._colors4 = {}),
(s._colors4Arrays = {}),
(s._vectors2 = {}),
(s._vectors3 = {}),
(s._vectors4 = {}),
(s._matrices = {}),
(s._matrixArrays = {}),
(s._matrices3x3 = {}),
(s._matrices2x2 = {}),
(s._vectors2Arrays = {}),
(s._vectors3Arrays = {}),
(s._vectors4Arrays = {}),
(s._cachedWorldViewMatrix = new o.a()),
(s._cachedWorldViewProjectionMatrix = new o.a()),
(s._multiview = !1),
(s._shaderPath = r),
(s._options = Object(i.a)({ needAlphaBlending: !1, needAlphaTesting: !1, attributes: ["position", "normal", "uv"], uniforms: ["worldViewProjection"], uniformBuffers: [], samplers: [], defines: [] }, a)),
s
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "shaderPath", {
get: function () {
return this._shaderPath;
},
set: function (e) {
this._shaderPath = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "options", {
get: function () {
return this._options;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "ShaderMaterial";
}),
(t.prototype.needAlphaBlending = function () {
return this.alpha < 1 || this._options.needAlphaBlending;
}),
(t.prototype.needAlphaTesting = function () {
return this._options.needAlphaTesting;
}),
(t.prototype._checkUniform = function (e) {
-1 === this._options.uniforms.indexOf(e) && this._options.uniforms.push(e);
}),
(t.prototype.setTexture = function (e, t) {
return -1 === this._options.samplers.indexOf(e) && this._options.samplers.push(e), (this._textures[e] = t), this;
}),
(t.prototype.setTextureArray = function (e, t) {
return -1 === this._options.samplers.indexOf(e) && this._options.samplers.push(e), this._checkUniform(e), (this._textureArrays[e] = t), this;
}),
(t.prototype.setFloat = function (e, t) {
return this._checkUniform(e), (this._floats[e] = t), this;
}),
(t.prototype.setInt = function (e, t) {
return this._checkUniform(e), (this._ints[e] = t), this;
}),
(t.prototype.setFloats = function (e, t) {
return this._checkUniform(e), (this._floatsArrays[e] = t), this;
}),
(t.prototype.setColor3 = function (e, t) {
return this._checkUniform(e), (this._colors3[e] = t), this;
}),
(t.prototype.setColor3Array = function (e, t) {
return (
this._checkUniform(e),
(this._colors3Arrays[e] = t.reduce(function (e, t) {
return t.toArray(e, e.length), e;
}, [])),
this
);
}),
(t.prototype.setColor4 = function (e, t) {
return this._checkUniform(e), (this._colors4[e] = t), this;
}),
(t.prototype.setColor4Array = function (e, t) {
return (
this._checkUniform(e),
(this._colors4Arrays[e] = t.reduce(function (e, t) {
return t.toArray(e, e.length), e;
}, [])),
this
);
}),
(t.prototype.setVector2 = function (e, t) {
return this._checkUniform(e), (this._vectors2[e] = t), this;
}),
(t.prototype.setVector3 = function (e, t) {
return this._checkUniform(e), (this._vectors3[e] = t), this;
}),
(t.prototype.setVector4 = function (e, t) {
return this._checkUniform(e), (this._vectors4[e] = t), this;
}),
(t.prototype.setMatrix = function (e, t) {
return this._checkUniform(e), (this._matrices[e] = t), this;
}),
(t.prototype.setMatrices = function (e, t) {
this._checkUniform(e);
for (var n = new Float32Array(16 * t.length), i = 0; i < t.length; i++) {
t[i].copyToArray(n, 16 * i);
}
return (this._matrixArrays[e] = n), this;
}),
(t.prototype.setMatrix3x3 = function (e, t) {
return this._checkUniform(e), (this._matrices3x3[e] = t), this;
}),
(t.prototype.setMatrix2x2 = function (e, t) {
return this._checkUniform(e), (this._matrices2x2[e] = t), this;
}),
(t.prototype.setArray2 = function (e, t) {
return this._checkUniform(e), (this._vectors2Arrays[e] = t), this;
}),
(t.prototype.setArray3 = function (e, t) {
return this._checkUniform(e), (this._vectors3Arrays[e] = t), this;
}),
(t.prototype.setArray4 = function (e, t) {
return this._checkUniform(e), (this._vectors4Arrays[e] = t), this;
}),
(t.prototype._checkCache = function (e, t) {
return !e || !this._effect || (-1 !== this._effect.defines.indexOf("#define INSTANCES")) === t;
}),
(t.prototype.isReadyForSubMesh = function (e, t, n) {
return this.isReady(e, n);
}),
(t.prototype.isReady = function (e, t) {
if (this._effect && this.isFrozen && this._effect._wasPreviouslyReady) return !0;
var n = this.getScene(),
i = n.getEngine();
if (!this.checkReadyOnEveryCall && this._renderId === n.getRenderId() && this._checkCache(e, t)) return !0;
var r = [],
o = [],
s = new d.a();
i.getCaps().multiview &&
n.activeCamera &&
n.activeCamera.outputRenderTarget &&
n.activeCamera.outputRenderTarget.getViewCount() > 1 &&
((this._multiview = !0),
r.push("#define MULTIVIEW"),
-1 !== this._options.uniforms.indexOf("viewProjection") && -1 === this._options.uniforms.push("viewProjectionR") && this._options.uniforms.push("viewProjectionR"));
for (var l = 0; l < this._options.defines.length; l++) r.push(this._options.defines[l]);
for (l = 0; l < this._options.attributes.length; l++) o.push(this._options.attributes[l]);
if (
(e && e.isVerticesDataPresent(a.b.ColorKind) && (o.push(a.b.ColorKind), r.push("#define VERTEXCOLOR")),
t && (r.push("#define INSTANCES"), c.a.PushAttributesForInstances(o)),
e && e.useBones && e.computeBonesUsingShaders && e.skeleton)
) {
o.push(a.b.MatricesIndicesKind), o.push(a.b.MatricesWeightsKind), e.numBoneInfluencers > 4 && (o.push(a.b.MatricesIndicesExtraKind), o.push(a.b.MatricesWeightsExtraKind));
var u = e.skeleton;
r.push("#define NUM_BONE_INFLUENCERS " + e.numBoneInfluencers),
s.addCPUSkinningFallback(0, e),
u.isUsingTextureForMatrices
? (r.push("#define BONETEXTURE"),
-1 === this._options.uniforms.indexOf("boneTextureWidth") && this._options.uniforms.push("boneTextureWidth"),
-1 === this._options.samplers.indexOf("boneSampler") && this._options.samplers.push("boneSampler"))
: (r.push("#define BonesPerMesh " + (u.bones.length + 1)), -1 === this._options.uniforms.indexOf("mBones") && this._options.uniforms.push("mBones"));
} else r.push("#define NUM_BONE_INFLUENCERS 0");
for (var h in this._textures) if (!this._textures[h].isReady()) return !1;
e && this._shouldTurnAlphaTestOn(e) && r.push("#define ALPHATEST");
var p = this._effect,
f = r.join("\n");
return (
(this._effect = i.createEffect(
this._shaderPath,
{
attributes: o,
uniformsNames: this._options.uniforms,
uniformBuffersNames: this._options.uniformBuffers,
samplers: this._options.samplers,
defines: f,
fallbacks: s,
onCompiled: this.onCompiled,
onError: this.onError,
},
i
)),
!!this._effect.isReady() && (p !== this._effect && n.resetCachedMaterial(), (this._renderId = n.getRenderId()), (this._effect._wasPreviouslyReady = !0), !0)
);
}),
(t.prototype.bindOnlyWorldMatrix = function (e) {
var t = this.getScene();
this._effect &&
(-1 !== this._options.uniforms.indexOf("world") && this._effect.setMatrix("world", e),
-1 !== this._options.uniforms.indexOf("worldView") && (e.multiplyToRef(t.getViewMatrix(), this._cachedWorldViewMatrix), this._effect.setMatrix("worldView", this._cachedWorldViewMatrix)),
-1 !== this._options.uniforms.indexOf("worldViewProjection") &&
(e.multiplyToRef(t.getTransformMatrix(), this._cachedWorldViewProjectionMatrix), this._effect.setMatrix("worldViewProjection", this._cachedWorldViewProjectionMatrix)));
}),
(t.prototype.bind = function (e, t) {
if ((this.bindOnlyWorldMatrix(e), this._effect && this.getScene().getCachedMaterial() !== this)) {
var n;
for (n in (-1 !== this._options.uniforms.indexOf("view") && this._effect.setMatrix("view", this.getScene().getViewMatrix()),
-1 !== this._options.uniforms.indexOf("projection") && this._effect.setMatrix("projection", this.getScene().getProjectionMatrix()),
-1 !== this._options.uniforms.indexOf("viewProjection") &&
(this._effect.setMatrix("viewProjection", this.getScene().getTransformMatrix()), this._multiview && this._effect.setMatrix("viewProjectionR", this.getScene()._transformMatrixR)),
this.getScene().activeCamera && -1 !== this._options.uniforms.indexOf("cameraPosition") && this._effect.setVector3("cameraPosition", this.getScene().activeCamera.globalPosition),
c.a.BindBonesParameters(t, this._effect),
this._textures))
this._effect.setTexture(n, this._textures[n]);
for (n in this._textureArrays) this._effect.setTextureArray(n, this._textureArrays[n]);
for (n in this._ints) this._effect.setInt(n, this._ints[n]);
for (n in this._floats) this._effect.setFloat(n, this._floats[n]);
for (n in this._floatsArrays) this._effect.setArray(n, this._floatsArrays[n]);
for (n in this._colors3) this._effect.setColor3(n, this._colors3[n]);
for (n in this._colors3Arrays) this._effect.setArray3(n, this._colors3Arrays[n]);
for (n in this._colors4) {
var i = this._colors4[n];
this._effect.setFloat4(n, i.r, i.g, i.b, i.a);
}
for (n in this._colors4Arrays) this._effect.setArray4(n, this._colors4Arrays[n]);
for (n in this._vectors2) this._effect.setVector2(n, this._vectors2[n]);
for (n in this._vectors3) this._effect.setVector3(n, this._vectors3[n]);
for (n in this._vectors4) this._effect.setVector4(n, this._vectors4[n]);
for (n in this._matrices) this._effect.setMatrix(n, this._matrices[n]);
for (n in this._matrixArrays) this._effect.setMatrices(n, this._matrixArrays[n]);
for (n in this._matrices3x3) this._effect.setMatrix3x3(n, this._matrices3x3[n]);
for (n in this._matrices2x2) this._effect.setMatrix2x2(n, this._matrices2x2[n]);
for (n in this._vectors2Arrays) this._effect.setArray2(n, this._vectors2Arrays[n]);
for (n in this._vectors3Arrays) this._effect.setArray3(n, this._vectors3Arrays[n]);
for (n in this._vectors4Arrays) this._effect.setArray4(n, this._vectors4Arrays[n]);
}
this._afterBind(t);
}),
(t.prototype.getActiveTextures = function () {
var t = e.prototype.getActiveTextures.call(this);
for (var n in this._textures) t.push(this._textures[n]);
for (var n in this._textureArrays) for (var i = this._textureArrays[n], r = 0; r < i.length; r++) t.push(i[r]);
return t;
}),
(t.prototype.hasTexture = function (t) {
if (e.prototype.hasTexture.call(this, t)) return !0;
for (var n in this._textures) if (this._textures[n] === t) return !0;
for (var n in this._textureArrays) for (var i = this._textureArrays[n], r = 0; r < i.length; r++) if (i[r] === t) return !0;
return !1;
}),
(t.prototype.clone = function (e) {
var n = this,
o = r.a.Clone(function () {
return new t(e, n.getScene(), n._shaderPath, n._options);
}, this);
for (var a in ((o.name = e),
(o.id = e),
"object" == typeof o._shaderPath && (o._shaderPath = Object(i.a)({}, o._shaderPath)),
(this._options = Object(i.a)({}, this._options)),
Object.keys(this._options).forEach(function (e) {
var t = n._options[e];
Array.isArray(t) && (n._options[e] = t.slice(0));
}),
this._textures))
o.setTexture(a, this._textures[a]);
for (var a in this._floats) o.setFloat(a, this._floats[a]);
for (var a in this._floatsArrays) o.setFloats(a, this._floatsArrays[a]);
for (var a in this._colors3) o.setColor3(a, this._colors3[a]);
for (var a in this._colors4) o.setColor4(a, this._colors4[a]);
for (var a in this._vectors2) o.setVector2(a, this._vectors2[a]);
for (var a in this._vectors3) o.setVector3(a, this._vectors3[a]);
for (var a in this._vectors4) o.setVector4(a, this._vectors4[a]);
for (var a in this._matrices) o.setMatrix(a, this._matrices[a]);
for (var a in this._matrices3x3) o.setMatrix3x3(a, this._matrices3x3[a]);
for (var a in this._matrices2x2) o.setMatrix2x2(a, this._matrices2x2[a]);
return o;
}),
(t.prototype.dispose = function (t, n, i) {
if (n) {
var r;
for (r in this._textures) this._textures[r].dispose();
for (r in this._textureArrays) for (var o = this._textureArrays[r], a = 0; a < o.length; a++) o[a].dispose();
}
(this._textures = {}), e.prototype.dispose.call(this, t, n, i);
}),
(t.prototype.serialize = function () {
var e,
t = r.a.Serialize(this);
for (e in ((t.customType = "BABYLON.ShaderMaterial"), (t.options = this._options), (t.shaderPath = this._shaderPath), (t.textures = {}), this._textures)) t.textures[e] = this._textures[e].serialize();
for (e in ((t.textureArrays = {}), this._textureArrays)) {
t.textureArrays[e] = [];
for (var n = this._textureArrays[e], i = 0; i < n.length; i++) t.textureArrays[e].push(n[i].serialize());
}
for (e in ((t.floats = {}), this._floats)) t.floats[e] = this._floats[e];
for (e in ((t.FloatArrays = {}), this._floatsArrays)) t.FloatArrays[e] = this._floatsArrays[e];
for (e in ((t.colors3 = {}), this._colors3)) t.colors3[e] = this._colors3[e].asArray();
for (e in ((t.colors3Arrays = {}), this._colors3Arrays)) t.colors3Arrays[e] = this._colors3Arrays[e];
for (e in ((t.colors4 = {}), this._colors4)) t.colors4[e] = this._colors4[e].asArray();
for (e in ((t.colors4Arrays = {}), this._colors4Arrays)) t.colors4Arrays[e] = this._colors4Arrays[e];
for (e in ((t.vectors2 = {}), this._vectors2)) t.vectors2[e] = this._vectors2[e].asArray();
for (e in ((t.vectors3 = {}), this._vectors3)) t.vectors3[e] = this._vectors3[e].asArray();
for (e in ((t.vectors4 = {}), this._vectors4)) t.vectors4[e] = this._vectors4[e].asArray();
for (e in ((t.matrices = {}), this._matrices)) t.matrices[e] = this._matrices[e].asArray();
for (e in ((t.matrixArray = {}), this._matrixArrays)) t.matrixArray[e] = this._matrixArrays[e];
for (e in ((t.matrices3x3 = {}), this._matrices3x3)) t.matrices3x3[e] = this._matrices3x3[e];
for (e in ((t.matrices2x2 = {}), this._matrices2x2)) t.matrices2x2[e] = this._matrices2x2[e];
for (e in ((t.vectors2Arrays = {}), this._vectors2Arrays)) t.vectors2Arrays[e] = this._vectors2Arrays[e];
for (e in ((t.vectors3Arrays = {}), this._vectors3Arrays)) t.vectors3Arrays[e] = this._vectors3Arrays[e];
for (e in ((t.vectors4Arrays = {}), this._vectors4Arrays)) t.vectors4Arrays[e] = this._vectors4Arrays[e];
return t;
}),
(t.Parse = function (e, n, i) {
var a,
c = r.a.Parse(
function () {
return new t(e.name, n, e.shaderPath, e.options);
},
e,
n,
i
);
for (a in e.textures) c.setTexture(a, s.a.Parse(e.textures[a], n, i));
for (a in e.textureArrays) {
for (var l = e.textureArrays[a], u = new Array(), d = 0; d < l.length; d++) u.push(s.a.Parse(l[d], n, i));
c.setTextureArray(a, u);
}
for (a in e.floats) c.setFloat(a, e.floats[a]);
for (a in e.floatsArrays) c.setFloats(a, e.floatsArrays[a]);
for (a in e.colors3) c.setColor3(a, h.a.FromArray(e.colors3[a]));
for (a in e.colors3Arrays) {
var p = e.colors3Arrays[a]
.reduce(function (e, t, n) {
return n % 3 == 0 ? e.push([t]) : e[e.length - 1].push(t), e;
}, [])
.map(function (e) {
return h.a.FromArray(e);
});
c.setColor3Array(a, p);
}
for (a in e.colors4) c.setColor4(a, h.b.FromArray(e.colors4[a]));
for (a in e.colors4Arrays) {
p = e.colors4Arrays[a]
.reduce(function (e, t, n) {
return n % 4 == 0 ? e.push([t]) : e[e.length - 1].push(t), e;
}, [])
.map(function (e) {
return h.b.FromArray(e);
});
c.setColor4Array(a, p);
}
for (a in e.vectors2) c.setVector2(a, o.d.FromArray(e.vectors2[a]));
for (a in e.vectors3) c.setVector3(a, o.e.FromArray(e.vectors3[a]));
for (a in e.vectors4) c.setVector4(a, o.f.FromArray(e.vectors4[a]));
for (a in e.matrices) c.setMatrix(a, o.a.FromArray(e.matrices[a]));
for (a in e.matrixArray) c._matrixArrays[a] = new Float32Array(e.matrixArray[a]);
for (a in e.matrices3x3) c.setMatrix3x3(a, e.matrices3x3[a]);
for (a in e.matrices2x2) c.setMatrix2x2(a, e.matrices2x2[a]);
for (a in e.vectors2Arrays) c.setArray2(a, e.vectors2Arrays[a]);
for (a in e.vectors3Arrays) c.setArray3(a, e.vectors3Arrays[a]);
for (a in e.vectors4Arrays) c.setArray4(a, e.vectors4Arrays[a]);
return c;
}),
t
);
})(l.a);
u.a.RegisteredTypes["BABYLON.ShaderMaterial"] = p;
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return l;
}),
n.d(t, "a", function () {
return u;
});
var i = n(2),
r = n(24),
o = n(14),
a = n(7),
s = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\n}";
a.a.ShadersStore.passPixelShader = s;
var c =
"\nvarying vec2 vUV;\nuniform samplerCube textureSampler;\nvoid main(void)\n{\nvec2 uv=vUV*2.0-1.0;\n#ifdef POSITIVEX\ngl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\n#endif\n#ifdef NEGATIVEX\ngl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\n#endif\n#ifdef POSITIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\n#endif\n#ifdef NEGATIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\n#endif\n#ifdef POSITIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\n#endif\n#ifdef NEGATIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\n#endif\n}";
a.a.ShadersStore.passCubePixelShader = c;
var l = (function (e) {
function t(t, n, i, r, o, a, s, c) {
return void 0 === i && (i = null), void 0 === s && (s = 0), void 0 === c && (c = !1), e.call(this, t, "pass", null, null, n, i, r, o, a, void 0, s, void 0, null, c) || this;
}
return Object(i.d)(t, e), t;
})(r.a),
u = (function (e) {
function t(t, n, i, r, o, a, s, c) {
void 0 === i && (i = null), void 0 === s && (s = 0), void 0 === c && (c = !1);
var l = e.call(this, t, "passCube", null, null, n, i, r, o, a, "#define POSITIVEX", s, void 0, null, c) || this;
return (l._face = 0), l;
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "face", {
get: function () {
return this._face;
},
set: function (e) {
if (!(e < 0 || e > 5))
switch (((this._face = e), this._face)) {
case 0:
this.updateEffect("#define POSITIVEX");
break;
case 1:
this.updateEffect("#define NEGATIVEX");
break;
case 2:
this.updateEffect("#define POSITIVEY");
break;
case 3:
this.updateEffect("#define NEGATIVEY");
break;
case 4:
this.updateEffect("#define POSITIVEZ");
break;
case 5:
this.updateEffect("#define NEGATIVEZ");
}
},
enumerable: !0,
configurable: !0,
}),
t
);
})(r.a);
o.a._RescalePostProcessFactory = function (e) {
return new l("rescale", 1, null, 2, e, !1, 0);
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
}),
n.d(t, "b", function () {
return l;
});
var i = n(1),
r = [
Math.sqrt(1 / (4 * Math.PI)),
-Math.sqrt(3 / (4 * Math.PI)),
Math.sqrt(3 / (4 * Math.PI)),
-Math.sqrt(3 / (4 * Math.PI)),
Math.sqrt(15 / (4 * Math.PI)),
-Math.sqrt(15 / (4 * Math.PI)),
Math.sqrt(5 / (16 * Math.PI)),
-Math.sqrt(15 / (4 * Math.PI)),
Math.sqrt(15 / (16 * Math.PI)),
],
o = [
function (e) {
return 1;
},
function (e) {
return e.y;
},
function (e) {
return e.z;
},
function (e) {
return e.x;
},
function (e) {
return e.x * e.y;
},
function (e) {
return e.y * e.z;
},
function (e) {
return 3 * e.z * e.z - 1;
},
function (e) {
return e.x * e.z;
},
function (e) {
return e.x * e.x - e.y * e.y;
},
],
a = function (e, t) {
return r[e] * o[e](t);
},
s = [Math.PI, (2 * Math.PI) / 3, (2 * Math.PI) / 3, (2 * Math.PI) / 3, Math.PI / 4, Math.PI / 4, Math.PI / 4, Math.PI / 4, Math.PI / 4],
c = (function () {
function e() {
(this.preScaled = !1),
(this.l00 = i.e.Zero()),
(this.l1_1 = i.e.Zero()),
(this.l10 = i.e.Zero()),
(this.l11 = i.e.Zero()),
(this.l2_2 = i.e.Zero()),
(this.l2_1 = i.e.Zero()),
(this.l20 = i.e.Zero()),
(this.l21 = i.e.Zero()),
(this.l22 = i.e.Zero());
}
return (
(e.prototype.addLight = function (e, t, n) {
var r = new i.e(t.r, t.g, t.b).scale(n);
(this.l00 = this.l00.add(r.scale(a(0, e)))),
(this.l1_1 = this.l1_1.add(r.scale(a(1, e)))),
(this.l10 = this.l10.add(r.scale(a(2, e)))),
(this.l11 = this.l11.add(r.scale(a(3, e)))),
(this.l2_2 = this.l2_2.add(r.scale(a(4, e)))),
(this.l2_1 = this.l2_1.add(r.scale(a(5, e)))),
(this.l20 = this.l20.add(r.scale(a(6, e)))),
(this.l21 = this.l21.add(r.scale(a(7, e)))),
(this.l22 = this.l22.add(r.scale(a(8, e))));
}),
(e.prototype.scaleInPlace = function (e) {
this.l00.scaleInPlace(e),
this.l1_1.scaleInPlace(e),
this.l10.scaleInPlace(e),
this.l11.scaleInPlace(e),
this.l2_2.scaleInPlace(e),
this.l2_1.scaleInPlace(e),
this.l20.scaleInPlace(e),
this.l21.scaleInPlace(e),
this.l22.scaleInPlace(e);
}),
(e.prototype.convertIncidentRadianceToIrradiance = function () {
this.l00.scaleInPlace(s[0]),
this.l1_1.scaleInPlace(s[1]),
this.l10.scaleInPlace(s[2]),
this.l11.scaleInPlace(s[3]),
this.l2_2.scaleInPlace(s[4]),
this.l2_1.scaleInPlace(s[5]),
this.l20.scaleInPlace(s[6]),
this.l21.scaleInPlace(s[7]),
this.l22.scaleInPlace(s[8]);
}),
(e.prototype.convertIrradianceToLambertianRadiance = function () {
this.scaleInPlace(1 / Math.PI);
}),
(e.prototype.preScaleForRendering = function () {
(this.preScaled = !0),
this.l00.scaleInPlace(r[0]),
this.l1_1.scaleInPlace(r[1]),
this.l10.scaleInPlace(r[2]),
this.l11.scaleInPlace(r[3]),
this.l2_2.scaleInPlace(r[4]),
this.l2_1.scaleInPlace(r[5]),
this.l20.scaleInPlace(r[6]),
this.l21.scaleInPlace(r[7]),
this.l22.scaleInPlace(r[8]);
}),
(e.FromArray = function (t) {
var n = new e();
return (
i.e.FromArrayToRef(t[0], 0, n.l00),
i.e.FromArrayToRef(t[1], 0, n.l1_1),
i.e.FromArrayToRef(t[2], 0, n.l10),
i.e.FromArrayToRef(t[3], 0, n.l11),
i.e.FromArrayToRef(t[4], 0, n.l2_2),
i.e.FromArrayToRef(t[5], 0, n.l2_1),
i.e.FromArrayToRef(t[6], 0, n.l20),
i.e.FromArrayToRef(t[7], 0, n.l21),
i.e.FromArrayToRef(t[8], 0, n.l22),
n
);
}),
(e.FromPolynomial = function (t) {
var n = new e();
return (
(n.l00 = t.xx.scale(0.376127).add(t.yy.scale(0.376127)).add(t.zz.scale(0.376126))),
(n.l1_1 = t.y.scale(0.977204)),
(n.l10 = t.z.scale(0.977204)),
(n.l11 = t.x.scale(0.977204)),
(n.l2_2 = t.xy.scale(1.16538)),
(n.l2_1 = t.yz.scale(1.16538)),
(n.l20 = t.zz.scale(1.34567).subtract(t.xx.scale(0.672834)).subtract(t.yy.scale(0.672834))),
(n.l21 = t.zx.scale(1.16538)),
(n.l22 = t.xx.scale(1.16538).subtract(t.yy.scale(1.16538))),
n.l1_1.scaleInPlace(-1),
n.l11.scaleInPlace(-1),
n.l2_1.scaleInPlace(-1),
n.l21.scaleInPlace(-1),
n.scaleInPlace(Math.PI),
n
);
}),
e
);
})(),
l = (function () {
function e() {
(this.x = i.e.Zero()), (this.y = i.e.Zero()), (this.z = i.e.Zero()), (this.xx = i.e.Zero()), (this.yy = i.e.Zero()), (this.zz = i.e.Zero()), (this.xy = i.e.Zero()), (this.yz = i.e.Zero()), (this.zx = i.e.Zero());
}
return (
Object.defineProperty(e.prototype, "preScaledHarmonics", {
get: function () {
return this._harmonics || (this._harmonics = c.FromPolynomial(this)), this._harmonics.preScaled || this._harmonics.preScaleForRendering(), this._harmonics;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.addAmbient = function (e) {
var t = new i.e(e.r, e.g, e.b);
(this.xx = this.xx.add(t)), (this.yy = this.yy.add(t)), (this.zz = this.zz.add(t));
}),
(e.prototype.scaleInPlace = function (e) {
this.x.scaleInPlace(e),
this.y.scaleInPlace(e),
this.z.scaleInPlace(e),
this.xx.scaleInPlace(e),
this.yy.scaleInPlace(e),
this.zz.scaleInPlace(e),
this.yz.scaleInPlace(e),
this.zx.scaleInPlace(e),
this.xy.scaleInPlace(e);
}),
(e.FromHarmonics = function (t) {
var n = new e();
return (
(n._harmonics = t),
(n.x = t.l11.scale(1.02333).scale(-1)),
(n.y = t.l1_1.scale(1.02333).scale(-1)),
(n.z = t.l10.scale(1.02333)),
(n.xx = t.l00.scale(0.886277).subtract(t.l20.scale(0.247708)).add(t.l22.scale(0.429043))),
(n.yy = t.l00.scale(0.886277).subtract(t.l20.scale(0.247708)).subtract(t.l22.scale(0.429043))),
(n.zz = t.l00.scale(0.886277).add(t.l20.scale(0.495417))),
(n.yz = t.l2_1.scale(0.858086).scale(-1)),
(n.zx = t.l21.scale(0.858086).scale(-1)),
(n.xy = t.l2_2.scale(0.858086)),
n.scaleInPlace(1 / Math.PI),
n
);
}),
(e.FromArray = function (t) {
var n = new e();
return (
i.e.FromArrayToRef(t[0], 0, n.x),
i.e.FromArrayToRef(t[1], 0, n.y),
i.e.FromArrayToRef(t[2], 0, n.z),
i.e.FromArrayToRef(t[3], 0, n.xx),
i.e.FromArrayToRef(t[4], 0, n.yy),
i.e.FromArrayToRef(t[5], 0, n.zz),
i.e.FromArrayToRef(t[6], 0, n.yz),
i.e.FromArrayToRef(t[7], 0, n.zx),
i.e.FromArrayToRef(t[8], 0, n.xy),
n
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e(e, t) {
(this.width = e), (this.height = t);
}
return (
(e.prototype.toString = function () {
return "{W: " + this.width + ", H: " + this.height + "}";
}),
(e.prototype.getClassName = function () {
return "Size";
}),
(e.prototype.getHashCode = function () {
var e = 0 | this.width;
return (e = (397 * e) ^ (0 | this.height));
}),
(e.prototype.copyFrom = function (e) {
(this.width = e.width), (this.height = e.height);
}),
(e.prototype.copyFromFloats = function (e, t) {
return (this.width = e), (this.height = t), this;
}),
(e.prototype.set = function (e, t) {
return this.copyFromFloats(e, t);
}),
(e.prototype.multiplyByFloats = function (t, n) {
return new e(this.width * t, this.height * n);
}),
(e.prototype.clone = function () {
return new e(this.width, this.height);
}),
(e.prototype.equals = function (e) {
return !!e && this.width === e.width && this.height === e.height;
}),
Object.defineProperty(e.prototype, "surface", {
get: function () {
return this.width * this.height;
},
enumerable: !0,
configurable: !0,
}),
(e.Zero = function () {
return new e(0, 0);
}),
(e.prototype.add = function (t) {
return new e(this.width + t.width, this.height + t.height);
}),
(e.prototype.subtract = function (t) {
return new e(this.width - t.width, this.height - t.height);
}),
(e.Lerp = function (t, n, i) {
return new e(t.width + (n.width - t.width) * i, t.height + (n.height - t.height) * i);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(1),
o = n(58),
a = n(35),
s = n(23),
c = (function (e) {
function t(t, n, i, o, a, s, c) {
void 0 === i && (i = null), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null);
var l = e.call(this, t, n.getScene()) || this;
return (
(l.name = t),
(l.children = new Array()),
(l.animations = new Array()),
(l._index = null),
(l._absoluteTransform = new r.a()),
(l._invertedAbsoluteTransform = new r.a()),
(l._scalingDeterminant = 1),
(l._worldTransform = new r.a()),
(l._needToDecompose = !0),
(l._needToCompose = !1),
(l._linkedTransformNode = null),
(l._waitingTransformNodeId = null),
(l._skeleton = n),
(l._localMatrix = o ? o.clone() : r.a.Identity()),
(l._restPose = a || l._localMatrix.clone()),
(l._baseMatrix = s || l._localMatrix.clone()),
(l._index = c),
n.bones.push(l),
l.setParent(i, !1),
(s || o) && l._updateDifferenceMatrix(),
l
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "_matrix", {
get: function () {
return this._compose(), this._localMatrix;
},
set: function (e) {
this._localMatrix.copyFrom(e), (this._needToDecompose = !0);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "Bone";
}),
(t.prototype.getSkeleton = function () {
return this._skeleton;
}),
(t.prototype.getParent = function () {
return this._parent;
}),
(t.prototype.getChildren = function () {
return this.children;
}),
(t.prototype.getIndex = function () {
return null === this._index ? this.getSkeleton().bones.indexOf(this) : this._index;
}),
(t.prototype.setParent = function (e, t) {
if ((void 0 === t && (t = !0), this._parent !== e)) {
if (this._parent) {
var n = this._parent.children.indexOf(this);
-1 !== n && this._parent.children.splice(n, 1);
}
(this._parent = e), this._parent && this._parent.children.push(this), t && this._updateDifferenceMatrix(), this.markAsDirty();
}
}),
(t.prototype.getLocalMatrix = function () {
return this._compose(), this._localMatrix;
}),
(t.prototype.getBaseMatrix = function () {
return this._baseMatrix;
}),
(t.prototype.getRestPose = function () {
return this._restPose;
}),
(t.prototype.getWorldMatrix = function () {
return this._worldTransform;
}),
(t.prototype.returnToRest = function () {
this.updateMatrix(this._restPose.clone());
}),
(t.prototype.getInvertedAbsoluteTransform = function () {
return this._invertedAbsoluteTransform;
}),
(t.prototype.getAbsoluteTransform = function () {
return this._absoluteTransform;
}),
(t.prototype.linkTransformNode = function (e) {
this._linkedTransformNode && this._skeleton._numBonesWithLinkedTransformNode--, (this._linkedTransformNode = e), this._linkedTransformNode && this._skeleton._numBonesWithLinkedTransformNode++;
}),
(t.prototype.getTransformNode = function () {
return this._linkedTransformNode;
}),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._decompose(), this._localPosition;
},
set: function (e) {
this._decompose(), this._localPosition.copyFrom(e), this._markAsDirtyAndCompose();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rotation", {
get: function () {
return this.getRotation();
},
set: function (e) {
this.setRotation(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "rotationQuaternion", {
get: function () {
return this._decompose(), this._localRotation;
},
set: function (e) {
this.setRotationQuaternion(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "scaling", {
get: function () {
return this.getScale();
},
set: function (e) {
this.setScale(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "animationPropertiesOverride", {
get: function () {
return this._skeleton.animationPropertiesOverride;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._decompose = function () {
this._needToDecompose &&
((this._needToDecompose = !1),
this._localScaling || ((this._localScaling = r.e.Zero()), (this._localRotation = r.b.Zero()), (this._localPosition = r.e.Zero())),
this._localMatrix.decompose(this._localScaling, this._localRotation, this._localPosition));
}),
(t.prototype._compose = function () {
this._needToCompose && (this._localScaling ? ((this._needToCompose = !1), r.a.ComposeToRef(this._localScaling, this._localRotation, this._localPosition, this._localMatrix)) : (this._needToCompose = !1));
}),
(t.prototype.updateMatrix = function (e, t, n) {
void 0 === t && (t = !0), void 0 === n && (n = !0), this._baseMatrix.copyFrom(e), t && this._updateDifferenceMatrix(), n ? (this._localMatrix.copyFrom(e), this._markAsDirtyAndDecompose()) : this.markAsDirty();
}),
(t.prototype._updateDifferenceMatrix = function (e, t) {
if (
(void 0 === t && (t = !0),
e || (e = this._baseMatrix),
this._parent ? e.multiplyToRef(this._parent._absoluteTransform, this._absoluteTransform) : this._absoluteTransform.copyFrom(e),
this._absoluteTransform.invertToRef(this._invertedAbsoluteTransform),
t)
)
for (var n = 0; n < this.children.length; n++) this.children[n]._updateDifferenceMatrix();
this._scalingDeterminant = this._absoluteTransform.determinant() < 0 ? -1 : 1;
}),
(t.prototype.markAsDirty = function () {
this._currentRenderId++, this._childUpdateId++, this._skeleton._markAsDirty();
}),
(t.prototype._markAsDirtyAndCompose = function () {
this.markAsDirty(), (this._needToCompose = !0);
}),
(t.prototype._markAsDirtyAndDecompose = function () {
this.markAsDirty(), (this._needToDecompose = !0);
}),
(t.prototype.translate = function (e, n, i) {
void 0 === n && (n = s.b.LOCAL);
var o = this.getLocalMatrix();
if (n == s.b.LOCAL) o.addAtIndex(12, e.x), o.addAtIndex(13, e.y), o.addAtIndex(14, e.z);
else {
var a = null;
i && (a = i.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms();
var c = t._tmpMats[0],
l = t._tmpVecs[0];
this._parent && (i && a ? (c.copyFrom(this._parent.getAbsoluteTransform()), c.multiplyToRef(a, c)) : c.copyFrom(this._parent.getAbsoluteTransform())),
c.setTranslationFromFloats(0, 0, 0),
c.invert(),
r.e.TransformCoordinatesToRef(e, c, l),
o.addAtIndex(12, l.x),
o.addAtIndex(13, l.y),
o.addAtIndex(14, l.z);
}
this._markAsDirtyAndDecompose();
}),
(t.prototype.setPosition = function (e, n, i) {
void 0 === n && (n = s.b.LOCAL);
var o = this.getLocalMatrix();
if (n == s.b.LOCAL) o.setTranslationFromFloats(e.x, e.y, e.z);
else {
var a = null;
i && (a = i.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms();
var c = t._tmpMats[0],
l = t._tmpVecs[0];
this._parent && (i && a ? (c.copyFrom(this._parent.getAbsoluteTransform()), c.multiplyToRef(a, c)) : c.copyFrom(this._parent.getAbsoluteTransform())),
c.invert(),
r.e.TransformCoordinatesToRef(e, c, l),
o.setTranslationFromFloats(l.x, l.y, l.z);
}
this._markAsDirtyAndDecompose();
}),
(t.prototype.setAbsolutePosition = function (e, t) {
this.setPosition(e, s.b.WORLD, t);
}),
(t.prototype.scale = function (e, n, i, o) {
void 0 === o && (o = !1);
var a = this.getLocalMatrix(),
s = t._tmpMats[0];
r.a.ScalingToRef(e, n, i, s), s.multiplyToRef(a, a), s.invert();
for (var c = 0, l = this.children; c < l.length; c++) {
var u = (p = l[c]).getLocalMatrix();
u.multiplyToRef(s, u), u.multiplyAtIndex(12, e), u.multiplyAtIndex(13, n), u.multiplyAtIndex(14, i), p._markAsDirtyAndDecompose();
}
if ((this._markAsDirtyAndDecompose(), o))
for (var h = 0, d = this.children; h < d.length; h++) {
var p;
(p = d[h]).scale(e, n, i, o);
}
}),
(t.prototype.setScale = function (e) {
this._decompose(), this._localScaling.copyFrom(e), this._markAsDirtyAndCompose();
}),
(t.prototype.getScale = function () {
return this._decompose(), this._localScaling;
}),
(t.prototype.getScaleToRef = function (e) {
this._decompose(), e.copyFrom(this._localScaling);
}),
(t.prototype.setYawPitchRoll = function (e, n, i, o, a) {
if ((void 0 === o && (o = s.b.LOCAL), o === s.b.LOCAL)) {
var c = t._tmpQuat;
return r.b.RotationYawPitchRollToRef(e, n, i, c), void this.setRotationQuaternion(c, o, a);
}
var l = t._tmpMats[0];
if (this._getNegativeRotationToRef(l, a)) {
var u = t._tmpMats[1];
r.a.RotationYawPitchRollToRef(e, n, i, u), l.multiplyToRef(u, u), this._rotateWithMatrix(u, o, a);
}
}),
(t.prototype.rotate = function (e, n, i, o) {
void 0 === i && (i = s.b.LOCAL);
var a = t._tmpMats[0];
a.setTranslationFromFloats(0, 0, 0), r.a.RotationAxisToRef(e, n, a), this._rotateWithMatrix(a, i, o);
}),
(t.prototype.setAxisAngle = function (e, n, i, o) {
if ((void 0 === i && (i = s.b.LOCAL), i === s.b.LOCAL)) {
var a = t._tmpQuat;
return r.b.RotationAxisToRef(e, n, a), void this.setRotationQuaternion(a, i, o);
}
var c = t._tmpMats[0];
if (this._getNegativeRotationToRef(c, o)) {
var l = t._tmpMats[1];
r.a.RotationAxisToRef(e, n, l), c.multiplyToRef(l, l), this._rotateWithMatrix(l, i, o);
}
}),
(t.prototype.setRotation = function (e, t, n) {
void 0 === t && (t = s.b.LOCAL), this.setYawPitchRoll(e.y, e.x, e.z, t, n);
}),
(t.prototype.setRotationQuaternion = function (e, n, i) {
if ((void 0 === n && (n = s.b.LOCAL), n === s.b.LOCAL)) return this._decompose(), this._localRotation.copyFrom(e), void this._markAsDirtyAndCompose();
var o = t._tmpMats[0];
if (this._getNegativeRotationToRef(o, i)) {
var a = t._tmpMats[1];
r.a.FromQuaternionToRef(e, a), o.multiplyToRef(a, a), this._rotateWithMatrix(a, n, i);
}
}),
(t.prototype.setRotationMatrix = function (e, n, i) {
if ((void 0 === n && (n = s.b.LOCAL), n === s.b.LOCAL)) {
var o = t._tmpQuat;
return r.b.FromRotationMatrixToRef(e, o), void this.setRotationQuaternion(o, n, i);
}
var a = t._tmpMats[0];
if (this._getNegativeRotationToRef(a, i)) {
var c = t._tmpMats[1];
c.copyFrom(e), a.multiplyToRef(e, c), this._rotateWithMatrix(c, n, i);
}
}),
(t.prototype._rotateWithMatrix = function (e, n, i) {
void 0 === n && (n = s.b.LOCAL);
var r = this.getLocalMatrix(),
o = r.m[12],
a = r.m[13],
c = r.m[14],
l = this.getParent(),
u = t._tmpMats[3],
h = t._tmpMats[4];
l && n == s.b.WORLD
? (i ? (u.copyFrom(i.getWorldMatrix()), l.getAbsoluteTransform().multiplyToRef(u, u)) : u.copyFrom(l.getAbsoluteTransform()),
h.copyFrom(u),
h.invert(),
r.multiplyToRef(u, r),
r.multiplyToRef(e, r),
r.multiplyToRef(h, r))
: n == s.b.WORLD && i
? (u.copyFrom(i.getWorldMatrix()), h.copyFrom(u), h.invert(), r.multiplyToRef(u, r), r.multiplyToRef(e, r), r.multiplyToRef(h, r))
: r.multiplyToRef(e, r),
r.setTranslationFromFloats(o, a, c),
this.computeAbsoluteTransforms(),
this._markAsDirtyAndDecompose();
}),
(t.prototype._getNegativeRotationToRef = function (e, n) {
var i = t._tmpMats[2];
return (
e.copyFrom(this.getAbsoluteTransform()),
n && (e.multiplyToRef(n.getWorldMatrix(), e), r.a.ScalingToRef(n.scaling.x, n.scaling.y, n.scaling.z, i)),
e.invert(),
!isNaN(e.m[0]) && (i.multiplyAtIndex(0, this._scalingDeterminant), e.multiplyToRef(i, e), !0)
);
}),
(t.prototype.getPosition = function (e, t) {
void 0 === e && (e = s.b.LOCAL), void 0 === t && (t = null);
var n = r.e.Zero();
return this.getPositionToRef(e, t, n), n;
}),
(t.prototype.getPositionToRef = function (e, n, i) {
if ((void 0 === e && (e = s.b.LOCAL), e == s.b.LOCAL)) {
var r = this.getLocalMatrix();
(i.x = r.m[12]), (i.y = r.m[13]), (i.z = r.m[14]);
} else {
var o = null;
n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms();
var a = t._tmpMats[0];
n && o ? (a.copyFrom(this.getAbsoluteTransform()), a.multiplyToRef(o, a)) : (a = this.getAbsoluteTransform()), (i.x = a.m[12]), (i.y = a.m[13]), (i.z = a.m[14]);
}
}),
(t.prototype.getAbsolutePosition = function (e) {
void 0 === e && (e = null);
var t = r.e.Zero();
return this.getPositionToRef(s.b.WORLD, e, t), t;
}),
(t.prototype.getAbsolutePositionToRef = function (e, t) {
this.getPositionToRef(s.b.WORLD, e, t);
}),
(t.prototype.computeAbsoluteTransforms = function () {
if ((this._compose(), this._parent)) this._localMatrix.multiplyToRef(this._parent._absoluteTransform, this._absoluteTransform);
else {
this._absoluteTransform.copyFrom(this._localMatrix);
var e = this._skeleton.getPoseMatrix();
e && this._absoluteTransform.multiplyToRef(e, this._absoluteTransform);
}
for (var t = this.children, n = t.length, i = 0; i < n; i++) t[i].computeAbsoluteTransforms();
}),
(t.prototype.getDirection = function (e, t) {
void 0 === t && (t = null);
var n = r.e.Zero();
return this.getDirectionToRef(e, t, n), n;
}),
(t.prototype.getDirectionToRef = function (e, n, i) {
void 0 === n && (n = null);
var o = null;
n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms();
var a = t._tmpMats[0];
a.copyFrom(this.getAbsoluteTransform()), n && o && a.multiplyToRef(o, a), r.e.TransformNormalToRef(e, a, i), i.normalize();
}),
(t.prototype.getRotation = function (e, t) {
void 0 === e && (e = s.b.LOCAL), void 0 === t && (t = null);
var n = r.e.Zero();
return this.getRotationToRef(e, t, n), n;
}),
(t.prototype.getRotationToRef = function (e, n, i) {
void 0 === e && (e = s.b.LOCAL), void 0 === n && (n = null);
var r = t._tmpQuat;
this.getRotationQuaternionToRef(e, n, r), r.toEulerAnglesToRef(i);
}),
(t.prototype.getRotationQuaternion = function (e, t) {
void 0 === e && (e = s.b.LOCAL), void 0 === t && (t = null);
var n = r.b.Identity();
return this.getRotationQuaternionToRef(e, t, n), n;
}),
(t.prototype.getRotationQuaternionToRef = function (e, n, i) {
if ((void 0 === e && (e = s.b.LOCAL), void 0 === n && (n = null), e == s.b.LOCAL)) this._decompose(), i.copyFrom(this._localRotation);
else {
var r = t._tmpMats[0],
o = this.getAbsoluteTransform();
n ? o.multiplyToRef(n.getWorldMatrix(), r) : r.copyFrom(o),
r.multiplyAtIndex(0, this._scalingDeterminant),
r.multiplyAtIndex(1, this._scalingDeterminant),
r.multiplyAtIndex(2, this._scalingDeterminant),
r.decompose(void 0, i, void 0);
}
}),
(t.prototype.getRotationMatrix = function (e, t) {
void 0 === e && (e = s.b.LOCAL);
var n = r.a.Identity();
return this.getRotationMatrixToRef(e, t, n), n;
}),
(t.prototype.getRotationMatrixToRef = function (e, n, i) {
if ((void 0 === e && (e = s.b.LOCAL), e == s.b.LOCAL)) this.getLocalMatrix().getRotationMatrixToRef(i);
else {
var r = t._tmpMats[0],
o = this.getAbsoluteTransform();
n ? o.multiplyToRef(n.getWorldMatrix(), r) : r.copyFrom(o),
r.multiplyAtIndex(0, this._scalingDeterminant),
r.multiplyAtIndex(1, this._scalingDeterminant),
r.multiplyAtIndex(2, this._scalingDeterminant),
r.getRotationMatrixToRef(i);
}
}),
(t.prototype.getAbsolutePositionFromLocal = function (e, t) {
void 0 === t && (t = null);
var n = r.e.Zero();
return this.getAbsolutePositionFromLocalToRef(e, t, n), n;
}),
(t.prototype.getAbsolutePositionFromLocalToRef = function (e, n, i) {
void 0 === n && (n = null);
var o = null;
n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms();
var a = t._tmpMats[0];
n && o ? (a.copyFrom(this.getAbsoluteTransform()), a.multiplyToRef(o, a)) : (a = this.getAbsoluteTransform()), r.e.TransformCoordinatesToRef(e, a, i);
}),
(t.prototype.getLocalPositionFromAbsolute = function (e, t) {
void 0 === t && (t = null);
var n = r.e.Zero();
return this.getLocalPositionFromAbsoluteToRef(e, t, n), n;
}),
(t.prototype.getLocalPositionFromAbsoluteToRef = function (e, n, i) {
void 0 === n && (n = null);
var o = null;
n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms();
var a = t._tmpMats[0];
a.copyFrom(this.getAbsoluteTransform()), n && o && a.multiplyToRef(o, a), a.invert(), r.e.TransformCoordinatesToRef(e, a, i);
}),
(t._tmpVecs = o.a.BuildArray(2, r.e.Zero)),
(t._tmpQuat = r.b.Identity()),
(t._tmpMats = o.a.BuildArray(5, r.a.Identity)),
t
);
})(a.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(9),
r = n(16);
(r.a.CreatePlane = function (e) {
var t = [],
n = [],
i = [],
o = [],
a = e.width || e.size || 1,
s = e.height || e.size || 1,
c = 0 === e.sideOrientation ? 0 : e.sideOrientation || r.a.DEFAULTSIDE,
l = a / 2,
u = s / 2;
n.push(-l, -u, 0),
i.push(0, 0, -1),
o.push(0, 0),
n.push(l, -u, 0),
i.push(0, 0, -1),
o.push(1, 0),
n.push(l, u, 0),
i.push(0, 0, -1),
o.push(1, 1),
n.push(-l, u, 0),
i.push(0, 0, -1),
o.push(0, 1),
t.push(0),
t.push(1),
t.push(2),
t.push(0),
t.push(2),
t.push(3),
r.a._ComputeSides(c, n, t, i, o, e.frontUVs, e.backUVs);
var h = new r.a();
return (h.indices = t), (h.positions = n), (h.normals = i), (h.uvs = o), h;
}),
(i.a.CreatePlane = function (e, t, n, i, r) {
var a = { size: t, width: t, height: t, sideOrientation: r, updatable: i };
return o.CreatePlane(e, a, n);
});
var o = (function () {
function e() {}
return (
(e.CreatePlane = function (e, t, n) {
void 0 === n && (n = null);
var o = new i.a(e, n);
return (
(t.sideOrientation = i.a._GetDefaultSideOrientation(t.sideOrientation)),
(o._originalBuilderSideOrientation = t.sideOrientation),
r.a.CreatePlane(t).applyToMesh(o, t.updatable),
t.sourcePlane && (o.translate(t.sourcePlane.normal, -t.sourcePlane.d), o.setDirection(t.sourcePlane.normal.scale(-1))),
o
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.CreateCanvas = function (e, t) {
if ("undefined" == typeof document) return new OffscreenCanvas(e, t);
var n = document.createElement("canvas");
return (n.width = e), (n.height = t), n;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
}),
n.d(t, "b", function () {
return r;
});
var i = (function () {
function e() {}
return (e.COPY = 1), (e.CUT = 2), (e.PASTE = 3), e;
})(),
r = (function () {
function e(e, t) {
(this.type = e), (this.event = t);
}
return (
(e.GetTypeFromCharacter = function (e) {
switch (e) {
case 67:
return i.COPY;
case 86:
return i.PASTE;
case 88:
return i.CUT;
default:
return -1;
}
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "#ifdef DEPTHPREPASS\ngl_FragColor=vec4(0.,0.,0.,1.0);\nreturn;\n#endif";
n(7).a.IncludesShadersStore.depthPrePass = i;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(35),
s = n(57),
c = n(121);
a.a.AddNodeConstructor("Light_Type_1", function (e, t) {
return function () {
return new l(e, o.e.Zero(), t);
};
});
var l = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (
(r._shadowFrustumSize = 0),
(r._shadowOrthoScale = 0.1),
(r.autoUpdateExtends = !0),
(r.autoCalcShadowZBounds = !1),
(r._orthoLeft = Number.MAX_VALUE),
(r._orthoRight = Number.MIN_VALUE),
(r._orthoTop = Number.MIN_VALUE),
(r._orthoBottom = Number.MAX_VALUE),
(r.position = n.scale(-1)),
(r.direction = n),
r
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "shadowFrustumSize", {
get: function () {
return this._shadowFrustumSize;
},
set: function (e) {
(this._shadowFrustumSize = e), this.forceProjectionMatrixCompute();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadowOrthoScale", {
get: function () {
return this._shadowOrthoScale;
},
set: function (e) {
(this._shadowOrthoScale = e), this.forceProjectionMatrixCompute();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "DirectionalLight";
}),
(t.prototype.getTypeID = function () {
return s.a.LIGHTTYPEID_DIRECTIONALLIGHT;
}),
(t.prototype._setDefaultShadowProjectionMatrix = function (e, t, n) {
this.shadowFrustumSize > 0 ? this._setDefaultFixedFrustumShadowProjectionMatrix(e) : this._setDefaultAutoExtendShadowProjectionMatrix(e, t, n);
}),
(t.prototype._setDefaultFixedFrustumShadowProjectionMatrix = function (e) {
var t = this.getScene().activeCamera;
t && o.a.OrthoLHToRef(this.shadowFrustumSize, this.shadowFrustumSize, void 0 !== this.shadowMinZ ? this.shadowMinZ : t.minZ, void 0 !== this.shadowMaxZ ? this.shadowMaxZ : t.maxZ, e);
}),
(t.prototype._setDefaultAutoExtendShadowProjectionMatrix = function (e, t, n) {
var i = this.getScene().activeCamera;
if (i) {
if (this.autoUpdateExtends || this._orthoLeft === Number.MAX_VALUE) {
var r = o.e.Zero();
(this._orthoLeft = Number.MAX_VALUE), (this._orthoRight = Number.MIN_VALUE), (this._orthoTop = Number.MIN_VALUE), (this._orthoBottom = Number.MAX_VALUE);
for (var a = Number.MAX_VALUE, s = Number.MIN_VALUE, c = 0; c < n.length; c++) {
var l = n[c];
if (l)
for (var u = l.getBoundingInfo().boundingBox, h = 0; h < u.vectorsWorld.length; h++)
o.e.TransformCoordinatesToRef(u.vectorsWorld[h], t, r),
r.x < this._orthoLeft && (this._orthoLeft = r.x),
r.y < this._orthoBottom && (this._orthoBottom = r.y),
r.x > this._orthoRight && (this._orthoRight = r.x),
r.y > this._orthoTop && (this._orthoTop = r.y),
this.autoCalcShadowZBounds && (r.z < a && (a = r.z), r.z > s && (s = r.z));
}
this.autoCalcShadowZBounds && ((this._shadowMinZ = a), (this._shadowMaxZ = s));
}
var d = this._orthoRight - this._orthoLeft,
p = this._orthoTop - this._orthoBottom;
o.a.OrthoOffCenterLHToRef(
this._orthoLeft - d * this.shadowOrthoScale,
this._orthoRight + d * this.shadowOrthoScale,
this._orthoBottom - p * this.shadowOrthoScale,
this._orthoTop + p * this.shadowOrthoScale,
void 0 !== this.shadowMinZ ? this.shadowMinZ : i.minZ,
void 0 !== this.shadowMaxZ ? this.shadowMaxZ : i.maxZ,
e
);
}
}),
(t.prototype._buildUniformLayout = function () {
this._uniformBuffer.addUniform("vLightData", 4),
this._uniformBuffer.addUniform("vLightDiffuse", 4),
this._uniformBuffer.addUniform("vLightSpecular", 4),
this._uniformBuffer.addUniform("shadowsInfo", 3),
this._uniformBuffer.addUniform("depthValues", 2),
this._uniformBuffer.create();
}),
(t.prototype.transferToEffect = function (e, t) {
return this.computeTransformedInformation()
? (this._uniformBuffer.updateFloat4("vLightData", this.transformedDirection.x, this.transformedDirection.y, this.transformedDirection.z, 1, t), this)
: (this._uniformBuffer.updateFloat4("vLightData", this.direction.x, this.direction.y, this.direction.z, 1, t), this);
}),
(t.prototype.transferToNodeMaterialEffect = function (e, t) {
return this.computeTransformedInformation()
? (e.setFloat3(t, this.transformedDirection.x, this.transformedDirection.y, this.transformedDirection.z), this)
: (e.setFloat3(t, this.direction.x, this.direction.y, this.direction.z), this);
}),
(t.prototype.getDepthMinZ = function (e) {
return 1;
}),
(t.prototype.getDepthMaxZ = function (e) {
return 1;
}),
(t.prototype.prepareLightSpecificDefines = function (e, t) {
e["DIRLIGHT" + t] = !0;
}),
Object(i.c)([Object(r.c)()], t.prototype, "shadowFrustumSize", null),
Object(i.c)([Object(r.c)()], t.prototype, "shadowOrthoScale", null),
Object(i.c)([Object(r.c)()], t.prototype, "autoUpdateExtends", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "autoCalcShadowZBounds", void 0),
t
);
})(c.a);
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return h;
}),
n.d(t, "a", function () {
return d;
});
var i = n(2),
r = n(5),
o = n(4),
a = n(9),
s = n(149),
c = n(28),
l = n(106),
u = n(11),
h =
(n(226),
n(227),
(function (e) {
function t(t, n, i, a, s, c, u) {
void 0 === n && (n = null), void 0 === i && (i = null), void 0 === a && (a = null);
var h = e.call(this, t, n, i, a, s) || this;
(h.useVertexColor = c),
(h.useVertexAlpha = u),
(h.color = new r.a(1, 1, 1)),
(h.alpha = 1),
a && ((h.color = a.color.clone()), (h.alpha = a.alpha), (h.useVertexColor = a.useVertexColor), (h.useVertexAlpha = a.useVertexAlpha)),
(h.intersectionThreshold = 0.1);
var d = {
attributes: [o.b.PositionKind, "world0", "world1", "world2", "world3"],
uniforms: ["vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "world", "viewProjection"],
needAlphaBlending: !0,
defines: [],
};
return (
!1 === u && (d.needAlphaBlending = !1),
c ? (d.defines.push("#define VERTEXCOLOR"), d.attributes.push(o.b.ColorKind)) : (d.uniforms.push("color"), (h.color4 = new r.b())),
(h._colorShader = new l.a("colorShader", h.getScene(), "color", d)),
h
);
}
return (
Object(i.d)(t, e),
(t.prototype._addClipPlaneDefine = function (e) {
var t = "#define " + e;
-1 === this._colorShader.options.defines.indexOf(t) && this._colorShader.options.defines.push(t);
}),
(t.prototype._removeClipPlaneDefine = function (e) {
var t = "#define " + e,
n = this._colorShader.options.defines.indexOf(t);
-1 !== n && this._colorShader.options.defines.splice(n, 1);
}),
(t.prototype.isReady = function () {
var t = this.getScene();
return (
t.clipPlane ? this._addClipPlaneDefine("CLIPPLANE") : this._removeClipPlaneDefine("CLIPPLANE"),
t.clipPlane2 ? this._addClipPlaneDefine("CLIPPLANE2") : this._removeClipPlaneDefine("CLIPPLANE2"),
t.clipPlane3 ? this._addClipPlaneDefine("CLIPPLANE3") : this._removeClipPlaneDefine("CLIPPLANE3"),
t.clipPlane4 ? this._addClipPlaneDefine("CLIPPLANE4") : this._removeClipPlaneDefine("CLIPPLANE4"),
t.clipPlane5 ? this._addClipPlaneDefine("CLIPPLANE5") : this._removeClipPlaneDefine("CLIPPLANE5"),
t.clipPlane6 ? this._addClipPlaneDefine("CLIPPLANE6") : this._removeClipPlaneDefine("CLIPPLANE6"),
!!this._colorShader.isReady() && e.prototype.isReady.call(this)
);
}),
(t.prototype.getClassName = function () {
return "LinesMesh";
}),
Object.defineProperty(t.prototype, "material", {
get: function () {
return this._colorShader;
},
set: function (e) {},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "checkCollisions", {
get: function () {
return !1;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._bind = function (e, t, n) {
if (!this._geometry) return this;
var i = this._colorShader.getEffect(),
r = this.isUnIndexed ? null : this._geometry.getIndexBuffer();
if ((this._geometry._bind(i, r), !this.useVertexColor)) {
var o = this.color,
a = o.r,
s = o.g,
c = o.b;
this.color4.set(a, s, c, this.alpha), this._colorShader.setColor4("color", this.color4);
}
return u.a.BindClipPlane(i, this.getScene()), this;
}),
(t.prototype._draw = function (e, t, n) {
if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) return this;
var i = this.getScene().getEngine();
return this._unIndexed ? i.drawArraysType(c.a.LineListDrawMode, e.verticesStart, e.verticesCount, n) : i.drawElementsType(c.a.LineListDrawMode, e.indexStart, e.indexCount, n), this;
}),
(t.prototype.dispose = function (t) {
this._colorShader.dispose(!1, !1, !0), e.prototype.dispose.call(this, t);
}),
(t.prototype.clone = function (e, n, i) {
return void 0 === n && (n = null), new t(e, this.getScene(), n, this, i);
}),
(t.prototype.createInstance = function (e) {
return new d(e, this);
}),
t
);
})(a.a)),
d = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (i.intersectionThreshold = n.intersectionThreshold), i;
}
return (
Object(i.d)(t, e),
(t.prototype.getClassName = function () {
return "InstancedLinesMesh";
}),
t
);
})(s.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return f;
});
var i = n(12),
r = n(1),
o = n(15),
a = n(108),
s = n(32),
c = n(68),
l = n(18),
u = n(24),
h = n(10),
d = (n(209), n(213), n(7)),
p = (n(59), "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\nvoid main(void)\n{\ngl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);\n}");
d.a.ShadersStore.rgbdEncodePixelShader = p;
n(229);
var f = (function () {
function e() {}
return (
(e.GetEnvInfo = function (t) {
for (var n = new DataView(t.buffer, t.byteOffset, t.byteLength), i = 0, r = 0; r < e._MagicBytes.length; r++) if (n.getUint8(i++) !== e._MagicBytes[r]) return h.a.Error("Not a babylon environment map"), null;
for (var o = "", a = 0; (a = n.getUint8(i++)); ) o += String.fromCharCode(a);
var s = JSON.parse(o);
return s.specular && ((s.specular.specularDataPosition = i), (s.specular.lodGenerationScale = s.specular.lodGenerationScale || 0.8)), s;
}),
(e.CreateEnvTextureAsync = function (t) {
var n = this,
r = t.getInternalTexture();
if (!r) return Promise.reject("The cube texture is invalid.");
if (!t._prefiltered) return Promise.reject("The cube texture is invalid (not prefiltered).");
var a = r.getEngine();
if (a && a.premultipliedAlpha) return Promise.reject("Env texture can only be created when the engine is created with the premultipliedAlpha option set to false.");
if (0 === t.textureType) return Promise.reject("The cube texture should allow HDR (Full Float or Half Float).");
var s = a.getRenderingCanvas();
if (!s) return Promise.reject("Env texture can only be created when the engine is associated to a canvas.");
var c = 1;
if (!a.getCaps().textureFloatRender && ((c = 2), !a.getCaps().textureHalfFloatRender)) return Promise.reject("Env texture can only be created when the browser supports half float or full float rendering.");
var h = r.width,
d = new l.a(a),
p = {},
f = [],
m = o.a.Log2(r.width);
m = Math.round(m);
for (
var g = function (e) {
for (
var n = Math.pow(2, m - e),
r = function (r) {
var o = t.readPixels(r, e),
l = a.createRawTexture(o, n, n, 5, !1, !1, 1, null, c),
h = new Promise(function (t, o) {
var c = new u.a("rgbdEncode", "rgbdEncode", null, null, 1, null, 1, a, !1, void 0, 0, void 0, null, !1);
c.getEffect().executeWhenCompiled(function () {
c.onApply = function (e) {
e._bindTexture("textureSampler", l);
};
var o = a.getRenderWidth(),
u = a.getRenderHeight();
a.setSize(n, n),
d.postProcessManager.directRender([c], null),
i.b.ToBlob(s, function (n) {
var i = new FileReader();
(i.onload = function (n) {
var i = n.target.result;
(p[6 * e + r] = i), t();
}),
i.readAsArrayBuffer(n);
}),
a.setSize(o, u);
});
});
f.push(h);
},
o = 0;
o < 6;
o++
)
r(o);
},
b = 0;
b <= m;
b++
)
g(b);
return Promise.all(f).then(function () {
d.dispose();
for (var i = { version: 1, width: h, irradiance: n._CreateEnvTextureIrradiance(t), specular: { mipmaps: [], lodGenerationScale: t.lodGenerationScale } }, r = 0, o = 0; o <= m; o++)
for (var a = 0; a < 6; a++) {
var s = p[6 * o + a].byteLength;
i.specular.mipmaps.push({ length: s, position: r }), (r += s);
}
for (var c = JSON.stringify(i), l = new ArrayBuffer(c.length + 1), u = new Uint8Array(l), f = ((o = 0), c.length); o < f; o++) u[o] = c.charCodeAt(o);
u[c.length] = 0;
var g = e._MagicBytes.length + r + l.byteLength,
b = new ArrayBuffer(g),
_ = new Uint8Array(b),
v = new DataView(b),
y = 0;
for (o = 0; o < e._MagicBytes.length; o++) v.setUint8(y++, e._MagicBytes[o]);
_.set(new Uint8Array(l), y), (y += l.byteLength);
for (o = 0; o <= m; o++)
for (a = 0; a < 6; a++) {
var C = p[6 * o + a];
_.set(new Uint8Array(C), y), (y += C.byteLength);
}
return b;
});
}),
(e._CreateEnvTextureIrradiance = function (e) {
var t = e.sphericalPolynomial;
return null == t
? null
: {
x: [t.x.x, t.x.y, t.x.z],
y: [t.y.x, t.y.y, t.y.z],
z: [t.z.x, t.z.y, t.z.z],
xx: [t.xx.x, t.xx.y, t.xx.z],
yy: [t.yy.x, t.yy.y, t.yy.z],
zz: [t.zz.x, t.zz.y, t.zz.z],
yz: [t.yz.x, t.yz.y, t.yz.z],
zx: [t.zx.x, t.zx.y, t.zx.z],
xy: [t.xy.x, t.xy.y, t.xy.z],
};
}),
(e.CreateImageDataArrayBufferViews = function (e, t) {
if (1 !== t.version) throw new Error('Unsupported babylon environment map version "' + t.version + '"');
var n = t.specular,
i = o.a.Log2(t.width);
if (((i = Math.round(i) + 1), n.mipmaps.length !== 6 * i)) throw new Error('Unsupported specular mipmaps number "' + n.mipmaps.length + '"');
for (var r = new Array(i), a = 0; a < i; a++) {
r[a] = new Array(6);
for (var s = 0; s < 6; s++) {
var c = n.mipmaps[6 * a + s];
r[a][s] = new Uint8Array(e.buffer, e.byteOffset + n.specularDataPosition + c.position, c.length);
}
}
return r;
}),
(e.UploadEnvLevelsAsync = function (t, n, i) {
if (1 !== i.version) throw new Error('Unsupported babylon environment map version "' + i.version + '"');
var r = i.specular;
if (!r) return Promise.resolve();
t._lodGenerationScale = r.lodGenerationScale;
var o = e.CreateImageDataArrayBufferViews(n, i);
return e.UploadLevelsAsync(t, o);
}),
(e._OnImageReadyAsync = function (e, t, n, i, r, o, a, s, c, l, u) {
return new Promise(function (h, d) {
if (n) {
var p = t.createTexture(
null,
!0,
!0,
null,
1,
null,
function (e) {
d(e);
},
e
);
i.getEffect().executeWhenCompiled(function () {
(i.onApply = function (e) {
e._bindTexture("textureSampler", p), e.setFloat2("scale", 1, 1);
}),
t.scenes[0].postProcessManager.directRender([i], l, !0, o, a),
t.restoreDefaultFramebuffer(),
p.dispose(),
URL.revokeObjectURL(r),
h();
});
} else {
if ((t._uploadImageToTexture(u, e, o, a), s)) {
var f = c[a];
f && t._uploadImageToTexture(f._texture, e, o, 0);
}
h();
}
});
}),
(e.UploadLevelsAsync = function (e, t) {
var n = this;
if (!i.b.IsExponentOfTwo(e.width)) throw new Error("Texture size must be a power of two");
var r = Math.round(o.a.Log2(e.width)) + 1,
a = e.getEngine(),
l = !1,
h = !1,
d = null,
p = null,
f = null,
m = a.getCaps();
if (
((e.format = 5),
(e.type = 0),
(e.generateMipMaps = !0),
(e._cachedAnisotropicFilteringLevel = null),
a.updateTextureSamplingMode(3, e),
m.textureLOD
? a.webGLVersion < 2
? (l = !1)
: m.textureHalfFloatRender && m.textureHalfFloatLinearFiltering
? ((l = !0), (e.type = 2))
: m.textureFloatRender && m.textureFloatLinearFiltering && ((l = !0), (e.type = 1))
: ((l = !1), (h = !0), (f = {})),
l)
)
(d = new u.a("rgbdDecode", "rgbdDecode", null, null, 1, null, 3, a, !1, void 0, e.type, void 0, null, !1)),
(e._isRGBD = !1),
(e.invertY = !1),
(p = a.createRenderTargetCubeTexture(e.width, { generateDepthBuffer: !1, generateMipMaps: !0, generateStencilBuffer: !1, samplingMode: 3, type: e.type, format: 5 }));
else if (((e._isRGBD = !0), (e.invertY = !0), h))
for (var g = e._lodGenerationScale, b = e._lodGenerationOffset, _ = 0; _ < 3; _++) {
var v = (r - 1) * g + b,
y = b + (v - b) * (1 - _ / 2),
C = Math.round(Math.min(Math.max(y, 0), v)),
P = new s.a(a, s.b.Temp);
(P.isCube = !0), (P.invertY = !0), (P.generateMipMaps = !1), a.updateTextureSamplingMode(2, P);
var x = new c.a(null);
switch (((x.isCube = !0), (x._texture = P), (f[C] = x), _)) {
case 0:
e._lodTextureLow = x;
break;
case 1:
e._lodTextureMid = x;
break;
case 2:
e._lodTextureHigh = x;
}
}
var T = [],
S = function (i) {
for (
var r = function (r) {
var o = t[i][r],
s = new Blob([o], { type: "image/png" }),
c = URL.createObjectURL(s),
u = void 0;
if ("undefined" == typeof Image)
u = createImageBitmap(s).then(function (t) {
return n._OnImageReadyAsync(t, a, l, d, c, r, i, h, f, p, e);
});
else {
var m = new Image();
(m.src = c),
(u = new Promise(function (t, o) {
(m.onload = function () {
n._OnImageReadyAsync(m, a, l, d, c, r, i, h, f, p, e)
.then(function () {
return t();
})
.catch(function (e) {
o(e);
});
}),
(m.onerror = function (e) {
o(e);
});
}));
}
T.push(u);
},
o = 0;
o < 6;
o++
)
r(o);
};
for (_ = 0; _ < t.length; _++) S(_);
if (t.length < r) {
var O = void 0,
E = Math.pow(2, r - 1 - t.length),
M = E * E * 4;
switch (e.type) {
case 0:
O = new Uint8Array(M);
break;
case 2:
O = new Uint16Array(M);
break;
case 1:
O = new Float32Array(M);
}
for (_ = t.length; _ < r; _++) for (var A = 0; A < 6; A++) a._uploadArrayBufferViewToTexture(e, O, A, _);
}
return Promise.all(T).then(function () {
p && (a._releaseFramebufferObjects(p), a._releaseTexture(e), p._swapAndDie(e)),
d && d.dispose(),
h &&
(e._lodTextureHigh && e._lodTextureHigh._texture && (e._lodTextureHigh._texture.isReady = !0),
e._lodTextureMid && e._lodTextureMid._texture && (e._lodTextureMid._texture.isReady = !0),
e._lodTextureLow && e._lodTextureLow._texture && (e._lodTextureLow._texture.isReady = !0));
});
}),
(e.UploadEnvSpherical = function (e, t) {
1 !== t.version && h.a.Warn('Unsupported babylon environment map version "' + t.version + '"');
var n = t.irradiance;
if (n) {
var i = new a.b();
r.e.FromArrayToRef(n.x, 0, i.x),
r.e.FromArrayToRef(n.y, 0, i.y),
r.e.FromArrayToRef(n.z, 0, i.z),
r.e.FromArrayToRef(n.xx, 0, i.xx),
r.e.FromArrayToRef(n.yy, 0, i.yy),
r.e.FromArrayToRef(n.zz, 0, i.zz),
r.e.FromArrayToRef(n.yz, 0, i.yz),
r.e.FromArrayToRef(n.zx, 0, i.zx),
r.e.FromArrayToRef(n.xy, 0, i.xy),
(e._sphericalPolynomial = i);
}
}),
(e._UpdateRGBDAsync = function (t, n, i, r, o) {
return (
(t._source = s.b.CubeRawRGBD),
(t._bufferViewArrayArray = n),
(t._lodGenerationScale = r),
(t._lodGenerationOffset = o),
(t._sphericalPolynomial = i),
e.UploadLevelsAsync(t, n).then(function () {
t.isReady = !0;
})
);
}),
(e._MagicBytes = [134, 22, 135, 150, 246, 214, 150, 54]),
e
);
})();
s.a._UpdateRGBDAsync = f._UpdateRGBDAsync;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (e.FilesToLoad = {}), e;
})();
},
function (e, t, n) {
"use strict";
n.d(t, "c", function () {
return c;
}),
n.d(t, "b", function () {
return l;
}),
n.d(t, "a", function () {
return u;
});
var i = n(2),
r = n(54),
o = n(9),
a = n(10),
s = n(25),
c = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return Object(i.d)(t, e), t;
})(r.a),
l = function () {
(this.rootNodes = []), (this.skeletons = []), (this.animationGroups = []);
},
u = (function (e) {
function t(t) {
var n = e.call(this) || this;
return (
(n._wasAddedToScene = !1),
(n.scene = t),
(n.sounds = []),
(n.effectLayers = []),
(n.layers = []),
(n.lensFlareSystems = []),
(n.proceduralTextures = []),
(n.reflectionProbes = []),
t.onDisposeObservable.add(function () {
n._wasAddedToScene || n.dispose();
}),
n
);
}
return (
Object(i.d)(t, e),
(t.prototype.instantiateModelsToScene = function (e, t) {
var n = this;
void 0 === t && (t = !1);
var i = {},
r = {},
a = new l(),
s = [],
c = [],
u = { doNotInstantiate: !0 },
h = function (t, n) {
if (((i[t.uniqueId] = n.uniqueId), (r[n.uniqueId] = n), e && (n.name = e(t.name)), n instanceof o.a)) {
var a = n;
if (a.morphTargetManager) {
var s = t.morphTargetManager;
a.morphTargetManager = s.clone();
for (var c = 0; c < s.numTargets; c++) {
var l = s.getTarget(c),
u = a.morphTargetManager.getTarget(c);
(i[l.uniqueId] = u.uniqueId), (r[u.uniqueId] = u);
}
}
}
};
return (
this.transformNodes.forEach(function (e) {
if (!e.parent) {
var t = e.instantiateHierarchy(null, u, function (e, t) {
h(e, t);
});
t && a.rootNodes.push(t);
}
}),
this.meshes.forEach(function (o) {
if (!o.parent) {
var s = o.instantiateHierarchy(null, u, function (o, a) {
if ((h(o, a), a.material)) {
var s = a;
if (s.material)
if (t) {
var l = o.material;
if (-1 === c.indexOf(l)) {
var u = l.clone(e ? e(l.name) : "Clone of " + l.name);
if ((c.push(l), (i[l.uniqueId] = u.uniqueId), (r[u.uniqueId] = u), "MultiMaterial" === l.getClassName()))
for (var d = 0, p = l.subMaterials; d < p.length; d++) {
var f = p[d];
f && ((u = f.clone(e ? e(f.name) : "Clone of " + f.name)), c.push(f), (i[f.uniqueId] = u.uniqueId), (r[u.uniqueId] = u));
}
}
s.material = r[i[l.uniqueId]];
} else
"MultiMaterial" === s.material.getClassName()
? -1 === n.scene.multiMaterials.indexOf(s.material) && n.scene.addMultiMaterial(s.material)
: -1 === n.scene.materials.indexOf(s.material) && n.scene.addMaterial(s.material);
}
});
s && a.rootNodes.push(s);
}
}),
this.skeletons.forEach(function (t) {
var o = t.clone(e ? e(t.name) : "Clone of " + t.name);
t.overrideMesh && (o.overrideMesh = r[i[t.overrideMesh.uniqueId]]);
for (var c = 0, l = n.meshes; c < l.length; c++) {
var u = l[c];
if (u.skeleton === t && !u.isAnInstance) {
if (((r[i[u.uniqueId]].skeleton = o), -1 !== s.indexOf(o))) continue;
s.push(o);
for (var h = 0, d = o.bones; h < d.length; h++) {
var p = d[h];
p._linkedTransformNode && (p._linkedTransformNode = r[i[p._linkedTransformNode.uniqueId]]);
}
}
}
a.skeletons.push(o);
}),
this.animationGroups.forEach(function (e) {
var t = e.clone(e.name, function (e) {
return r[i[e.uniqueId]] || e;
});
a.animationGroups.push(t);
}),
a
);
}),
(t.prototype.addAllToScene = function () {
var e = this;
(this._wasAddedToScene = !0),
this.cameras.forEach(function (t) {
e.scene.addCamera(t);
}),
this.lights.forEach(function (t) {
e.scene.addLight(t);
}),
this.meshes.forEach(function (t) {
e.scene.addMesh(t);
}),
this.skeletons.forEach(function (t) {
e.scene.addSkeleton(t);
}),
this.animations.forEach(function (t) {
e.scene.addAnimation(t);
}),
this.animationGroups.forEach(function (t) {
e.scene.addAnimationGroup(t);
}),
this.multiMaterials.forEach(function (t) {
e.scene.addMultiMaterial(t);
}),
this.materials.forEach(function (t) {
e.scene.addMaterial(t);
}),
this.morphTargetManagers.forEach(function (t) {
e.scene.addMorphTargetManager(t);
}),
this.geometries.forEach(function (t) {
e.scene.addGeometry(t);
}),
this.transformNodes.forEach(function (t) {
e.scene.addTransformNode(t);
}),
this.actionManagers.forEach(function (t) {
e.scene.addActionManager(t);
}),
this.textures.forEach(function (t) {
e.scene.addTexture(t);
}),
this.reflectionProbes.forEach(function (t) {
e.scene.addReflectionProbe(t);
}),
this.environmentTexture && (this.scene.environmentTexture = this.environmentTexture);
for (var t = 0, n = this.scene._serializableComponents; t < n.length; t++) {
n[t].addFromContainer(this);
}
}),
(t.prototype.removeAllFromScene = function () {
var e = this;
(this._wasAddedToScene = !1),
this.cameras.forEach(function (t) {
e.scene.removeCamera(t);
}),
this.lights.forEach(function (t) {
e.scene.removeLight(t);
}),
this.meshes.forEach(function (t) {
e.scene.removeMesh(t);
}),
this.skeletons.forEach(function (t) {
e.scene.removeSkeleton(t);
}),
this.animations.forEach(function (t) {
e.scene.removeAnimation(t);
}),
this.animationGroups.forEach(function (t) {
e.scene.removeAnimationGroup(t);
}),
this.multiMaterials.forEach(function (t) {
e.scene.removeMultiMaterial(t);
}),
this.materials.forEach(function (t) {
e.scene.removeMaterial(t);
}),
this.morphTargetManagers.forEach(function (t) {
e.scene.removeMorphTargetManager(t);
}),
this.geometries.forEach(function (t) {
e.scene.removeGeometry(t);
}),
this.transformNodes.forEach(function (t) {
e.scene.removeTransformNode(t);
}),
this.actionManagers.forEach(function (t) {
e.scene.removeActionManager(t);
}),
this.textures.forEach(function (t) {
e.scene.removeTexture(t);
}),
this.reflectionProbes.forEach(function (t) {
e.scene.removeReflectionProbe(t);
}),
this.environmentTexture === this.scene.environmentTexture && (this.scene.environmentTexture = null);
for (var t = 0, n = this.scene._serializableComponents; t < n.length; t++) {
n[t].removeFromContainer(this);
}
}),
(t.prototype.dispose = function () {
this.cameras.forEach(function (e) {
e.dispose();
}),
(this.cameras = []),
this.lights.forEach(function (e) {
e.dispose();
}),
(this.lights = []),
this.meshes.forEach(function (e) {
e.dispose();
}),
(this.meshes = []),
this.skeletons.forEach(function (e) {
e.dispose();
}),
(this.skeletons = []),
this.animationGroups.forEach(function (e) {
e.dispose();
}),
(this.animationGroups = []),
this.multiMaterials.forEach(function (e) {
e.dispose();
}),
(this.multiMaterials = []),
this.materials.forEach(function (e) {
e.dispose();
}),
(this.materials = []),
this.geometries.forEach(function (e) {
e.dispose();
}),
(this.geometries = []),
this.transformNodes.forEach(function (e) {
e.dispose();
}),
(this.transformNodes = []),
this.actionManagers.forEach(function (e) {
e.dispose();
}),
(this.actionManagers = []),
this.textures.forEach(function (e) {
e.dispose();
}),
(this.textures = []),
this.reflectionProbes.forEach(function (e) {
e.dispose();
}),
(this.reflectionProbes = []),
this.environmentTexture && (this.environmentTexture.dispose(), (this.environmentTexture = null));
for (var e = 0, t = this.scene._serializableComponents; e < t.length; e++) {
t[e].removeFromContainer(this, !0);
}
}),
(t.prototype._moveAssets = function (e, t, n) {
if (e)
for (var i = 0, r = e; i < r.length; i++) {
var o = r[i],
a = !0;
if (n)
for (var s = 0, c = n; s < c.length; s++) {
if (o === c[s]) {
a = !1;
break;
}
}
a && t.push(o);
}
}),
(t.prototype.moveAllFromScene = function (e) {
for (var t in ((this._wasAddedToScene = !1), void 0 === e && (e = new c()), this))
this.hasOwnProperty(t) && ((this[t] = this[t] || ("environmentTexture" === t ? null : [])), this._moveAssets(this.scene[t], this[t], e[t]));
this.removeAllFromScene();
}),
(t.prototype.createRootMesh = function () {
var e = new o.a("assetContainerRootMesh", this.scene);
return (
this.meshes.forEach(function (t) {
t.parent || e.addChild(t);
}),
this.meshes.unshift(e),
e
);
}),
(t.prototype.mergeAnimationsTo = function (e, t, n) {
if ((void 0 === e && (e = s.a.LastCreatedScene), void 0 === n && (n = null), e)) {
var i =
n ||
function (t) {
return e.getBoneByName(t.name) || e.getNodeByName(t.name);
};
this.getNodes().forEach(function (e) {
var t = i(e);
if (null !== t) {
for (
var n = function (e) {
for (
var n = 0,
i = t.animations.filter(function (t) {
return t.targetProperty === e.targetProperty;
});
n < i.length;
n++
) {
var r = i[n],
o = t.animations.indexOf(r, 0);
o > -1 && t.animations.splice(o, 1);
}
},
r = 0,
o = e.animations;
r < o.length;
r++
) {
n(o[r]);
}
t.animations = t.animations.concat(e.animations);
}
}),
this.animationGroups.slice().forEach(function (e) {
e.clone(e.name, i),
e.animatables.forEach(function (e) {
e.stop();
});
}),
t.forEach(function (t) {
var n = i(t.target);
n &&
(e.beginAnimation(n, t.fromFrame, t.toFrame, t.loopAnimation, t.speedRatio, t.onAnimationEnd ? t.onAnimationEnd : void 0, void 0, !0, void 0, t.onAnimationLoop ? t.onAnimationLoop : void 0),
e.stopAnimation(t.target));
});
} else a.a.Error("No scene available to merge animations to");
}),
t
);
})(r.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(42),
o = n(194),
a = n(195),
s = n(196),
c = (function (e) {
function t(t) {
var n = e.call(this, t) || this;
return (n._mouseInput = null), n;
}
return (
Object(i.d)(t, e),
(t.prototype.addKeyboard = function () {
return this.add(new o.a()), this;
}),
(t.prototype.addMouse = function (e) {
return void 0 === e && (e = !0), this._mouseInput || ((this._mouseInput = new a.a(e)), this.add(this._mouseInput)), this;
}),
(t.prototype.removeMouse = function () {
return this._mouseInput && this.remove(this._mouseInput), this;
}),
(t.prototype.addTouch = function () {
return this.add(new s.a()), this;
}),
(t.prototype.clear = function () {
e.prototype.clear.call(this), (this._mouseInput = null);
}),
t
);
})(r.b);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(57),
s = n(23),
c = (function (e) {
function t() {
var t = (null !== e && e.apply(this, arguments)) || this;
return (t._needProjectionMatrixCompute = !0), t;
}
return (
Object(i.d)(t, e),
(t.prototype._setPosition = function (e) {
this._position = e;
}),
Object.defineProperty(t.prototype, "position", {
get: function () {
return this._position;
},
set: function (e) {
this._setPosition(e);
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._setDirection = function (e) {
this._direction = e;
}),
Object.defineProperty(t.prototype, "direction", {
get: function () {
return this._direction;
},
set: function (e) {
this._setDirection(e);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadowMinZ", {
get: function () {
return this._shadowMinZ;
},
set: function (e) {
(this._shadowMinZ = e), this.forceProjectionMatrixCompute();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadowMaxZ", {
get: function () {
return this._shadowMaxZ;
},
set: function (e) {
(this._shadowMaxZ = e), this.forceProjectionMatrixCompute();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.computeTransformedInformation = function () {
return (
!(!this.parent || !this.parent.getWorldMatrix) &&
(this.transformedPosition || (this.transformedPosition = o.e.Zero()),
o.e.TransformCoordinatesToRef(this.position, this.parent.getWorldMatrix(), this.transformedPosition),
this.direction && (this.transformedDirection || (this.transformedDirection = o.e.Zero()), o.e.TransformNormalToRef(this.direction, this.parent.getWorldMatrix(), this.transformedDirection)),
!0)
);
}),
(t.prototype.getDepthScale = function () {
return 50;
}),
(t.prototype.getShadowDirection = function (e) {
return this.transformedDirection ? this.transformedDirection : this.direction;
}),
(t.prototype.getAbsolutePosition = function () {
return this.transformedPosition ? this.transformedPosition : this.position;
}),
(t.prototype.setDirectionToTarget = function (e) {
return (this.direction = o.e.Normalize(e.subtract(this.position))), this.direction;
}),
(t.prototype.getRotation = function () {
this.direction.normalize();
var e = o.e.Cross(this.direction, s.a.Y),
t = o.e.Cross(e, this.direction);
return o.e.RotationFromAxis(e, t, this.direction);
}),
(t.prototype.needCube = function () {
return !1;
}),
(t.prototype.needProjectionMatrixCompute = function () {
return this._needProjectionMatrixCompute;
}),
(t.prototype.forceProjectionMatrixCompute = function () {
this._needProjectionMatrixCompute = !0;
}),
(t.prototype._initCache = function () {
e.prototype._initCache.call(this), (this._cache.position = o.e.Zero());
}),
(t.prototype._isSynchronized = function () {
return !!this._cache.position.equals(this.position);
}),
(t.prototype.computeWorldMatrix = function (e) {
return !e && this.isSynchronized()
? ((this._currentRenderId = this.getScene().getRenderId()), this._worldMatrix)
: (this._updateCache(),
this._cache.position.copyFrom(this.position),
this._worldMatrix || (this._worldMatrix = o.a.Identity()),
o.a.TranslationToRef(this.position.x, this.position.y, this.position.z, this._worldMatrix),
this.parent && this.parent.getWorldMatrix && (this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(), this._worldMatrix), this._markSyncedWithParent()),
(this._worldMatrixDeterminantIsDirty = !0),
this._worldMatrix);
}),
(t.prototype.getDepthMinZ = function (e) {
return void 0 !== this.shadowMinZ ? this.shadowMinZ : e.minZ;
}),
(t.prototype.getDepthMaxZ = function (e) {
return void 0 !== this.shadowMaxZ ? this.shadowMaxZ : e.maxZ;
}),
(t.prototype.setShadowProjectionMatrix = function (e, t, n) {
return this.customProjectionMatrixBuilder ? this.customProjectionMatrixBuilder(t, n, e) : this._setDefaultShadowProjectionMatrix(e, t, n), this;
}),
Object(i.c)([Object(r.o)()], t.prototype, "position", null),
Object(i.c)([Object(r.o)()], t.prototype, "direction", null),
Object(i.c)([Object(r.c)()], t.prototype, "shadowMinZ", null),
Object(i.c)([Object(r.c)()], t.prototype, "shadowMaxZ", null),
t
);
})(a.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return u;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(35),
s = n(57),
c = n(121),
l = n(8);
a.a.AddNodeConstructor("Light_Type_2", function (e, t) {
return function () {
return new u(e, o.e.Zero(), o.e.Zero(), 0, 0, t);
};
});
var u = (function (e) {
function t(t, n, i, r, a, s) {
var c = e.call(this, t, s) || this;
return (
(c._innerAngle = 0),
(c._projectionTextureMatrix = o.a.Zero()),
(c._projectionTextureLightNear = 1e-6),
(c._projectionTextureLightFar = 1e3),
(c._projectionTextureUpDirection = o.e.Up()),
(c._projectionTextureViewLightDirty = !0),
(c._projectionTextureProjectionLightDirty = !0),
(c._projectionTextureDirty = !0),
(c._projectionTextureViewTargetVector = o.e.Zero()),
(c._projectionTextureViewLightMatrix = o.a.Zero()),
(c._projectionTextureProjectionLightMatrix = o.a.Zero()),
(c._projectionTextureScalingMatrix = o.a.FromValues(0.5, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 1)),
(c.position = n),
(c.direction = i),
(c.angle = r),
(c.exponent = a),
c
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "angle", {
get: function () {
return this._angle;
},
set: function (e) {
(this._angle = e), (this._cosHalfAngle = Math.cos(0.5 * e)), (this._projectionTextureProjectionLightDirty = !0), this.forceProjectionMatrixCompute(), this._computeAngleValues();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "innerAngle", {
get: function () {
return this._innerAngle;
},
set: function (e) {
(this._innerAngle = e), this._computeAngleValues();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "shadowAngleScale", {
get: function () {
return this._shadowAngleScale;
},
set: function (e) {
(this._shadowAngleScale = e), this.forceProjectionMatrixCompute();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "projectionTextureMatrix", {
get: function () {
return this._projectionTextureMatrix;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "projectionTextureLightNear", {
get: function () {
return this._projectionTextureLightNear;
},
set: function (e) {
(this._projectionTextureLightNear = e), (this._projectionTextureProjectionLightDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "projectionTextureLightFar", {
get: function () {
return this._projectionTextureLightFar;
},
set: function (e) {
(this._projectionTextureLightFar = e), (this._projectionTextureProjectionLightDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "projectionTextureUpDirection", {
get: function () {
return this._projectionTextureUpDirection;
},
set: function (e) {
(this._projectionTextureUpDirection = e), (this._projectionTextureProjectionLightDirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "projectionTexture", {
get: function () {
return this._projectionTexture;
},
set: function (e) {
var t = this;
if (this._projectionTexture !== e && ((this._projectionTexture = e), (this._projectionTextureDirty = !0), this._projectionTexture && !this._projectionTexture.isReady())) {
var n = this._projectionTexture;
n.onLoadObservable &&
n.onLoadObservable.addOnce(function () {
t._markMeshesAsLightDirty();
});
}
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "SpotLight";
}),
(t.prototype.getTypeID = function () {
return s.a.LIGHTTYPEID_SPOTLIGHT;
}),
(t.prototype._setDirection = function (t) {
e.prototype._setDirection.call(this, t), (this._projectionTextureViewLightDirty = !0);
}),
(t.prototype._setPosition = function (t) {
e.prototype._setPosition.call(this, t), (this._projectionTextureViewLightDirty = !0);
}),
(t.prototype._setDefaultShadowProjectionMatrix = function (e, t, n) {
var i = this.getScene().activeCamera;
if (i) {
this._shadowAngleScale = this._shadowAngleScale || 1;
var r = this._shadowAngleScale * this._angle;
o.a.PerspectiveFovLHToRef(r, 1, this.getDepthMinZ(i), this.getDepthMaxZ(i), e);
}
}),
(t.prototype._computeProjectionTextureViewLightMatrix = function () {
(this._projectionTextureViewLightDirty = !1),
(this._projectionTextureDirty = !0),
this.position.addToRef(this.direction, this._projectionTextureViewTargetVector),
o.a.LookAtLHToRef(this.position, this._projectionTextureViewTargetVector, this._projectionTextureUpDirection, this._projectionTextureViewLightMatrix);
}),
(t.prototype._computeProjectionTextureProjectionLightMatrix = function () {
(this._projectionTextureProjectionLightDirty = !1), (this._projectionTextureDirty = !0);
var e = this.projectionTextureLightFar,
t = this.projectionTextureLightNear,
n = e / (e - t),
i = -n * t,
r = 1 / Math.tan(this._angle / 2);
o.a.FromValuesToRef(r / 1, 0, 0, 0, 0, r, 0, 0, 0, 0, n, 1, 0, 0, i, 0, this._projectionTextureProjectionLightMatrix);
}),
(t.prototype._computeProjectionTextureMatrix = function () {
if (((this._projectionTextureDirty = !1), this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix, this._projectionTextureMatrix), this._projectionTexture instanceof l.a)) {
var e = this._projectionTexture.uScale / 2,
t = this._projectionTexture.vScale / 2;
o.a.FromValuesToRef(e, 0, 0, 0, 0, t, 0, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 1, this._projectionTextureScalingMatrix);
}
this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix, this._projectionTextureMatrix);
}),
(t.prototype._buildUniformLayout = function () {
this._uniformBuffer.addUniform("vLightData", 4),
this._uniformBuffer.addUniform("vLightDiffuse", 4),
this._uniformBuffer.addUniform("vLightSpecular", 4),
this._uniformBuffer.addUniform("vLightDirection", 3),
this._uniformBuffer.addUniform("vLightFalloff", 4),
this._uniformBuffer.addUniform("shadowsInfo", 3),
this._uniformBuffer.addUniform("depthValues", 2),
this._uniformBuffer.create();
}),
(t.prototype._computeAngleValues = function () {
(this._lightAngleScale = 1 / Math.max(0.001, Math.cos(0.5 * this._innerAngle) - this._cosHalfAngle)), (this._lightAngleOffset = -this._cosHalfAngle * this._lightAngleScale);
}),
(t.prototype.transferTexturesToEffect = function (e, t) {
return (
this.projectionTexture &&
this.projectionTexture.isReady() &&
(this._projectionTextureViewLightDirty && this._computeProjectionTextureViewLightMatrix(),
this._projectionTextureProjectionLightDirty && this._computeProjectionTextureProjectionLightMatrix(),
this._projectionTextureDirty && this._computeProjectionTextureMatrix(),
e.setMatrix("textureProjectionMatrix" + t, this._projectionTextureMatrix),
e.setTexture("projectionLightSampler" + t, this.projectionTexture)),
this
);
}),
(t.prototype.transferToEffect = function (e, t) {
var n;
return (
this.computeTransformedInformation()
? (this._uniformBuffer.updateFloat4("vLightData", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, this.exponent, t), (n = o.e.Normalize(this.transformedDirection)))
: (this._uniformBuffer.updateFloat4("vLightData", this.position.x, this.position.y, this.position.z, this.exponent, t), (n = o.e.Normalize(this.direction))),
this.getScene().useRightHandedSystem
? this._uniformBuffer.updateFloat4("vLightDirection", -n.x, -n.y, -n.z, this._cosHalfAngle, t)
: this._uniformBuffer.updateFloat4("vLightDirection", n.x, n.y, n.z, this._cosHalfAngle, t),
this._uniformBuffer.updateFloat4("vLightFalloff", this.range, this._inverseSquaredRange, this._lightAngleScale, this._lightAngleOffset, t),
this
);
}),
(t.prototype.transferToNodeMaterialEffect = function (e, t) {
var n;
return (
(n = this.computeTransformedInformation() ? o.e.Normalize(this.transformedDirection) : o.e.Normalize(this.direction)),
this.getScene().useRightHandedSystem ? e.setFloat3(t, -n.x, -n.y, -n.z) : e.setFloat3(t, n.x, n.y, n.z),
this
);
}),
(t.prototype.dispose = function () {
e.prototype.dispose.call(this), this._projectionTexture && this._projectionTexture.dispose();
}),
(t.prototype.prepareLightSpecificDefines = function (e, t) {
(e["SPOTLIGHT" + t] = !0), (e["PROJECTEDLIGHTTEXTURE" + t] = !(!this.projectionTexture || !this.projectionTexture.isReady()));
}),
Object(i.c)([Object(r.c)()], t.prototype, "angle", null),
Object(i.c)([Object(r.c)()], t.prototype, "innerAngle", null),
Object(i.c)([Object(r.c)()], t.prototype, "shadowAngleScale", null),
Object(i.c)([Object(r.c)()], t.prototype, "exponent", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "projectionTextureLightNear", null),
Object(i.c)([Object(r.c)()], t.prototype, "projectionTextureLightFar", null),
Object(i.c)([Object(r.c)()], t.prototype, "projectionTextureUpDirection", null),
Object(i.c)([Object(r.m)("projectedLightTexture")], t.prototype, "_projectionTexture", void 0),
t
);
})(c.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(3),
o = n(1),
a = n(35),
s = n(57),
c = n(121);
a.a.AddNodeConstructor("Light_Type_0", function (e, t) {
return function () {
return new l(e, o.e.Zero(), t);
};
});
var l = (function (e) {
function t(t, n, i) {
var r = e.call(this, t, i) || this;
return (r._shadowAngle = Math.PI / 2), (r.position = n), r;
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "shadowAngle", {
get: function () {
return this._shadowAngle;
},
set: function (e) {
(this._shadowAngle = e), this.forceProjectionMatrixCompute();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "direction", {
get: function () {
return this._direction;
},
set: function (e) {
var t = this.needCube();
(this._direction = e), this.needCube() !== t && this._shadowGenerator && this._shadowGenerator.recreateShadowMap();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "PointLight";
}),
(t.prototype.getTypeID = function () {
return s.a.LIGHTTYPEID_POINTLIGHT;
}),
(t.prototype.needCube = function () {
return !this.direction;
}),
(t.prototype.getShadowDirection = function (t) {
if (this.direction) return e.prototype.getShadowDirection.call(this, t);
switch (t) {
case 0:
return new o.e(1, 0, 0);
case 1:
return new o.e(-1, 0, 0);
case 2:
return new o.e(0, -1, 0);
case 3:
return new o.e(0, 1, 0);
case 4:
return new o.e(0, 0, 1);
case 5:
return new o.e(0, 0, -1);
}
return o.e.Zero();
}),
(t.prototype._setDefaultShadowProjectionMatrix = function (e, t, n) {
var i = this.getScene().activeCamera;
i && o.a.PerspectiveFovLHToRef(this.shadowAngle, 1, this.getDepthMinZ(i), this.getDepthMaxZ(i), e);
}),
(t.prototype._buildUniformLayout = function () {
this._uniformBuffer.addUniform("vLightData", 4),
this._uniformBuffer.addUniform("vLightDiffuse", 4),
this._uniformBuffer.addUniform("vLightSpecular", 4),
this._uniformBuffer.addUniform("vLightFalloff", 4),
this._uniformBuffer.addUniform("shadowsInfo", 3),
this._uniformBuffer.addUniform("depthValues", 2),
this._uniformBuffer.create();
}),
(t.prototype.transferToEffect = function (e, t) {
return (
this.computeTransformedInformation()
? this._uniformBuffer.updateFloat4("vLightData", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, 0, t)
: this._uniformBuffer.updateFloat4("vLightData", this.position.x, this.position.y, this.position.z, 0, t),
this._uniformBuffer.updateFloat4("vLightFalloff", this.range, this._inverseSquaredRange, 0, 0, t),
this
);
}),
(t.prototype.transferToNodeMaterialEffect = function (e, t) {
return this.computeTransformedInformation() ? e.setFloat3(t, this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z) : e.setFloat3(t, this.position.x, this.position.y, this.position.z), this;
}),
(t.prototype.prepareLightSpecificDefines = function (e, t) {
e["POINTLIGHT" + t] = !0;
}),
Object(i.c)([Object(r.c)()], t.prototype, "shadowAngle", null),
t
);
})(c.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return a;
});
var i = n(10),
r = n(38),
o = n(126);
(r.a.prototype.createUniformBuffer = function (e) {
var t = this._gl.createBuffer();
if (!t) throw new Error("Unable to create uniform buffer");
var n = new o.a(t);
return (
this.bindUniformBuffer(n),
e instanceof Float32Array ? this._gl.bufferData(this._gl.UNIFORM_BUFFER, e, this._gl.STATIC_DRAW) : this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(e), this._gl.STATIC_DRAW),
this.bindUniformBuffer(null),
(n.references = 1),
n
);
}),
(r.a.prototype.createDynamicUniformBuffer = function (e) {
var t = this._gl.createBuffer();
if (!t) throw new Error("Unable to create dynamic uniform buffer");
var n = new o.a(t);
return (
this.bindUniformBuffer(n),
e instanceof Float32Array ? this._gl.bufferData(this._gl.UNIFORM_BUFFER, e, this._gl.DYNAMIC_DRAW) : this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(e), this._gl.DYNAMIC_DRAW),
this.bindUniformBuffer(null),
(n.references = 1),
n
);
}),
(r.a.prototype.updateUniformBuffer = function (e, t, n, i) {
this.bindUniformBuffer(e),
void 0 === n && (n = 0),
void 0 === i
? t instanceof Float32Array
? this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, n, t)
: this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, n, new Float32Array(t))
: t instanceof Float32Array
? this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, t.subarray(n, n + i))
: this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, new Float32Array(t).subarray(n, n + i)),
this.bindUniformBuffer(null);
}),
(r.a.prototype.bindUniformBuffer = function (e) {
this._gl.bindBuffer(this._gl.UNIFORM_BUFFER, e ? e.underlyingResource : null);
}),
(r.a.prototype.bindUniformBufferBase = function (e, t) {
this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER, t, e ? e.underlyingResource : null);
}),
(r.a.prototype.bindUniformBlock = function (e, t, n) {
var i = e.program,
r = this._gl.getUniformBlockIndex(i, t);
this._gl.uniformBlockBinding(i, r, n);
});
var a = (function () {
function e(e, t, n) {
(this._alreadyBound = !1),
(this._valueCache = {}),
(this._engine = e),
(this._noUBO = !e.supportsUniformBuffers),
(this._dynamic = n),
(this._data = t || []),
(this._uniformLocations = {}),
(this._uniformSizes = {}),
(this._uniformLocationPointer = 0),
(this._needSync = !1),
this._noUBO
? ((this.updateMatrix3x3 = this._updateMatrix3x3ForEffect),
(this.updateMatrix2x2 = this._updateMatrix2x2ForEffect),
(this.updateFloat = this._updateFloatForEffect),
(this.updateFloat2 = this._updateFloat2ForEffect),
(this.updateFloat3 = this._updateFloat3ForEffect),
(this.updateFloat4 = this._updateFloat4ForEffect),
(this.updateMatrix = this._updateMatrixForEffect),
(this.updateVector3 = this._updateVector3ForEffect),
(this.updateVector4 = this._updateVector4ForEffect),
(this.updateColor3 = this._updateColor3ForEffect),
(this.updateColor4 = this._updateColor4ForEffect))
: (this._engine._uniformBuffers.push(this),
(this.updateMatrix3x3 = this._updateMatrix3x3ForUniform),
(this.updateMatrix2x2 = this._updateMatrix2x2ForUniform),
(this.updateFloat = this._updateFloatForUniform),
(this.updateFloat2 = this._updateFloat2ForUniform),
(this.updateFloat3 = this._updateFloat3ForUniform),
(this.updateFloat4 = this._updateFloat4ForUniform),
(this.updateMatrix = this._updateMatrixForUniform),
(this.updateVector3 = this._updateVector3ForUniform),
(this.updateVector4 = this._updateVector4ForUniform),
(this.updateColor3 = this._updateColor3ForUniform),
(this.updateColor4 = this._updateColor4ForUniform));
}
return (
Object.defineProperty(e.prototype, "useUbo", {
get: function () {
return !this._noUBO;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isSync", {
get: function () {
return !this._needSync;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.isDynamic = function () {
return void 0 !== this._dynamic;
}),
(e.prototype.getData = function () {
return this._bufferData;
}),
(e.prototype.getBuffer = function () {
return this._buffer;
}),
(e.prototype._fillAlignment = function (e) {
var t;
if (((t = e <= 2 ? e : 4), this._uniformLocationPointer % t != 0)) {
var n = this._uniformLocationPointer;
this._uniformLocationPointer += t - (this._uniformLocationPointer % t);
for (var i = this._uniformLocationPointer - n, r = 0; r < i; r++) this._data.push(0);
}
}),
(e.prototype.addUniform = function (e, t) {
if (!this._noUBO && void 0 === this._uniformLocations[e]) {
var n;
if (t instanceof Array) t = (n = t).length;
else {
(t = t), (n = []);
for (var i = 0; i < t; i++) n.push(0);
}
this._fillAlignment(t), (this._uniformSizes[e] = t), (this._uniformLocations[e] = this._uniformLocationPointer), (this._uniformLocationPointer += t);
for (i = 0; i < t; i++) this._data.push(n[i]);
this._needSync = !0;
}
}),
(e.prototype.addMatrix = function (e, t) {
this.addUniform(e, Array.prototype.slice.call(t.toArray()));
}),
(e.prototype.addFloat2 = function (e, t, n) {
var i = [t, n];
this.addUniform(e, i);
}),
(e.prototype.addFloat3 = function (e, t, n, i) {
var r = [t, n, i];
this.addUniform(e, r);
}),
(e.prototype.addColor3 = function (e, t) {
var n = new Array();
t.toArray(n), this.addUniform(e, n);
}),
(e.prototype.addColor4 = function (e, t, n) {
var i = new Array();
t.toArray(i), i.push(n), this.addUniform(e, i);
}),
(e.prototype.addVector3 = function (e, t) {
var n = new Array();
t.toArray(n), this.addUniform(e, n);
}),
(e.prototype.addMatrix3x3 = function (e) {
this.addUniform(e, 12);
}),
(e.prototype.addMatrix2x2 = function (e) {
this.addUniform(e, 8);
}),
(e.prototype.create = function () {
this._noUBO || this._buffer || (this._fillAlignment(4), (this._bufferData = new Float32Array(this._data)), this._rebuild(), (this._needSync = !0));
}),
(e.prototype._rebuild = function () {
!this._noUBO && this._bufferData && (this._dynamic ? (this._buffer = this._engine.createDynamicUniformBuffer(this._bufferData)) : (this._buffer = this._engine.createUniformBuffer(this._bufferData)));
}),
(e.prototype.update = function () {
this._buffer ? (this._dynamic || this._needSync) && (this._engine.updateUniformBuffer(this._buffer, this._bufferData), (this._needSync = !1)) : this.create();
}),
(e.prototype.updateUniform = function (e, t, n) {
var r = this._uniformLocations[e];
if (void 0 === r) {
if (this._buffer) return void i.a.Error("Cannot add an uniform after UBO has been created.");
this.addUniform(e, n), (r = this._uniformLocations[e]);
}
if ((this._buffer || this.create(), this._dynamic)) for (a = 0; a < n; a++) this._bufferData[r + a] = t[a];
else {
for (var o = !1, a = 0; a < n; a++) (16 !== n && this._bufferData[r + a] === t[a]) || ((o = !0), (this._bufferData[r + a] = t[a]));
this._needSync = this._needSync || o;
}
}),
(e.prototype._cacheMatrix = function (e, t) {
var n = this._valueCache[e],
i = t.updateFlag;
return (void 0 === n || n !== i) && ((this._valueCache[e] = i), !0);
}),
(e.prototype._updateMatrix3x3ForUniform = function (t, n) {
for (var i = 0; i < 3; i++) (e._tempBuffer[4 * i] = n[3 * i]), (e._tempBuffer[4 * i + 1] = n[3 * i + 1]), (e._tempBuffer[4 * i + 2] = n[3 * i + 2]), (e._tempBuffer[4 * i + 3] = 0);
this.updateUniform(t, e._tempBuffer, 12);
}),
(e.prototype._updateMatrix3x3ForEffect = function (e, t) {
this._currentEffect.setMatrix3x3(e, t);
}),
(e.prototype._updateMatrix2x2ForEffect = function (e, t) {
this._currentEffect.setMatrix2x2(e, t);
}),
(e.prototype._updateMatrix2x2ForUniform = function (t, n) {
for (var i = 0; i < 2; i++) (e._tempBuffer[4 * i] = n[2 * i]), (e._tempBuffer[4 * i + 1] = n[2 * i + 1]), (e._tempBuffer[4 * i + 2] = 0), (e._tempBuffer[4 * i + 3] = 0);
this.updateUniform(t, e._tempBuffer, 8);
}),
(e.prototype._updateFloatForEffect = function (e, t) {
this._currentEffect.setFloat(e, t);
}),
(e.prototype._updateFloatForUniform = function (t, n) {
(e._tempBuffer[0] = n), this.updateUniform(t, e._tempBuffer, 1);
}),
(e.prototype._updateFloat2ForEffect = function (e, t, n, i) {
void 0 === i && (i = ""), this._currentEffect.setFloat2(e + i, t, n);
}),
(e.prototype._updateFloat2ForUniform = function (t, n, i) {
(e._tempBuffer[0] = n), (e._tempBuffer[1] = i), this.updateUniform(t, e._tempBuffer, 2);
}),
(e.prototype._updateFloat3ForEffect = function (e, t, n, i, r) {
void 0 === r && (r = ""), this._currentEffect.setFloat3(e + r, t, n, i);
}),
(e.prototype._updateFloat3ForUniform = function (t, n, i, r) {
(e._tempBuffer[0] = n), (e._tempBuffer[1] = i), (e._tempBuffer[2] = r), this.updateUniform(t, e._tempBuffer, 3);
}),
(e.prototype._updateFloat4ForEffect = function (e, t, n, i, r, o) {
void 0 === o && (o = ""), this._currentEffect.setFloat4(e + o, t, n, i, r);
}),
(e.prototype._updateFloat4ForUniform = function (t, n, i, r, o) {
(e._tempBuffer[0] = n), (e._tempBuffer[1] = i), (e._tempBuffer[2] = r), (e._tempBuffer[3] = o), this.updateUniform(t, e._tempBuffer, 4);
}),
(e.prototype._updateMatrixForEffect = function (e, t) {
this._currentEffect.setMatrix(e, t);
}),
(e.prototype._updateMatrixForUniform = function (e, t) {
this._cacheMatrix(e, t) && this.updateUniform(e, t.toArray(), 16);
}),
(e.prototype._updateVector3ForEffect = function (e, t) {
this._currentEffect.setVector3(e, t);
}),
(e.prototype._updateVector3ForUniform = function (t, n) {
n.toArray(e._tempBuffer), this.updateUniform(t, e._tempBuffer, 3);
}),
(e.prototype._updateVector4ForEffect = function (e, t) {
this._currentEffect.setVector4(e, t);
}),
(e.prototype._updateVector4ForUniform = function (t, n) {
n.toArray(e._tempBuffer), this.updateUniform(t, e._tempBuffer, 4);
}),
(e.prototype._updateColor3ForEffect = function (e, t, n) {
void 0 === n && (n = ""), this._currentEffect.setColor3(e + n, t);
}),
(e.prototype._updateColor3ForUniform = function (t, n) {
n.toArray(e._tempBuffer), this.updateUniform(t, e._tempBuffer, 3);
}),
(e.prototype._updateColor4ForEffect = function (e, t, n, i) {
void 0 === i && (i = ""), this._currentEffect.setColor4(e + i, t, n);
}),
(e.prototype._updateColor4ForUniform = function (t, n, i) {
n.toArray(e._tempBuffer), (e._tempBuffer[3] = i), this.updateUniform(t, e._tempBuffer, 4);
}),
(e.prototype.setTexture = function (e, t) {
this._currentEffect.setTexture(e, t);
}),
(e.prototype.updateUniformDirectly = function (e, t) {
this.updateUniform(e, t, t.length), this.update();
}),
(e.prototype.bindToEffect = function (e, t) {
(this._currentEffect = e), !this._noUBO && this._buffer && ((this._alreadyBound = !0), e.bindUniformBuffer(this._buffer, t));
}),
(e.prototype.dispose = function () {
if (!this._noUBO) {
var e = this._engine._uniformBuffers,
t = e.indexOf(this);
-1 !== t && ((e[t] = e[e.length - 1]), e.pop()), this._buffer && this._engine._releaseBuffer(this._buffer) && (this._buffer = null);
}
}),
(e._MAX_UNIFORM_SIZE = 256),
(e._tempBuffer = new Float32Array(e._MAX_UNIFORM_SIZE)),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return p;
});
var i = n(2),
r = n(3),
o = n(6),
a = n(4),
s = n(21),
c = n(28),
l = n(8),
u = n(44),
h = n(200),
d =
(n(166),
n(209),
"\nattribute vec2 position;\n\nvarying vec2 vPosition;\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvPosition=position;\nvUV=position*madd+madd;\ngl_Position=vec4(position,0.0,1.0);\n}");
n(7).a.ShadersStore.proceduralVertexShader = d;
var p = (function (e) {
function t(t, n, i, r, c, l, u) {
void 0 === c && (c = null), void 0 === l && (l = !0), void 0 === u && (u = !1);
var d = e.call(this, null, r, !l) || this;
(d.isCube = u),
(d.isEnabled = !0),
(d.autoClear = !0),
(d.onGeneratedObservable = new o.c()),
(d._textures = {}),
(d._currentRefreshId = -1),
(d._frameId = -1),
(d._refreshRate = 1),
(d._vertexBuffers = {}),
(d._uniforms = new Array()),
(d._samplers = new Array()),
(d._floats = {}),
(d._ints = {}),
(d._floatsArrays = {}),
(d._colors3 = {}),
(d._colors4 = {}),
(d._vectors2 = {}),
(d._vectors3 = {}),
(d._matrices = {}),
(d._fallbackTextureUsed = !1),
(d._cachedDefines = ""),
(d._contentUpdateId = -1);
var p = (r = d.getScene())._getComponent(s.a.NAME_PROCEDURALTEXTURE);
p || ((p = new h.a(r)), r._addComponent(p)),
r.proceduralTextures.push(d),
(d._engine = r.getEngine()),
(d.name = t),
(d.isRenderTarget = !0),
(d._size = n),
(d._generateMipMaps = l),
d.setFragment(i),
(d._fallbackTexture = c),
u
? ((d._texture = d._engine.createRenderTargetCubeTexture(n, { generateMipMaps: l, generateDepthBuffer: !1, generateStencilBuffer: !1 })), d.setFloat("face", 0))
: (d._texture = d._engine.createRenderTargetTexture(n, { generateMipMaps: l, generateDepthBuffer: !1, generateStencilBuffer: !1 }));
var f = [];
return f.push(1, 1), f.push(-1, 1), f.push(-1, -1), f.push(1, -1), (d._vertexBuffers[a.b.PositionKind] = new a.b(d._engine, f, a.b.PositionKind, !1, !1, 2)), d._createIndexBuffer(), d;
}
return (
Object(i.d)(t, e),
(t.prototype.getEffect = function () {
return this._effect;
}),
(t.prototype.getContent = function () {
return (this._contentData && this._frameId === this._contentUpdateId) || ((this._contentData = this.readPixels(0, 0, this._contentData)), (this._contentUpdateId = this._frameId)), this._contentData;
}),
(t.prototype._createIndexBuffer = function () {
var e = this._engine,
t = [];
t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), (this._indexBuffer = e.createIndexBuffer(t));
}),
(t.prototype._rebuild = function () {
var e = this._vertexBuffers[a.b.PositionKind];
e && e._rebuild(), this._createIndexBuffer(), this.refreshRate === u.a.REFRESHRATE_RENDER_ONCE && (this.refreshRate = u.a.REFRESHRATE_RENDER_ONCE);
}),
(t.prototype.reset = function () {
void 0 !== this._effect && this._effect.dispose();
}),
(t.prototype._getDefines = function () {
return "";
}),
(t.prototype.isReady = function () {
var e,
t = this,
n = this._engine;
if (!this._fragment) return !1;
if (this._fallbackTextureUsed) return !0;
var i = this._getDefines();
return (
!(!this._effect || i !== this._cachedDefines || !this._effect.isReady()) ||
((e = void 0 !== this._fragment.fragmentElement ? { vertex: "procedural", fragmentElement: this._fragment.fragmentElement } : { vertex: "procedural", fragment: this._fragment }),
(this._cachedDefines = i),
(this._effect = n.createEffect(e, [a.b.PositionKind], this._uniforms, this._samplers, i, void 0, void 0, function () {
t.releaseInternalTexture(), t._fallbackTexture && ((t._texture = t._fallbackTexture._texture), t._texture && t._texture.incrementReferences()), (t._fallbackTextureUsed = !0);
})),
this._effect.isReady())
);
}),
(t.prototype.resetRefreshCounter = function () {
this._currentRefreshId = -1;
}),
(t.prototype.setFragment = function (e) {
this._fragment = e;
}),
Object.defineProperty(t.prototype, "refreshRate", {
get: function () {
return this._refreshRate;
},
set: function (e) {
(this._refreshRate = e), this.resetRefreshCounter();
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._shouldRender = function () {
return this.isEnabled && this.isReady() && this._texture
? !this._fallbackTextureUsed && (-1 === this._currentRefreshId || this.refreshRate === this._currentRefreshId ? ((this._currentRefreshId = 1), this._frameId++, !0) : (this._currentRefreshId++, !1))
: (this._texture && (this._texture.isReady = !1), !1);
}),
(t.prototype.getRenderSize = function () {
return this._size;
}),
(t.prototype.resize = function (e, t) {
this._fallbackTextureUsed || (this.releaseInternalTexture(), (this._texture = this._engine.createRenderTargetTexture(e, t)), (this._size = e), (this._generateMipMaps = t));
}),
(t.prototype._checkUniform = function (e) {
-1 === this._uniforms.indexOf(e) && this._uniforms.push(e);
}),
(t.prototype.setTexture = function (e, t) {
return -1 === this._samplers.indexOf(e) && this._samplers.push(e), (this._textures[e] = t), this;
}),
(t.prototype.setFloat = function (e, t) {
return this._checkUniform(e), (this._floats[e] = t), this;
}),
(t.prototype.setInt = function (e, t) {
return this._checkUniform(e), (this._ints[e] = t), this;
}),
(t.prototype.setFloats = function (e, t) {
return this._checkUniform(e), (this._floatsArrays[e] = t), this;
}),
(t.prototype.setColor3 = function (e, t) {
return this._checkUniform(e), (this._colors3[e] = t), this;
}),
(t.prototype.setColor4 = function (e, t) {
return this._checkUniform(e), (this._colors4[e] = t), this;
}),
(t.prototype.setVector2 = function (e, t) {
return this._checkUniform(e), (this._vectors2[e] = t), this;
}),
(t.prototype.setVector3 = function (e, t) {
return this._checkUniform(e), (this._vectors3[e] = t), this;
}),
(t.prototype.setMatrix = function (e, t) {
return this._checkUniform(e), (this._matrices[e] = t), this;
}),
(t.prototype.render = function (e) {
var t = this.getScene();
if (t) {
var n = this._engine;
for (var i in (n.enableEffect(this._effect), n.setState(!1), this._textures)) this._effect.setTexture(i, this._textures[i]);
for (i in this._ints) this._effect.setInt(i, this._ints[i]);
for (i in this._floats) this._effect.setFloat(i, this._floats[i]);
for (i in this._floatsArrays) this._effect.setArray(i, this._floatsArrays[i]);
for (i in this._colors3) this._effect.setColor3(i, this._colors3[i]);
for (i in this._colors4) {
var r = this._colors4[i];
this._effect.setFloat4(i, r.r, r.g, r.b, r.a);
}
for (i in this._vectors2) this._effect.setVector2(i, this._vectors2[i]);
for (i in this._vectors3) this._effect.setVector3(i, this._vectors3[i]);
for (i in this._matrices) this._effect.setMatrix(i, this._matrices[i]);
if (this._texture) {
if (this.isCube)
for (var o = 0; o < 6; o++)
n.bindFramebuffer(this._texture, o, void 0, void 0, !0),
n.bindBuffers(this._vertexBuffers, this._indexBuffer, this._effect),
this._effect.setFloat("face", o),
this.autoClear && n.clear(t.clearColor, !0, !1, !1),
n.drawElementsType(c.a.TriangleFillMode, 0, 6),
5 === o && n.generateMipMapsForCubemap(this._texture);
else
n.bindFramebuffer(this._texture, 0, void 0, void 0, !0),
n.bindBuffers(this._vertexBuffers, this._indexBuffer, this._effect),
this.autoClear && n.clear(t.clearColor, !0, !1, !1),
n.drawElementsType(c.a.TriangleFillMode, 0, 6);
n.unBindFramebuffer(this._texture, this.isCube), this.onGenerated && this.onGenerated(), this.onGeneratedObservable.notifyObservers(this);
}
}
}),
(t.prototype.clone = function () {
var e = this.getSize(),
n = new t(this.name, e.width, this._fragment, this.getScene(), this._fallbackTexture, this._generateMipMaps);
return (n.hasAlpha = this.hasAlpha), (n.level = this.level), (n.coordinatesMode = this.coordinatesMode), n;
}),
(t.prototype.dispose = function () {
var t = this.getScene();
if (t) {
var n = t.proceduralTextures.indexOf(this);
n >= 0 && t.proceduralTextures.splice(n, 1);
var i = this._vertexBuffers[a.b.PositionKind];
i && (i.dispose(), (this._vertexBuffers[a.b.PositionKind] = null)), this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer) && (this._indexBuffer = null), e.prototype.dispose.call(this);
}
}),
Object(i.c)([Object(r.c)()], t.prototype, "isEnabled", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "autoClear", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "_generateMipMaps", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "_size", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "refreshRate", null),
t
);
})(l.a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(2),
r = (function (e) {
function t(t) {
var n = e.call(this) || this;
return (n._buffer = t), n;
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "underlyingResource", {
get: function () {
return this._buffer;
},
enumerable: !0,
configurable: !0,
}),
t
);
})(n(127).a);
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this.references = 0), (this.capacity = 0), (this.is32Bits = !1);
}
return (
Object.defineProperty(e.prototype, "underlyingResource", {
get: function () {
return null;
},
enumerable: !0,
configurable: !0,
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(85),
r = (function () {
function e() {}
return (
(e.GetPlanes = function (t) {
for (var n = [], r = 0; r < 6; r++) n.push(new i.a(0, 0, 0, 0));
return e.GetPlanesToRef(t, n), n;
}),
(e.GetNearPlaneToRef = function (e, t) {
var n = e.m;
(t.normal.x = n[3] + n[2]), (t.normal.y = n[7] + n[6]), (t.normal.z = n[11] + n[10]), (t.d = n[15] + n[14]), t.normalize();
}),
(e.GetFarPlaneToRef = function (e, t) {
var n = e.m;
(t.normal.x = n[3] - n[2]), (t.normal.y = n[7] - n[6]), (t.normal.z = n[11] - n[10]), (t.d = n[15] - n[14]), t.normalize();
}),
(e.GetLeftPlaneToRef = function (e, t) {
var n = e.m;
(t.normal.x = n[3] + n[0]), (t.normal.y = n[7] + n[4]), (t.normal.z = n[11] + n[8]), (t.d = n[15] + n[12]), t.normalize();
}),
(e.GetRightPlaneToRef = function (e, t) {
var n = e.m;
(t.normal.x = n[3] - n[0]), (t.normal.y = n[7] - n[4]), (t.normal.z = n[11] - n[8]), (t.d = n[15] - n[12]), t.normalize();
}),
(e.GetTopPlaneToRef = function (e, t) {
var n = e.m;
(t.normal.x = n[3] - n[1]), (t.normal.y = n[7] - n[5]), (t.normal.z = n[11] - n[9]), (t.d = n[15] - n[13]), t.normalize();
}),
(e.GetBottomPlaneToRef = function (e, t) {
var n = e.m;
(t.normal.x = n[3] + n[1]), (t.normal.y = n[7] + n[5]), (t.normal.z = n[11] + n[9]), (t.d = n[15] + n[13]), t.normalize();
}),
(e.GetPlanesToRef = function (t, n) {
e.GetNearPlaneToRef(t, n[0]), e.GetFarPlaneToRef(t, n[1]), e.GetLeftPlaneToRef(t, n[2]), e.GetRightPlaneToRef(t, n[3]), e.GetTopPlaneToRef(t, n[4]), e.GetBottomPlaneToRef(t, n[5]);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return d;
});
var i = n(110),
r = n(6),
o = n(1),
a = n(92),
s = n(27),
c = n(146),
l = n(25),
u = n(10),
h = n(51),
d = (function () {
function e(e, t, n) {
(this.name = e),
(this.id = t),
(this.bones = new Array()),
(this.needInitialSkinMatrix = !1),
(this.overrideMesh = null),
(this._isDirty = !0),
(this._meshesWithPoseMatrix = new Array()),
(this._identity = o.a.Identity()),
(this._ranges = {}),
(this._lastAbsoluteTransformsUpdateId = -1),
(this._canUseTextureForBones = !1),
(this._uniqueId = 0),
(this._numBonesWithLinkedTransformNode = 0),
(this._hasWaitingData = null),
(this.doNotSerialize = !1),
(this._useTextureToStoreBoneMatrices = !0),
(this._animationPropertiesOverride = null),
(this.onBeforeComputeObservable = new r.c()),
(this.bones = []),
(this._scene = n || l.a.LastCreatedScene),
(this._uniqueId = this._scene.getUniqueId()),
this._scene.addSkeleton(this),
(this._isDirty = !0);
var i = this._scene.getEngine().getCaps();
this._canUseTextureForBones = i.textureFloat && i.maxVertexTextureImageUnits > 0;
}
return (
Object.defineProperty(e.prototype, "useTextureToStoreBoneMatrices", {
get: function () {
return this._useTextureToStoreBoneMatrices;
},
set: function (e) {
(this._useTextureToStoreBoneMatrices = e), this._markAsDirty();
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "animationPropertiesOverride", {
get: function () {
return this._animationPropertiesOverride ? this._animationPropertiesOverride : this._scene.animationPropertiesOverride;
},
set: function (e) {
this._animationPropertiesOverride = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isUsingTextureForMatrices", {
get: function () {
return this.useTextureToStoreBoneMatrices && this._canUseTextureForBones;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "uniqueId", {
get: function () {
return this._uniqueId;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "Skeleton";
}),
(e.prototype.getChildren = function () {
return this.bones.filter(function (e) {
return !e.getParent();
});
}),
(e.prototype.getTransformMatrices = function (e) {
return this.needInitialSkinMatrix && e._bonesTransformMatrices ? e._bonesTransformMatrices : (this._transformMatrices || this.prepare(), this._transformMatrices);
}),
(e.prototype.getTransformMatrixTexture = function (e) {
return this.needInitialSkinMatrix && e._transformMatrixTexture ? e._transformMatrixTexture : this._transformMatrixTexture;
}),
(e.prototype.getScene = function () {
return this._scene;
}),
(e.prototype.toString = function (e) {
var t = "Name: " + this.name + ", nBones: " + this.bones.length;
if (((t += ", nAnimationRanges: " + (this._ranges ? Object.keys(this._ranges).length : "none")), e)) {
t += ", Ranges: {";
var n = !0;
for (var i in this._ranges) n && ((t += ", "), (n = !1)), (t += i);
t += "}";
}
return t;
}),
(e.prototype.getBoneIndexByName = function (e) {
for (var t = 0, n = this.bones.length; t < n; t++) if (this.bones[t].name === e) return t;
return -1;
}),
(e.prototype.createAnimationRange = function (e, t, n) {
if (!this._ranges[e]) {
this._ranges[e] = new c.a(e, t, n);
for (var i = 0, r = this.bones.length; i < r; i++) this.bones[i].animations[0] && this.bones[i].animations[0].createRange(e, t, n);
}
}),
(e.prototype.deleteAnimationRange = function (e, t) {
void 0 === t && (t = !0);
for (var n = 0, i = this.bones.length; n < i; n++) this.bones[n].animations[0] && this.bones[n].animations[0].deleteRange(e, t);
this._ranges[e] = null;
}),
(e.prototype.getAnimationRange = function (e) {
return this._ranges[e];
}),
(e.prototype.getAnimationRanges = function () {
var e,
t = [];
for (e in this._ranges) t.push(this._ranges[e]);
return t;
}),
(e.prototype.copyAnimationRange = function (e, t, n) {
if ((void 0 === n && (n = !1), this._ranges[t] || !e.getAnimationRange(t))) return !1;
var i,
r,
o = !0,
a = this._getHighestAnimationFrame() + 1,
s = {},
l = e.bones;
for (r = 0, i = l.length; r < i; r++) s[l[r].name] = l[r];
this.bones.length !== l.length && (u.a.Warn("copyAnimationRange: this rig has " + this.bones.length + " bones, while source as " + l.length), (o = !1));
var h = n && this.dimensionsAtRest && e.dimensionsAtRest ? this.dimensionsAtRest.divide(e.dimensionsAtRest) : null;
for (r = 0, i = this.bones.length; r < i; r++) {
var d = this.bones[r].name,
p = s[d];
p ? (o = o && this.bones[r].copyAnimationRange(p, t, a, n, h)) : (u.a.Warn("copyAnimationRange: not same rig, missing source bone " + d), (o = !1));
}
var f = e.getAnimationRange(t);
return f && (this._ranges[t] = new c.a(t, f.from + a, f.to + a)), o;
}),
(e.prototype.returnToRest = function () {
for (var e = 0; e < this.bones.length; e++) this.bones[e].returnToRest();
}),
(e.prototype._getHighestAnimationFrame = function () {
for (var e = 0, t = 0, n = this.bones.length; t < n; t++)
if (this.bones[t].animations[0]) {
var i = this.bones[t].animations[0].getHighestFrame();
e < i && (e = i);
}
return e;
}),
(e.prototype.beginAnimation = function (e, t, n, i) {
var r = this.getAnimationRange(e);
return r ? this._scene.beginAnimation(this, r.from, r.to, t, n, i) : null;
}),
(e.prototype._markAsDirty = function () {
this._isDirty = !0;
}),
(e.prototype._registerMeshWithPoseMatrix = function (e) {
this._meshesWithPoseMatrix.push(e);
}),
(e.prototype._unregisterMeshWithPoseMatrix = function (e) {
var t = this._meshesWithPoseMatrix.indexOf(e);
t > -1 && this._meshesWithPoseMatrix.splice(t, 1);
}),
(e.prototype._computeTransformMatrices = function (e, t) {
this.onBeforeComputeObservable.notifyObservers(this);
for (var n = 0; n < this.bones.length; n++) {
var i = this.bones[n];
i._childUpdateId++;
var r = i.getParent();
if (
(r ? i.getLocalMatrix().multiplyToRef(r.getWorldMatrix(), i.getWorldMatrix()) : t ? i.getLocalMatrix().multiplyToRef(t, i.getWorldMatrix()) : i.getWorldMatrix().copyFrom(i.getLocalMatrix()), -1 !== i._index)
) {
var o = null === i._index ? n : i._index;
i.getInvertedAbsoluteTransform().multiplyToArray(i.getWorldMatrix(), e, 16 * o);
}
}
this._identity.copyToArray(e, 16 * this.bones.length);
}),
(e.prototype.prepare = function () {
if (this._numBonesWithLinkedTransformNode > 0)
for (var e = 0, t = this.bones; e < t.length; e++) {
var n = t[e];
n._linkedTransformNode && (n._linkedTransformNode.computeWorldMatrix(), (n._matrix = n._linkedTransformNode._localMatrix), n.markAsDirty());
}
if (this._isDirty) {
if (this.needInitialSkinMatrix)
for (var i = 0; i < this._meshesWithPoseMatrix.length; i++) {
var r = this._meshesWithPoseMatrix[i],
s = r.getPoseMatrix();
if (
((r._bonesTransformMatrices && r._bonesTransformMatrices.length === 16 * (this.bones.length + 1)) || (r._bonesTransformMatrices = new Float32Array(16 * (this.bones.length + 1))),
this._synchronizedWithMesh !== r)
) {
this._synchronizedWithMesh = r;
for (var c = 0; c < this.bones.length; c++) {
var l = this.bones[c];
if (!l.getParent()) l.getBaseMatrix().multiplyToRef(s, o.c.Matrix[1]), l._updateDifferenceMatrix(o.c.Matrix[1]);
}
if (this.isUsingTextureForMatrices) {
var u = 4 * (this.bones.length + 1);
(r._transformMatrixTexture && r._transformMatrixTexture.getSize().width === u) ||
(r._transformMatrixTexture && r._transformMatrixTexture.dispose(),
(r._transformMatrixTexture = a.a.CreateRGBATexture(r._bonesTransformMatrices, 4 * (this.bones.length + 1), 1, this._scene, !1, !1, 1, 1)));
}
}
this._computeTransformMatrices(r._bonesTransformMatrices, s), this.isUsingTextureForMatrices && r._transformMatrixTexture && r._transformMatrixTexture.update(r._bonesTransformMatrices);
}
else
(this._transformMatrices && this._transformMatrices.length === 16 * (this.bones.length + 1)) ||
((this._transformMatrices = new Float32Array(16 * (this.bones.length + 1))),
this.isUsingTextureForMatrices &&
(this._transformMatrixTexture && this._transformMatrixTexture.dispose(),
(this._transformMatrixTexture = a.a.CreateRGBATexture(this._transformMatrices, 4 * (this.bones.length + 1), 1, this._scene, !1, !1, 1, 1)))),
this._computeTransformMatrices(this._transformMatrices, null),
this.isUsingTextureForMatrices && this._transformMatrixTexture && this._transformMatrixTexture.update(this._transformMatrices);
(this._isDirty = !1), this._scene._activeBones.addCount(this.bones.length, !1);
}
}),
(e.prototype.getAnimatables = function () {
if (!this._animatables || this._animatables.length !== this.bones.length) {
this._animatables = [];
for (var e = 0; e < this.bones.length; e++) this._animatables.push(this.bones[e]);
}
return this._animatables;
}),
(e.prototype.clone = function (t, n) {
var r = new e(t, n || t, this._scene);
(r.needInitialSkinMatrix = this.needInitialSkinMatrix), (r.overrideMesh = this.overrideMesh);
for (var o = 0; o < this.bones.length; o++) {
var a = this.bones[o],
s = null,
c = a.getParent();
if (c) {
var l = this.bones.indexOf(c);
s = r.bones[l];
}
var u = new i.a(a.name, r, s, a.getBaseMatrix().clone(), a.getRestPose().clone());
(u._index = a._index), a._linkedTransformNode && u.linkTransformNode(a._linkedTransformNode), h.a.DeepCopy(a.animations, u.animations);
}
if (this._ranges)
for (var d in ((r._ranges = {}), this._ranges)) {
var p = this._ranges[d];
p && (r._ranges[d] = p.clone());
}
return (this._isDirty = !0), r;
}),
(e.prototype.enableBlending = function (e) {
void 0 === e && (e = 0.01),
this.bones.forEach(function (t) {
t.animations.forEach(function (t) {
(t.enableBlending = !0), (t.blendingSpeed = e);
});
});
}),
(e.prototype.dispose = function () {
(this._meshesWithPoseMatrix = []),
this.getScene().stopAnimation(this),
this.getScene().removeSkeleton(this),
this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), (this._transformMatrixTexture = null));
}),
(e.prototype.serialize = function () {
var e = {};
(e.name = this.name), (e.id = this.id), this.dimensionsAtRest && (e.dimensionsAtRest = this.dimensionsAtRest.asArray()), (e.bones = []), (e.needInitialSkinMatrix = this.needInitialSkinMatrix);
for (var t = 0; t < this.bones.length; t++) {
var n = this.bones[t],
i = n.getParent(),
r = { parentBoneIndex: i ? this.bones.indexOf(i) : -1, name: n.name, matrix: n.getBaseMatrix().toArray(), rest: n.getRestPose().toArray() };
for (var o in (e.bones.push(r),
n.length && (r.length = n.length),
n.metadata && (r.metadata = n.metadata),
n.animations && n.animations.length > 0 && (r.animation = n.animations[0].serialize()),
(e.ranges = []),
this._ranges)) {
var a = this._ranges[o];
if (a) {
var s = {};
(s.name = o), (s.from = a.from), (s.to = a.to), e.ranges.push(s);
}
}
}
return e;
}),
(e.Parse = function (t, n) {
var r,
a = new e(t.name, t.id, n);
for (t.dimensionsAtRest && (a.dimensionsAtRest = o.e.FromArray(t.dimensionsAtRest)), a.needInitialSkinMatrix = t.needInitialSkinMatrix, r = 0; r < t.bones.length; r++) {
var c = t.bones[r],
l = null;
c.parentBoneIndex > -1 && (l = a.bones[c.parentBoneIndex]);
var u = c.rest ? o.a.FromArray(c.rest) : null,
h = new i.a(c.name, a, l, o.a.FromArray(c.matrix), u);
void 0 !== c.id && null !== c.id && (h.id = c.id),
c.length && (h.length = c.length),
c.metadata && (h.metadata = c.metadata),
c.animation && h.animations.push(s.a.Parse(c.animation)),
void 0 !== c.linkedTransformNodeId && null !== c.linkedTransformNodeId && ((a._hasWaitingData = !0), (h._waitingTransformNodeId = c.linkedTransformNodeId));
}
if (t.ranges)
for (r = 0; r < t.ranges.length; r++) {
var d = t.ranges[r];
a.createAnimationRange(d.name, d.from, d.to);
}
return a;
}),
(e.prototype.computeAbsoluteTransforms = function (e) {
void 0 === e && (e = !1);
var t = this._scene.getRenderId();
(this._lastAbsoluteTransformsUpdateId != t || e) && (this.bones[0].computeAbsoluteTransforms(), (this._lastAbsoluteTransformsUpdateId = t));
}),
(e.prototype.getPoseMatrix = function () {
var e = null;
return this._meshesWithPoseMatrix.length > 0 && (e = this._meshesWithPoseMatrix[0].getPoseMatrix()), e;
}),
(e.prototype.sortBones = function () {
for (var e = new Array(), t = new Array(this.bones.length), n = 0; n < this.bones.length; n++) this._sortBones(n, e, t);
this.bones = e;
}),
(e.prototype._sortBones = function (e, t, n) {
if (!n[e]) {
n[e] = !0;
var i = this.bones[e];
void 0 === i._index && (i._index = e);
var r = i.getParent();
r && this._sortBones(this.bones.indexOf(r), t, n), t.push(i);
}
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this.hoverCursor = ""), (this.actions = new Array()), (this.isRecursive = !1);
}
return (
Object.defineProperty(e, "HasTriggers", {
get: function () {
for (var t in e.Triggers) if (e.Triggers.hasOwnProperty(t)) return !0;
return !1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e, "HasPickTriggers", {
get: function () {
for (var t in e.Triggers)
if (e.Triggers.hasOwnProperty(t)) {
var n = parseInt(t);
if (n >= 1 && n <= 7) return !0;
}
return !1;
},
enumerable: !0,
configurable: !0,
}),
(e.HasSpecificTrigger = function (t) {
for (var n in e.Triggers) {
if (e.Triggers.hasOwnProperty(n)) if (parseInt(n) === t) return !0;
}
return !1;
}),
(e.Triggers = {}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "morphTargetsVertexGlobalDeclaration",
r = "#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "morphTargetsVertexDeclaration",
r =
"#ifdef MORPHTARGETS\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#ifdef MORPHTARGETS_UV\nattribute vec2 uv_{X};\n#endif\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i,
r,
o,
a,
s,
c,
l,
u =
(this && this.__decorate) ||
function (e, t, n, i) {
var r,
o = arguments.length,
a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i);
else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a);
return o > 3 && a && Object.defineProperty(t, n, a), a;
},
h =
(this && this.__metadata) ||
function (e, t) {
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t);
};
Object.defineProperty(t, "__esModule", { value: !0 }),
(t.TrackPiece = t.TrackPieceInfo = t.TrackCollisionInfo = t.CameraTransition = t.PathInfo = t.JsonVector3 = t.RegionZoneInfo = t.CoinPlacementSettings = t.RegionInfo = t.TutorialTrackPacing = t.TrackPacing = t.NewTrackPieceInfo = t.RunnerSpeedData = t.ZonePacingData = t.PieceData = t.TutorialMilestoneData = t.MilestoneData = t.TrackPieceDefinition = t.JunctionPostPiecesContainer = t.ExtraPieceDefinition = t.TrackVariationDefinition = t.TrackSection = t.QueuedTrackPiece = t.OnEnterPieceInfo = t.DeathTypes = t.CameraSettingsType = t.TrackTrigger = t.TutorialSoundEffectType = t.TutorialMessageDisplayType = t.BonusItemCategory = t.BonusItemType = t.CoinPlacement = t.TRGameRunnerGameplay = t.LedgeZoneTransition = t.TrackPieceCategory = t.TrackPieceSpecial = t.TrackPieceAttachType = t.TrackID = void 0),
n(176);
const d = n(177),
p = n(62),
f = n(232),
m = n(150),
g = n(214);
let b = (i = class {
isEquals(e) {
return e.RegionID == this.RegionID && e.ZoneID == this.ZoneID && e.PieceID == this.PieceID;
}
static create(e, t, n) {
const r = new i();
return (r.RegionID = e), (r.ZoneID = t), (r.PieceID = n), r;
}
});
var _, v, y, C, P, x, T, S, O, E, M, A;
u([d.jsonMember, h("design:type", Number)], b.prototype, "RegionID", void 0),
u([d.jsonMember, h("design:type", Number)], b.prototype, "ZoneID", void 0),
u([d.jsonMember, h("design:type", Number)], b.prototype, "PieceID", void 0),
(b = i = u([d.jsonObject], b)),
(t.TrackID = b),
(function (e) {
(e[(e.Normal = 0)] = "Normal"), (e[(e.Basic = 1)] = "Basic");
})((_ = t.TrackPieceAttachType || (t.TrackPieceAttachType = {}))),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.Start = 1)] = "Start"), (e[(e.End = 2)] = "End");
})((v = t.TrackPieceSpecial || (t.TrackPieceSpecial = {}))),
(function (e) {
(e[(e.Normal = 0)] = "Normal"),
(e[(e.CompoundPieceStart = 1)] = "CompoundPieceStart"),
(e[(e.CompoundPieceMiddle = 2)] = "CompoundPieceMiddle"),
(e[(e.CompoundPieceEnd = 3)] = "CompoundPieceEnd"),
(e[(e.RegionTransitionStart = 4)] = "RegionTransitionStart"),
(e[(e.RegionTransitionEnd = 5)] = "RegionTransitionEnd"),
(e[(e.ZoneEntranceTransition = 6)] = "ZoneEntranceTransition"),
(e[(e.ZoneExitTransition = 7)] = "ZoneExitTransition"),
(e[(e.Total = 8)] = "Total");
})((y = t.TrackPieceCategory || (t.TrackPieceCategory = {}))),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.LeftToRight = 1)] = "LeftToRight"), (e[(e.RightToLeft = 2)] = "RightToLeft");
})((C = t.LedgeZoneTransition || (t.LedgeZoneTransition = {}))),
(function (e) {
(e[(e.Run = 0)] = "Run"), (e[(e.Ride = 1)] = "Ride"), (e[(e.WaterSlide = 2)] = "WaterSlide"), (e[(e.Luge = 3)] = "Luge"), (e[(e.DownHillSlide = 4)] = "DownHillSlide");
})((P = t.TRGameRunnerGameplay || (t.TRGameRunnerGameplay = {}))),
(function (e) {
(e[(e.Left = 0)] = "Left"),
(e[(e.Center = 1)] = "Center"),
(e[(e.Right = 2)] = "Right"),
(e[(e.None = 3)] = "None"),
(e[(e.LeftOrCenter = 4)] = "LeftOrCenter"),
(e[(e.LeftOrRight = 5)] = "LeftOrRight"),
(e[(e.CenterOrRight = 6)] = "CenterOrRight"),
(e[(e.Any = 7)] = "Any"),
(e[(e.Default = 8)] = "Default"),
(e[(e.Total = 9)] = "Total");
})((x = t.CoinPlacement || (t.CoinPlacement = {}))),
(function (e) {
(e[(e.Default = -2)] = "Default"),
(e[(e.None = -1)] = "None"),
(e[(e.Coin = 0)] = "Coin"),
(e[(e.CoinDouble = 1)] = "CoinDouble"),
(e[(e.CoinTriple = 2)] = "CoinTriple"),
(e[(e.Vacuum = 3)] = "Vacuum"),
(e[(e.Boost = 4)] = "Boost"),
(e[(e.Gem = 5)] = "Gem"),
(e[(e.MegaCoin = 6)] = "MegaCoin"),
(e[(e.Shield = 7)] = "Shield"),
(e[(e.Bolt = 8)] = "Bolt"),
(e[(e.Collectable = 9)] = "Collectable"),
(e[(e.ScoreBonus = 10)] = "ScoreBonus"),
(e[(e.TokenCharacter = 11)] = "TokenCharacter"),
(e[(e.TokenRegion = 12)] = "TokenRegion"),
(e[(e.TokenAttachment = 13)] = "TokenAttachment");
})((T = t.BonusItemType || (t.BonusItemType = {}))),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.Pickups = 1)] = "Pickups"), (e[(e.Coins = 2)] = "Coins");
})((S = t.BonusItemCategory || (t.BonusItemCategory = {}))),
(function (e) {
(e[(e.None = 0)] = "None"),
(e[(e.SwipeUpInstruction = 1)] = "SwipeUpInstruction"),
(e[(e.SwipeDownInstruction = 2)] = "SwipeDownInstruction"),
(e[(e.SwipeToTurn = 3)] = "SwipeToTurn"),
(e[(e.TiltInstruction = 4)] = "TiltInstruction"),
(e[(e.SwipeUp = 5)] = "SwipeUp"),
(e[(e.SwipeDown = 6)] = "SwipeDown"),
(e[(e.SwipeLeft = 7)] = "SwipeLeft"),
(e[(e.SwipeRight = 8)] = "SwipeRight"),
(e[(e.TiltLeft = 9)] = "TiltLeft"),
(e[(e.TiltRight = 10)] = "TiltRight"),
(e[(e.DoubleTapInstruction = 11)] = "DoubleTapInstruction"),
(e[(e.NiceJobText = 12)] = "NiceJobText"),
(e[(e.YouAreReadyText = 13)] = "YouAreReadyText"),
(e[(e.SwipeUpAndTiltInstruction = 14)] = "SwipeUpAndTiltInstruction"),
(e[(e.SwipeUpAndTiltRight = 15)] = "SwipeUpAndTiltRight"),
(e[(e.SwipeUpAndTiltLeft = 16)] = "SwipeUpAndTiltLeft"),
(e[(e.CustomMessageFadeGrow = 17)] = "CustomMessageFadeGrow"),
(e[(e.CustomMessageBounce = 18)] = "CustomMessageBounce"),
(e[(e.UnlockPowerMeter = 19)] = "UnlockPowerMeter");
})((O = t.TutorialMessageDisplayType || (t.TutorialMessageDisplayType = {}))),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.ScoreBlast = 1)] = "ScoreBlast"), (e[(e.Wooosh = 2)] = "Wooosh");
})((E = t.TutorialSoundEffectType || (t.TutorialSoundEffectType = {}))),
(function (e) {
(e[(e.None = 0)] = "None"),
(e[(e.CameraTransition = 1)] = "CameraTransition"),
(e[(e.Water = 2)] = "Water"),
(e[(e.MissedTurn = 3)] = "MissedTurn"),
(e[(e.Obstacle = 4)] = "Obstacle"),
(e[(e.Stumble = 5)] = "Stumble"),
(e[(e.FallSaver = 6)] = "FallSaver"),
(e[(e.Shadow = 7)] = "Shadow"),
(e[(e.WaterSlideZoneStart = 8)] = "WaterSlideZoneStart"),
(e[(e.WaterSlideZoneStop = 9)] = "WaterSlideZoneStop"),
(e[(e.ZipLineLetGo = 10)] = "ZipLineLetGo"),
(e[(e.AnimationStart = 11)] = "AnimationStart"),
(e[(e.MineCartZoneStart = 12)] = "MineCartZoneStart"),
(e[(e.MineCartZoneStop = 13)] = "MineCartZoneStop"),
(e[(e.ForestZoneStart = 14)] = "ForestZoneStart"),
(e[(e.ForestZoneStop = 15)] = "ForestZoneStop"),
(e[(e.NarrowZoneStart = 16)] = "NarrowZoneStart"),
(e[(e.NarrowZoneStop = 17)] = "NarrowZoneStop");
})((M = t.TrackTrigger || (t.TrackTrigger = {}))),
(function (e) {
(e[(e.Default = 0)] = "Default"), (e[(e.Inherit = 1)] = "Inherit"), (e[(e.Custom = 2)] = "Custom");
})(t.CameraSettingsType || (t.CameraSettingsType = {})),
(function (e) {
(e[(e.Fall = 0)] = "Fall"),
(e[(e.Eaten = 1)] = "Eaten"),
(e[(e.Fire = 2)] = "Fire"),
(e[(e.MineDuck = 3)] = "MineDuck"),
(e[(e.MineLedge = 4)] = "MineLedge"),
(e[(e.Mine = 5)] = "Mine"),
(e[(e.Wheel = 6)] = "Wheel"),
(e[(e.WaterLeft = 7)] = "WaterLeft"),
(e[(e.Ledge = 8)] = "Ledge"),
(e[(e.SceneryTree = 9)] = "SceneryTree"),
(e[(e.SceneryRock = 10)] = "SceneryRock"),
(e[(e.DeathThrow = 11)] = "DeathThrow"),
(e[(e.None = 12)] = "None"),
(e[(e.WaterRight = 13)] = "WaterRight");
})((A = t.DeathTypes || (t.DeathTypes = {})));
let I = class {
constructor() {
(this.TutorialMessageType = O.None),
(this.DisplayMessageText = ""),
(this.SetPlayerPowerPointsToMax = 0),
(this.ForceCoinsPlacementOnTrackPiece = 0),
(this.CoinPlacementLocation = x.None),
(this.PickupTypeToPlace = T.None),
(this.TutorialSoundEffect = E.None);
}
};
u([d.jsonMember, h("design:type", Number)], I.prototype, "TutorialMessageType", void 0),
u([d.jsonMember, h("design:type", String)], I.prototype, "DisplayMessageText", void 0),
u([d.jsonMember, h("design:type", Number)], I.prototype, "SetPlayerPowerPointsToMax", void 0),
u([d.jsonMember, h("design:type", Number)], I.prototype, "ForceCoinsPlacementOnTrackPiece", void 0),
u([d.jsonMember, h("design:type", Number)], I.prototype, "CoinPlacementLocation", void 0),
u([d.jsonMember, h("design:type", Number)], I.prototype, "ForcePickupPlacementOnTrackPiece", void 0),
u([d.jsonMember, h("design:type", Number)], I.prototype, "PickupTypeToPlace", void 0),
u([d.jsonMember, h("design:type", Number)], I.prototype, "TutorialSoundEffect", void 0),
(I = u([d.jsonObject], I)),
(t.OnEnterPieceInfo = I);
let D = class {
constructor(e, t) {
(this.Attach = _.Normal), (this.EnterPiece = new I()), (this.ID = e), (this.Variation = t);
}
};
u([d.jsonMember, h("design:type", b)], D.prototype, "ID", void 0),
u([d.jsonMember, h("design:type", String)], D.prototype, "Variation", void 0),
u([d.jsonMember, h("design:type", Number)], D.prototype, "Attach", void 0),
u([d.jsonMember, h("design:type", I)], D.prototype, "EnterPiece", void 0),
(D = u([d.jsonObject, h("design:paramtypes", [b, String])], D)),
(t.QueuedTrackPiece = D);
let R = class {
constructor() {
(this.Pieces = []), (this.TrackLoop = 0);
}
};
u([d.jsonArrayMember(D), h("design:type", Array)], R.prototype, "Pieces", void 0), u([d.jsonMember, h("design:type", Number)], R.prototype, "TrackLoop", void 0), (R = u([d.jsonObject], R)), (t.TrackSection = R);
let w = class {
constructor() {
(this.PoolPreloadAmount = 0), (this.Frequency = 0), (this.CoinPlacement = x.None), (this.CanSpawnPowerup = 0);
}
};
u([d.jsonMember, h("design:type", String)], w.prototype, "PieceName", void 0),
u([d.jsonMember, h("design:type", String)], w.prototype, "PiecePath", void 0),
u([d.jsonMember, h("design:type", Number)], w.prototype, "PoolPreloadAmount", void 0),
u([d.jsonMember, h("design:type", Number)], w.prototype, "Frequency", void 0),
u([d.jsonMember, h("design:type", Number)], w.prototype, "CoinPlacement", void 0),
u([d.jsonMember, h("design:type", Number)], w.prototype, "CanSpawnPowerup", void 0),
(w = u([d.jsonObject], w)),
(t.TrackVariationDefinition = w);
let L = (r = class {
constructor() {
(this.OverrideCoinPlacement = 0), (this.CoinPlacement = x.None), (this.OverrideCanSpawnPowerup = 0), (this.CanSpawnPowerup = 0);
}
});
(L.default = new r()),
u([d.jsonMember, h("design:type", b)], L.prototype, "ID", void 0),
u([d.jsonMember, h("design:type", String)], L.prototype, "VariationName", void 0),
u([d.jsonMember, h("design:type", Number)], L.prototype, "OverrideCoinPlacement", void 0),
u([d.jsonMember, h("design:type", Number)], L.prototype, "CoinPlacement", void 0),
u([d.jsonMember, h("design:type", Number)], L.prototype, "OverrideCanSpawnPowerup", void 0),
u([d.jsonMember, h("design:type", Number)], L.prototype, "CanSpawnPowerup", void 0),
(L = r = u([d.jsonObject], L)),
(t.ExtraPieceDefinition = L);
let F = class {
constructor() {
this.PathPostPieces = [];
}
};
u([d.jsonArrayMember(L), h("design:type", Array)], F.prototype, "PathPostPieces", void 0), (F = u([d.jsonObject], F)), (t.JunctionPostPiecesContainer = F);
let N = class {
constructor() {
(this.DisplayName = "INVALID"),
(this.Name = "INVALID"),
(this.ID = new b()),
(this.IsTurnLeft = 0),
(this.IsTurnRight = 0),
(this.IsJunction = 0),
(this.IsYJunction = 0),
(this.IsOptionalJunction = 0),
(this.IsSlideUnder = 0),
(this.IsJumpOver = 0),
(this.IsStumble = 0),
(this.IsLedgeLeft = 0),
(this.IsLedgeRight = 0),
(this.IsLedgeCenter = 0),
(this.IsStairs = 0),
(this.IsCurveLeft = 0),
(this.IsCurveRight = 0),
(this.IsMine = 0),
(this.IsZipLine = 0),
(this.IsWaterSlide = 0),
(this.IsNarrow = 0),
(this.IsGenericObstacle = 0),
(this.AllowDoubleObstacle = 1),
(this.LedgeZoneTransitionType = C.None),
(this.DifficultyLevel = 0),
(this.SelectionOdds = 1),
(this.Variations = []),
(this.PrePieces = []),
(this.PostPieces = []),
(this.CompoundPieceMinMiddleCount = 1),
(this.CompoundPieceMaxMiddleCount = 1),
(this.TotalPossibleFrequencies = 100),
(this.LedgeLeftOrRightIsObstacle = !0),
(this.LastChosenVariation = -1),
(this.TotalFrequencies = 0);
}
initialize() {
let e = !1;
for (let t = 0; t < this.Variations.length; t++)
if (this.Variations[t].Frequency > 0) {
e = !0;
break;
}
if (0 == e) {
const e = this.TotalPossibleFrequencies / this.Variations.length;
for (let t = 0; t < this.Variations.length; t++) this.Variations[t].Frequency = e;
}
this.TotalFrequencies = 0;
for (let e = 0; e < this.Variations.length; e++) this.TotalFrequencies += this.Variations[e].Frequency;
this.IsNarrow = this.DisplayName.includes("Narrow") || this.DisplayName.includes("narrow") ? 1 : 0;
}
isAnyJunction() {
return !!this.IsJunction || !!this.IsYJunction;
}
isCompoundStart() {
return this.CategoryType == y.CompoundPieceStart;
}
isEnd() {
return this.SpecialType == v.End;
}
getVariation() {
if (1 == this.Variations.length) this.LastChosenVariation = 0;
else {
let e = this.TotalFrequencies;
this.LastChosenVariation >= 0 && (e -= this.Variations[this.LastChosenVariation].Frequency);
let t = m.Utils.random(0, e);
for (let e = 0; e < this.Variations.length; e++)
if (e != this.LastChosenVariation && ((t -= this.Variations[e].Frequency), t < 0)) {
this.LastChosenVariation = e;
break;
}
}
return this.Variations[this.LastChosenVariation];
}
isLeftOrRightTurn() {
return !!this.IsTurnLeft || !!this.IsTurnRight;
}
isMandatoryTurn() {
return (this.isAnyJunction() || this.isLeftOrRightTurn()) && 0 == !!this.IsOptionalJunction;
}
isObstacle() {
const e = this.LedgeZoneTransitionType == C.LeftToRight || this.LedgeZoneTransitionType == C.RightToLeft || (this.LedgeLeftOrRightIsObstacle && (!!this.IsLedgeLeft || !!this.IsLedgeRight));
return !!this.IsSlideUnder || !!this.IsJumpOver || !!this.IsStumble || !!this.IsZipLine || !!this.IsGenericObstacle || e;
}
isZoneTransition() {
return this.CategoryType == y.ZoneEntranceTransition || this.CategoryType == y.ZoneExitTransition;
}
isTurn() {
return this.isAnyJunction() || this.isLeftOrRightTurn();
}
};
(N.MainPathID = 0),
u([d.jsonMember, h("design:type", String)], N.prototype, "DisplayName", void 0),
u([d.jsonMember, h("design:type", String)], N.prototype, "Name", void 0),
u([d.jsonMember, h("design:type", b)], N.prototype, "ID", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "SpecialType", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "CategoryType", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "DeathType", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "DeathShakeCamera", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsTurnLeft", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsTurnRight", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsJunction", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsYJunction", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsOptionalJunction", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsSlideUnder", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsJumpOver", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsStumble", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsLedgeLeft", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsLedgeRight", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsLedgeCenter", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsStairs", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsCurveLeft", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsCurveRight", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsMine", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsZipLine", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsWaterSlide", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsNarrow", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "IsGenericObstacle", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "AllowDoubleObstacle", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "LedgeZoneTransitionType", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "DifficultyLevel", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "SelectionOdds", void 0),
u([d.jsonMember, h("design:type", b)], N.prototype, "CompoundPieceMiddleType", void 0),
u([d.jsonMember, h("design:type", b)], N.prototype, "CompoundPieceEndType", void 0),
u([d.jsonArrayMember(w), h("design:type", Array)], N.prototype, "Variations", void 0),
u([d.jsonArrayMember(L), h("design:type", Array)], N.prototype, "PrePieces", void 0),
u([d.jsonArrayMember(L), h("design:type", Array)], N.prototype, "PostPieces", void 0),
u([d.jsonArrayMember(F), h("design:type", Array)], N.prototype, "JunctionPostPieces", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "CompoundPieceMinMiddleCount", void 0),
u([d.jsonMember, h("design:type", Number)], N.prototype, "CompoundPieceMaxMiddleCount", void 0),
(N = u([d.jsonObject()], N)),
(t.TrackPieceDefinition = N);
let k = class {
constructor() {
(this.Distance = 0),
(this.MaxTrackPieceDifficulty = 1),
(this.AllowCoins = 1),
(this.MinDistanceBetweenCoinRuns = 80),
(this.MaxCoinsPerRun = 25),
(this.AllowTurns = 1),
(this.MinDistanceBetweenTurns = 30),
(this.MaxDistanceBetweenTurns = 60),
(this.AllowTurnAfterObstacle = 0),
(this.MinDistanceAfterTurnForObstacle = 30),
(this.DistanceToFastTurnSection = 1e3),
(this.MaxDistanceForFastTurnSection = 100),
(this.AllowObstacles = 0),
(this.MinDistanceBetweenObstacles = 20),
(this.MaxDistanceBetweenObstacles = 40),
(this.MaxBackToBackObstacles = 1),
(this.DoubleObstaclePercent = 0),
(this.AllowOptionalTurns = 1),
(this.MinDistanceBetweenOptionalTurns = 30);
}
};
u([d.jsonMember, h("design:type", Number)], k.prototype, "Distance", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxTrackPieceDifficulty", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowCoins", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenCoinRuns", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxCoinsPerRun", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowTurns", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenTurns", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxDistanceBetweenTurns", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowTurnAfterObstacle", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceAfterTurnForObstacle", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "DistanceToFastTurnSection", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxDistanceForFastTurnSection", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowObstacles", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenObstacles", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxDistanceBetweenObstacles", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxBackToBackObstacles", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "DoubleObstaclePercent", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowOptionalTurns", void 0),
u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenOptionalTurns", void 0),
(k = u([d.jsonObject], k)),
(t.MilestoneData = k);
let z = class {
constructor() {
(this.TutorialMilestoneName = "Tutorial Milestone Desc"), (this.TutorialStep = 0), (this.TutorialTrackQueue = new R()), (this.AllowCoins = 0), (this.MilestoneCompleteAnalyticsEventName = "");
}
};
u([d.jsonMember, h("design:type", String)], z.prototype, "TutorialMilestoneName", void 0),
u([d.jsonMember, h("design:type", Number)], z.prototype, "TutorialStep", void 0),
u([d.jsonMember, h("design:type", R)], z.prototype, "TutorialTrackQueue", void 0),
u([d.jsonMember, h("design:type", Number)], z.prototype, "AllowCoins", void 0),
u([d.jsonMember, h("design:type", String)], z.prototype, "MilestoneCompleteAnalyticsEventName", void 0),
(z = u([d.jsonObject], z)),
(t.TutorialMilestoneData = z);
let j = class {
constructor() {
(this.Difficulty = 0), (this.SelectionChance = 0);
}
};
u([d.jsonMember, h("design:type", b)], j.prototype, "ID", void 0),
u([d.jsonMember, h("design:type", Number)], j.prototype, "Difficulty", void 0),
u([d.jsonMember, h("design:type", Number)], j.prototype, "SelectionChance", void 0),
(j = u([d.jsonObject], j)),
(t.PieceData = j);
let B = class {
constructor() {
(this.RegionID = -1), (this.ZoneID = -1), (this.MinLength = 100);
}
};
u([d.jsonMember, h("design:type", Number)], B.prototype, "RegionID", void 0),
u([d.jsonMember, h("design:type", Number)], B.prototype, "ZoneID", void 0),
u([d.jsonMember, h("design:type", Number)], B.prototype, "MinLength", void 0),
u([d.jsonArrayMember(j), h("design:type", Array)], B.prototype, "Pieces", void 0),
u([d.jsonArrayMember(k), h("design:type", Array)], B.prototype, "Milestones", void 0),
(B = u([d.jsonObject], B)),
(t.ZonePacingData = B);
let V = class {};
u([d.jsonMember, h("design:type", Number)], V.prototype, "PercentageOfMaxSpeed", void 0), u([d.jsonMember, h("design:type", Number)], V.prototype, "ForceToAdd", void 0), (V = u([d.jsonObject], V)), (t.RunnerSpeedData = V);
t.NewTrackPieceInfo = class {
setAllMembersNull() {
(this.Definition = void 0), (this.Piece = void 0), (this.Queue = void 0), (this.Pacing = void 0);
}
areAllMembersNull() {
return null == this.Definition && null == this.Piece && null == this.Queue && null == this.Pacing;
}
};
let G = (o = class {
constructor() {
(this.RegionID = -1),
(this.MinDistanceBetweenBaseZoneChange = 350),
(this.Milestones = []),
(this.ZonePacing = []),
(this.ActiveMilestone = new k()),
(this.ActiveZonePacing = new B()),
(this.MaxPossibleDefinitions = 100),
(this.AvailablePieceDefinitions = new Array(this.MaxPossibleDefinitions)),
(this.IsFastTurnSection = !1),
(this.NextMilestoneIndex = 0),
(this.DistanceTraveled = 0);
}
initialize(e) {
(this.ActiveMilestone = new k()),
(this.ActiveZonePacing = new B()),
(this.AvailablePieceDefinitions = new Array(this.MaxPossibleDefinitions)),
(this.IsFastTurnSection = !1),
(this.NextMilestoneIndex = 0),
(this.DistanceTraveled = 0),
this.selectNextMilestone(!1, !0);
for (const t of this.ZonePacing)
for (const [, n] of e)
if (null != n && n.ID == t.ZoneID) {
t.Pieces.length > 0 && (t.Pieces.length, n.Definitions.length);
for (const e of t.Pieces)
for (const t of n.Definitions)
if (e.ID.isEquals(t.ID)) {
(t.SelectionOdds = e.SelectionChance), (t.DifficultyLevel = e.Difficulty);
break;
}
}
}
updatePacing() {}
findZonePacing(e) {
let t;
for (let n = 0; n < this.ZonePacing.length; ++n)
if (this.ZonePacing[n].ZoneID == e) {
t = this.ZonePacing[n];
break;
}
return t;
}
selectNextMilestone(e = !1, t = !1) {
if ((e && --this.NextMilestoneIndex, t && (this.NextMilestoneIndex = 0), this.NextMilestoneIndex < 0 && (this.NextMilestoneIndex = 0), this.NextMilestoneIndex >= this.Milestones.length)) return;
const n = this.Milestones[this.NextMilestoneIndex];
(this.ActiveMilestone = Object.assign(new k(), n)), this.NextMilestoneIndex++;
}
static fromJson(e) {
return g.TypedJSONProvider.instance().get(o).parse(e);
}
});
u([d.jsonMember, h("design:type", Number)], G.prototype, "RegionID", void 0),
u([d.jsonMember, h("design:type", R)], G.prototype, "StartingSection", void 0),
u([d.jsonMember, h("design:type", Number)], G.prototype, "MinDistanceBetweenBaseZoneChange", void 0),
u([d.jsonArrayMember(k), h("design:type", Array)], G.prototype, "Milestones", void 0),
u([d.jsonArrayMember(B), h("design:type", Array)], G.prototype, "ZonePacing", void 0),
u([d.jsonArrayMember(V), h("design:type", Array)], G.prototype, "RunnerSpeed", void 0),
u([d.jsonArrayMember(V), h("design:type", Array)], G.prototype, "RunnerSpeedAfterResurrect", void 0),
(G = o = u([d.jsonObject], G)),
(t.TrackPacing = G);
let U = class extends G {
constructor() {
super(...arguments), (this.TutorialEnabled = !1);
}
};
u([d.jsonArrayMember(z), h("design:type", Array)], U.prototype, "TutorialMilestones", void 0), (U = u([d.jsonObject], U)), (t.TutorialTrackPacing = U);
let H = (a = class {
constructor() {
(this.GrowDistance = 80), (this.CullDistance = 60);
}
static fromJson(e) {
return g.TypedJSONProvider.instance().get(a).parse(e);
}
});
u([d.jsonMember, h("design:type", String)], H.prototype, "Name", void 0),
u([d.jsonMember, h("design:type", Number)], H.prototype, "ID", void 0),
u([d.jsonMember, h("design:type", String)], H.prototype, "DisplayName", void 0),
u([d.jsonMember, h("design:type", Number)], H.prototype, "GrowDistance", void 0),
u([d.jsonMember, h("design:type", Number)], H.prototype, "CullDistance", void 0),
u([d.jsonMember, h("design:type", R)], H.prototype, "StartingSection", void 0),
u([d.jsonMember, h("design:type", String)], H.prototype, "DefaultPacingPath", void 0),
u([d.jsonMember, h("design:type", G)], H.prototype, "FreePreviewPacing", void 0),
u([d.jsonMember, h("design:type", String)], H.prototype, "SkyboxPath", void 0),
u([d.jsonMember, h("design:type", String)], H.prototype, "ChaserPath", void 0),
(H = a = u([d.jsonObject], H)),
(t.RegionInfo = H);
let W = class {
constructor() {
(this.SmartPlacement = 0), (this.UseTrackDefinitonsForAllowingCoins = 0), (this.HeightAboveGround = 0), (this.MaxHorizontalOffset = 0), (this.UseTrackDefinitonsForAllowingBonus = 0), (this.BonusItemHeightAboveGround = 0);
}
};
u([d.jsonMember, h("design:type", Number)], W.prototype, "SmartPlacement", void 0),
u([d.jsonMember, h("design:type", Number)], W.prototype, "UseTrackDefinitonsForAllowingCoins", void 0),
u([d.jsonMember, h("design:type", Number)], W.prototype, "HeightAboveGround", void 0),
u([d.jsonMember, h("design:type", Number)], W.prototype, "MaxHorizontalOffset", void 0),
u([d.jsonMember, h("design:type", Number)], W.prototype, "UseTrackDefinitonsForAllowingBonus", void 0),
u([d.jsonMember, h("design:type", Object)], W.prototype, "BonusItemHeightAboveGround", void 0),
(W = u([d.jsonObject], W)),
(t.CoinPlacementSettings = W);
let X = (s = class {
constructor() {
(this.AllowObstacleDuringFastTurn = 0), (this.TransitionToZoneSupported = 1), (this.IsLedgeZone = 0), (this.Gameplay = P.Run);
}
getEndPiece() {
if ((null == this.EndPieces && (this.EndPieces = new Array()), this.EndPieces.length < 1))
for (let e = 0; e < this.Definitions.length; ++e) {
const t = this.Definitions[e];
null != t && 1 == t.isEnd() && this.EndPieces.push(t);
}
if (this.EndPieces.length > 0) {
if (1 == this.EndPieces.length) return this.EndPieces[0];
{
const e = m.Utils.random(0, this.EndPieces.length);
if (e > -1 && e < this.EndPieces.length) return this.EndPieces[e];
}
}
}
static fromJson(e) {
return g.TypedJSONProvider.instance().get(s).parse(e);
}
});
u([d.jsonMember, h("design:type", String)], X.prototype, "Name", void 0),
u([d.jsonMember, h("design:type", Number)], X.prototype, "ID", void 0),
u([d.jsonArrayMember(N), h("design:type", Array)], X.prototype, "Definitions", void 0),
u([d.jsonMember, h("design:type", U)], X.prototype, "TutorialPacing", void 0),
u([d.jsonMember, h("design:type", Number)], X.prototype, "AllowObstacleDuringFastTurn", void 0),
u([d.jsonMember, h("design:type", Number)], X.prototype, "TransitionToZoneSupported", void 0),
u([d.jsonMember, h("design:type", Number)], X.prototype, "IsLedgeZone", void 0),
u([d.jsonMember, h("design:type", W)], X.prototype, "CoinSettings", void 0),
u([d.jsonMember, h("design:type", Number)], X.prototype, "Gameplay", void 0),
(X = s = u([d.jsonObject], X)),
(t.RegionZoneInfo = X);
let Y = class {
toVector3() {
return new p.Vector3(this.x, this.y, this.z);
}
};
u([d.jsonMember, h("design:type", Number)], Y.prototype, "x", void 0),
u([d.jsonMember, h("design:type", Number)], Y.prototype, "y", void 0),
u([d.jsonMember, h("design:type", Number)], Y.prototype, "z", void 0),
(Y = u([d.jsonObject], Y)),
(t.JsonVector3 = Y);
let K = class {
constructor() {
(this.SourcePath = []), (this.EstimatedPathLength = 0), (this.SourceLastYRot = 0), (this.GeneratedPath = []), (this.GeneratedEstimatedPathLength = 0), (this.GeneratedLastYRot = 0), (this.GeneratedSmoothing = 1);
}
onDeserialized() {
for (const e of this.SourcePathList) this.SourcePath.push(e.toVector3());
for (const e of this.GeneratedPathList) this.GeneratedPath.push(e.toVector3());
}
};
u([d.jsonArrayMember(Y, { name: "SourcePath" }), h("design:type", Array)], K.prototype, "SourcePathList", void 0),
u([d.jsonMember, h("design:type", Number)], K.prototype, "EstimatedPathLength", void 0),
u([d.jsonMember, h("design:type", Number)], K.prototype, "SourceLastYRot", void 0),
u([d.jsonArrayMember(Y, { name: "GeneratedPath" }), h("design:type", Array)], K.prototype, "GeneratedPathList", void 0),
u([d.jsonMember, h("design:type", Number)], K.prototype, "GeneratedEstimatedPathLength", void 0),
u([d.jsonMember, h("design:type", Number)], K.prototype, "GeneratedLastYRot", void 0),
u([d.jsonMember, h("design:type", Number)], K.prototype, "GeneratedSmoothing", void 0),
(K = u([d.jsonObject({ onDeserialized: "onDeserialized" })], K)),
(t.PathInfo = K);
let Z = class {
onDeserialized() {
(this.CameraFixedRotation = this.CameraFixedRotationLocal.toVector3()),
(this.CameraFocusRotation = this.CameraFocusRotationLocal.toVector3()),
(this.CameraFollowOffset = this.CameraFollowOffsetLocal.toVector3()),
(this.CameraFocusOffset = this.CameraFocusOffsetLocal.toVector3());
}
};
u([d.jsonMember({ name: "CameraFixedRotation" }), h("design:type", Y)], Z.prototype, "CameraFixedRotationLocal", void 0),
u([d.jsonMember({ name: "CameraFocusRotation" }), h("design:type", Y)], Z.prototype, "CameraFocusRotationLocal", void 0),
u([d.jsonMember({ name: "CameraFollowOffset" }), h("design:type", Y)], Z.prototype, "CameraFollowOffsetLocal", void 0),
u([d.jsonMember({ name: "CameraFocusOffset" }), h("design:type", Y)], Z.prototype, "CameraFocusOffsetLocal", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraFollowDistance", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraFocusDistance", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraPitchHeight", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraChangeRate", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "FocusRotationSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "FixedRotationSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "FollowOffsetSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "FocusOffsetSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "FollowDistanceSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "FocusDistanceSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "PitchHeightSettings", void 0),
u([d.jsonMember, h("design:type", Number)], Z.prototype, "ChangeRateSettings", void 0),
(Z = u([d.jsonObject({ onDeserialized: "onDeserialized" })], Z)),
(t.CameraTransition = Z);
let q = class {
constructor() {
(this.Trigger = M.None), (this.DeathType = A.None), (this.ShakeCamera = 0);
}
};
u([d.jsonMember, h("design:type", Number)], q.prototype, "Trigger", void 0),
u([d.jsonMember, h("design:type", Number)], q.prototype, "DeathType", void 0),
u([d.jsonMember, h("design:type", Number)], q.prototype, "ShakeCamera", void 0),
u([d.jsonMember, h("design:type", Z)], q.prototype, "Transition", void 0),
(q = u([d.jsonObject], q)),
(t.TrackCollisionInfo = q);
let Q = (c = class {
constructor() {
(this.DeathType = A.None), (this.DeathShakeCamera = 0), (this.TriggerDistance = 35);
}
static fromJson(e) {
return g.TypedJSONProvider.instance().get(c).parse(e);
}
});
u([d.jsonMember, h("design:type", Number)], Q.prototype, "DeathType", void 0),
u([d.jsonMember, h("design:type", Number)], Q.prototype, "DeathShakeCamera", void 0),
u([d.jsonMember, h("design:type", Number)], Q.prototype, "TriggerDistance", void 0),
u([d.jsonMember, h("design:type", q)], Q.prototype, "CollisionInfo", void 0),
u([d.jsonMember, h("design:type", I)], Q.prototype, "EnterPiece", void 0),
u([d.jsonArrayMember(K), h("design:type", Array)], Q.prototype, "Paths", void 0),
(Q = c = u([d.jsonObject], Q)),
(t.TrackPieceInfo = Q);
let J = (l = class {
constructor() {
(this.Queue = new R()),
(this.NextTrackPieces = new Array(2)),
(this.DistanceFromRoot = 0),
(this.WorldRotationY = 0),
(this.CurrCoinPlacement = x.None),
(this.CurrCanSpawnPowerup = !1),
(this.PlacedBonusItemCategory = S.None),
(this.IsDeadEnd = !1),
(this.selectedPathId = 0),
(this.trackPaths = []),
(this.TrackZoneChangeDistance = !0),
(this.DistanceSinceLastMandatoryTurn = 0),
(this.BackToBackObstacleCount = 0),
(this.DistanceSinceLastObstacle = 0),
(this.DistanceSinceLastOptionalTurn = 0),
(this.DistanceSinceLastZoneChange = 0),
(this.DistanceSinceLastObstacleSlideJumpStumble = 0),
(this.DistanceSinceLastTurnLeftOrRight = 0),
(this.DistanceSinceLastJunction = 0),
(this.DistanceSinceLastZipline = 0),
(this.DistanceSinceLastBonusItem = 0),
(this.DistanceSinceLastCoinRun = 0),
(this.CoinRunCoinCount = 0),
(this.LastCoinPlacement = x.None),
(this.LastCoinPlacementHeight = l.DefaultCoinPlacementHeight),
(this.coinsList = []),
(this.tutorialStepDone = !1),
(this.tutorialMilestoneIndex = 0),
(this.triggerAnimations = new Map());
}
getEstimatedLength(e = 0) {
return this.trackInfo.Paths[e].EstimatedPathLength;
}
getSourceLastRotY(e = 0) {
return this.trackInfo.Paths[e].SourceLastYRot;
}
getNumPaths() {
return this.trackInfo.Paths.length;
}
firstPointFromPath(e = 0) {
return this.trackInfo.Paths[e].SourcePath[0];
}
lastPointFromPath(e = 0) {
const t = this.trackInfo.Paths[e].SourcePath.length;
return this.trackInfo.Paths[e].SourcePath[t - 1];
}
isDeadEnd() {
return this.SelectedDefinition.isEnd() || this.IsDeadEnd;
}
setNextTrackPiece(e, t) {
(this.NextTrackPieces[e] = t), (t.PreviousTrackPiece = this);
}
getStartDirection() {
const e = this.trackPaths[this.selectedPathId];
return e[1].subtract(e[0]);
}
getNextTrackPiecesLength() {
return null == this.NextTrackPieces[0] ? 0 : null == this.NextTrackPieces[1] ? 1 : 2;
}
changeMeshesStateForPowerup(e) {
this.assetInfo.fillMeshes.forEach((t) => {
t.checkCollisions = e > 0.01;
});
}
updateStats(e) {
const t = this.getEstimatedLength();
0 == !!this.SelectedDefinition.IsSlideUnder && 0 == !!this.SelectedDefinition.IsJumpOver && 0 == !!this.SelectedDefinition.IsStumble
? (this.DistanceSinceLastObstacleSlideJumpStumble = e.DistanceSinceLastObstacleSlideJumpStumble + t)
: (this.DistanceSinceLastObstacleSlideJumpStumble = 0),
0 == !!this.SelectedDefinition.IsTurnLeft && 0 == !!this.SelectedDefinition.IsTurnRight ? (this.DistanceSinceLastTurnLeftOrRight = e.DistanceSinceLastTurnLeftOrRight + t) : (this.DistanceSinceLastTurnLeftOrRight = 0),
0 == this.SelectedDefinition.isAnyJunction() ? (this.DistanceSinceLastJunction = e.DistanceSinceLastJunction + t) : (this.DistanceSinceLastJunction = 0),
0 == this.SelectedDefinition.isMandatoryTurn() ? (this.DistanceSinceLastMandatoryTurn = e.DistanceSinceLastMandatoryTurn + t) : (this.DistanceSinceLastMandatoryTurn = 0),
0 == !!this.SelectedDefinition.IsOptionalJunction && 0 == this.SelectedDefinition.isZoneTransition()
? (this.DistanceSinceLastOptionalTurn = e.DistanceSinceLastOptionalTurn + t)
: (this.DistanceSinceLastOptionalTurn = 0),
this.SelectedDefinition.IsZipLine ? (this.DistanceSinceLastZipline = 0) : (this.DistanceSinceLastZipline = e.DistanceSinceLastZipline + t),
0 == this.SelectedDefinition.isObstacle() ? (this.DistanceSinceLastObstacle = e.DistanceSinceLastObstacle + t) : ((this.DistanceSinceLastObstacle = 0), (this.BackToBackObstacleCount = 0)),
this.SelectedDefinition.isZoneTransition() ? (this.DistanceSinceLastZoneChange = 0) : this.TrackZoneChangeDistance && (this.DistanceSinceLastZoneChange = e.DistanceSinceLastZoneChange + t),
this.SelectedDefinition.isObstacle() && e.SelectedDefinition.isObstacle() && (this.BackToBackObstacleCount = e.BackToBackObstacleCount + 1);
}
updateItemDistanceStats() {
const e = this.getEstimatedLength();
null != this.PreviousTrackPiece
? ((this.DistanceSinceLastBonusItem = this.PreviousTrackPiece.DistanceSinceLastBonusItem + e), (this.DistanceSinceLastCoinRun = this.PreviousTrackPiece.DistanceSinceLastCoinRun + e))
: ((this.DistanceSinceLastBonusItem = 0), (this.DistanceSinceLastCoinRun = 0));
}
updateCoinStats(e, t) {
e &&
null != this.PreviousTrackPiece &&
this.PreviousTrackPiece.CoinRunCoinCount < t &&
((this.CoinRunCoinCount = this.PreviousTrackPiece.CoinRunCoinCount),
(this.LastCoinPlacement = this.PreviousTrackPiece.LastCoinPlacement),
(this.LastCoinPlacementHeight = this.PreviousTrackPiece.LastCoinPlacementHeight));
}
updateStatsAfterItemsAdded(e, t, n) {
e && (this.DistanceSinceLastBonusItem = 0),
!t &&
null != this.PreviousTrackPiece &&
this.PreviousTrackPiece.CoinRunCoinCount > 0 &&
((this.PreviousTrackPiece.DistanceSinceLastCoinRun = 0),
(this.DistanceSinceLastCoinRun = this.getEstimatedLength()),
(this.CoinRunCoinCount = 0),
(this.LastCoinPlacement = x.None),
(this.LastCoinPlacementHeight = n));
}
dispose() {
(this.NextTrackPieces = void 0), (this.PreviousTrackPiece = void 0), (this.Queue = void 0), (this.Pacing = void 0), (this.triggerAnimations = void 0), (this.coinsList = []);
}
});
(J.DefaultCoinPlacementHeight = 0.5),
(J.BonusLedgeLeftRightAdjust = 0.375),
u([d.jsonMember, h("design:type", f.AssetInfo)], J.prototype, "assetInfo", void 0),
u([d.jsonMember, h("design:type", Q)], J.prototype, "trackInfo", void 0),
(J = l = u([d.jsonObject], J)),
(t.TrackPiece = J);
},
function (e, t, n) {
"use strict";
var i;
n.d(t, "a", function () {
return i;
}),
(function (e) {
e[(e.STEP = 1)] = "STEP";
})(i || (i = {}));
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(28),
r = n(4),
o = (function () {
function e(e) {
(this._vertexBuffers = {}), (this._scene = e);
}
return (
(e.prototype._prepareBuffers = function () {
if (!this._vertexBuffers[r.b.PositionKind]) {
var e = [];
e.push(1, 1), e.push(-1, 1), e.push(-1, -1), e.push(1, -1), (this._vertexBuffers[r.b.PositionKind] = new r.b(this._scene.getEngine(), e, r.b.PositionKind, !1, !1, 2)), this._buildIndexBuffer();
}
}),
(e.prototype._buildIndexBuffer = function () {
var e = [];
e.push(0), e.push(1), e.push(2), e.push(0), e.push(2), e.push(3), (this._indexBuffer = this._scene.getEngine().createIndexBuffer(e));
}),
(e.prototype._rebuild = function () {
var e = this._vertexBuffers[r.b.PositionKind];
e && (e._rebuild(), this._buildIndexBuffer());
}),
(e.prototype._prepareFrame = function (e, t) {
void 0 === e && (e = null), void 0 === t && (t = null);
var n = this._scene.activeCamera;
return (
!!n &&
!(
!(t =
t ||
n._postProcesses.filter(function (e) {
return null != e;
})) ||
0 === t.length ||
!this._scene.postProcessesEnabled
) &&
(t[0].activate(n, e, null != t), !0)
);
}),
(e.prototype.directRender = function (e, t, n, r, o) {
void 0 === t && (t = null), void 0 === n && (n = !1), void 0 === r && (r = 0), void 0 === o && (o = 0);
for (var a = this._scene.getEngine(), s = 0; s < e.length; s++) {
s < e.length - 1 ? e[s + 1].activate(this._scene.activeCamera, t) : t ? a.bindFramebuffer(t, r, void 0, void 0, n, o) : a.restoreDefaultFramebuffer();
var c = e[s],
l = c.apply();
l &&
(c.onBeforeRenderObservable.notifyObservers(l),
this._prepareBuffers(),
a.bindBuffers(this._vertexBuffers, this._indexBuffer, l),
a.drawElementsType(i.a.TriangleFillMode, 0, 6),
c.onAfterRenderObservable.notifyObservers(l));
}
a.setDepthBuffer(!0), a.setDepthWrite(!0);
}),
(e.prototype._finalizeFrame = function (e, t, n, r, o) {
void 0 === o && (o = !1);
var a = this._scene.activeCamera;
if (
a &&
0 !==
(r =
r ||
a._postProcesses.filter(function (e) {
return null != e;
})).length &&
this._scene.postProcessesEnabled
) {
for (var s = this._scene.getEngine(), c = 0, l = r.length; c < l; c++) {
var u = r[c];
if ((c < l - 1 ? (u._outputTexture = r[c + 1].activate(a, t)) : t ? (s.bindFramebuffer(t, n, void 0, void 0, o), (u._outputTexture = t)) : (s.restoreDefaultFramebuffer(), (u._outputTexture = null)), e))
break;
var h = u.apply();
h &&
(u.onBeforeRenderObservable.notifyObservers(h),
this._prepareBuffers(),
s.bindBuffers(this._vertexBuffers, this._indexBuffer, h),
s.drawElementsType(i.a.TriangleFillMode, 0, 6),
u.onAfterRenderObservable.notifyObservers(h));
}
s.setDepthBuffer(!0), s.setDepthWrite(!0), s.setAlphaMode(0);
}
}),
(e.prototype.dispose = function () {
var e = this._vertexBuffers[r.b.PositionKind];
e && (e.dispose(), (this._vertexBuffers[r.b.PositionKind] = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null));
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
}),
n.d(t, "b", function () {
return o;
});
var i = n(189),
r = function () {},
o = (function () {
function e(t) {
(this._useSceneAutoClearSetup = !1),
(this._renderingGroups = new Array()),
(this._autoClearDepthStencil = {}),
(this._customOpaqueSortCompareFn = {}),
(this._customAlphaTestSortCompareFn = {}),
(this._customTransparentSortCompareFn = {}),
(this._renderingGroupInfo = new r()),
(this._scene = t);
for (var n = e.MIN_RENDERINGGROUPS; n < e.MAX_RENDERINGGROUPS; n++) this._autoClearDepthStencil[n] = { autoClear: !0, depth: !0, stencil: !0 };
}
return (
(e.prototype._clearDepthStencilBuffer = function (e, t) {
void 0 === e && (e = !0), void 0 === t && (t = !0), this._depthStencilBufferAlreadyCleaned || (this._scene.getEngine().clear(null, !1, e, t), (this._depthStencilBufferAlreadyCleaned = !0));
}),
(e.prototype.render = function (t, n, i, r) {
var o = this._renderingGroupInfo;
if (((o.scene = this._scene), (o.camera = this._scene.activeCamera), this._scene.spriteManagers && r))
for (var a = 0; a < this._scene.spriteManagers.length; a++) {
var s = this._scene.spriteManagers[a];
this.dispatchSprites(s);
}
for (a = e.MIN_RENDERINGGROUPS; a < e.MAX_RENDERINGGROUPS; a++) {
this._depthStencilBufferAlreadyCleaned = a === e.MIN_RENDERINGGROUPS;
var c = this._renderingGroups[a];
if (c) {
var l = Math.pow(2, a);
if (((o.renderingGroupId = a), this._scene.onBeforeRenderingGroupObservable.notifyObservers(o, l), e.AUTOCLEAR)) {
var u = this._useSceneAutoClearSetup ? this._scene.getAutoClearDepthStencilSetup(a) : this._autoClearDepthStencil[a];
u && u.autoClear && this._clearDepthStencilBuffer(u.depth, u.stencil);
}
for (var h = 0, d = this._scene._beforeRenderingGroupDrawStage; h < d.length; h++) {
d[h].action(a);
}
c.render(t, r, i, n);
for (var p = 0, f = this._scene._afterRenderingGroupDrawStage; p < f.length; p++) {
f[p].action(a);
}
this._scene.onAfterRenderingGroupObservable.notifyObservers(o, l);
}
}
}),
(e.prototype.reset = function () {
for (var t = e.MIN_RENDERINGGROUPS; t < e.MAX_RENDERINGGROUPS; t++) {
var n = this._renderingGroups[t];
n && n.prepare();
}
}),
(e.prototype.dispose = function () {
this.freeRenderingGroups(), (this._renderingGroups.length = 0), (this._renderingGroupInfo = null);
}),
(e.prototype.freeRenderingGroups = function () {
for (var t = e.MIN_RENDERINGGROUPS; t < e.MAX_RENDERINGGROUPS; t++) {
var n = this._renderingGroups[t];
n && n.dispose();
}
}),
(e.prototype._prepareRenderingGroup = function (e) {
void 0 === this._renderingGroups[e] && (this._renderingGroups[e] = new i.a(e, this._scene, this._customOpaqueSortCompareFn[e], this._customAlphaTestSortCompareFn[e], this._customTransparentSortCompareFn[e]));
}),
(e.prototype.dispatchSprites = function (e) {
var t = e.renderingGroupId || 0;
this._prepareRenderingGroup(t), this._renderingGroups[t].dispatchSprites(e);
}),
(e.prototype.dispatchParticles = function (e) {
var t = e.renderingGroupId || 0;
this._prepareRenderingGroup(t), this._renderingGroups[t].dispatchParticles(e);
}),
(e.prototype.dispatch = function (e, t, n) {
void 0 === t && (t = e.getMesh());
var i = t.renderingGroupId || 0;
this._prepareRenderingGroup(i), this._renderingGroups[i].dispatch(e, t, n);
}),
(e.prototype.setRenderingOrder = function (e, t, n, i) {
if (
(void 0 === t && (t = null),
void 0 === n && (n = null),
void 0 === i && (i = null),
(this._customOpaqueSortCompareFn[e] = t),
(this._customAlphaTestSortCompareFn[e] = n),
(this._customTransparentSortCompareFn[e] = i),
this._renderingGroups[e])
) {
var r = this._renderingGroups[e];
(r.opaqueSortCompareFn = this._customOpaqueSortCompareFn[e]), (r.alphaTestSortCompareFn = this._customAlphaTestSortCompareFn[e]), (r.transparentSortCompareFn = this._customTransparentSortCompareFn[e]);
}
}),
(e.prototype.setRenderingAutoClearDepthStencil = function (e, t, n, i) {
void 0 === n && (n = !0), void 0 === i && (i = !0), (this._autoClearDepthStencil[e] = { autoClear: t, depth: n, stencil: i });
}),
(e.prototype.getAutoClearDepthStencilSetup = function (e) {
return this._autoClearDepthStencil[e];
}),
(e.MAX_RENDERINGGROUPS = 4),
(e.MIN_RENDERINGGROUPS = 0),
(e.AUTOCLEAR = !0),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(12),
r = n(6),
o = n(1),
a = n(14),
s = n(10),
c = n(22),
l = (function () {
function e(t, n, c, l, u) {
var h = this;
if (
(void 0 === l && (l = null),
(this.autoplay = !1),
(this.loop = !1),
(this.useCustomAttenuation = !1),
(this.isPlaying = !1),
(this.isPaused = !1),
(this.spatialSound = !1),
(this.refDistance = 1),
(this.rolloffFactor = 1),
(this.maxDistance = 100),
(this.distanceModel = "linear"),
(this.onEndedObservable = new r.c()),
(this._panningModel = "equalpower"),
(this._playbackRate = 1),
(this._streaming = !1),
(this._startTime = 0),
(this._startOffset = 0),
(this._position = o.e.Zero()),
(this._positionInEmitterSpace = !1),
(this._localDirection = new o.e(1, 0, 0)),
(this._volume = 1),
(this._isReadyToPlay = !1),
(this._isDirectional = !1),
(this._coneInnerAngle = 360),
(this._coneOuterAngle = 360),
(this._coneOuterGain = 0),
(this._isOutputConnected = !1),
(this._urlType = "Unknown"),
(this.name = t),
(this._scene = c),
e._SceneComponentInitialization(c),
(this._readyToPlayCallback = l),
(this._customAttenuationFunction = function (e, t, n, i, r) {
return t < n ? e * (1 - t / n) : 0;
}),
u &&
((this.autoplay = u.autoplay || !1),
(this.loop = u.loop || !1),
void 0 !== u.volume && (this._volume = u.volume),
(this.spatialSound = u.spatialSound || !1),
(this.maxDistance = u.maxDistance || 100),
(this.useCustomAttenuation = u.useCustomAttenuation || !1),
(this.rolloffFactor = u.rolloffFactor || 1),
(this.refDistance = u.refDistance || 1),
(this.distanceModel = u.distanceModel || "linear"),
(this._playbackRate = u.playbackRate || 1),
(this._streaming = u.streaming || !1),
(this._length = u.length),
(this._offset = u.offset)),
a.a.audioEngine.canUseWebAudio && a.a.audioEngine.audioContext)
) {
(this._soundGain = a.a.audioEngine.audioContext.createGain()),
(this._soundGain.gain.value = this._volume),
(this._inputAudioNode = this._soundGain),
(this._outputAudioNode = this._soundGain),
this.spatialSound && this._createSpatialParameters(),
this._scene.mainSoundTrack.AddSound(this);
var d = !0;
if (n)
try {
"string" == typeof n
? (this._urlType = "String")
: n instanceof ArrayBuffer
? (this._urlType = "ArrayBuffer")
: n instanceof MediaStream
? (this._urlType = "MediaStream")
: Array.isArray(n) && (this._urlType = "Array");
var p = [],
f = !1;
switch (this._urlType) {
case "MediaStream":
(this._streaming = !0),
(this._isReadyToPlay = !0),
(this._streamingSource = a.a.audioEngine.audioContext.createMediaStreamSource(n)),
this.autoplay && this.play(0, this._offset, this._length),
this._readyToPlayCallback && this._readyToPlayCallback();
break;
case "ArrayBuffer":
n.byteLength > 0 && ((f = !0), this._soundLoaded(n));
break;
case "String":
p.push(n);
case "Array":
0 === p.length && (p = n);
for (var m = 0; m < p.length; m++) {
var g = p[m];
if (
(f =
(u && u.skipCodecCheck) ||
(-1 !== g.indexOf(".mp3", g.length - 4) && a.a.audioEngine.isMP3supported) ||
(-1 !== g.indexOf(".ogg", g.length - 4) && a.a.audioEngine.isOGGsupported) ||
-1 !== g.indexOf(".wav", g.length - 4) ||
-1 !== g.indexOf("blob:"))
) {
this._streaming
? ((this._htmlAudioElement = new Audio(g)),
(this._htmlAudioElement.controls = !1),
(this._htmlAudioElement.loop = this.loop),
i.b.SetCorsBehavior(g, this._htmlAudioElement),
(this._htmlAudioElement.preload = "auto"),
this._htmlAudioElement.addEventListener("canplaythrough", function () {
(h._isReadyToPlay = !0), h.autoplay && h.play(0, h._offset, h._length), h._readyToPlayCallback && h._readyToPlayCallback();
}),
document.body.appendChild(this._htmlAudioElement),
this._htmlAudioElement.load())
: this._scene._loadFile(
g,
function (e) {
h._soundLoaded(e);
},
void 0,
!0,
!0,
function (e) {
e && s.a.Error("XHR " + e.status + " error on: " + g + "."), s.a.Error("Sound creation aborted."), h._scene.mainSoundTrack.RemoveSound(h);
}
);
break;
}
}
break;
default:
d = !1;
}
d
? f ||
((this._isReadyToPlay = !0),
this._readyToPlayCallback &&
window.setTimeout(function () {
h._readyToPlayCallback && h._readyToPlayCallback();
}, 1e3))
: s.a.Error("Parameter must be a URL to the sound, an Array of URLs (.mp3 & .ogg) or an ArrayBuffer of the sound.");
} catch (e) {
s.a.Error("Unexpected error. Sound creation aborted."), this._scene.mainSoundTrack.RemoveSound(this);
}
} else
this._scene.mainSoundTrack.AddSound(this),
a.a.audioEngine.WarnedWebAudioUnsupported || (s.a.Error("Web Audio is not supported by your browser."), (a.a.audioEngine.WarnedWebAudioUnsupported = !0)),
this._readyToPlayCallback &&
window.setTimeout(function () {
h._readyToPlayCallback && h._readyToPlayCallback();
}, 1e3);
}
return (
(e.prototype.dispose = function () {
a.a.audioEngine.canUseWebAudio &&
(this.isPlaying && this.stop(),
(this._isReadyToPlay = !1),
-1 === this.soundTrackId ? this._scene.mainSoundTrack.RemoveSound(this) : this._scene.soundTracks && this._scene.soundTracks[this.soundTrackId].RemoveSound(this),
this._soundGain && (this._soundGain.disconnect(), (this._soundGain = null)),
this._soundPanner && (this._soundPanner.disconnect(), (this._soundPanner = null)),
this._soundSource && (this._soundSource.disconnect(), (this._soundSource = null)),
(this._audioBuffer = null),
this._htmlAudioElement && (this._htmlAudioElement.pause(), (this._htmlAudioElement.src = ""), document.body.removeChild(this._htmlAudioElement)),
this._streamingSource && this._streamingSource.disconnect(),
this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), (this._connectedTransformNode = null)));
}),
(e.prototype.isReady = function () {
return this._isReadyToPlay;
}),
(e.prototype._soundLoaded = function (e) {
var t = this;
a.a.audioEngine.audioContext &&
a.a.audioEngine.audioContext.decodeAudioData(
e,
function (e) {
(t._audioBuffer = e), (t._isReadyToPlay = !0), t.autoplay && t.play(0, t._offset, t._length), t._readyToPlayCallback && t._readyToPlayCallback();
},
function (e) {
s.a.Error("Error while decoding audio data for: " + t.name + " / Error: " + e);
}
);
}),
(e.prototype.setAudioBuffer = function (e) {
a.a.audioEngine.canUseWebAudio && ((this._audioBuffer = e), (this._isReadyToPlay = !0));
}),
(e.prototype.updateOptions = function (e) {
e &&
((this.loop = e.loop || this.loop),
(this.maxDistance = e.maxDistance || this.maxDistance),
(this.useCustomAttenuation = e.useCustomAttenuation || this.useCustomAttenuation),
(this.rolloffFactor = e.rolloffFactor || this.rolloffFactor),
(this.refDistance = e.refDistance || this.refDistance),
(this.distanceModel = e.distanceModel || this.distanceModel),
(this._playbackRate = e.playbackRate || this._playbackRate),
(this._length = e.length ? e.length / 1e3 : void 0),
(this._offset = e.offset ? e.offset / 1e3 : void 0),
this._updateSpatialParameters(),
this.isPlaying && (this._streaming && this._htmlAudioElement ? (this._htmlAudioElement.playbackRate = this._playbackRate) : this._soundSource && (this._soundSource.playbackRate.value = this._playbackRate)));
}),
(e.prototype._createSpatialParameters = function () {
a.a.audioEngine.canUseWebAudio &&
a.a.audioEngine.audioContext &&
(this._scene.headphone && (this._panningModel = "HRTF"),
(this._soundPanner = a.a.audioEngine.audioContext.createPanner()),
this._updateSpatialParameters(),
this._soundPanner.connect(this._outputAudioNode),
(this._inputAudioNode = this._soundPanner));
}),
(e.prototype._updateSpatialParameters = function () {
this.spatialSound &&
this._soundPanner &&
(this.useCustomAttenuation
? ((this._soundPanner.distanceModel = "linear"),
(this._soundPanner.maxDistance = Number.MAX_VALUE),
(this._soundPanner.refDistance = 1),
(this._soundPanner.rolloffFactor = 1),
(this._soundPanner.panningModel = this._panningModel))
: ((this._soundPanner.distanceModel = this.distanceModel),
(this._soundPanner.maxDistance = this.maxDistance),
(this._soundPanner.refDistance = this.refDistance),
(this._soundPanner.rolloffFactor = this.rolloffFactor),
(this._soundPanner.panningModel = this._panningModel)));
}),
(e.prototype.switchPanningModelToHRTF = function () {
(this._panningModel = "HRTF"), this._switchPanningModel();
}),
(e.prototype.switchPanningModelToEqualPower = function () {
(this._panningModel = "equalpower"), this._switchPanningModel();
}),
(e.prototype._switchPanningModel = function () {
a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && (this._soundPanner.panningModel = this._panningModel);
}),
(e.prototype.connectToSoundTrackAudioNode = function (e) {
a.a.audioEngine.canUseWebAudio && (this._isOutputConnected && this._outputAudioNode.disconnect(), this._outputAudioNode.connect(e), (this._isOutputConnected = !0));
}),
(e.prototype.setDirectionalCone = function (e, t, n) {
t < e
? s.a.Error("setDirectionalCone(): outer angle of the cone must be superior or equal to the inner angle.")
: ((this._coneInnerAngle = e), (this._coneOuterAngle = t), (this._coneOuterGain = n), (this._isDirectional = !0), this.isPlaying && this.loop && (this.stop(), this.play(0, this._offset, this._length)));
}),
Object.defineProperty(e.prototype, "directionalConeInnerAngle", {
get: function () {
return this._coneInnerAngle;
},
set: function (e) {
if (e != this._coneInnerAngle) {
if (this._coneOuterAngle < e) return void s.a.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");
(this._coneInnerAngle = e), a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && (this._soundPanner.coneInnerAngle = this._coneInnerAngle);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "directionalConeOuterAngle", {
get: function () {
return this._coneOuterAngle;
},
set: function (e) {
if (e != this._coneOuterAngle) {
if (e < this._coneInnerAngle) return void s.a.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");
(this._coneOuterAngle = e), a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && (this._soundPanner.coneOuterAngle = this._coneOuterAngle);
}
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setPosition = function (e) {
(this._position = e),
a.a.audioEngine.canUseWebAudio &&
this.spatialSound &&
this._soundPanner &&
!isNaN(this._position.x) &&
!isNaN(this._position.y) &&
!isNaN(this._position.z) &&
this._soundPanner.setPosition(this._position.x, this._position.y, this._position.z);
}),
(e.prototype.setLocalDirectionToMesh = function (e) {
(this._localDirection = e), a.a.audioEngine.canUseWebAudio && this._connectedTransformNode && this.isPlaying && this._updateDirection();
}),
(e.prototype._updateDirection = function () {
if (this._connectedTransformNode && this._soundPanner) {
var e = this._connectedTransformNode.getWorldMatrix(),
t = o.e.TransformNormal(this._localDirection, e);
t.normalize(), this._soundPanner.setOrientation(t.x, t.y, t.z);
}
}),
(e.prototype.updateDistanceFromListener = function () {
if (a.a.audioEngine.canUseWebAudio && this._connectedTransformNode && this.useCustomAttenuation && this._soundGain && this._scene.activeCamera) {
var e = this._connectedTransformNode.getDistanceToCamera(this._scene.activeCamera);
this._soundGain.gain.value = this._customAttenuationFunction(this._volume, e, this.maxDistance, this.refDistance, this.rolloffFactor);
}
}),
(e.prototype.setAttenuationFunction = function (e) {
this._customAttenuationFunction = e;
}),
(e.prototype.play = function (e, t, n) {
var i = this;
if (this._isReadyToPlay && this._scene.audioEnabled && a.a.audioEngine.audioContext)
try {
this._startOffset < 0 && ((e = -this._startOffset), (this._startOffset = 0));
var r = e ? a.a.audioEngine.audioContext.currentTime + e : a.a.audioEngine.audioContext.currentTime;
if (
((this._soundSource && this._streamingSource) ||
(this.spatialSound &&
this._soundPanner &&
(isNaN(this._position.x) || isNaN(this._position.y) || isNaN(this._position.z) || this._soundPanner.setPosition(this._position.x, this._position.y, this._position.z),
this._isDirectional &&
((this._soundPanner.coneInnerAngle = this._coneInnerAngle),
(this._soundPanner.coneOuterAngle = this._coneOuterAngle),
(this._soundPanner.coneOuterGain = this._coneOuterGain),
this._connectedTransformNode ? this._updateDirection() : this._soundPanner.setOrientation(this._localDirection.x, this._localDirection.y, this._localDirection.z)))),
this._streaming)
) {
if (
(this._streamingSource ||
((this._streamingSource = a.a.audioEngine.audioContext.createMediaElementSource(this._htmlAudioElement)),
(this._htmlAudioElement.onended = function () {
i._onended();
}),
(this._htmlAudioElement.playbackRate = this._playbackRate)),
this._streamingSource.disconnect(),
this._streamingSource.connect(this._inputAudioNode),
this._htmlAudioElement)
)
(o = function () {
if (a.a.audioEngine.unlocked) {
var e = i._htmlAudioElement.play();
void 0 !== e &&
e.catch(function (e) {
a.a.audioEngine.lock(),
(i.loop || i.autoplay) &&
a.a.audioEngine.onAudioUnlockedObservable.addOnce(function () {
o();
});
});
} else
(i.loop || i.autoplay) &&
a.a.audioEngine.onAudioUnlockedObservable.addOnce(function () {
o();
});
})();
} else {
var o = function () {
if (a.a.audioEngine.audioContext) {
(n = n || i._length),
(t = t || i._offset),
(i._soundSource = a.a.audioEngine.audioContext.createBufferSource()),
(i._soundSource.buffer = i._audioBuffer),
i._soundSource.connect(i._inputAudioNode),
(i._soundSource.loop = i.loop),
void 0 !== t && (i._soundSource.loopStart = t),
void 0 !== n && (i._soundSource.loopEnd = (0 | t) + n),
(i._soundSource.playbackRate.value = i._playbackRate),
(i._soundSource.onended = function () {
i._onended();
}),
(r = e ? a.a.audioEngine.audioContext.currentTime + e : a.a.audioEngine.audioContext.currentTime);
var o = i.isPaused ? i._startOffset % i._soundSource.buffer.duration : t || 0;
i._soundSource.start(r, o, i.loop ? void 0 : n);
}
};
"suspended" === a.a.audioEngine.audioContext.state
? setTimeout(function () {
"suspended" === a.a.audioEngine.audioContext.state
? (a.a.audioEngine.lock(),
(i.loop || i.autoplay) &&
a.a.audioEngine.onAudioUnlockedObservable.addOnce(function () {
o();
}))
: o();
}, 500)
: o();
}
(this._startTime = r), (this.isPlaying = !0), (this.isPaused = !1);
} catch (e) {
s.a.Error("Error while trying to play audio: " + this.name + ", " + e.message);
}
}),
(e.prototype._onended = function () {
(this.isPlaying = !1), this.onended && this.onended(), this.onEndedObservable.notifyObservers(this);
}),
(e.prototype.stop = function (e) {
var t = this;
if (this.isPlaying)
if (this._streaming)
this._htmlAudioElement ? (this._htmlAudioElement.pause(), this._htmlAudioElement.currentTime > 0 && (this._htmlAudioElement.currentTime = 0)) : this._streamingSource.disconnect(), (this.isPlaying = !1);
else if (a.a.audioEngine.audioContext && this._soundSource) {
var n = e ? a.a.audioEngine.audioContext.currentTime + e : a.a.audioEngine.audioContext.currentTime;
this._soundSource.stop(n),
(this._soundSource.onended = function () {
t.isPlaying = !1;
}),
this.isPaused || (this._startOffset = 0);
}
}),
(e.prototype.pause = function () {
this.isPlaying &&
((this.isPaused = !0),
this._streaming
? this._htmlAudioElement
? this._htmlAudioElement.pause()
: this._streamingSource.disconnect()
: a.a.audioEngine.audioContext && (this.stop(0), (this._startOffset += a.a.audioEngine.audioContext.currentTime - this._startTime)));
}),
(e.prototype.setVolume = function (e, t) {
a.a.audioEngine.canUseWebAudio &&
this._soundGain &&
(t && a.a.audioEngine.audioContext
? (this._soundGain.gain.cancelScheduledValues(a.a.audioEngine.audioContext.currentTime),
this._soundGain.gain.setValueAtTime(this._soundGain.gain.value, a.a.audioEngine.audioContext.currentTime),
this._soundGain.gain.linearRampToValueAtTime(e, a.a.audioEngine.audioContext.currentTime + t))
: (this._soundGain.gain.value = e)),
(this._volume = e);
}),
(e.prototype.setPlaybackRate = function (e) {
(this._playbackRate = e),
this.isPlaying && (this._streaming && this._htmlAudioElement ? (this._htmlAudioElement.playbackRate = this._playbackRate) : this._soundSource && (this._soundSource.playbackRate.value = this._playbackRate));
}),
(e.prototype.getVolume = function () {
return this._volume;
}),
(e.prototype.attachToMesh = function (e) {
var t = this;
this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), (this._registerFunc = null)),
(this._connectedTransformNode = e),
this.spatialSound || ((this.spatialSound = !0), this._createSpatialParameters(), this.isPlaying && this.loop && (this.stop(), this.play(0, this._offset, this._length))),
this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),
(this._registerFunc = function (e) {
return t._onRegisterAfterWorldMatrixUpdate(e);
}),
this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc);
}),
(e.prototype.detachFromMesh = function () {
this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), (this._registerFunc = null), (this._connectedTransformNode = null));
}),
(e.prototype._onRegisterAfterWorldMatrixUpdate = function (e) {
if (e.getBoundingInfo) {
var t = e;
if (this._positionInEmitterSpace) t.worldMatrixFromCache.invertToRef(o.c.Matrix[0]), this.setPosition(o.c.Matrix[0].getTranslation());
else {
var n = t.getBoundingInfo();
this.setPosition(n.boundingSphere.centerWorld);
}
a.a.audioEngine.canUseWebAudio && this._isDirectional && this.isPlaying && this._updateDirection();
}
}),
(e.prototype.clone = function () {
var t = this;
if (this._streaming) return null;
var n = function () {
t._isReadyToPlay ? ((r._audioBuffer = t.getAudioBuffer()), (r._isReadyToPlay = !0), r.autoplay && r.play(0, t._offset, t._length)) : window.setTimeout(n, 300);
},
i = {
autoplay: this.autoplay,
loop: this.loop,
volume: this._volume,
spatialSound: this.spatialSound,
maxDistance: this.maxDistance,
useCustomAttenuation: this.useCustomAttenuation,
rolloffFactor: this.rolloffFactor,
refDistance: this.refDistance,
distanceModel: this.distanceModel,
},
r = new e(this.name + "_cloned", new ArrayBuffer(0), this._scene, null, i);
return this.useCustomAttenuation && r.setAttenuationFunction(this._customAttenuationFunction), r.setPosition(this._position), r.setPlaybackRate(this._playbackRate), n(), r;
}),
(e.prototype.getAudioBuffer = function () {
return this._audioBuffer;
}),
(e.prototype.serialize = function () {
var e = {
name: this.name,
url: this.name,
autoplay: this.autoplay,
loop: this.loop,
volume: this._volume,
spatialSound: this.spatialSound,
maxDistance: this.maxDistance,
rolloffFactor: this.rolloffFactor,
refDistance: this.refDistance,
distanceModel: this.distanceModel,
playbackRate: this._playbackRate,
panningModel: this._panningModel,
soundTrackId: this.soundTrackId,
};
return (
this.spatialSound &&
(this._connectedTransformNode && (e.connectedMeshId = this._connectedTransformNode.id),
(e.position = this._position.asArray()),
(e.refDistance = this.refDistance),
(e.distanceModel = this.distanceModel),
(e.isDirectional = this._isDirectional),
(e.localDirectionToMesh = this._localDirection.asArray()),
(e.coneInnerAngle = this._coneInnerAngle),
(e.coneOuterAngle = this._coneOuterAngle),
(e.coneOuterGain = this._coneOuterGain)),
e
);
}),
(e.Parse = function (t, n, i, r) {
var a,
s = t.name;
a = t.url ? i + t.url : i + s;
var c,
l = {
autoplay: t.autoplay,
loop: t.loop,
volume: t.volume,
spatialSound: t.spatialSound,
maxDistance: t.maxDistance,
rolloffFactor: t.rolloffFactor,
refDistance: t.refDistance,
distanceModel: t.distanceModel,
playbackRate: t.playbackRate,
};
if (r) {
var u = function () {
r._isReadyToPlay ? ((c._audioBuffer = r.getAudioBuffer()), (c._isReadyToPlay = !0), c.autoplay && c.play(0, c._offset, c._length)) : window.setTimeout(u, 300);
};
(c = new e(s, new ArrayBuffer(0), n, null, l)), u();
} else
(c = new e(
s,
a,
n,
function () {
n._removePendingData(c);
},
l
)),
n._addPendingData(c);
if (t.position) {
var h = o.e.FromArray(t.position);
c.setPosition(h);
}
if (t.isDirectional && (c.setDirectionalCone(t.coneInnerAngle || 360, t.coneOuterAngle || 360, t.coneOuterGain || 0), t.localDirectionToMesh)) {
var d = o.e.FromArray(t.localDirectionToMesh);
c.setLocalDirectionToMesh(d);
}
if (t.connectedMeshId) {
var p = n.getMeshByID(t.connectedMeshId);
p && c.attachToMesh(p);
}
return c;
}),
(e._SceneComponentInitialization = function (e) {
throw c.a.WarnImport("AudioSceneComponent");
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
var e = this;
this.promise = new Promise(function (t, n) {
(e._resolve = t), (e._reject = n);
});
}
return (
Object.defineProperty(e.prototype, "resolve", {
get: function () {
return this._resolve;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "reject", {
get: function () {
return this._reject;
},
enumerable: !0,
configurable: !0,
}),
e
);
})();
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.SoundController = t.MusicID = t.TrackSoundID = t.SoundID = t.SoundModel = void 0);
const i = n(40),
r = n(62),
o = n(29),
a = n(19);
class s {
static fromJson(e) {
return Object.assign(new s(), e);
}
getOffset() {
return this.start;
}
getLength() {
return this.end - this.start;
}
}
var c, l, u;
(t.SoundModel = s),
(function (e) {
(e[(e.BonusMeterFull = 0)] = "BonusMeterFull"),
(e[(e.BonusPickup = 1)] = "BonusPickup"),
(e[(e.BoostLoop = 2)] = "BoostLoop"),
(e[(e.ButtonClick = 3)] = "ButtonClick"),
(e[(e.CashRegister = 4)] = "CashRegister"),
(e[(e.ChestOpen = 5)] = "ChestOpen"),
(e[(e.ChestDropin = 6)] = "ChestDropin"),
(e[(e.ChestLeave = 7)] = "ChestLeave"),
(e[(e.ChestScreenOpen = 8)] = "ChestScreenOpen"),
(e[(e.Coin = 9)] = "Coin"),
(e[(e.MineCartTurn = 10)] = "MineCartTurn"),
(e[(e.MineCartTilt = 11)] = "MineCartTilt"),
(e[(e.MineCartLoop = 12)] = "MineCartLoop"),
(e[(e.Magnet = 13)] = "Magnet"),
(e[(e.MonkeyRoar = 14)] = "MonkeyRoar"),
(e[(e.ShieldLoop = 15)] = "ShieldLoop"),
(e[(e.ShieldPop = 16)] = "ShieldPop"),
(e[(e.Slide = 17)] = "Slide"),
(e[(e.Splash = 18)] = "Splash"),
(e[(e.Swish = 19)] = "Swish"),
(e[(e.Wooosh = 20)] = "Wooosh"),
(e[(e.SplashEntry = 21)] = "SplashEntry"),
(e[(e.GruntTrip = 22)] = "GruntTrip"),
(e[(e.GruntJump = 23)] = "GruntJump"),
(e[(e.GruntJumpLand = 24)] = "GruntJumpLand"),
(e[(e.Splat = 25)] = "Splat"),
(e[(e.Scream = 26)] = "Scream"),
(e[(e.Woohoo = 27)] = "Woohoo"),
(e[(e.PillarCrash = 28)] = "PillarCrash"),
(e[(e.PillarFall = 29)] = "PillarFall"),
(e[(e.Sizzle = 30)] = "Sizzle");
})((c = t.SoundID || (t.SoundID = {}))),
(function (e) {
(e[(e.WaterLoopC = 0)] = "WaterLoopC"), (e[(e.SkySummitPlank = 1)] = "SkySummitPlank"), (e[(e.SpinningSpikeTrap = 2)] = "SpinningSpikeTrap"), (e[(e.FlameTrap = 3)] = "FlameTrap"), (e[(e.SawBlade = 4)] = "SawBlade");
})((l = t.TrackSoundID || (t.TrackSoundID = {}))),
(function (e) {
(e[(e.None = -1)] = "None"), (e[(e.NightMusic = 0)] = "NightMusic"), (e[(e.Game = 1)] = "Game");
})((u = t.MusicID || (t.MusicID = {})));
t.SoundController = class {
constructor(e) {
(this._baseSoundURL = "assets/sounds/sfx/"),
(this._baseMusicURL = "assets/sounds/music/"),
(this._soundMuted = !1),
(this._musicMuted = !1),
(this._isInitialized = !1),
(this._soundsToLoadCount = 0),
(this._soundsLoadedCount = 0),
(this._scene = e);
}
initialize() {
(this._currentMusicState = u.None),
(this._loopedSoundPlaying = new Map()),
(this._audioSprite = new Map()),
(this._trackAudioSprite = new Map()),
(this._trackPieceSound = new Array()),
(this._sfxVolume = i.GameController.instance.gameState.flagsData.soundVolume / 100),
(this._musicVolume = i.GameController.instance.gameState.flagsData.musicVolume / 100),
(r.Engine.audioEngine.useCustomUnlockedButton = !0),
r.Engine.audioEngine.lock(),
(r.Engine.audioEngine.audioContext.onstatechange = () => {}),
this._preloadMusic(),
this._loadSFXSpriteJSON(),
this._loadTrackSFXSpriteJSON(),
this._loadSoundSpriteToBuffer(this._baseSoundURL + "sfx." + a.WebUtils.audioExtension),
this._loadTrackSpriteToBuffer(this._baseSoundURL + "track_sfx." + a.WebUtils.audioExtension),
o.EventHandler.instance.addListener(o.EventID.PlaySFX, this._playSFX.bind(this)),
o.EventHandler.instance.addListener(o.EventID.PlaySFXLoop, this._playSFXLoop.bind(this)),
o.EventHandler.instance.addListener(o.EventID.PlaySFXDelay, this._playSFXWithDelay.bind(this)),
o.EventHandler.instance.addListener(o.EventID.StopSFX, this._stopSFX.bind(this)),
o.EventHandler.instance.addListener(o.EventID.PlayMusic, this._playMusic.bind(this)),
o.EventHandler.instance.addListener(o.EventID.StopMusic, this._stopMusic.bind(this)),
o.EventHandler.instance.addListener(o.EventID.OnPlayGame, this._onPlayGame.bind(this)),
o.EventHandler.instance.addListener(o.EventID.OnPlayerDeath, this._onPlayerDeath.bind(this)),
o.EventHandler.instance.addListener(o.EventID.MusicVolumeChange, this._setMusicVolume.bind(this)),
o.EventHandler.instance.addListener(o.EventID.SoundVolumeChange, this._setSoundSFXVolume.bind(this)),
o.EventHandler.instance.addListener(o.EventID.MuteAll, this._muteAll.bind(this)),
o.EventHandler.instance.addListener(o.EventID.UnmuteAll, this._unmuteAll.bind(this)),
o.EventHandler.instance.addListener(o.EventID.OnFirstUserInput, this._startInitialMusic.bind(this));
}
preUpdate() {}
postUpdate() {}
pause() {
this._muteAll();
}
resume() {
this._unmuteAll();
}
reset() {
0 == i.GameController.instance.tutorial.shouldRestartTutorial && 0 == i.GameController.instance.isRestarting ? this._startAll() : this._unmuteAll();
}
_checkAudioContext(e) {
try {
const t = r.Engine.audioEngine.audioContext;
t
? t
.resume()
.then(() => {
null != e && e();
})
.catch((t) => {
null != e && e();
})
: null != e && e();
} catch (t) {
null != e && e();
}
}
_onAudioLoaded() {
this._soundsLoadedCount++,
this._soundsLoadedCount < this._soundsToLoadCount ||
this._checkAudioContext(() => {
this._startInitialMusic();
});
}
_startInitialMusic() {
this._soundsLoadedCount < 3 ||
(0 == this._isInitialized && (r.Engine.audioEngine.unlock(), "running" != r.Engine.audioEngine.audioContext.state && r.Engine.audioEngine.audioContext.resume(), (this._isInitialized = !0), this._startAll()));
}
_onPlayGame() {
0 == this._isInitialized && (r.Engine.audioEngine.unlock(), (this._isInitialized = !0)), this._startAll();
}
_onPlayerDeath() {
this._muteAll();
}
_stopAll() {
this._isInitialized &&
(this._unmuteAll(),
this._gameMusic.isPlaying && this._gameMusic.stop(0),
this._uiMusic.isPlaying && this._uiMusic.stop(0),
this._loopedSoundPlaying.forEach((e) => {
e.isPlaying && e.stop(0);
}),
this._trackPieceSound.forEach((e) => {
e.isPlaying && e.stop(0);
}));
}
_startAll() {
this._unmuteAll(),
this._stopAll(),
setTimeout(() => {
i.GameController.instance.isGameStarted ? this._playMusic(u.Game) : this._playMusic(u.NightMusic);
}, 200);
}
_playSFX(e) {
if (this._isInitialized) {
const t = this._audioSprite.get(c[e]).getOffset(),
n = this._audioSprite.get(c[e]).getLength();
this._masterSound.setVolume(this._sfxVolume), this._masterSound.updateOptions({ spatialSound: !1 }), this._masterSound.play(0, t, n);
}
}
_playSFXLoop(e) {
if (this._isInitialized && !this._loopedSoundPlaying.has(e)) {
const t = this._audioSprite.get(c[e]).getOffset(),
n = this._audioSprite.get(c[e]).getLength(),
i = this._masterSound.clone();
i.setVolume(this._sfxVolume), (i.loop = !0), this._loopedSoundPlaying.set(e, i), this._masterSound.updateOptions({ spatialSound: !1 }), i.play(0, t, n);
}
}
_playSFXWithDelay(e) {
const t = e.delay,
n = e.id;
setTimeout(() => {
this._playSFX(n);
}, t);
}
_getTrackPieceSound() {
const e = this._masterTrackSound.clone();
return e.setVolume(this._sfxVolume), this._trackPieceSound.push(e), e;
}
_preloadMusic() {
this._loadAudioBuffer(this._baseMusicURL + "NightMusic." + a.WebUtils.audioExtension, (e) => {
(this._uiMusic = new r.Sound("UI", e, this._scene, null, { loop: !0 })), setTimeout(() => this._onAudioLoaded(), 200);
}),
this._loadAudioBuffer(this._baseMusicURL + "Game." + a.WebUtils.audioExtension, (e) => {
(this._gameMusic = new r.Sound("Game", e, this._scene, null, { loop: !0 })), setTimeout(() => this._onAudioLoaded(), 200);
});
}
_loadSFXSpriteJSON() {
const e = n(290);
for (const t in e) this._audioSprite.set(t, s.fromJson(e[t]));
}
_loadTrackSFXSpriteJSON() {
const e = n(291);
for (const t in e) this._trackAudioSprite.set(t, s.fromJson(e[t]));
}
_loadSoundSpriteToBuffer(e) {
this._loadAudioBuffer(e, (e) => {
(this._masterSound = new r.Sound("master", e, this._scene)), setTimeout(() => this._onAudioLoaded(), 200);
});
}
_loadTrackSpriteToBuffer(e) {
this._loadAudioBuffer(e, (e) => {
(this._masterTrackSound = new r.Sound("Trackmaster", e, this._scene, null, { spatialSound: !0 })), setTimeout(() => this._onAudioLoaded(), 200);
});
}
_loadAudioBuffer(e, t) {
this._soundsToLoadCount++;
const n = new XMLHttpRequest();
n.open("GET", e, !0),
(n.responseType = "arraybuffer"),
(n.onreadystatechange = () => {
4 == n.readyState && 200 == n.status && t(n.response);
}),
n.send(null);
}
_playMusic(e) {
this._isInitialized &&
((this._currentMusicState = e),
this._gameMusic.isPlaying && this._gameMusic.stop(0),
this._uiMusic.isPlaying && this._uiMusic.stop(0),
e == u.NightMusic ? (this._uiMusic.play(0), this._uiMusic.setVolume(this._musicVolume)) : e == u.Game && (this._gameMusic.play(0), this._gameMusic.setVolume(this._musicVolume)));
}
_stopSFX(e) {
if (this._isInitialized && this._loopedSoundPlaying.has(e)) {
const t = this._loopedSoundPlaying.get(e);
t.isPlaying && t.stop(0), this._loopedSoundPlaying.delete(e);
}
}
_stopMusic(e) {
this._isInitialized && (e == u.Game ? this._gameMusic.isPlaying && this._gameMusic.stop(0) : e == u.NightMusic && this._uiMusic.isPlaying && this._uiMusic.stop(0));
}
_setSoundSFXVolume(e) {
this._isInitialized &&
((this._sfxVolume = e / 100),
this._loopedSoundPlaying.forEach((e) => {
e.setVolume(this._sfxVolume);
}));
}
_setMusicVolume(e) {
this._isInitialized &&
((this._musicVolume = e / 100), this._currentMusicState == u.Game ? this._gameMusic.setVolume(this._musicVolume) : this._currentMusicState == u.NightMusic && this._uiMusic.setVolume(this._musicVolume));
}
_muteAll() {
!this._isInitialized || this._musicMuted || this._soundMuted || (this._muteSoundSFX(), this._muteMusic());
}
_unmuteAll() {
this._isInitialized && (this._musicMuted || this._soundMuted) && (this._unmuteSoundSFX(), this._unmuteMusic());
}
_muteSoundSFX() {
this._isInitialized &&
0 == this._soundMuted &&
((this._soundMuted = !0),
(this._sfxVolumeBeforeMute = this._sfxVolume),
(this._sfxVolume = 0),
this._loopedSoundPlaying.forEach((e) => {
e.setVolume(this._sfxVolume);
}),
this._trackPieceSound.forEach((e) => {
e.setVolume(this._sfxVolume);
}));
}
_muteMusic() {
this._isInitialized &&
0 == this._musicMuted &&
((this._musicMuted = !0), (this._musicVolumeBeforeMute = this._musicVolume), (this._musicVolume = 0), this._gameMusic.setVolume(this._musicVolume), this._uiMusic.setVolume(this._musicVolume));
}
_unmuteSoundSFX() {
this._isInitialized &&
this._soundMuted &&
((this._soundMuted = !1),
(this._sfxVolume = this._sfxVolumeBeforeMute),
this._loopedSoundPlaying.forEach((e) => {
e.setVolume(this._sfxVolume);
}),
this._trackPieceSound.forEach((e) => {
e.setVolume(this._sfxVolume);
}));
}
_unmuteMusic() {
this._isInitialized && this._musicMuted && ((this._musicMuted = !1), (this._musicVolume = this._musicVolumeBeforeMute), this._gameMusic.setVolume(this._musicVolume), this._uiMusic.setVolume(this._musicVolume));
}
addSoundsToTrackPiece(e) {
if (null == e.sound) {
let t = 0;
if (
(e.name.includes("curve_water")
? (t = l.WaterLoopC)
: "forest_jump_over_a" == e.name || "run_between_a" == e.name
? (t = l.SpinningSpikeTrap)
: e.name.includes("mine_duck_b") || "jump_over_b" == e.name
? (t = l.SawBlade)
: (e.name.includes("jump_or_slide_a") || e.name.includes("forest_jump_over_b") || e.name.includes("narrow_jump_or_slide_a")) && (t = l.FlameTrap),
0 != t)
) {
e.sound = this._getTrackPieceSound();
const n = this._trackAudioSprite.get(l[t]).getOffset(),
i = this._trackAudioSprite.get(l[t]).getLength();
(e.soundLength = i), (e.soundOffset = n);
}
}
}
playCoinCollectedSFX(e) {
if (this._isInitialized) {
const t = c.Coin,
n = this._audioSprite.get(c[t]).getOffset(),
i = this._audioSprite.get(c[t]).getLength(),
r = this._masterSound.clone();
r.setVolume(this._sfxVolume), r.setPlaybackRate(e), r.play(0, n, i);
}
}
};
},
function (e, t, n) {
"use strict";
var i = "imageProcessingDeclaration",
r =
"#ifdef EXPOSURE\nuniform float exposureLinear;\n#endif\n#ifdef CONTRAST\nuniform float contrast;\n#endif\n#ifdef VIGNETTE\nuniform vec2 vInverseScreenSize;\nuniform vec4 vignetteSettings1;\nuniform vec4 vignetteSettings2;\n#endif\n#ifdef COLORCURVES\nuniform vec4 vCameraColorCurveNegative;\nuniform vec4 vCameraColorCurveNeutral;\nuniform vec4 vCameraColorCurvePositive;\n#endif\n#ifdef COLORGRADING\n#ifdef COLORGRADING3D\nuniform highp sampler3D txColorTransform;\n#else\nuniform sampler2D txColorTransform;\n#endif\nuniform vec4 colorTransformSettings;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "imageProcessingFunctions",
r =
"#if defined(COLORGRADING) && !defined(COLORGRADING3D)\n\nvec3 sampleTexture3D(sampler2D colorTransform,vec3 color,vec2 sampler3dSetting)\n{\nfloat sliceSize=2.0*sampler3dSetting.x;\n#ifdef SAMPLER3DGREENDEPTH\nfloat sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;\n#else\nfloat sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;\n#endif\nfloat sliceInteger=floor(sliceContinuous);\n\n\nfloat sliceFraction=sliceContinuous-sliceInteger;\n#ifdef SAMPLER3DGREENDEPTH\nvec2 sliceUV=color.rb;\n#else\nvec2 sliceUV=color.rg;\n#endif\nsliceUV.x*=sliceSize;\nsliceUV.x+=sliceInteger*sliceSize;\nsliceUV=saturate(sliceUV);\nvec4 slice0Color=texture2D(colorTransform,sliceUV);\nsliceUV.x+=sliceSize;\nsliceUV=saturate(sliceUV);\nvec4 slice1Color=texture2D(colorTransform,sliceUV);\nvec3 result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);\n#ifdef SAMPLER3DBGRMAP\ncolor.rgb=result.rgb;\n#else\ncolor.rgb=result.bgr;\n#endif\nreturn color;\n}\n#endif\n#ifdef TONEMAPPING_ACES\n\n\n\n\n\nconst mat3 ACESInputMat=mat3(\nvec3(0.59719,0.07600,0.02840),\nvec3(0.35458,0.90834,0.13383),\nvec3(0.04823,0.01566,0.83777)\n);\n\nconst mat3 ACESOutputMat=mat3(\nvec3( 1.60475,-0.10208,-0.00327),\nvec3(-0.53108,1.10813,-0.07276),\nvec3(-0.07367,-0.00605,1.07602)\n);\nvec3 RRTAndODTFit(vec3 v)\n{\nvec3 a=v*(v+0.0245786)-0.000090537;\nvec3 b=v*(0.983729*v+0.4329510)+0.238081;\nreturn a/b;\n}\nvec3 ACESFitted(vec3 color)\n{\ncolor=ACESInputMat*color;\n\ncolor=RRTAndODTFit(color);\ncolor=ACESOutputMat*color;\n\ncolor=saturate(color);\nreturn color;\n}\n#endif\nvec4 applyImageProcessing(vec4 result) {\n#ifdef EXPOSURE\nresult.rgb*=exposureLinear;\n#endif\n#ifdef VIGNETTE\n\nvec2 viewportXY=gl_FragCoord.xy*vInverseScreenSize;\nviewportXY=viewportXY*2.0-1.0;\nvec3 vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);\nfloat vignetteTerm=dot(vignetteXY1,vignetteXY1);\nfloat vignette=pow(vignetteTerm,vignetteSettings2.w);\n\nvec3 vignetteColor=vignetteSettings2.rgb;\n#ifdef VIGNETTEBLENDMODEMULTIPLY\nvec3 vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);\nresult.rgb*=vignetteColorMultiplier;\n#endif\n#ifdef VIGNETTEBLENDMODEOPAQUE\nresult.rgb=mix(vignetteColor,result.rgb,vignette);\n#endif\n#endif\n#ifdef TONEMAPPING\n#ifdef TONEMAPPING_ACES\nresult.rgb=ACESFitted(result.rgb);\n#else\nconst float tonemappingCalibration=1.590579;\nresult.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);\n#endif\n#endif\n\nresult.rgb=toGammaSpace(result.rgb);\nresult.rgb=saturate(result.rgb);\n#ifdef CONTRAST\n\nvec3 resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);\nif (contrast<1.0) {\n\nresult.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);\n} else {\n\nresult.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);\n}\n#endif\n\n#ifdef COLORGRADING\nvec3 colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\n#ifdef COLORGRADING3D\nvec3 colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;\n#else\nvec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\n#endif\nresult.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);\n#endif\n#ifdef COLORCURVES\n\nfloat luma=getLuminance(result.rgb);\nvec2 curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));\nvec4 colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;\nresult.rgb*=colorCurve.rgb;\nresult.rgb=mix(vec3(luma),result.rgb,colorCurve.a);\n#endif\nreturn result;\n}";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "logDepthDeclaration",
r = "#ifdef LOGARITHMICDEPTH\nuniform float logarithmicDepthConstant;\nvarying float vFragmentDepth;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "morphTargetsVertex",
r =
"#ifdef MORPHTARGETS\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\n#endif\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return a;
}),
n.d(t, "a", function () {
return s;
});
var i = n(27),
r = n(6),
o = n(25),
a =
(n(165),
(function () {
function e() {}
return (
(e.prototype.serialize = function () {
var e = {};
return (e.animation = this.animation.serialize()), (e.targetId = this.target.id), e;
}),
e
);
})()),
s = (function () {
function e(e, t) {
void 0 === t && (t = null),
(this.name = e),
(this._targetedAnimations = new Array()),
(this._animatables = new Array()),
(this._from = Number.MAX_VALUE),
(this._to = -Number.MAX_VALUE),
(this._speedRatio = 1),
(this._loopAnimation = !1),
(this.onAnimationEndObservable = new r.c()),
(this.onAnimationLoopObservable = new r.c()),
(this.onAnimationGroupLoopObservable = new r.c()),
(this.onAnimationGroupEndObservable = new r.c()),
(this.onAnimationGroupPauseObservable = new r.c()),
(this.onAnimationGroupPlayObservable = new r.c()),
(this._scene = t || o.a.LastCreatedScene),
(this.uniqueId = this._scene.getUniqueId()),
this._scene.animationGroups.push(this);
}
return (
Object.defineProperty(e.prototype, "from", {
get: function () {
return this._from;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "to", {
get: function () {
return this._to;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isStarted", {
get: function () {
return this._isStarted;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isPlaying", {
get: function () {
return this._isStarted && !this._isPaused;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "speedRatio", {
get: function () {
return this._speedRatio;
},
set: function (e) {
if (this._speedRatio !== e) {
this._speedRatio = e;
for (var t = 0; t < this._animatables.length; t++) {
this._animatables[t].speedRatio = this._speedRatio;
}
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "loopAnimation", {
get: function () {
return this._loopAnimation;
},
set: function (e) {
if (this._loopAnimation !== e) {
this._loopAnimation = e;
for (var t = 0; t < this._animatables.length; t++) {
this._animatables[t].loopAnimation = this._loopAnimation;
}
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "targetedAnimations", {
get: function () {
return this._targetedAnimations;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "animatables", {
get: function () {
return this._animatables;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.addTargetedAnimation = function (e, t) {
var n = new a();
(n.animation = e), (n.target = t);
var i = e.getKeys();
return this._from > i[0].frame && (this._from = i[0].frame), this._to < i[i.length - 1].frame && (this._to = i[i.length - 1].frame), this._targetedAnimations.push(n), n;
}),
(e.prototype.normalize = function (e, t) {
void 0 === e && (e = null), void 0 === t && (t = null), null == e && (e = this._from), null == t && (t = this._to);
for (var n = 0; n < this._targetedAnimations.length; n++) {
var i = this._targetedAnimations[n].animation.getKeys(),
r = i[0],
o = i[i.length - 1];
if (r.frame > e) {
var a = { frame: e, value: r.value, inTangent: r.inTangent, outTangent: r.outTangent, interpolation: r.interpolation };
i.splice(0, 0, a);
}
if (o.frame < t) {
a = { frame: t, value: o.value, inTangent: o.outTangent, outTangent: o.outTangent, interpolation: o.interpolation };
i.push(a);
}
}
return (this._from = e), (this._to = t), this;
}),
(e.prototype._processLoop = function (e, t, n) {
var i = this;
e.onAnimationLoop = function () {
i.onAnimationLoopObservable.notifyObservers(t),
i._animationLoopFlags[n] ||
((i._animationLoopFlags[n] = !0),
i._animationLoopCount++,
i._animationLoopCount === i._targetedAnimations.length && (i.onAnimationGroupLoopObservable.notifyObservers(i), (i._animationLoopCount = 0), (i._animationLoopFlags = [])));
};
}),
(e.prototype.start = function (e, t, n, i) {
var r = this;
if ((void 0 === e && (e = !1), void 0 === t && (t = 1), this._isStarted || 0 === this._targetedAnimations.length)) return this;
(this._loopAnimation = e), (this._animationLoopCount = 0), (this._animationLoopFlags = []);
for (
var o = function () {
var o = a._targetedAnimations[s],
c = a._scene.beginDirectAnimation(o.target, [o.animation], void 0 !== n ? n : a._from, void 0 !== i ? i : a._to, e, t);
(c.onAnimationEnd = function () {
r.onAnimationEndObservable.notifyObservers(o), r._checkAnimationGroupEnded(c);
}),
a._processLoop(c, o, s),
a._animatables.push(c);
},
a = this,
s = 0;
s < this._targetedAnimations.length;
s++
)
o();
if (((this._speedRatio = t), void 0 !== n && void 0 !== i))
if (n < i && this._speedRatio < 0) {
var c = i;
(i = n), (n = c);
} else n > i && this._speedRatio > 0 && (this._speedRatio = -t);
return (this._isStarted = !0), (this._isPaused = !1), this.onAnimationGroupPlayObservable.notifyObservers(this), this;
}),
(e.prototype.pause = function () {
if (!this._isStarted) return this;
this._isPaused = !0;
for (var e = 0; e < this._animatables.length; e++) {
this._animatables[e].pause();
}
return this.onAnimationGroupPauseObservable.notifyObservers(this), this;
}),
(e.prototype.play = function (e) {
return (
this.isStarted && this._animatables.length === this._targetedAnimations.length ? (void 0 !== e && (this.loopAnimation = e), this.restart()) : (this.stop(), this.start(e, this._speedRatio)),
(this._isPaused = !1),
this
);
}),
(e.prototype.reset = function () {
if (!this._isStarted) return this;
for (var e = 0; e < this._animatables.length; e++) {
this._animatables[e].reset();
}
return this;
}),
(e.prototype.restart = function () {
if (!this._isStarted) return this;
for (var e = 0; e < this._animatables.length; e++) {
this._animatables[e].restart();
}
return this.onAnimationGroupPlayObservable.notifyObservers(this), this;
}),
(e.prototype.stop = function () {
if (!this._isStarted) return this;
for (var e = this._animatables.slice(), t = 0; t < e.length; t++) e[t].stop();
return (this._isStarted = !1), this;
}),
(e.prototype.setWeightForAllAnimatables = function (e) {
for (var t = 0; t < this._animatables.length; t++) {
this._animatables[t].weight = e;
}
return this;
}),
(e.prototype.syncAllAnimationsWith = function (e) {
for (var t = 0; t < this._animatables.length; t++) {
this._animatables[t].syncWith(e);
}
return this;
}),
(e.prototype.goToFrame = function (e) {
if (!this._isStarted) return this;
for (var t = 0; t < this._animatables.length; t++) {
this._animatables[t].goToFrame(e);
}
return this;
}),
(e.prototype.dispose = function () {
(this._targetedAnimations = []), (this._animatables = []);
var e = this._scene.animationGroups.indexOf(this);
e > -1 && this._scene.animationGroups.splice(e, 1),
this.onAnimationEndObservable.clear(),
this.onAnimationGroupEndObservable.clear(),
this.onAnimationGroupPauseObservable.clear(),
this.onAnimationGroupPlayObservable.clear(),
this.onAnimationLoopObservable.clear(),
this.onAnimationGroupLoopObservable.clear();
}),
(e.prototype._checkAnimationGroupEnded = function (e) {
var t = this._animatables.indexOf(e);
t > -1 && this._animatables.splice(t, 1), 0 === this._animatables.length && ((this._isStarted = !1), this.onAnimationGroupEndObservable.notifyObservers(this));
}),
(e.prototype.clone = function (t, n) {
for (var i = new e(t || this.name, this._scene), r = 0, o = this._targetedAnimations; r < o.length; r++) {
var a = o[r];
i.addTargetedAnimation(a.animation.clone(), n ? n(a.target) : a.target);
}
return i;
}),
(e.prototype.serialize = function () {
var e = {};
(e.name = this.name), (e.from = this.from), (e.to = this.to), (e.targetedAnimations = []);
for (var t = 0; t < this.targetedAnimations.length; t++) {
var n = this.targetedAnimations[t];
e.targetedAnimations[t] = n.serialize();
}
return e;
}),
(e.Parse = function (t, n) {
for (var r = new e(t.name, n), o = 0; o < t.targetedAnimations.length; o++) {
var a = t.targetedAnimations[o],
s = i.a.Parse(a.animation),
c = a.targetId;
if ("influence" === a.animation.property) {
var l = n.getMorphTargetById(c);
l && r.addTargetedAnimation(s, l);
} else {
var u = n.getNodeByID(c);
null != u && r.addTargetedAnimation(s, u);
}
}
return null !== t.from && null !== t.to && r.normalize(t.from, t.to), r;
}),
(e.prototype.getClassName = function () {
return "AnimationGroup";
}),
(e.prototype.toString = function (e) {
var t = "Name: " + this.name;
return (
(t += ", type: " + this.getClassName()),
e &&
((t += ", from: " + this._from),
(t += ", to: " + this._to),
(t += ", isStarted: " + this._isStarted),
(t += ", speedRatio: " + this._speedRatio),
(t += ", targetedAnimations length: " + this._targetedAnimations.length),
(t += ", animatables length: " + this._animatables)),
t
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(1),
r = n(15),
o = n(108),
a = n(34),
s = n(5),
c = function (e, t, n, i) {
(this.name = e), (this.worldAxisForNormal = t), (this.worldAxisForFileX = n), (this.worldAxisForFileY = i);
},
l = (function () {
function e() {}
return (
(e.ConvertCubeMapTextureToSphericalPolynomial = function (e) {
if (!e.isCube) return null;
var t,
n,
i = e.getSize().width,
r = e.readPixels(0),
o = e.readPixels(1);
e.isRenderTarget ? ((t = e.readPixels(3)), (n = e.readPixels(2))) : ((t = e.readPixels(2)), (n = e.readPixels(3)));
var a = e.readPixels(4),
s = e.readPixels(5),
c = e.gammaSpace,
l = 0;
(1 != e.textureType && 2 != e.textureType) || (l = 1);
var u = { size: i, right: r, left: o, up: t, down: n, front: a, back: s, format: 5, type: l, gammaSpace: c };
return this.ConvertCubeMapToSphericalPolynomial(u);
}),
(e.ConvertCubeMapToSphericalPolynomial = function (e) {
for (var t = new o.a(), n = 0, i = 2 / e.size, c = i, l = 0.5 * i - 1, u = 0; u < 6; u++)
for (var h = this.FileFaces[u], d = e[h.name], p = l, f = 5 === e.format ? 4 : 3, m = 0; m < e.size; m++) {
for (var g = l, b = 0; b < e.size; b++) {
var _ = h.worldAxisForFileX.scale(g).add(h.worldAxisForFileY.scale(p)).add(h.worldAxisForNormal);
_.normalize();
var v = Math.pow(1 + g * g + p * p, -1.5),
y = d[m * e.size * f + b * f + 0],
C = d[m * e.size * f + b * f + 1],
P = d[m * e.size * f + b * f + 2];
isNaN(y) && (y = 0),
isNaN(C) && (C = 0),
isNaN(P) && (P = 0),
0 === e.type && ((y /= 255), (C /= 255), (P /= 255)),
e.gammaSpace && ((y = Math.pow(r.a.Clamp(y), a.c)), (C = Math.pow(r.a.Clamp(C), a.c)), (P = Math.pow(r.a.Clamp(P), a.c)));
(y = r.a.Clamp(y, 0, 4096)), (C = r.a.Clamp(C, 0, 4096)), (P = r.a.Clamp(P, 0, 4096));
var x = new s.a(y, C, P);
t.addLight(_, x, v), (n += v), (g += i);
}
p += c;
}
var T = (6 * (4 * Math.PI)) / 6 / n;
return t.scaleInPlace(T), t.convertIncidentRadianceToIrradiance(), t.convertIrradianceToLambertianRadiance(), o.b.FromHarmonics(t);
}),
(e.FileFaces = [
new c("right", new i.e(1, 0, 0), new i.e(0, 0, -1), new i.e(0, -1, 0)),
new c("left", new i.e(-1, 0, 0), new i.e(0, 0, 1), new i.e(0, -1, 0)),
new c("up", new i.e(0, 1, 0), new i.e(1, 0, 0), new i.e(0, 0, 1)),
new c("down", new i.e(0, -1, 0), new i.e(1, 0, 0), new i.e(0, 0, -1)),
new c("front", new i.e(0, 0, 1), new i.e(1, 0, 0), new i.e(0, -1, 0)),
new c("back", new i.e(0, 0, -1), new i.e(-1, 0, 0), new i.e(0, -1, 0)),
]),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e(e, t, n) {
(this.name = e), (this.from = t), (this.to = n);
}
return (
(e.prototype.clone = function () {
return new e(this.name, this.from, this.to);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = function () {};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return a;
});
var i = n(58),
r = n(1),
o = n(34),
a = (function () {
function e(e, t, n) {
(this.vectors = i.a.BuildArray(8, r.e.Zero)),
(this.center = r.e.Zero()),
(this.centerWorld = r.e.Zero()),
(this.extendSize = r.e.Zero()),
(this.extendSizeWorld = r.e.Zero()),
(this.directions = i.a.BuildArray(3, r.e.Zero)),
(this.vectorsWorld = i.a.BuildArray(8, r.e.Zero)),
(this.minimumWorld = r.e.Zero()),
(this.maximumWorld = r.e.Zero()),
(this.minimum = r.e.Zero()),
(this.maximum = r.e.Zero()),
this.reConstruct(e, t, n);
}
return (
(e.prototype.reConstruct = function (e, t, n) {
var i = e.x,
o = e.y,
a = e.z,
s = t.x,
c = t.y,
l = t.z,
u = this.vectors;
this.minimum.copyFromFloats(i, o, a),
this.maximum.copyFromFloats(s, c, l),
u[0].copyFromFloats(i, o, a),
u[1].copyFromFloats(s, c, l),
u[2].copyFromFloats(s, o, a),
u[3].copyFromFloats(i, c, a),
u[4].copyFromFloats(i, o, l),
u[5].copyFromFloats(s, c, a),
u[6].copyFromFloats(i, c, l),
u[7].copyFromFloats(s, o, l),
t.addToRef(e, this.center).scaleInPlace(0.5),
t.subtractToRef(e, this.extendSize).scaleInPlace(0.5),
(this._worldMatrix = n || r.a.IdentityReadOnly),
this._update(this._worldMatrix);
}),
(e.prototype.scale = function (t) {
var n = e.TmpVector3,
i = this.maximum.subtractToRef(this.minimum, n[0]),
r = i.length();
i.normalizeFromLength(r);
var o = r * t,
a = i.scaleInPlace(0.5 * o),
s = this.center.subtractToRef(a, n[1]),
c = this.center.addToRef(a, n[2]);
return this.reConstruct(s, c, this._worldMatrix), this;
}),
(e.prototype.getWorldMatrix = function () {
return this._worldMatrix;
}),
(e.prototype._update = function (e) {
var t = this.minimumWorld,
n = this.maximumWorld,
i = this.directions,
o = this.vectorsWorld,
a = this.vectors;
if (e.isIdentity()) {
t.copyFrom(this.minimum), n.copyFrom(this.maximum);
for (s = 0; s < 8; ++s) o[s].copyFrom(a[s]);
this.extendSizeWorld.copyFrom(this.extendSize), this.centerWorld.copyFrom(this.center);
} else {
t.setAll(Number.MAX_VALUE), n.setAll(-Number.MAX_VALUE);
for (var s = 0; s < 8; ++s) {
var c = o[s];
r.e.TransformCoordinatesToRef(a[s], e, c), t.minimizeInPlace(c), n.maximizeInPlace(c);
}
n.subtractToRef(t, this.extendSizeWorld).scaleInPlace(0.5), n.addToRef(t, this.centerWorld).scaleInPlace(0.5);
}
r.e.FromArrayToRef(e.m, 0, i[0]), r.e.FromArrayToRef(e.m, 4, i[1]), r.e.FromArrayToRef(e.m, 8, i[2]), (this._worldMatrix = e);
}),
(e.prototype.isInFrustum = function (t) {
return e.IsInFrustum(this.vectorsWorld, t);
}),
(e.prototype.isCompletelyInFrustum = function (t) {
return e.IsCompletelyInFrustum(this.vectorsWorld, t);
}),
(e.prototype.intersectsPoint = function (e) {
var t = this.minimumWorld,
n = this.maximumWorld,
i = t.x,
r = t.y,
a = t.z,
s = n.x,
c = n.y,
l = n.z,
u = e.x,
h = e.y,
d = e.z,
p = -o.a;
return !(s - u < p || p > u - i) && !(c - h < p || p > h - r) && !(l - d < p || p > d - a);
}),
(e.prototype.intersectsSphere = function (t) {
return e.IntersectsSphere(this.minimumWorld, this.maximumWorld, t.centerWorld, t.radiusWorld);
}),
(e.prototype.intersectsMinMax = function (e, t) {
var n = this.minimumWorld,
i = this.maximumWorld,
r = n.x,
o = n.y,
a = n.z,
s = i.x,
c = i.y,
l = i.z,
u = e.x,
h = e.y,
d = e.z,
p = t.x,
f = t.y,
m = t.z;
return !(s < u || r > p) && !(c < h || o > f) && !(l < d || a > m);
}),
(e.Intersects = function (e, t) {
return e.intersectsMinMax(t.minimumWorld, t.maximumWorld);
}),
(e.IntersectsSphere = function (t, n, i, o) {
var a = e.TmpVector3[0];
return r.e.ClampToRef(i, t, n, a), r.e.DistanceSquared(i, a) <= o * o;
}),
(e.IsCompletelyInFrustum = function (e, t) {
for (var n = 0; n < 6; ++n) for (var i = t[n], r = 0; r < 8; ++r) if (i.dotCoordinate(e[r]) < 0) return !1;
return !0;
}),
(e.IsInFrustum = function (e, t) {
for (var n = 0; n < 6; ++n) {
for (var i = !0, r = t[n], o = 0; o < 8; ++o)
if (r.dotCoordinate(e[o]) >= 0) {
i = !1;
break;
}
if (i) return !1;
}
return !0;
}),
(e.TmpVector3 = i.a.BuildArray(3, r.e.Zero)),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return h;
});
var i = n(2),
r = n(1),
o = n(10),
a = n(31),
s = n(9),
c = n(51),
l = n(39),
u = n(4);
s.a._instancedMeshFactory = function (e, t) {
var n = new h(e, t);
if (t.instancedBuffers) for (var i in ((n.instancedBuffers = {}), t.instancedBuffers)) n.instancedBuffers[i] = t.instancedBuffers[i];
return n;
};
var h = (function (e) {
function t(t, n) {
var i = e.call(this, t, n.getScene()) || this;
(i._indexInSourceMeshInstanceArray = -1),
n.addInstance(i),
(i._sourceMesh = n),
(i._unIndexed = n._unIndexed),
i.position.copyFrom(n.position),
i.rotation.copyFrom(n.rotation),
i.scaling.copyFrom(n.scaling),
n.rotationQuaternion && (i.rotationQuaternion = n.rotationQuaternion.clone()),
(i.animations = n.animations);
for (var r = 0, o = n.getAnimationRanges(); r < o.length; r++) {
var a = o[r];
null != a && i.createAnimationRange(a.name, a.from, a.to);
}
return (i.infiniteDistance = n.infiniteDistance), i.setPivotMatrix(n.getPivotMatrix()), i.refreshBoundingInfo(), i._syncSubMeshes(), i;
}
return (
Object(i.d)(t, e),
(t.prototype.getClassName = function () {
return "InstancedMesh";
}),
Object.defineProperty(t.prototype, "lightSources", {
get: function () {
return this._sourceMesh._lightSources;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype._resyncLightSources = function () {}),
(t.prototype._resyncLightSource = function (e) {}),
(t.prototype._removeLightSource = function (e, t) {}),
Object.defineProperty(t.prototype, "receiveShadows", {
get: function () {
return this._sourceMesh.receiveShadows;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "material", {
get: function () {
return this._sourceMesh.material;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "visibility", {
get: function () {
return this._sourceMesh.visibility;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "skeleton", {
get: function () {
return this._sourceMesh.skeleton;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(t.prototype, "renderingGroupId", {
get: function () {
return this._sourceMesh.renderingGroupId;
},
set: function (e) {
this._sourceMesh && e !== this._sourceMesh.renderingGroupId && o.a.Warn("Note - setting renderingGroupId of an instanced mesh has no effect on the scene");
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getTotalVertices = function () {
return this._sourceMesh ? this._sourceMesh.getTotalVertices() : 0;
}),
(t.prototype.getTotalIndices = function () {
return this._sourceMesh.getTotalIndices();
}),
Object.defineProperty(t.prototype, "sourceMesh", {
get: function () {
return this._sourceMesh;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.isReady = function (e) {
return void 0 === e && (e = !1), this._sourceMesh.isReady(e, !0);
}),
(t.prototype.getVerticesData = function (e, t) {
return this._sourceMesh.getVerticesData(e, t);
}),
(t.prototype.setVerticesData = function (e, t, n, i) {
return this.sourceMesh && this.sourceMesh.setVerticesData(e, t, n, i), this.sourceMesh;
}),
(t.prototype.updateVerticesData = function (e, t, n, i) {
return this.sourceMesh && this.sourceMesh.updateVerticesData(e, t, n, i), this.sourceMesh;
}),
(t.prototype.setIndices = function (e, t) {
return void 0 === t && (t = null), this.sourceMesh && this.sourceMesh.setIndices(e, t), this.sourceMesh;
}),
(t.prototype.isVerticesDataPresent = function (e) {
return this._sourceMesh.isVerticesDataPresent(e);
}),
(t.prototype.getIndices = function () {
return this._sourceMesh.getIndices();
}),
Object.defineProperty(t.prototype, "_positions", {
get: function () {
return this._sourceMesh._positions;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.refreshBoundingInfo = function (e) {
if ((void 0 === e && (e = !1), this._boundingInfo && this._boundingInfo.isLocked)) return this;
var t = this._sourceMesh.geometry ? this._sourceMesh.geometry.boundingBias : null;
return this._refreshBoundingInfo(this._sourceMesh._getPositionData(e), t), this;
}),
(t.prototype._preActivate = function () {
return this._currentLOD && this._currentLOD._preActivate(), this;
}),
(t.prototype._activate = function (e, t) {
if ((this._sourceMesh.subMeshes || o.a.Warn("Instances should only be created for meshes with geometry."), this._currentLOD)) {
if (this._currentLOD._getWorldMatrixDeterminant() > 0 != this._getWorldMatrixDeterminant() > 0) return (this._internalAbstractMeshDataInfo._actAsRegularMesh = !0), !0;
if (((this._internalAbstractMeshDataInfo._actAsRegularMesh = !1), this._currentLOD._registerInstanceForRenderId(this, e), t)) {
if (!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate) return (this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = !0), !0;
} else if (!this._currentLOD._internalAbstractMeshDataInfo._isActive) return (this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances = !0), !0;
}
return !1;
}),
(t.prototype._postActivate = function () {
this._edgesRenderer && this._edgesRenderer.isEnabled && this._sourceMesh._renderingGroup && this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer);
}),
(t.prototype.getWorldMatrix = function () {
if (this._currentLOD && this._currentLOD.billboardMode !== l.a.BILLBOARDMODE_NONE && this._currentLOD._masterMesh !== this) {
var t = this._currentLOD._masterMesh;
return (
(this._currentLOD._masterMesh = this),
r.c.Vector3[7].copyFrom(this._currentLOD.position),
this._currentLOD.position.set(0, 0, 0),
r.c.Matrix[0].copyFrom(this._currentLOD.computeWorldMatrix(!0)),
this._currentLOD.position.copyFrom(r.c.Vector3[7]),
(this._currentLOD._masterMesh = t),
r.c.Matrix[0]
);
}
return e.prototype.getWorldMatrix.call(this);
}),
Object.defineProperty(t.prototype, "isAnInstance", {
get: function () {
return !0;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getLOD = function (e) {
if (!e) return this;
var t = this.getBoundingInfo();
return (this._currentLOD = this.sourceMesh.getLOD(e, t.boundingSphere)), this._currentLOD === this.sourceMesh ? this.sourceMesh : this._currentLOD;
}),
(t.prototype._preActivateForIntermediateRendering = function (e) {
return this.sourceMesh._preActivateForIntermediateRendering(e);
}),
(t.prototype._syncSubMeshes = function () {
if ((this.releaseSubMeshes(), this._sourceMesh.subMeshes)) for (var e = 0; e < this._sourceMesh.subMeshes.length; e++) this._sourceMesh.subMeshes[e].clone(this, this._sourceMesh);
return this;
}),
(t.prototype._generatePointsArray = function () {
return this._sourceMesh._generatePointsArray();
}),
(t.prototype.clone = function (e, t, n) {
void 0 === t && (t = null);
var i = this._sourceMesh.createInstance(e);
if ((c.a.DeepCopy(this, i, ["name", "subMeshes", "uniqueId", "parent"], []), this.refreshBoundingInfo(), t && (i.parent = t), !n))
for (var r = 0; r < this.getScene().meshes.length; r++) {
var o = this.getScene().meshes[r];
o.parent === this && o.clone(o.name, i);
}
return i.computeWorldMatrix(!0), i;
}),
(t.prototype.dispose = function (t, n) {
void 0 === n && (n = !1), this._sourceMesh.removeInstance(this), e.prototype.dispose.call(this, t, n);
}),
t
);
})(a.a);
(s.a.prototype.registerInstancedBuffer = function (e, t) {
if ((this.removeVerticesData(e), !this.instancedBuffers)) {
this.instancedBuffers = {};
for (var n = 0, i = this.instances; n < i.length; n++) {
i[n].instancedBuffers = {};
}
this._userInstancedBuffersStorage = { data: {}, vertexBuffers: {}, strides: {}, sizes: {} };
}
(this.instancedBuffers[e] = null),
(this._userInstancedBuffersStorage.strides[e] = t),
(this._userInstancedBuffersStorage.sizes[e] = 32 * t),
(this._userInstancedBuffersStorage.data[e] = new Float32Array(this._userInstancedBuffersStorage.sizes[e])),
(this._userInstancedBuffersStorage.vertexBuffers[e] = new u.b(this.getEngine(), this._userInstancedBuffersStorage.data[e], e, !0, !1, t, !0)),
this.setVerticesBuffer(this._userInstancedBuffersStorage.vertexBuffers[e]);
for (var r = 0, o = this.instances; r < o.length; r++) {
o[r].instancedBuffers[e] = null;
}
}),
(s.a.prototype._processInstancedBuffers = function (e, t) {
var n = e.length;
for (var i in this.instancedBuffers) {
for (var r = this._userInstancedBuffersStorage.sizes[i], o = this._userInstancedBuffersStorage.strides[i], a = (n + 1) * o; r < a; ) r *= 2;
this._userInstancedBuffersStorage.data[i].length != r &&
((this._userInstancedBuffersStorage.data[i] = new Float32Array(r)),
(this._userInstancedBuffersStorage.sizes[i] = r),
this._userInstancedBuffersStorage.vertexBuffers[i] && (this._userInstancedBuffersStorage.vertexBuffers[i].dispose(), (this._userInstancedBuffersStorage.vertexBuffers[i] = null)));
var s = this._userInstancedBuffersStorage.data[i],
c = 0;
if (t) (c += o), (h = this.instancedBuffers[i]).toArray ? h.toArray(s, c) : h.copyToArray(s, c);
for (var l = 0; l < n; l++) {
var h;
(h = e[l].instancedBuffers[i]).toArray ? h.toArray(s, c) : h.copyToArray(s, c), (c += o);
}
this._userInstancedBuffersStorage.vertexBuffers[i]
? this._userInstancedBuffersStorage.vertexBuffers[i].updateDirectly(s, 0)
: ((this._userInstancedBuffersStorage.vertexBuffers[i] = new u.b(this.getEngine(), this._userInstancedBuffersStorage.data[i], i, !0, !1, o, !0)),
this.setVerticesBuffer(this._userInstancedBuffersStorage.vertexBuffers[i]));
}
}),
(s.a.prototype._disposeInstanceSpecificData = function () {
for (this._instanceDataStorage.instancesBuffer && (this._instanceDataStorage.instancesBuffer.dispose(), (this._instanceDataStorage.instancesBuffer = null)); this.instances.length; ) this.instances[0].dispose();
for (var e in this.instancedBuffers) this._userInstancedBuffersStorage.vertexBuffers[e] && this._userInstancedBuffersStorage.vertexBuffers[e].dispose();
this.instancedBuffers = {};
});
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.Utils = void 0);
const i = n(62);
t.Utils = class {
static random(e, t) {
return Math.floor(Math.random() * (t - e) + e);
}
static lerp(e, t, n) {
return e + n * (t - e);
}
static signedAngle(e, t, n) {
return 57.29578 * Math.atan2(i.Vector3.Dot(n, i.Vector3.Cross(e, t)), i.Vector3.Dot(e, t));
}
static repeat(e, t) {
let n = e % t;
return n < 0 && (n += t), n;
}
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this._count = 0), (this._data = {});
}
return (
(e.prototype.copyFrom = function (e) {
var t = this;
this.clear(),
e.forEach(function (e, n) {
return t.add(e, n);
});
}),
(e.prototype.get = function (e) {
var t = this._data[e];
if (void 0 !== t) return t;
}),
(e.prototype.getOrAddWithFactory = function (e, t) {
var n = this.get(e);
return void 0 !== n || ((n = t(e)) && this.add(e, n)), n;
}),
(e.prototype.getOrAdd = function (e, t) {
var n = this.get(e);
return void 0 !== n ? n : (this.add(e, t), t);
}),
(e.prototype.contains = function (e) {
return void 0 !== this._data[e];
}),
(e.prototype.add = function (e, t) {
return void 0 === this._data[e] && ((this._data[e] = t), ++this._count, !0);
}),
(e.prototype.set = function (e, t) {
return void 0 !== this._data[e] && ((this._data[e] = t), !0);
}),
(e.prototype.getAndRemove = function (e) {
var t = this.get(e);
return void 0 !== t ? (delete this._data[e], --this._count, t) : null;
}),
(e.prototype.remove = function (e) {
return !!this.contains(e) && (delete this._data[e], --this._count, !0);
}),
(e.prototype.clear = function () {
(this._data = {}), (this._count = 0);
}),
Object.defineProperty(e.prototype, "count", {
get: function () {
return this._count;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.forEach = function (e) {
for (var t in this._data) {
e(t, this._data[t]);
}
}),
(e.prototype.first = function (e) {
for (var t in this._data) {
var n = e(t, this._data[t]);
if (n) return n;
}
return null;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(58),
r = n(1),
o = (function () {
function e(e, t, n) {
(this.center = r.e.Zero()), (this.centerWorld = r.e.Zero()), (this.minimum = r.e.Zero()), (this.maximum = r.e.Zero()), this.reConstruct(e, t, n);
}
return (
(e.prototype.reConstruct = function (e, t, n) {
this.minimum.copyFrom(e), this.maximum.copyFrom(t);
var i = r.e.Distance(e, t);
t.addToRef(e, this.center).scaleInPlace(0.5), (this.radius = 0.5 * i), this._update(n || r.a.IdentityReadOnly);
}),
(e.prototype.scale = function (t) {
var n = this.radius * t,
i = e.TmpVector3,
r = i[0].setAll(n),
o = this.center.subtractToRef(r, i[1]),
a = this.center.addToRef(r, i[2]);
return this.reConstruct(o, a, this._worldMatrix), this;
}),
(e.prototype.getWorldMatrix = function () {
return this._worldMatrix;
}),
(e.prototype._update = function (t) {
if (t.isIdentity()) this.centerWorld.copyFrom(this.center), (this.radiusWorld = this.radius);
else {
r.e.TransformCoordinatesToRef(this.center, t, this.centerWorld);
var n = e.TmpVector3[0];
r.e.TransformNormalFromFloatsToRef(1, 1, 1, t, n), (this.radiusWorld = Math.max(Math.abs(n.x), Math.abs(n.y), Math.abs(n.z)) * this.radius);
}
}),
(e.prototype.isInFrustum = function (e) {
for (var t = this.centerWorld, n = this.radiusWorld, i = 0; i < 6; i++) if (e[i].dotCoordinate(t) <= -n) return !1;
return !0;
}),
(e.prototype.isCenterInFrustum = function (e) {
for (var t = this.centerWorld, n = 0; n < 6; n++) if (e[n].dotCoordinate(t) < 0) return !1;
return !0;
}),
(e.prototype.intersectsPoint = function (e) {
var t = r.e.DistanceSquared(this.centerWorld, e);
return !(this.radiusWorld * this.radiusWorld < t);
}),
(e.Intersects = function (e, t) {
var n = r.e.DistanceSquared(e.centerWorld, t.centerWorld),
i = e.radiusWorld + t.radiusWorld;
return !(i * i < n);
}),
(e.TmpVector3 = i.a.BuildArray(3, r.e.Zero)),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = function (e, t, n) {
(this.bu = e), (this.bv = t), (this.distance = n), (this.faceId = 0), (this.subMeshId = 0);
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(47),
r = n(10),
o = n(25),
a = n(159),
s = (function () {
function e(e) {
void 0 === e && (e = null),
(this._targets = new Array()),
(this._targetInfluenceChangedObservers = new Array()),
(this._targetDataLayoutChangedObservers = new Array()),
(this._activeTargets = new i.a(16)),
(this._supportsNormals = !1),
(this._supportsTangents = !1),
(this._supportsUVs = !1),
(this._vertexCount = 0),
(this._uniqueId = 0),
(this._tempInfluences = new Array()),
(this.enableNormalMorphing = !0),
(this.enableTangentMorphing = !0),
(this.enableUVMorphing = !0),
e || (e = o.a.LastCreatedScene),
(this._scene = e),
this._scene && (this._scene.morphTargetManagers.push(this), (this._uniqueId = this._scene.getUniqueId()));
}
return (
Object.defineProperty(e.prototype, "uniqueId", {
get: function () {
return this._uniqueId;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "vertexCount", {
get: function () {
return this._vertexCount;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "supportsNormals", {
get: function () {
return this._supportsNormals && this.enableNormalMorphing;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "supportsTangents", {
get: function () {
return this._supportsTangents && this.enableTangentMorphing;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "supportsUVs", {
get: function () {
return this._supportsUVs && this.enableUVMorphing;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "numTargets", {
get: function () {
return this._targets.length;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "numInfluencers", {
get: function () {
return this._activeTargets.length;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "influences", {
get: function () {
return this._influences;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getActiveTarget = function (e) {
return this._activeTargets.data[e];
}),
(e.prototype.getTarget = function (e) {
return this._targets[e];
}),
(e.prototype.addTarget = function (e) {
var t = this;
this._targets.push(e),
this._targetInfluenceChangedObservers.push(
e.onInfluenceChanged.add(function (e) {
t._syncActiveTargets(e);
})
),
this._targetDataLayoutChangedObservers.push(
e._onDataLayoutChanged.add(function () {
t._syncActiveTargets(!0);
})
),
this._syncActiveTargets(!0);
}),
(e.prototype.removeTarget = function (e) {
var t = this._targets.indexOf(e);
t >= 0 &&
(this._targets.splice(t, 1),
e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t, 1)[0]),
e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t, 1)[0]),
this._syncActiveTargets(!0));
}),
(e.prototype.clone = function () {
for (var t = new e(this._scene), n = 0, i = this._targets; n < i.length; n++) {
var r = i[n];
t.addTarget(r.clone());
}
return (t.enableNormalMorphing = this.enableNormalMorphing), (t.enableTangentMorphing = this.enableTangentMorphing), (t.enableUVMorphing = this.enableUVMorphing), t;
}),
(e.prototype.serialize = function () {
var e = {};
(e.id = this.uniqueId), (e.targets = []);
for (var t = 0, n = this._targets; t < n.length; t++) {
var i = n[t];
e.targets.push(i.serialize());
}
return e;
}),
(e.prototype._syncActiveTargets = function (e) {
var t = 0;
this._activeTargets.reset(), (this._supportsNormals = !0), (this._supportsTangents = !0), (this._supportsUVs = !0), (this._vertexCount = 0);
for (var n = 0, i = this._targets; n < i.length; n++) {
var o = i[n];
if (0 !== o.influence) {
this._activeTargets.push(o),
(this._tempInfluences[t++] = o.influence),
(this._supportsNormals = this._supportsNormals && o.hasNormals),
(this._supportsTangents = this._supportsTangents && o.hasTangents),
(this._supportsUVs = this._supportsUVs && o.hasUVs);
var a = o.getPositions();
if (a) {
var s = a.length / 3;
if (0 === this._vertexCount) this._vertexCount = s;
else if (this._vertexCount !== s) return void r.a.Error("Incompatible target. Targets must all have the same vertices count.");
}
}
}
(this._influences && this._influences.length === t) || (this._influences = new Float32Array(t));
for (var c = 0; c < t; c++) this._influences[c] = this._tempInfluences[c];
e && this.synchronize();
}),
(e.prototype.synchronize = function () {
if (this._scene)
for (var e = 0, t = this._scene.meshes; e < t.length; e++) {
var n = t[e];
n.morphTargetManager === this && n._syncGeometryWithMorphTargetManager();
}
}),
(e.Parse = function (t, n) {
var i = new e(n);
i._uniqueId = t.id;
for (var r = 0, o = t.targets; r < o.length; r++) {
var s = o[r];
i.addTarget(a.a.Parse(s));
}
return i;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = n(32),
r = n(10),
o = n(12),
a = n(14);
function s(e) {
return function (t, n, r, o, a, s, c, l, u, h) {
void 0 === u && (u = null), void 0 === h && (h = 0);
var d = e ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY,
p = e ? i.b.Raw3D : i.b.Raw2DArray,
f = new i.a(this, p);
(f.baseWidth = n),
(f.baseHeight = r),
(f.baseDepth = o),
(f.width = n),
(f.height = r),
(f.depth = o),
(f.format = a),
(f.type = h),
(f.generateMipMaps = s),
(f.samplingMode = l),
e ? (f.is3D = !0) : (f.is2DArray = !0),
this._doNotHandleContextLost || (f._bufferView = t),
e ? this.updateRawTexture3D(f, t, a, c, u, h) : this.updateRawTexture2DArray(f, t, a, c, u, h),
this._bindTextureDirectly(d, f, !0);
var m = this._getSamplingParameters(l, s);
return (
this._gl.texParameteri(d, this._gl.TEXTURE_MAG_FILTER, m.mag),
this._gl.texParameteri(d, this._gl.TEXTURE_MIN_FILTER, m.min),
s && this._gl.generateMipmap(d),
this._bindTextureDirectly(d, null),
this._internalTexturesCache.push(f),
f
);
};
}
function c(e) {
return function (t, n, i, r, o, a) {
void 0 === o && (o = null), void 0 === a && (a = 0);
var s = e ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY,
c = this._getWebGLTextureType(a),
l = this._getInternalFormat(i),
u = this._getRGBABufferInternalSizedFormat(a, i);
this._bindTextureDirectly(s, t, !0),
this._unpackFlipY(void 0 === r || !!r),
this._doNotHandleContextLost || ((t._bufferView = n), (t.format = i), (t.invertY = r), (t._compression = o)),
t.width % 4 != 0 && this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1),
o && n ? this._gl.compressedTexImage3D(s, 0, this.getCaps().s3tc[o], t.width, t.height, t.depth, 0, n) : this._gl.texImage3D(s, 0, u, t.width, t.height, t.depth, 0, l, c, n),
t.generateMipMaps && this._gl.generateMipmap(s),
this._bindTextureDirectly(s, null),
(t.isReady = !0);
};
}
(a.a.prototype.updateRawTexture = function (e, t, n, i, r, o) {
if ((void 0 === r && (r = null), void 0 === o && (o = 0), e)) {
var a = this._getRGBABufferInternalSizedFormat(o, n),
s = this._getInternalFormat(n),
c = this._getWebGLTextureType(o);
this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0),
this._unpackFlipY(void 0 === i || !!i),
this._doNotHandleContextLost || ((e._bufferView = t), (e.format = n), (e.type = o), (e.invertY = i), (e._compression = r)),
e.width % 4 != 0 && this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1),
r && t ? this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[r], e.width, e.height, 0, t) : this._gl.texImage2D(this._gl.TEXTURE_2D, 0, a, e.width, e.height, 0, s, c, t),
e.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D),
this._bindTextureDirectly(this._gl.TEXTURE_2D, null),
(e.isReady = !0);
}
}),
(a.a.prototype.createRawTexture = function (e, t, n, r, o, a, s, c, l) {
void 0 === c && (c = null), void 0 === l && (l = 0);
var u = new i.a(this, i.b.Raw);
(u.baseWidth = t),
(u.baseHeight = n),
(u.width = t),
(u.height = n),
(u.format = r),
(u.generateMipMaps = o),
(u.samplingMode = s),
(u.invertY = a),
(u._compression = c),
(u.type = l),
this._doNotHandleContextLost || (u._bufferView = e),
this.updateRawTexture(u, e, r, a, c, l),
this._bindTextureDirectly(this._gl.TEXTURE_2D, u, !0);
var h = this._getSamplingParameters(s, o);
return (
this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, h.mag),
this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, h.min),
o && this._gl.generateMipmap(this._gl.TEXTURE_2D),
this._bindTextureDirectly(this._gl.TEXTURE_2D, null),
this._internalTexturesCache.push(u),
u
);
}),
(a.a.prototype.createRawCubeTexture = function (e, t, n, a, s, c, l, u) {
void 0 === u && (u = null);
var h = this._gl,
d = new i.a(this, i.b.CubeRaw);
(d.isCube = !0), (d.format = n), (d.type = a), this._doNotHandleContextLost || (d._bufferViewArray = e);
var p = this._getWebGLTextureType(a),
f = this._getInternalFormat(n);
f === h.RGB && (f = h.RGBA),
p !== h.FLOAT || this._caps.textureFloatLinearFiltering
? p !== this._gl.HALF_FLOAT_OES || this._caps.textureHalfFloatLinearFiltering
? p !== h.FLOAT || this._caps.textureFloatRender
? p !== h.HALF_FLOAT || this._caps.colorBufferFloat || ((s = !1), r.a.Warn("Render to half float textures is not supported. Mipmap generation forced to false."))
: ((s = !1), r.a.Warn("Render to float textures is not supported. Mipmap generation forced to false."))
: ((s = !1), (l = 1), r.a.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively."))
: ((s = !1), (l = 1), r.a.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively."));
var m = t,
g = m;
(d.width = m),
(d.height = g),
!this.needPOTTextures || (o.b.IsExponentOfTwo(d.width) && o.b.IsExponentOfTwo(d.height)) || (s = !1),
e && this.updateRawCubeTexture(d, e, n, a, c, u),
this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, d, !0),
e && s && this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);
var b = this._getSamplingParameters(l, s);
return (
h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_MAG_FILTER, b.mag),
h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_MIN_FILTER, b.min),
h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_WRAP_S, h.CLAMP_TO_EDGE),
h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_WRAP_T, h.CLAMP_TO_EDGE),
this._bindTextureDirectly(h.TEXTURE_CUBE_MAP, null),
(d.generateMipMaps = s),
d
);
}),
(a.a.prototype.updateRawCubeTexture = function (e, t, n, i, r, a, s) {
void 0 === a && (a = null), void 0 === s && (s = 0), (e._bufferViewArray = t), (e.format = n), (e.type = i), (e.invertY = r), (e._compression = a);
var c = this._gl,
l = this._getWebGLTextureType(i),
u = this._getInternalFormat(n),
h = this._getRGBABufferInternalSizedFormat(i),
d = !1;
u === c.RGB && ((u = c.RGBA), (d = !0)), this._bindTextureDirectly(c.TEXTURE_CUBE_MAP, e, !0), this._unpackFlipY(void 0 === r || !!r), e.width % 4 != 0 && c.pixelStorei(c.UNPACK_ALIGNMENT, 1);
for (var p = 0; p < 6; p++) {
var f = t[p];
a
? c.compressedTexImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X + p, s, this.getCaps().s3tc[a], e.width, e.height, 0, f)
: (d && (f = this._convertRGBtoRGBATextureData(f, e.width, e.height, i)), c.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X + p, s, h, e.width, e.height, 0, u, l, f));
}
(!this.needPOTTextures || (o.b.IsExponentOfTwo(e.width) && o.b.IsExponentOfTwo(e.height))) && e.generateMipMaps && 0 === s && this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP),
this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null),
(e.isReady = !0);
}),
(a.a.prototype.createRawCubeTextureFromUrl = function (e, t, n, i, r, o, a, s, c, l, u, h) {
var d = this;
void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = 3), void 0 === h && (h = !1);
var p = this._gl,
f = this.createRawCubeTexture(null, n, i, r, !o, h, u, null);
t._addPendingData(f), (f.url = e), this._internalTexturesCache.push(f);
return (
this._loadFile(
e,
function (e) {
!(function (e) {
var n = f.width,
o = a(e);
if (o) {
if (s) {
var l = d._getWebGLTextureType(r),
u = d._getInternalFormat(i),
m = d._getRGBABufferInternalSizedFormat(r),
g = !1;
u === p.RGB && ((u = p.RGBA), (g = !0)), d._bindTextureDirectly(p.TEXTURE_CUBE_MAP, f, !0), d._unpackFlipY(!1);
for (var b = s(o), _ = 0; _ < b.length; _++)
for (var v = n >> _, y = 0; y < 6; y++) {
var C = b[_][y];
g && (C = d._convertRGBtoRGBATextureData(C, v, v, r)), p.texImage2D(y, _, m, v, v, 0, u, l, C);
}
d._bindTextureDirectly(p.TEXTURE_CUBE_MAP, null);
} else d.updateRawCubeTexture(f, o, i, r, h);
(f.isReady = !0), t._removePendingData(f), c && c();
}
})(e);
},
void 0,
t.offlineProvider,
!0,
function (e, n) {
t._removePendingData(f), l && e && l(e.status + " " + e.statusText, n);
}
),
f
);
}),
(a.a.prototype.createRawTexture2DArray = s(!1)),
(a.a.prototype.createRawTexture3D = s(!0)),
(a.a.prototype.updateRawTexture2DArray = c(!1)),
(a.a.prototype.updateRawTexture3D = c(!0));
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }),
(t.getMessageKeyForDeath = t.MonkeyState = t.DeathType = t.MovementAnimations = t.AnimationState = t.MovementState = t.Turn = t.TurnState = t.TiltState = t.CharacterParams = void 0);
const i = n(62),
r = n(150);
var o, a, s;
(t.CharacterParams = class {
constructor() {
(this.currentSegment = 0),
(this.currentVelocity = 0),
(this.boostVelocity = 0),
(this.currentPosition = new i.Vector3(0, 0, 13)),
(this.currentDirection = new i.Vector3(0, 0, -1)),
(this.distanceFromPieceStart = 0),
(this.distanceFromStartOfSegment = 0),
(this.pathId = 0),
(this.deltaDistance = 0);
}
}),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.Left = 1)] = "Left"), (e[(e.Right = 2)] = "Right");
})(t.TiltState || (t.TiltState = {})),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.Done = 1)] = "Done"), (e[(e.Pending = 2)] = "Pending"), (e[(e.Failed = 3)] = "Failed"), (e[(e.CanTilt = 4)] = "CanTilt");
})(t.TurnState || (t.TurnState = {})),
(function (e) {
(e[(e.None = 0)] = "None"), (e[(e.Left = 1)] = "Left"), (e[(e.Right = 2)] = "Right");
})(t.Turn || (t.Turn = {})),
(function (e) {
(e[(e.Idle = 0)] = "Idle"), (e[(e.Running = 1)] = "Running"), (e[(e.WaterSliding = 2)] = "WaterSliding"), (e[(e.CartRiding = 3)] = "CartRiding"), (e[(e.Ziplining = 4)] = "Ziplining"), (e[(e.Death = 5)] = "Death");
})((o = t.MovementState || (t.MovementState = {}))),
(function (e) {
(e[(e.None = -1)] = "None"),
(e[(e.Idle = 0)] = "Idle"),
(e[(e.Run = 1)] = "Run"),
(e[(e.RunStumble = 2)] = "RunStumble"),
(e[(e.SlideEnter = 3)] = "SlideEnter"),
(e[(e.Slide = 4)] = "Slide"),
(e[(e.Jump = 5)] = "Jump"),
(e[(e.DeathByHit = 6)] = "DeathByHit"),
(e[(e.DeathByFall = 7)] = "DeathByFall"),
(e[(e.DeathByMineHit = 8)] = "DeathByMineHit"),
(e[(e.DeathByWaterFall = 9)] = "DeathByWaterFall"),
(e[(e.Zipline = 10)] = "Zipline"),
(e[(e.WaterSlideEnter = 11)] = "WaterSlideEnter"),
(e[(e.WaterSlide = 12)] = "WaterSlide"),
(e[(e.MineCart = 13)] = "MineCart"),
(e[(e.MineCartDuck = 14)] = "MineCartDuck"),
(e[(e.MineCartEnter = 15)] = "MineCartEnter"),
(e[(e.MineCartExit = 16)] = "MineCartExit");
})((a = t.AnimationState || (t.AnimationState = {}))),
(t.MovementAnimations = new Map([
[o.Idle, a.Idle],
[o.Running, a.Run],
[o.WaterSliding, a.WaterSlideEnter],
[o.CartRiding, a.MineCartEnter],
[o.Ziplining, a.Zipline],
])),
(function (e) {
(e[(e.Fall = 0)] = "Fall"),
(e[(e.Eaten = 1)] = "Eaten"),
(e[(e.Fire = 2)] = "Fire"),
(e[(e.MineDuck = 3)] = "MineDuck"),
(e[(e.MineLedge = 4)] = "MineLedge"),
(e[(e.Mine = 5)] = "Mine"),
(e[(e.Wheel = 6)] = "Wheel"),
(e[(e.WaterLeft = 7)] = "WaterLeft"),
(e[(e.Ledge = 8)] = "Ledge"),
(e[(e.SceneryTree = 9)] = "SceneryTree"),
(e[(e.SceneryRock = 10)] = "SceneryRock"),
(e[(e.DeathThrow = 11)] = "DeathThrow"),
(e[(e.None = 12)] = "None"),
(e[(e.WaterRight = 13)] = "WaterRight"),
(e[(e.DeathByHit = 14)] = "DeathByHit"),
(e[(e.DeathByFall = 15)] = "DeathByFall"),
(e[(e.DeathByCart = 16)] = "DeathByCart"),
(e[(e.DeathByWater = 17)] = "DeathByWater");
})((s = t.DeathType || (t.DeathType = {}))),
(function (e) {
(e[(e.None = -1)] = "None"), (e[(e.Disappearing = 0)] = "Disappearing"), (e[(e.Idle = 1)] = "Idle"), (e[(e.Chase = 2)] = "Chase"), (e[(e.Jump = 3)] = "Jump"), (e[(e.Taunt = 4)] = "Taunt");
})(t.MonkeyState || (t.MonkeyState = {}));
const c = n(249);
t.getMessageKeyForDeath = (e) => {
let t = "",
n = "0% 0%";
switch (e) {
case s.Fall:
case s.DeathByFall:
(t = "Fall"), (n = "100% 200%");
break;
case s.Eaten:
(t = "Eaten"), (n = "0% 200%");
break;
case s.Fire:
(t = "Fire"), (n = "0% 300%");
break;
case s.MineDuck:
(t = "MineDuck"), (n = "0% 300%");
break;
case s.MineLedge:
(t = "MineLedge"), (n = "0% 0%");
break;
case s.Mine:
case s.DeathByCart:
(t = "Mine"), (n = "0% 0%");
break;
case s.Wheel:
(t = "Wheel"), (n = "0% 0%");
break;
case s.WaterLeft:
(t = "WaterLeft"), (n = "100% 100%");
break;
case s.WaterRight:
(t = "WaterRight"), (n = "100% 100%");
break;
case s.Ledge:
(t = "Ledge"), (n = "100% 200%");
break;
case s.SceneryTree:
(t = "SceneryTree"), (n = "0% 0%");
break;
case s.SceneryRock:
(t = "SceneryRock"), (n = "0% 0%");
break;
case s.DeathThrow:
case s.DeathByHit:
(t = "DeathThrow"), (n = "0% 100%");
break;
default:
(t = "None"), (n = "0% 0%");
}
const i = c[t];
return { message: i[r.Utils.random(0, i.length)], position: n, messageKey: t };
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.prototype.attributeProcessor = function (e) {
return e.replace("attribute", "in");
}),
(e.prototype.varyingProcessor = function (e, t) {
return e.replace("varying", t ? "in" : "out");
}),
(e.prototype.postProcessor = function (e, t, n) {
var i = -1 !== e.search(/#extension.+GL_EXT_draw_buffers.+require/);
if (((e = (e = e.replace(/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g, "")).replace(/texture2D\s*\(/g, "texture(")), n))
e = (e = (e = (e = (e = (e = (e = e.replace(/texture2DLodEXT\s*\(/g, "textureLod(")).replace(/textureCubeLodEXT\s*\(/g, "textureLod(")).replace(/textureCube\s*\(/g, "texture(")).replace(
/gl_FragDepthEXT/g,
"gl_FragDepth"
)).replace(/gl_FragColor/g, "glFragColor")).replace(/gl_FragData/g, "glFragData")).replace(/void\s+?main\s*\(/g, (i ? "" : "out vec4 glFragColor;\n") + "void main(");
else if (-1 !== t.indexOf("#define MULTIVIEW")) return "#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n" + e;
return e;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(8),
r = n(197),
o = (function () {
function e() {}
return (
(e.GetEnvironmentBRDFTexture = function (e) {
if (!e.environmentBRDFTexture) {
var t = e.useDelayedTextureLoading;
e.useDelayedTextureLoading = !1;
var n = e._blockEntityCollection;
e._blockEntityCollection = !1;
var o = i.a.CreateFromBase64String(this._environmentBRDFBase64Texture, "EnvironmentBRDFTexture", e, !0, !1, i.a.BILINEAR_SAMPLINGMODE);
e._blockEntityCollection = n;
var a = e.getEngine().getLoadedTexturesCache(),
s = a.indexOf(o.getInternalTexture());
-1 !== s && a.splice(s, 1), (o.isRGBD = !0), (o.wrapU = i.a.CLAMP_ADDRESSMODE), (o.wrapV = i.a.CLAMP_ADDRESSMODE), (e.environmentBRDFTexture = o), (e.useDelayedTextureLoading = t), r.a.ExpandRGBDTexture(o);
}
return e.environmentBRDFTexture;
}),
(e._environmentBRDFBase64Texture =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAgAElEQVR42u29yY5tWXIlZnbuiSaTbZFUkZRKrCKhElASQA0EoQABgn6hJvoXzfUP+gP9hWb6Bg00IgRoQJaKqUxmZmTEe8/v0uB2u7Fm2T7HIyIrnz88uPvt3f2a2WrMbOvf/u3PvvzP/sUf/N6//i8vf/lv/3v5H//d//Sb//Uq/5u8yf8hV/m/5Cp/L1f5hVzlG7nKJ7mKyJuIXN/hPwqXI/g++zq6rPI5u8z+WqfLre+zy7PrVv9L8brsMiGvk8XLmM/sdfHXal4e3ad6GXPdyu2ij8u/+uv/5cuf/OSLfdtEfvUr+dnf/d0X//t3H/7bf/hP//N/928h/0Yg/4VA/kogfyGQP5Wr/IFAvhbIlwK5CGQTPP+9z5uPeePJSW+yo2+s/GtN30Rnv1E+f5zxof9R/lSXv/nr//mrr3+i+5dfyX7ZZQP07Tffys//8R/l/9TtX7790T/7r/8G8pdy+/8XAvnnAvkzgfwzgfyxQP5AIL8vkJ8K5KsmMVzu1U7p5PA5AXxOAJ8TwPf7sX/51ZeXfcemqnp9w/W77/S7X/6T/vzf/7383RWCX3/z05/9i3/13/0PX//eX/2FyP8tIv+PiPy9iPy/IvIzEfm5iPxCRH4lIt/c/393//9BRD6KyKf7f488fP74/PH544dJAF9cLl98IZfLBZtuqterXr/7Dt9982v95S9+Lv+gF/3i7Spv/8lf/vnf/vGf/dF/JfKnIvLnIvLvReQ/NEngn0TklyLy6/v/34jIt00iGJOBlxAsdvv54/PH5493SQCXy9t2ueh2ueimKorrFbjq9eNH+fDtb+TXv/ol/vHyhX4Fxfbx7euPf/Lnf/PfiPyeiPyhiPxxkwB+fk8AvxzQgJcIrGTwFsiAEXH4/PH54/PHUgLY7whgu2C7bLqpQgHB2xvePn6SDx8+6G9+84384vKF/IPu8iVU9Y/+7C/+jWxffiHytYj8VER+X0T+oEEBvxqQwCMJeIngo5EI3goIwVMIPn98/vj8ESaAbbtu2ybbvl8u2ybbdtluSECA65u8ffqIDx8+6G++/VZ/efkV/sO261dQXP7wT/7kX8vl8qXIFyLylbySwe/dE0CLAr65B/9vGn0gQwRMMqgmhM/J4fPH548eAezbZd/lsm3YtssNAYiqiogAAkCvb5/k46cP8u2HD/rrb7+R/2/b9Wu9yJe//8d/9Ney6S5yEZFdRL68/38khG/uKOCnAwoYkcCoEXwkEgGDDq7CeQfyOTl8/vhd1QCum26ybZtu2yabbrKpQvXue1yvuF6v+vbpTT5+/CDffviAX1++1V9sO77WXb/66R/+4V/dgkbllQi+aBLBV/dE8LWRALwkYCWCNyMZXElkwLTMeMkga/P4/PH547ccAVwuctkvdxSw6bbdtYDbTfSZBN7e8PHTR/3u4wf55vKd/nL7DX6mu3791U9//5+/gkNFZGuSgZUQvnKowKgLWLTAQgRtEniTuEfwaELw0MJvf3LQzynud+53uG+X6y3gN9kul+2y6XVT1U27JCDAFVc8ksAn/e7jR/nN5YP+avtWfq6Xy9f7Vz/9w1dgRYngiyYhfNkkgzYBWHTg44AEMmqQUYQKOmDaiCIa8TmsfmzB+DnZDQjgcpGLbti2y3bZHjRAdRMVvb/dcYU8kcDbPQlsH/CrbddfbF98+RPZfvLFnAQeieCRDC5DMvju/vmD4JkEvjRQgKULeGggowdHkAHTYxihg89vu88I5UeGAPSOAFTlrgPopiqbKPSmCKreUoAAkCcSePukHz590m8vH+WbD9/JP335k6/+tA86KxFchv8jMvhiogE4JQm8XhfKqOAqx5qRPyeGzx8/cgSwbXcUoLJtim27C4Oi93+4v6VxQwKAvl2v+Hj9pB8+fZJvt4/yzfbF9lPdv/wJnsE2BogmyeCRED40tGFvksIXiSbgiYSRRpDNDZ6BDI6ghM+J4fPHeyKAO+zX7cb9t4tedMMNAQju5V+f1uAtBSiu1zsduMrHy5t8ePsk3376KN98sX/xE5FPAnm7/782o0DiUINXMkCXCB7/P94/e87AWUmARQWVvgMuKej9t1RLBp+Tw+ePgwngsutFFdu26WXbbl+rSvdfbnqAiuA23QcBgCugV1zl7e1NPm5v+LC96XfbJ/1W9y++fgXjA3bDYXV+MuhRwSPwL3JLMFYC+HS/LU8HYrGwIhwyNOF12SvgM4SgztdifP85MXz+KGsA2C6X7aJ6bXSAOwrY5OYIqGy3d5uq4P5GhABXuV6veLvRAf10fZMPb2/y3b7vX7+g+9v98/WOBq7GG7RNAlYy+Dgkhhb+Xxp0sE8IAC4SGAP/TbgVJK/PoJPBnAiwPKxsXfbbnRg+i3s/JAK4Q/4b9NfLtomBAqCickMBjy7BuywAUVyv8na94tMjCVzf9KNcLl/0SeA6oAEYb1i9g+FtSALb/bKL8/+t+wxXFMyswqiHoK4ToIgKqslgpg1qUC0QoYbvJZg/B/q5v4szHmPX7YEAsD0CX25OwEUVm9xag1+agKg+nxQArnKjAtDr9U0+Xd/k4/UqH7bL5YsewrcBBiMJZPRAp6TwQgWfjM9vgRbgUYGL8AvLWH2gqhesCokeUmCSwPsnhs8fP2YNYMO2XeSmAWxy2VQaXeDmDIhApf33rD4PTUCuV+DtCn27XuXT5ir8VmCJ2G5BpBM8/r/dEcJb8/0lEQMtJHA5TAlqNuLRhJChhEpSqFabH3di+G1AGj+W1/dyAR4IYJNNnuLf6+tWC9CHHiAtFhAIFLjK2/Uqn65X+SS67aK+3QeTDoy/IG2ogQ7fb/dAtz5vBgrYGqrwNtCHsVfgIvwK07OTQBURVNCBFpKCOjqCHn5L/67TgTN+fpySAC56nwSUi256kXsSuFGAVyLoUIDo8/Pz7fdoErr/v17lk162HbgHvFpIYDfoAJJfW4sGPjkU4VNAF8ZEcLmLhdc7kljdY1y1Dq9yLiI4IiRqcLujb138KIPn80ejATwRwIbtBvn1cqv+2J78/5EI5N4cJA8qIPcmwRsKAHDF9WYP6mV7VmrgLuTpxYTcMEW0LAmoQxFsuvAI8tv/a/C5fV2ZMMiKg++FCM7RDPRu8ebWY7VG6VJi+Bzk35MI2LsAckMAgwvQ0gC5DQjd3ABg2HQLAPpEAlZ1Bu7VV7MGHDFRAbo3VKsTbAY9sPWC/uvx86gBbDK3D1eEQS8pbAeSgSwmhepnJb6uBv/o/PzHLzxWA/X7TH77De5j6AGQi6o0CUGfCOD2X7cXAlCFQABtEsGLDtxuOyQB2UTQBKZe5GUPXgkUYCUAbZJRhBDeuq8xBf+bgwbehDm+BFQi2IJksOocvA8ysIMfxluVcRsY/eB3JzH8GFDAXQO48X/dcIf9jyDHptIigDsFkEe066tBSETQUYF7ElDdYEBytN4+rk9UcBPfrKaZqFHWcw3i4J8/X4ev2//bSXqAhwTay6OEIPLD2Ipt8OtAGzxkwLw9WVFRjTc/qC6H3+YK/b1oAA0KuOizHfieCLaHHiAb5NYTIC9EMEbZrVEQt1xwhVy1UfBh8PUOquMizwaap3tQXfY5B//tea/NZdfhsvbz+PURQTDSGWB87VX/7WSd4KxjUqrIgE0IUkoKGnhIvwvawpGf6eECXJ7tv4qbA7DJgwpsKthEmmYgfaAAffYF3HLxo0vwNjJ0SwRWMG4db4eh1gPNm18vQ+us/0eGmxDemu/fnM/X4evq/8342ksGHgLY5LyT/zg0wM8lcMjgGFXwqIOVFJBQw99eCvF9oZL9Mfl3QwAvIXDsBRC9R+fz8x0FPBLB0xJEpwUobrfAkARgIAF41h3wQgP6QAmX5E/7eI43IxGwwf/moIkRyWRJQIPgt9CA9b39nzt4bYUWjAlCjWDPgv8IEjgLJfzuaAsrv9VdVG4OwOXW/fdoA35qAdL0BDwvf6AAUVHd8LIEu94A3K+Q+2YxaB84MOH62P//qoo38fCRDERE2zf0JfmDa+MieElAjcDPKz+mRKCOtdgGtXaBjgNJ4H2owSpNeAW/rRH4CaHSpMwnBYYycjgSJwfie9CR6mPu20Uv8kABF206AvXlBMiIBPSlB9wjBW1fwEuSb94296VCqgMaGCt/G1BbExi3IG+r3a3J6P48Gv/J0YmEYoiGY7V/SxwFCwGoE/xa0AJ0CEiV9QPCJb1OJ5F1VTjEY2/MO9AEJvj1BJTQpqLfTlGwjABuzT962e4IoKnyrdh3+/6mzDVJ4PHOxj0JqGKoy20+wBMN6D1gLWi9NQHfVP5MEEPzjGYy8BMAOnTAJgEr8HUIejRo5xrA5xkR5AngmiSHs+zDDAmMgWzTg55GSJEmHE8IvWPAoYTfhWak/Wn/bQ0CGLSAjv83SUEfKp5q24LXuQICpzrjrgWoza8xVE00CQCORdhMJuTUT/rjuls0gO4Iby8BIEgK6gS7BsGuTtDrScH/fR68biUHNVGBnxjeNyHEvQe/ve3LZQqgG3rof6cEclsNflG9J4KtaQ8WHcVBHS1BtHE4QP9OBMS98mpbKTeDW7dJwRsnHpMBTFJpV4I+b0kY/NqInVFSyBLANbnMSgBM8F+Fqfxq/h657/Up+GaBnwV9hRqc9bZ/vA6vu+T9E8KPJWns94UfTeCj2QXwCHS9dNL8Xf3Ho/rfewSeFODGDV69AU0y6NFAE1DP3qK++rdB7/1HRxf86gT376zOr99T/h/ioBiXWQkgQgVeIrCC/WomhDmQK+hASI2ARQZKooHMLdCJwGEBBXC3+uERwg+VOHZ9ioAt9H80AI06wGgJ3nQA3BoCut6AhxYwgcPOFnxuFnrphk+NIKIGrWPQtgz3b0i7Y6D5rs1GKqTop0nQX52vmQC4BkjA+r4a7Kx9WLENGeegkhSETBCrNXIMdi/444Rw1n6E96ry7OPuj8UfLxtQ78NA2iSBbg7gIiIbdDLsb5agPhLC3RkYKv8NDbS2YGsatNRAG2oQwf9ZIOydgy1MAzBkAw8UwEEIDzSAqdPQ6za0PkeJAMH3Z0wXniUSZoHvBXU2mcjQgv56TedIKglCpIoQfgwCIjOytd8WgN0bfxoR8Fn9Gx0Aj5Zgq0lIZbsH/ibSJoFnS+C98g9ooHEELI3gliy25yONIiE6pb0NfBlyNEYyENoodkKwgl6I6s8kARgJ4ZoEfuYWHLEJa0LhSBXm7kImGeSfVdoJ1DO2G7WXsehAptupSOoyrCSF904k+6vt98X/ZcM98Hsd4JYIXhQAIg3/f9AAUYhsLQKAtkHVBnzjCKhOoYl2ym+iBtvzDzQ2DLXJ4PUmbJHAVnBQX4jkxfvHhNDqAdHXGQJgv0aSDGItgOseHIU+K9hXnIJzkoGlEKzNHagTdJ6VWEUH4iCKH4fd2AwDPaYBm4Wgng4gQ9V/CoGiuNmD04AQtNGMGzSAAQ2I2pzfogY9LRh7BrbOh4+D30sAencljFu2CUFrwY8UAWRfWwGvVOVfbx2uIILM0pwDv082dUTw8hYs8L+uIWiHGpWgClnAa1lMPJogovvvbePPs/q3Xr++kgCsfgB5oQF9WYKPJqEn6G+OE3i5AqouF59FQOmahQC8rlPLj38kg1c2f30vw+XaoIX24/pMGIgSBoZqoH3wo0sIIGlA9PWcCPrAtpPB8eBf6x1o6cHra+2+tpIFP4PgBfxZtZUJfo4qxELT948D9ucK8Mt9+ccjIQw6QJcEbrD/1g340ATuDgDkFfx6twSf1f9xvuBECYxq/7ythQQGm+5JDx6Brw4CkMGT3wgscCUoQ4sU2t6DR2ciBjTgtcpenQoZVX9NuL4Owc+dVaDursYVkVALX+shjSBKBuvCYDUZjE5BdNkxdHAUBexyHwB6NP7Iyw7sxUDViwge1t+mz8B/LAvVx/c3PeBBCToB8IUGOgqA3iV4yUg6UAOxaUFHDx6CYS8SorMOue0CCJGAf5YfRhoAI+A1CvwxqNkAY5yAIx2EQmkFfeWOXi+nEdSQQA0ZHMEItiagJArQxDXIrj8nCfQi4HZPAttrIahso9oPQ/2/JwV5JQU8zw+7I4D7/sBn4EO6rjw0FR+i3Z9fHtahzsFvJgM0X+tmVH5vaYiNDGAigewAz+gyNLThnjCURQFR1b9d3lZvnVqmj9mEPDKIUIC4KCCjBXywS4N+otp/Hk3QVthOkwEKlV9PQwXjT7s/zwF4Qf9toAAzFdjuaEB6S7D1//U5FIQu2MevO0rQQH8ZmoXE6B/IkgE60XCjVoq8gt2iCG0S8L5GdxkM1cGsfsCMArSCAnrr7dzAZxCEEpepvB8tqHJ/q+bmJGGts/AcAXFOMMeTwC7Pw0B6CtCtA2vWgonqBQJFSwH0JQK29OB2kvgj2HHXAoyeAIsCQO0kMNECAhFMqCBf8mElAkyBbX1tJQP2RJ/ha0gpAfS9l+/5n00CkrQpq0MZbOdAuxmMvHswog62jZj7BnYQe19b14kxNq2D/ehX/p68HEcF+x3yP7z/V/A/q/5DA3i5A/dzA5pdgbKp3v3/wQF4Bb70WkCTHGRAA6+KL0bFl6FJaFw0ImZwm6igSwbbwPn9RMBWf3sN2JgA/BVh/Rg0kQBgePf6HglAHLFQwqQQOwDjbdVxNZjR4iM6Qa3WxwvNxh0JFb3g/WzFQQS8b/ttKcDWoABtUMAd8j9hf0MB2uDXhzX4CHj03L9DBU3Qjz0C0l4mLSLQPicOOwZoVCB6P6dA7nDbGkVuxcNr8PU2JQO4wX5trEqmccZaHU4q8oCDFOpzAnOwqyMIMktNNNAHouDGxO37DgArQZzlmp/14W1QlqHTMaIIx7SCx0+5yza7AKJ3IXBrNAHVDcMZAU/BT/vgv/ULPOA+XiLggAREDF2g0ci6xNDRglegd7P7TWWH5oJfayliEg7bScQRBVgI4Ookg/F6rvpLWP29swREqA3CaG8/FpKqS8DTAV4TiBqIqtxfzaQRLys5I0XEFIFrPbZRQb+16Fgi2LvJv8EFUPW1gGfQv1T/F/d/HBnccP7rAwnIIyHI4ArgWeGbU4eHy6Tx/EeTZIb5bo/BsMBjmjBE08f/RB0PHYBd9eVRAGY7cHRwiBf8WeCPHY1bgBTa9xKTELzEkQX9CPtl0gJiqsAmCT7I8xbjivh3JGFI+D2nBcSJQJ8agDX+O9iBL7UfG4bzAkcaICrbtYHz1ycSmGmAjJfL3CMgT3tQpmrfB7gxSzC1DnvdhQMieG47u75+kTouKNkM8c/+vq/Q7ZYjO/hhVvRq8F/9gGfhP8aqE9EIdR6LTwJ1h0BItyDqB8iFwuNqASscRnYioxOg9ApvnYA35f8e9Ohbfe8J4rknoFkO0lmA2gmAG0YK0DkB4ieEjiLoMD8wBzom27ANZkzIoU8EMHk/uo1mzeVoEoRWKn8L/62EYAX/lsB7D/LXg74uAMr9oGivJ0CNJCGD6i9DhZdQF+gtOp4S+NODRzsDVbhdgv4BqTMNyIL9SCKwL9/FGPp5oQKxIf8A/UX6r231H7YIqLML0Ae2GtrADOvRQH5b/MPE9dt9BGLNG8jVTAQvIaK5TtvvvWQgDvyXIClUA78S9Nfg7VtIBlO7cbsEYkQDMot+ygQ7QwmOawTHnAM2XUSnJvPIYRYMmYPS+sv3J+cfP3d04JYIXsF/EwMbBKB9Q9AY+BiSwFj9mzrSXmcJhFPVHySTbgHJCPvRQ/z7G/SVUETsg0ZF+i3CRoCjhf7y1A9mOiDD7TwdwEoEXjLwAv+avLE2B7Jnb+OqDpBoAchoQJskxKnss0vu7Q2YhcDv4ySeLOg9GsCKiUIihP7yfW7zbTsBh0TQfN0iAWn9f72Z56/Ax9P7j5OAH/Qvv3/QxKfk0DgDuP+R3USg3bzBC7bO/QT9Eeh9QvDPG7glBQzJwK740lAFFgFk8P88CqDGAa223YckWYhr+c0BPdwetl2ocnsfzePAWcVnnAIp6gDVhDLyfV4nqFEDPxHsbWD3k4BDkN+pARqKMLYBPzYEvxp9xmCHQQdgWH/9EtH2TIFpu3AH/cdGydv1j0TQbRrq+D/mLcX3ZACZ15bF378CG0My6Kq/zoGOQwhASDFwFbxyNGBuSxbCEhQ/uEPe/6gAERWQObCVVfjPpQX+rexxYhYFxIkgpgX7Y/vPs+Pvxf9vwt8kAs7i32t3QCP+3SPaTwIytQXP38u0PESm+YER+o9B3vr8mETAUfDrEkPI80ck0FZ0dXh9U+HRbhey0cAc2H7A4y4egoD6y8JfkBiigLdFP8v2W00E8deT2IeAKujZ/QAVKpAtKI20gLWksHedfgPcb+0+NEHefd9vB9rayi8h7J91gBbaw20MsnWAF5xHkyDUCOoXp+yrOwwxcKj0aL6fFppaaKDv6OpHR5sgx5BAlK/+fYhuP1D196o8e7lFBaKqv5YIMnFQpd0FGVR35RJCnCDaABaXBtgbiSwtICMtalKC+1JQ6bx/PLcDPQL91QFodQNKpwOgF/9eqcBxBBqRcKAAVk+ArQOMx1RYGgB6naDhlK+uQQwJYx4meQbxtNnYQwMjt/d4f3M9ZE4UOld1LAh99fbfzOxiEkKFCkTJIUIMUeVnJ/9sDt8/e1NEJOi9oVHDGYhgnSLss9DX2IAqw1zALUncKcDr0FB5NP+0cBQNrEezDiyiADPkt9qGpwoPdL0AGPx/NOKeyf3b9WJNdfcFv6bKd2cLMJVfJ6Y3B6wB9WFUfWWEwKMfGiQL+3bz9XGQz2EHKhF41GCtZyDi/gUCsNhYoAr3UNJ58YidHKqnMb/6AB5J4N73/4L+t7mAkeeP3P+1LNSB/l0SkMEd8DcEuUlguEw6t2AU/PCE/q++Akw6QFf1u6SBrj1ZnnhG50AfkoGIdf7gJv1KcSfgzWWkQ9U33Z3tHXYASKJ9e/YhU90rvD+q9Ej69/wxYJVs506Eg/r3DkMDzEdDBRGgcZay49XihLA30P+l8N+hf1f57/0AoxbQbwYaan/rBMirE9Dk+sBzTkC8JNDEUlv5McB8PP19Y01Gayep+hC/2zvQ/2HGLAurowsNGlA1cnqGGzeH5weiYLZm7h3QQC4O2tXdhvMMk1ZS5ebpgI8eMrPvPGkwaxayk8Yc6PMOBPEdC1XZ+2UfbfOPtxLMQQAG9BcZFoF0gp/RKjxe7+oAw9T7ZPWhgedodgz0gf5KBtrtIZhQAZpAV1Bi36w6t98qVfH7hqGI318lLCjLCUFlxRHwqYEH9a2qb4XjWvDT7kBwfbZA5P0+PNuRuW1yf4yNQH3zzwv6b70QOJ0G9OT/dhoYRUGT15uQH/71MjQLtQlxfDuiCXrtM+SkA+icQdH6sU/xz7Ze7FlubV4TpoTQ2osdpaEjtqADmEU7OkBEFoLeC3IWFFeswJXKXzkboNL+wzcFHU8hTGKIboO7CLi1/P+5F+gydQhuvRbwEgxvtACmANikhLTbj0gCYk8KdlYgmj+4Ymaod7TwahwadICuX0Cm2fE5iNHPK0x/CDV66Kyg1MnqjNFBnhBoLQCgUULfaVe5nq/6EQWY67bXCszUb+7232fVPz51iGB12owK9peyP1T4raMFF/OEYJP792mgXYfZ04GHMAhBkCSmSj+dKqRPgVFGHbpLEGMiGFeQWfSgrY52VxaeDUPSNJI0P7NoisG729HHl78z6hxfs9rV3m4JjgM/lsui2qmThjCfDFSb+I9vwUqG5wwL55U7C+6ot8B+7N2o6r3q37T9trfpjgmTvv7PSQATLLeRAOZhIJHBQfDQQJPBdUwEbVW3+L08EcEE/9G4ANrCeWcnPKRHDupbNynMx5AA9IRYLmrc/YLSiD5EaEBS/s/TgnU9ILcH19n+CpHwegLejx7Mn/d25fdN+e9U/1vgb7bqf08MOtf8EXxaoh+GY8L6gDfhvs4i6HQ7seYI2sv1GchdMsBIG3xlvxcCRzdgCPTn+6q/TW00VE8Q9FaFv+R2VlOM1vm/hhjhDCdgNflVKME5B47I9xT8z0YgPAJ8myb/LqHy36j/Mwqw9AALxuO1JVjiuQAYLcFzIhiEPe05fk8tRjGw7yWQbsfuLAT2VqOId1osnr0F49VM8INACPHDoBz4B5mqqSnUgyh3ArjXxfQH5BbgUS8gP7aU+w0zHD9GGD0CGHf+P1p/DeivlhU4BbxR9a2kYFR58YaDZCUR2P0DMmgED2eg77puegy6PgDphEB0CwlG/i9d+/Hs34pBEQrBn0W51mqGnJAk3ACCHeiqkQ1XFQA5AlKH7Lk8yJKWY3/nym14h2C3JvxeMwD9ZVMz0BPMi1n1RbKl1cYhIVblF3G0ATsRiCMUvoK9//OgcwYMoe+ZKOLlC6/Xk50br9NFz9fanqA8UIYSpCwlBO4kHc4WLLBfBHVaKwKgLQjmP4Un61Vq+3s7Bsyi0WztmLjJwJwFeE0I2vD/1Q6MVwefxfUf32skCPbCnxQqf+QMPEUDHZ7vGeyj020JgkPXXwsldA7SYR1RE3h94NvNtugswcgxXEkIcBPCGZ1rmrgDC0A4K88nm2fn/eTnpQtWyZfybRoK8Dro4zYDIMGsf7saTBzvX0SMbkAD6o9CYbsfMK38cJKD9l2FJt9/VGs0h5Gib33pxMKWNsigFUh3G2un+/N1WUglI/EEx8fq27vUNnwsiOoKecL7kQS8VnWAGCFUgn6dBtQhv40CmIYggwK0uwDHRGAuBXVdfwzHUjZzATLMAoyJ4FmBhzaWBlrHld9CCWpPHRqofBqMReMGTJ78q9rDes1Tv7/0m0v0AFHXNR6P6g30SHivin7V1BOhh3iWPwvps/yE836L2XiwnUT8x2iHgfqhnwn667QHEE8oLQjEvtEW7GYBZDrDVkwNIO4G5GiBDf9fGoFM6n+vbEtzXwP6u9AduaWnGYSLAlVdl/AU+ikrSeEIKgwdaZ4AACAASURBVKj4/wtgHcHtdO2nWKcBkPfxcvnNQvsj2Me9f02r76T8q0IBn9OLKfz1HX8yVXQYGoAB/2UeBQ5/5kCL6+H/OGGoRnLSwdd3oH8r7KkGTbgIxEwVWvnF8KOpHnyzfF9Jod5Px+IF1h8owyitDw/XEgRb5bPqbt1uvn7qBIQ16vtS/u+DP3cR7CH0WWJgd5mTJKYgNzoGjQrfvu99NDBC+bnyW1x/qhTatv2OaMKgJWPvv5kwnMgxHYGFRtJW8VMl3uP+MgoqSZyWFKr7+KIDw1d6+IiOgZI4+d5iYL3imzbgyO+tph9t2oSBxOM3ugHtPoFZ1LM0hF4kXNEBssvVgPdjdXZWK7uKvyS3q1Xb1WQwtVDqSUggq+Vw3t56JA2cz7PXOwGNW1ecwxPhfe3QEUsDsFaAz8jg0nf+iZMAHNg/XSazDuC18Iq1HBRrOsAQ8NLB+16g614jmuSgs3bROxE55D+WDDQNA4ivdMJ9M1b309UqknaDU8ObV9/PwmMPATvTMAxpABLBzugUtV9bLdhNDQA+7B9tQJ06/7QNDHGSwtgZOCIA47InIoDdROQGtt0U1HI3GaoUnCnC/rzBMQJteN17+VaAzYNA7e+PFqHQUyXPUYB7iQYa5ZFjq1Zqpx8Uqu/XT7+6BWC1Xaj0GlBIwMoHu7UzcI/6/Acb8KIq+hzmGWmAYnADrIpvKP7TZeLaf0LAeQkGgebbq9FToI44p654F47tekKkI0L5PQNZPsDwPBpy/ni+wKMN76Vav4+2cFZFf8+JwAraMt0DFB7beA/u4Zz/a+RXx0M/ct4/jwaNAS8G17eSwmta0Fhx0VRxJkHMivso+onMXr+YwdWKbgioy1jp4x4AzIKg5lEA7wvHEYCRmdx11TAuT6lDLVl4KvXkAET9P4RT8H2u+lg9EPQIpw+/NpJ7RwE8HaDv/Mu4f3OdNkq/EfAiEiOANjEALvcWL9gfFV4NZbgbQc6qPky4Pm35QZxtH1f4j+P/jXuaYPcWwIEH/fmEPBoAO4m4LGxV3txOQqDU+dXgey+UwSzuqP++uImO/u/6ogCb7wTc1n61sL+vZi87rxnrNas+giTg6QLzaUCjIp6JfhwtGI7AjBBB9JjDY4ePYVR6ZPgN4owVv6Q2N5hhVHwNeYrM+w6dN6K1sMHZm/Ce7bHe3dzKr1xw1w4JrSQMZtgnoQHlr18fzunAszD4qurNUg/TDqzx/lfCaO6t4tACMUQ6P6htWjDPC1hCoZ8kpODzJ70MUR9AODcgwyqyPhmE+wfHYB/hvSqt6qeXUShhXH+d9SR8DzrDaZZdpSp/HxqLMQuATgDU/qDPRgOIeT8cvz/h/XC6BtE7ACLOWPE0KIS4UUjmZaJ2grBphiWgT41BUVWZfP3AnEIT6OrfoF122l2rMycBoU5i/OXoUZ4/aglsXwLzHNU++FVF3qikOj5HXm2PBitT1WuvJRAB+6O//W0/PY8vQH5IrAsMs/WuVmAdHBrQgrbOxJShXwRSsu08h8JMBpo0+aDTALwV4tbswgzHrftG/dJKIAQb5h9KCssWIMeto+GYqG12/HWGjx8kzqNJaa0noMWOr2KwW01AMwJoNvhMQda2/RKQP/3ecABM3g9uD6BY68Ntz9+nDOMb5iV+hIE+dP/Zs/wwJhJ9mgBnohBuStABUXjugF3hkXF9ZZJAjefKdHZCc389LoStKvIl7QIEb1d9RyciQgFDI9Cjyccc/23Aam7/PZJBhgDgin5CtQvbCzX8ip9YgIFtOAt+w0owp/hOiCWgEGbVHuYjRigPGR/YOnEoqPDoV5z5YqB3mRq2ox5ICmSSgAP1Ne+XV2NE+/vuFbCTRADxtS70VRBCjgBk2OyDUQiUgfl77b7DwaHm2rAZ7osRSOOUoHgKfNBSLI767+oDYrfwZvqChSpGfj3pFwZFsCJg2jeIQQBUiyI4WgD68ww4qO8khuWkkIuDrxWv2nv+UTBpJYiPd0KemTA8qqFiuUF1jWS3BoG6pADJq751JqBI0wvAVPyMQvjcX1zbELltKK+zBiXRFiRxG+b7q3M9xuLdzR8g0gCGNzSM5gNYfqGO9CBT8OHct6oB3KsSDBisUnwsFuISQaRHxDSv0vptt2oeLHMERfRn/FG/Cx01EpgIQG8LP+/i37PKw53xn6sYCM4/JwSRrCnIeB1ZkLsawDhaPKv/njU3wnZ/dBdGE8+YTHSG8+ofGgIjsC19YnwdM/KAnTSsqj6ig7uGgIPw3nYFzhhIIvriAxFP9CQd4HSlnzgxONIdrE7A8ZDPx9fjib8ifgegNIliRgdx95+E1T7+3nQVNNhEzDgGA3T2rEDLduwtPpuuouPcs8swwXFjdTaMKt+jA5gUAQPcf95KJQxYU0cYxEDvsBSmYuukp7AwnqniC9Afa5z8vboI68ImT0t26CvwBzSggkj447r9IojvCn7U92J/Hw0QSdwZKNNjxPCfSxRqnATkdwpOwh88oc4J8KTSm/wdbZjrc+4iFP8YO0/5JJDCfaijK5xVXevqfg6zGRrQf83chvX4aRfAE//6vv5+6490U4ADdO7QgM/5bcHP/n4OtCQhBEFeDWSvos8DPq8/IwzLzjpa8/U6MMSkBklDm8e0mn3QIY7XG1Om8wzN48y7HwhOK3P0/ZwUQHHv4psbdoVeb9VlAjChBCdtDDpOKTh9ZfcagOYq31RFjN4/gwBYzp8lAwYNwBELhZoxECeZxMlAzWGdCRV0fQWGHo8+8Kx+AAxnCIzowAxy9KvNepWfsfp4RR9kUrD88CPVTuXRybhqqTHcnxEGndsgub1Gdug8yz9fHt3Hpl57x/mfCOC29FOSQ7/noAZR5W3Ob24UMpuPYAYiQrQgk1gnFoUIKr4vKFpV15pHUJO3Y5rfH3UFHU4bGkU+NKJ9f2hJyOMxDBDpjAgwiYqvk5TqNl9EH2Arb6fA3yaA4cBtPWewhkEcIQJBlGzYp6zRmr1v+e3Fv27xpzvyI44NGDkCIi7CGNV9Dw0M8NtHC2vUwHINumCGNG8erxOwtQINsW88Tlwdoc+F85nI559ngEDpt2F/Uu3hiXYrkN/pBFS26hYDAkFgErMK67y9mGBA3L5ore5izf8b3n805MOq/t7XU4WHv1DUF/5gugCSOAIW/59uMwl6CHWAib8bvfxWl9/rBGEMTTwDfG+ezEYG4yk6FvRPuPwE+wvc39IRjENWM+/cm5b0W4Pf4WuKUnw/vD6eDbB1ETs5vl77Dhnm/51g6wPWwQAqxnivgQaeS3gy/u/1H4hpTPrIgHAN0mSgXUX13YP5PMIuQAfBr/f70cdeE+QoCX3i8nFMLcAjInBoAIYqt1LhC1WdtvmSab28AYffaeivCB+ohdYQgfUa/WS4ToMsNLHLc9nnvPZLwn1/EefPVf+U/xvnCVSEQEkEQEnEQJO7S7RvYDxNeNYKrG7DKMhtsQ8cMmhgPKKKj+F7CiHYFR5KIIPxOmg5IVAtu3ACQSPh7CzUQOgAej5CWEkIe3vgxz0ROGO//qYfz/dnLT+ZxDr4QW0eNCJBorCFOVC312Ec2TiY5Bk0cAaQmiA1VH1MOwDHQ0kHdEDDf+2UTWhS4Z8diQMicLx8MLBfverLcP/jQzF0P8EJj5+NGK9RCz755S6F/f1+X/gxeP+Wsedv+vF8/54aSPJYFjIQd624MDz/UDLQnr8HU3ztKHRf8Qeno1vyAQJBaLcMtTV3cvgP56COCqd/QP9xLgBkH4BxO13n4hNUDtACC6G1S3zqooZ6Ba4lp/zcAFb7iERKQwQcF39IFJjdXECGADw0IE4gg674pYAnk4HoHPx54tD5daO5vxrugSkMjgiiqc7TVKAT6AT8R4ckbHEQCYR/IZBxJgA+XZjsR7vaoRpIxWqeqfXuGC2CxwudicwePEB1kNkaZCuwyF0DuKv/4sz9mzP/Qxdg3BDkBTMC8Q+loD6UGBzx0Kz6eAX/KArOQTlPHFoI4vVtf4rNuLrca9edRn4xBP7k8w+9AgZCgBfEUZWfEs8iFNZ3UO7TqmkjCO/rWdgco/yIqHcQWaC2EGTzgz5y/iXQAvyx3riyxxV/JeBriaGB9OrTA5g9/eokM+37GszqfA/UZk9iW5UnCtBqBl3XoNN6Ag/+zy6A5evPAp+TIFDn15gQw9rjrOzFX0s2JBVAxa/nP1a6AsNWYGjPNGPLTQgBsNUFvOA3Ht9o/rGDN0tWOCcxJGp+f7++kkP7PxcGv1+GjkaLt/fawpwwerQxBJNW4b+PJsYEgiAYYdEAGIlDNaAbRkIgK3ut0jKByp+8yz23X6GttmBmjwDvChgiYLP5V/zhH6/110sGcKo5CkggCngxnIPoPja0j2B+1BRkiYJiviaLJqghDI63G2nAgAxMCuDdnoD0wIQm+urMB3VuAwbBrFGgGgnhAFqg9+ujKsLxB3qGCQNEEtPinIQlAj4WgIw7/iXc9V/x/yUWFs2KH504bAh4aYWf4TrTLGTy9YbftyLeVOWNfYNyt/ji29mQnqMAltU3ioTtbX343yv/1u0YPUBz6zB702tQucnX0gWaFh6DgPdmhXaapGotw0SFz1qDiTMdd8h45HfcqCPRUhA3+NmKz1l9teCPaMd4urGaewRitNBDdahR5c3AfQmDCFT9vmtQEwqAYXX4XI2n23Z9B/Yb1FL+LWox6wHGbZSo6FR1LzyG+3hriSZvWT6jfXhl2cmQZJDrAbuYAqAHo1GA/EOgD8eGcU7A8eDvH4fQBuAhBL/Zp/vamPTrRENDGLTV/7E1WEPLDlP/PwzU4YhusIMUgfIPAr6Dhv5R4y2r8ldFwiFoYHnmr8TAHbhRQSZOctH598ZYhqt6wP7q/ouqe77RJxvzFYaji/z4vna4v5cUMDXqDAJ5ytktqtBDckyjvJg04hl16LB0xFfyMfD77PZjErGQRRjYIfSvoAXntks0ok8MsUC4KARWnYPlJBeIgLeFrUgDOHYCag0/XNAbWgRwQuLAsaQwIhC1g7+jCNKuT38JfnYSyTi+QQEwwHeT4/dWHYxJPxfOj5oAnRQqgU3YgGZSOaDyK3n/qkDYBKptzR3oD6B4fyRKjp2AzSl80YR/3P+/1vBjX18Jbu+YsrMRgbqPP8zrDLTAaupphfeZtyPs9BPztpLSBZjowF3woYRwBwOWaqbev15b7X4RWsiqYiY6ZkFEIoUwUA2OrkeEQE8HYNyD/rl3m88jCGgO/nPW3xy8x4Q/HBcM1dYg5q8N+B/SBSYhtD0EY1PRGLDoKIBHF3yLz4H/gSYQJRETgqeB2d4vC8L2NVnQn4PoVJJAcP0inahAfdXVI8CFszjRagCTtRdV7Sr895NBpRKXIT64RMFw/iw5eChhEvmmyUIH+k+Qu3cLzOAN6ILlFvgWnx3YWFDz0f38ze9GlfP6UQ3ojEY0gtqRIEbA5/WgQFhsEuIeL75uTzvqHktAWfj/OD6sQXssROcGiRgFn0QVkld7OznMDT7CJKzhMIqxW9B+LCOQdH4uyxIcE49VTSeLj0wKjzcp2oDXQA8YoDEGBLMW0BJw+eAxXejPV/IXd59/tp5rVyYXDw5BlRetSpQAcvgfOwVM8ObzBq/AQ2wX4lwkQV3vNhYFfn2LFgaoDU1ogqsfqGkJYmrj9Tr22KQwBLzbLuzDeA9yzyJjVRfwegWq0H+FThDPA6ZhZwX2M2Kh4waovCzAWJTzD/qY00c+6PM8coz08VNqglzx54LfHuTJK7z2rwX35ABLg1DzsZ7Qv7l/f2yXDlbf4C/irg0MJ0aCuD0wP74MrxfdFlX7tq+vtRdCpvt599EG9Yz3V+P+Oj/n4zLruZHcJ7oMt/MNp9eD6HEeFb6/TMfbWo85Pb79HJo8t3371/PuIAZqMvjPC34nVV6ZB4hEuA7AzA5cfU0y2n6ux89D/35/n2/vWY5Bf0qwf3tPLISO1Tap9qzFB6eap/beqI94NCCbGwgqOItY3CGl446CaQ8i2Q9g0AvmgJOnBoAA0gu17tsKtKS7D4udgCYERy2QIceCX/P7mBW+g/7D9S6Mn50CS0eAoQPDcBjopIA5+EcxEjLweRjXq0UbLIjcBxsGx2IZvlf0ATjz/6qypAmY7bhrk4ahsIis6ccXKHdueAfUgk+RWPCLh42c6zEeKyJpRTdRAOqBbl/Wq/uT+q+Fx3FoTIuCzc6+hN8j4veGjuAnhSE5gKnco3A3XwYlq2sq+lmP4yEOpqEoG0M+mGDYuYT0pKCFHgLHKt3T7T9p8GcWH+n1UwGa8X6kQt2x4CeqPexegT6o/Z4Cr313PHdgrsS2ZReLfpKIf+IMFnmVmwxQ9AhithYT73+p2s+JIVfrjwiHnpAZrSsr9CMstQXP1+1+510N/q8E/YoekMN9OMFvi5LvkRDsy9rgFCOoPdpgaQIWBZjf5KCSQszZJ1ivTvLokpen6tsJAVND0NFqb6GUGg2Im4Dyx9Pn7/0dm4pADAslJzTv+dKNrAPQ0wyySm7bj1RQgbAXsRa4R+mBJzpaQmHLmy0BLoL+Nh2ZRca8uUc6P37k97n451fvTieAE8BdZ2ItqFEK6oOJIYPsiU4woo140Oh+H/UC++gatHYcOFT+2y3AYvD1rM/fpxdUcsAi70c0OxAEP45X/hymE9XeoC0zfYhbcqfbhs09HpwnKMDR6g0mmYyKth/UcLl9ITGQ8N1S6s+gA1HvQCc2pluPvN2Br8SyZyfyxPP/VhCi1L1HWX2CQCuAE8TIq/sBYdANZmTIwqq0sb0HIzhhugBeUpBZLFyA8y+EErsBUYDZHYN9QAAooQwOws+uQlhdESSSqk5Qsh8LSYI6LDS1AbmOvLlRBqQIeITvM36+TP63VfE5hFClCTr9zEyVFwS3STQBy66DMHB+PJWIrfgGnYBx2dTboPa2X49GaBVlePA7CFx4iaGi4ns0aLVjMGvtPTDtmO4XEE8E5Kb/8qYai+NHl60LgAICcUCoJPVeiYG6Pxw/X9VFNVbFn9FNPzXoIRDTyzcpREYB5Fm1EQQn3KRi9wKApR8Tz48SwxnV3qM0q7ZhpdKvr0zfY+gO4oQf+EGPFYW/Xf5hwWsUgxiBbShGoGIx+D2eH1h2EeR3UQMH4zMaUKr4033nzkSkfQADelFbLOQCalxdxvN8mInhPas9bxtGJw29Fx3Y8429MAS0fL33Oeo7qFZeiToCC3B/VSNYuU0fgDnkhxGgMFdxiYEY7MYel+OHPH30IMeVFK1C79l+QdXVpFqHlMAXEf3EYDyfkkGdNvJ8f3RAXU0jpgM7jMNA5yCrtfzOicKG/M9bgEkEjqqPPDEcDfqVwGZv6zcO9avDfOhf4OmLFd9OLBHHdxp51HvOBlnAoQksYjASA1xnIhPsapTCPjbsGB2YevpPpgM73EYeSYIftgPgte6CWesVBB9QEgfnWYMgoeC8ql69bWoRIqYHvSIv/u26bj/jdqZ9KSGk74JRo6QS9PuTiSHm6Z62kLUGH0UO4rwWrhtRETkR4iKRdI8giJ2D2nUCMjsA0TXiVDb98NAf/rCMlajA9wesWHZrAe1dlwRyVI2jx4KkyUHSx7YDe6YD4tOC6XW01puEdAJwaEJzf1uATHi6ZlSCpBQscsh6C1xRcWEG4bCFeKcAVhVlDu54JQIkTT21hptIT/Afk0kMcS9BKfjBJozcDXCrtgbWXxbMAw3INQIxtQJPAGwXmYaBbYh4SCsuKwLOAQ5awKskCMmRg8P3xwlBfbosQaDqyZqBkyQe1CLQACoTgN4qbyHsPwkTiF2pYaj6MAXBmUosQHnUEYCsBL3MW39SNKMJ5PfoBsT33DVJCEbFnBCMOkHfvj6Xq8uw+dgRIhGgAiUqf5QgKDFyhe8nnYrlqn9sG1GoAfirubygX4H+8IM1CmQrMFAJ5ExzKIp54nPoVU2Auh6eBShDlTV4u5c4HE/fVvjFrsII0Ik6QX+Iq68jB19ziLoKC27FYe0gC+j1RSS+BgB7AvAM3m8HLdy5fV60C8RMVuhD1ieQB32MCCq0QPJuvuw5IHF/geMKwOPdpmsxBwVEfGEOgeincJqNmuSFIPhPq/xM81CWIIi+gCFBqDX3QPYd2OcCRo6GZBoA3AM+00aesAOQ7/2Pe/vBCXoguD4OBD1WfPwClzcui12AuH+gC0gEwW72KfjBCQRBr05D0IQc7N8PzOCMehPWK384MPVDJQim7yDdoiRTItzzFV/ZOX9sYFetP0fsQzb6O7wOoFjxk89YoQXv+BmSN+yYHYO+BsDRAXHhuJXsEFbdIEGZQWUkNVNzGA9NZUVBIQL7jASR0AclE4Pb7JN3BO72mG92+o8UG3nybj+mASh0FsLKn9GPxDrEcS2Au35BzHO1BksriIJdpqWjKR1wlpR4fN977rZqI+XbYjYDgVDpcYQalOYKMiuQbB3G6Pu/HlMbi9a0EMkksXtjvvXTfgMKAEZRN/i/O7yD8Da2S2Bdh3ICWfp8yuMkYl5a4df4vVWt4UF0yyqEnaT6swYyWB8/j111Y1ERS9oB0SLMtBGDEBD1PEHwtdjUEAHnqmoHU4wCDAoAS+lHwtu9eQLUAgmxVvAuMB9cELMV3m8EUtcBYYI9nkNIEEJYrQeUHfnzzRyC39j8CgSkir/E0P2odnAmAqDnDIhqrtV9BDNS2POjv/0pwKr6z1h/PMz3uf9ykFYq9TtoAXSwpz0HljdvBCVAPY6t7osv6gFhMpkX13rcfXQMIpuTsfTibkfOPRAC2meLRipI4mDPwMD5x+v3+Ey+qEfACwoUEkKQSMZxYJDz9R68PyP43yvo2aYf881rNQbZgRU/jp80QnW/hdXqJxMvCFxXQSNHpE8QiF4XI+wFfQcw7VL2Md7RRajsKgh2D+6SLAKPF356+/7yXYBTUgFy/38StUjFHweD+iiHh8/LV/i/TSvGk4L5x7F6AsIKbgb4C0YjgdGRIToGUx7cgS3JKP8pRcgak95BJGQbjaJdBYQ1qHYnYHL8F45QgHx2gLMQ2cDxBD/4SeR0LSDi5XzPQNjM4ySE/HGG6g+ugltLNSARn281BPtNO72eJLjdX4ITSEgpQvJYFEUg24f1qAYQNQdxx6Q/RcB85j9f+03zf2QV33IDPHegNgPABTfqFR8cZK9TA7/ll0EQbUUHW8Gr1d+MSadia+LRHwhunv87yWoJ3h/pRDwJAbDNQQFd2P2mH4kP/wDT/ZeN3CK3+ZjvgVpw4r20AMafb58j4N1UMknuj6iCx883PU9g2VHVH5JX2eEcPghSgRBCKPzK0Q3fknwPN0Hk0CyC0zBkz//7duEetgFjVtypASDI4CsknYJgYDhqsBxxy29+eyxrAZX75EEf8f+CkOcijMDDHx4ASYGGu8WHgPwpHJc0qOG8FgFTuVk0cRZVePFwHEIUEu8xSHoL5qWg4I7/HgOKXe2dcnu2SSdCGIDTA+AcxY1zYL6Q6AAFu+/1GvjKPSeEoJV3NiM4Dz9C6oWkEav+NWjPWXNOIkKgNTi2I8LeBgaZHJxqrC4oNXoB9pzzMws/OW3ghSyQJgjbygOVEDhoj4nHLld8HPD6UUMFVLIgKrTL7cFoBRLQgEdXIseZ2/HhFPKbk4d5tYWwwR0nIFQSD2P5gQhs6meVfB+Bkyz2fOIvX/zxqsSODuAGIOLtPNnmIPCrv6Kqvgz3q4tCwNl9lWYfnsdHj2HTgQw5IBHwULmfSu1jEV3gDFSxTBmqSEVqiYK2IkWcRiAkwV/cyW9YhqHXDw9dkNQAcO6HFNJT7oChfrPUYc3KY17zAd+evAwF2w5SCKLV4EuCEKsKfjBVWHu9Q9Arh4CoBqEMWYBsNX7YgKP/69uC3M7/mOOz232QT+ox4iCyJGEFP4oBHd+GVvXBwX35nqp7qeIbV6L6tdZub3ueJ+gBIKgC6S5gOQFxDoGr+Bv2nzqbknd7ph/EmXzO0o+kZdc/wqvQkAOUffVMzKtYgx5Vob1/+HAfCdzHSiXHenX35/2JTr3KZ9Ruj2lYiMhLIFoNyMq9hFroeYMTE0bSLbhb4l3YlFPa6hMd2jk8dmrDgdQCnC4/+ANFlYTB6ATlx2GDGXP1rvL+SnWHw+cJes5/rRWt4H2pw9GklD4uSMpwasIQiaYR92gIyFX5S8dtRZt/nCAH48VXW3hRE/HKOsGquj8EM85Q9cfeAV4XwNGAlmIFIwPYrfLKuxV476RRetzcdeAsRSZhiHizCKEIOHn3EMOWy5X4uIJnXX6sFiBFLaBm/THOQAkVJK9j6TKwiSDTBWpwHkSPQJX7U959uAkoaTUuug6oQCBz1Zlxm0OJSIoIw04M+7zCGuYiznCfHww9AN6Ir+HXA7lfn2oBSJ2FOOh8SzINfmcAyITq8JX/sOMPx6A9LeYtVfwgCBZhdu25OB9/XmWWNPUEPD5dUuJ68wd1AqD2+w1PI9KxE9BW5t3z/igdYGWiL7L+wPv9jgVY8f0ZcbCKCuLAHN+c5wa69Zpr0J9t2KnpAGzyiAIPiFalJ8/xXrrA6Y+/8NoDnWCPNwFJzf5DpVkHte8hx76P+HU1+HEytEeSEIzAsu5r6wPJGu6oLz8VrKofXLce+ywIHhNa/Dmw8LrptWXZ4NKZm4pr/QQ7Qk8ehMrPtAF7PQCD309QgRgRZMKgAbFREAfBBXNalbHA9cEHMo4IgIUuPjjBWEUFEQpYTkhVO43eRiynJw9Jjj8TOUIlJExK+0wA4gWgQvcFBHAc7P4/u78/Ff4CC5ATB3P3oUwFClYgcALcxzp/B9Ez4DUV8RjBbsCBrMH4dLNwIDaCGhA6o3pXksdBvYBsktrXDgNJKAFy1Z+ZGIy5NXgXoBT8a3ZgVSPIUAMV6DjLxhsV8wX4n4ibbONObHNyCr8Z4FinNFjg8ziiF5zSV8A99u7Zdf5OisvVaAAAG3VJREFU/kIPAJLWX3hUIFD6o7MD4WkHIMXBk4IftSrPNBJVk0OoC7ice8HGS8XBKDoz/YFBLaQi392lGpCMJfhD9xVkx5Xbj73P9V4m1j0v73x9FjDDPlYvATkgFAVWcdNvJBamliOjAwRV0EpeRymAe717kMYRyy/j5FwFBX0fP7Dyx8gq8wn2ZXi8GfGYR+lFcGJSxa3Y84WgzBHetlU4cvKY44Ps4iP9fsgsPGEhQTAcHqwwGCj61SoPexKwasXFqtxq8qhD9SixoBBYcJEDNzmIoi3J7QkoJActVHocTVpPBCDhElAvMDK1PT/Sq3DwB/ygmyB9GNhYDH4so4Foy48kkPtZfZEv1PQTxYpyX0EI3Bu+/5krcN8fgwVdwWu2JNVNWAk+PcOOPMNdGFyAZ5Aj6gicgzNfwuHZg0HrLxBWfjSRl88fVCo/apX/IBrIvf65ZxtEoK9Bec4KZIPLe76osQns46NwW0pUPCPAyMc4A/KXOwZzFLGbAqD5xhhbgBcWfoJBAlarcCSQgdQJ+Movnih4gjZQTw51rz588y/ZgxVUEAQ8soCfX8OR26JwujCLGFAMsOjnwGrlPuQw9D/PPv8BYVR7pG/eeFtQpsLzR2KFI8SwKj9KlX++HeLOPuSBKrKeHBi7L4b+Kx184+ptAp4Trcscv69oARVYzWgaK01H1X0K3zNSmARKtxXYHvwJuT+8gLGGWgpHcWOmBeljFB2Ckg6wiAYOqfxEK3GMCAj6kIiTWdCBCXhkjUKMgJcLk271N9uLSbtvvK0S69OXAvoA5z94VsFubbmZvx4QAnXgBnJxENyQjy38wef81uPhxMpPJIQzr5ckuUTKe0wZyN57iFTWga8GvCwlh5UqvYgmaNV9XSxEVWs40kkosFwA70RgNOu8mLZfR6wDiwRa35y7j08NksqPQhcfkRBK/J8R75Iz+9C8gJpqzwiIeZII3QnYOkJWbVEI5jNuA+o2BwK82ifwnpSgHwaC+GNAdmW2VXfC+vPu6wR6lBj84C9WfvivZyUhZMJlJhjSukDlFJ3g4AvGJfC1iEpQJ/CaEd7G9wds7p71+odruKrHip/C7RdsxeVjzIxhoNkFGOW/+sk/YVAGtltfzZAIfzix8gcHhZCXpcGN2u69qWqD9OlRFAy7x2fQBhHUiETB+DocqvArYt98f+AEAXApsEmEcNLC0t2uPHCqPQIXwHYDfI4/9+8LMpchqr5HK39MJSrBXwnutNqjovjHFdq+fcHLp7YLR4mGgduW5hFpAXUoL4cTTuW5HJSkB5PC0S7A+8c+837DyoM1J9iv/po/o3BunlDqPjOSO/YbLFd+FGy9sxKFeT8b+nLNPrkAyD53FtT27yUS32yqUaEGTMBiASGcZ0FmK8nWxbvjC1q6WQC4VdWdAcBY8eFoAzIrC0b7Wt8wlPcIdE1FhUWeKU1Igv8Q/0dl4k/NnYSxdlDon8diUDeuQB4c8XVzcahRgyyZmNC+LAgeCfSVALde8/t1DCYawNoePGT83wlOpFUdOZKwxn89OsMEf0X8CxJCBN/dwKbFwkSMgx0ACJJDJD4iC1JEYh6XcEqVHpx4+J4I4UiAl26r5x64sttvSlAn3LBuQCz6edU8C+J5epBrC4YP52EFDgHrCw1B0eU9bOaTgh3wmYvQV3Oqqcf53XnVNXUBELX1xtSgFrirlII5d3HFulxBCNEfZx0h7K2f34XwdHpuYQcguN189Ow/nPXclaUcqMH5leCXjKOjbv3F0a7i2ZaRHmBe5zwnhA9S736ZC8AH8LHkg/T5znYgmES1dtuzGo92qwHIquiWX+4KgVLd8utv9Ml1BQNhEJW/FOgweiTguCUoQHkEwYhjfQIgm8eAzPKzHqAG5xGiiPyxeGRRaYetUpDVpHVC1T9bHGyaknb/TQTnuG7rDYwYCUT7/cMjtILzA+Go/FPw581F/mWeTkDuBsBCAK8ki+A29nMzPn4Rzjv6QV7xWW4fzQFUxb9jQQ1qc28kMi4mDl1NBr4usIsz5ltZqNm7AeJXfuTHd7nioLEyPBISU+8/tP1AC4Il/n+YGmjg2NiBRdl6yCw//zG5ph7bqaBuz8B4VMU/TqSsNPbwCeZA1cdxyG9SgKzRZPL+GXFOiH1/SFZ9wX8M3zUgvH8a4rMBjZj/h1W9MrwTiN6MlsCKiI4gycBzgV/xUaQGjGDHwHiYi0VIzeEAasCpNuL76AC7BIEl7i4AIxnAfoMxk35eJbZ68wWEUChs8IPz/EEE9BkUoNA4RCWSLJkY1h0Y/dG9bVCtUVPe7QRhtStXG4nOECDfUxc4Uw/Ik8JkA9o9+a83IrfHH11EdFUWc4phNgVFWkPsIHBnCvCCYBSgqEN9qtoXuwHhByYoJJA7BxIkkRwpDGgAHo+vQ3ZGOwCFJCJKUAx4MBpFZWvReeLgtBBkDDQu2OJxXa7SE/P4ZiUPHABjY1DsFIhPAaygWewiXK72hHjow/k8gCL6gKES8qcDZ7A+EhYlWCPGCX1wXIwzkQEKt8cP6iqkC0FEhFj/ZYtvXCtwuBLcDT5wXN+9H6ZEIkTwV/x/s78fXFX3siWHEKrC3tw7EFZ31Ll7ttknQyEMGgAqCaVe1bGk8r8nFWCQQR0h7CY0dsU/mIeIuA1AGCo02Q0YVXxub36sG1Qgfo0CBBUXxap+ECFEycQVyViBEBFPt14TK9rZHB9EwMG7DPXOv0OVHkdtx7OSCXfb3av4CFZGTwQBwT7/hKPHE4PzpJ4L4+FM9r1n8B+B+9R9I4Fu9brYUZgCunZWNxdQgIs8mASBQ4F8hJpEiaf4GPihk8FdAxin/kybjZjTj+mAQy6ihZ9whDvHAWB6BKrBXQr+5SBfqPaINwiz12UIwoTmbPACZY/fshBBBKNlW8ZCHwH/cVKSOZMm4Mxk4OwE9JeB+EFkn1IzcPQoiSB4vGgNeJSoik1A7m0TCmE/HrggB+/1M12C1Z18ACGoIeH1pH2IhAqFWgBq+kDFEWAvA3X8tpW0cnSD5WAOriOHhnYraF1eLTkS8P/QsHUBdtMPnOrMaANJE9AZiaKWII5Ue/8PTHn/UcCSTgIF2xN4zdmAQYIAKeBFl6FiO0aKfq5jcImHfPwTxcEdRmD3LcFoAva1Hdjm9UgGggI9YOoPkOBYLsT8HlG3nucMDGkOOJ8CkNOELdSO7D5qqAeJYBb2GpABgRi2gxLITgrOQ9C937HgB+0i7MeRx3gfPWCXLtgbLJAu/gCFBPzRX8eADJqCvA3FViC/BlOQC4LZyrBq8BdQAOUKoKjqR7v7EFfVFMojPgEoSlJesNIePyLHwW9NRgq7E6HvUN8A0yj0wyWDHRZ3J2A1jHdMyu3hCGwSDwdRir7h9VP7AKLgPoMCgKziOFLtrUm8aIFHlgxYfz8WBYUU55iAXauo+evJaIK/NTgRJM9sUcZRzcCnMdNKMJc7usnAyrpxHYkTRHK+n1HxS01LheAHqRWwKIDqLvQC0+PupHZgBawfVGsiniTVHwZHRqbUI/D4Cd+ftgyLAR1ehkIiqaKFw7MJEwUIuK5zsu4svoFYCFKgBJZACBuppOId2RDkPZas8H9kULcA9a0KTCQDGtpnzT+RMJiOGseHl4BQ1C29AWUXIIf/OIwwqoNEK3SCuA7FRiBrE9B4/PcrGJ1OQNj83F4Xbol/TgVHfMiIZLAdcaVkgh8sLrd+liNQH/FqsNTfj15m1J0X+ffZuq/gTY7QnvIfJz6UzBJLs83ItQpt3RfZz5iuGfNPajpngUm0R8DoA5jDlzsOTAwZjzsC3Jjxg7H914PjlcskGdghgx9HG4OOQH34uwQyzz61/0qiYNQjXxECuWYbGM/DrjtPH/Mw/K+gBLLSA+cEfPr4MroArzcDuybbr8Zc72i2UnzeHnTgzD4Ug78SzIvCoARVOQxaFFR3TzWnkkHUVFShEuqKxZnKz4p4YYcf8ZhYhuu8wFgSHcuuwCJagI4bgchJQK/qe9c/RT6nGcg6KGREJpb+MI0EY/b0jcsni3AJBeCQNsBOFVYoApcM2Aom4VFgIRdHpeIG8D3YaxBD+qCiQ+rBOSVnci8hzkAG1t/pgHA4uwDzmu8xFKkkkIqCfkIRs204r/hiDgutoAAcowBMZ9+KS0CcXVBOHCvJw2jMQSJyeoeExF2DuTuRcuWAo9sefyUQ6/oBaIjPtiRH1KvQKvygAHb171d+vc4GRMDPoxN/kL5pwlVh1mBQ1quQJAJ5j0TgOAis+h8d3mnC8xTKE34+8sDNjyVXE6nFMN+H39TQDmocHScENvN74LoGScGU4f7g6IG3n3C3qnG6JBS+Z5tHOOzRYQx+u7MZmAl0OSsRLAS/VIKfRAWU92+12aaVPksGDBWQuCMvgNy2M2Mt8EwqbjosZAec5xLEAmXmcFTHiOWARWglpNpjdEtBQRxJJU5VL5/7F1X86XntXgUK4q+KggsUoIIK8oA+kgy4+zLaACqQGTVOX6MBWdehL6BxHn+tlyBMDGAqufd7WOX5WTJwKYDfXJJP2GXDPk7Tj5Ed7BOG7DMFaBRAJgI/+H2Ngeb2SKb0zkoGlQBHkefDr7xMA5HZeJPtKIzyApI9gmnPgf1c3mulfhe0gFekDCdNFnrOwi4Gs6eTACNjB+Uegcgojog4V25P8bctRYY6RL8AJklE9ACFAGZdBEahd4d4CmghFhbzcwaXYH5qTlS6DY+KfNH5Avzjo2JJ0poDkSCMxLn73H/eB+ifvgvyIFCWAji7BWC8hd0qj0FziMdrS70BlVbgamIgcmotGZDNPwm0L9l5iHv7WRoAFx57ScFS2r2iwot8oKu8l+TOCOg2mZ2nFdjTgOFQENzKkJ8OjEnsE8f6AzyXwT6MNF3RDRnuj0Lwo6wTlBMDIyqaz6G+RiLJMg/KUrQV/rh9uH0tWduwoxmky0kSMQ+rnXxZsGadgnxfgk1pCnsIsGYltvfdzTOBIclIsN8MLAGcz5gBwj94AE8DuC9Molip/JGwB57nRyJiyD3pyk6q5ij+3TzRLohcqyqCEQBTepF15+WVmW8SEr5jMUUkx3oMIsrH3ndwAQganKzyMpOJNxMQooGBYwcByw7axIhgPRGEr6GSGJhkAELoQ1YRg+dPeD5IIRDIqq5PA2Jh0Rq0YcS8XBi0ghGRFpCtWTdum5+yLOsQf2EuYY8AfnbQZDgCjHxBSKwTGpt8QCIDVH3/4H5OwEvldhliINwAFLsEyyIfGKV+vm3eEehVqKTdNxtDiPoLHCRiuwTJxCECxMDqDjTvZ63KaPKvRgV2i/F3ohm88V8LN8hgJcXD5pVGIPPNn9EBqSQC0I4AMxBUcQNCkarkFgSn/oCs9GCVep4eUG5BRAOcQOCWlGSc3If0IFqRfURQGRrKewPKEJ9sLnIowKCcw+f48N6UHjqYtgInaCCkBbPSj8VEkCr2g8U43wY1xX/BNkwreQrzg+oaJghOCGTU8RBxuIp6VFOGoEXgEsBLIgV6gBgxoLSI5CgiYNT+GBHsU01GthrceiMUtv9KgAYktgVNeGrBbtiOQVi9x8WjiAW7UNUnm4Vet7WtsFgDCDYEwQ/EVL1PnQf/xCDLTowTh4c4HPRDoQaiwhKIAae4B7xgCBydI/CDPOrevK0FR4p6w3VfoXgQiB3T1N8Y1PCD0X19JqcHGfzB5WkQE4p/kdeXBcEVUXEIFqSij82lMyrWq/7c+LFHA7z5/dwOHHg8s/Y8C2CmhbmALtare+4UWLfb25BmXABKABTniC8gRAP2yvDAiUAsElnrxFzITQa/sAFecAOY7zPV/8jMQHSbWAiUPGkQNABhw85xrSCv+mMSzFR8+7mjw01A8f4F8S/td4jnDHYxpT8/OEyV3gz2+GTfdAeAszswfJNGlQhEIjB0Bls0BKn4Iw7WKu9f1gmSagmvqleEwJwnZwjO7npz1HdCJ1hS/mlBcRXyF3i/M7NxqJFoeH27z7nnJaBmpUZKHsTbGUc1ALEoIGsGYl9ixS50gjAT/VhB8IzvGTrBVfWEz1MzAkRFTtecW731VdjNQPukVdhdn0Y8d/a7WYH6i/TBPBzUFwAlHwtGHOQISrgb1AMUgDETTA3+THAdeRJhg59V/Ektofa9I8wxVICkC7QQSAd2O3cftzPzdMK6aA4iZI4ILfYRbb9RgqICt2AxVnYZ4kkBvHOBxT/zN9ybHx/f5Ql2fkGCX6ANm6F8WCfqAS+Eq5AGcHJd2IFHagTMHAAj+mWBnDXuc81CjhsAi5dL2K8QCYI1aJ/PJtSSxEFXASv7C2I3ZB9/a0j/7nDn/j1pHsz9Jr8fNpxPBUAUUYD4wz5GBlmyAiORjtAIGDFwzSUwqiNZ1d1tPiB7/Q9VeI9KeJU16/knkEeQJEALjY4rkp74fCZiMDSA/PgvT/aT2gYgp5E/P29AKBQAo6TRth5T4VesQFb0i4K7RA2MZpgyFXCEQHCOixuYMPgy2L7+45ezSSKt2oUkURlpXkEMOLSiXPuDQZjk63N5bmzOSxQdLHX7AhwUEA0BAeQPJIQzkAuFlOK/GtyLdiGDKEBdllQ7YouxV2Xdwza9So4Kp5Z0yAgUhTlJgFzSFrznIHYIwKcCu2/L3LsCg6UI1b1/CA+ApIV5/32HqOIjdQusE4azip5Wc1b0q/QGIAlaWEJbXP3r/L+AEipw/+BtkQVY9fIM2i/ZhgVEgJO6DZ1ksVtlYdoQAPhVO0oKmYBmnAYco4DRCRB3TwCziptaE0auER9/VzRqKNOEYINOQg2m1l9GpGNQAhh1v6UmxNQh2M4+LmlUzll0OTjYQOaGlZAEMCrdhmBphaMBwBADrSQQc3//He8KgFETT7p6BHnjj2X9EXsDjrgBS6ihoAmcSQVYmE4JgYWFpp1waAQRoqDzxDhU+HxSnZHz/9JEY6Y5MJA+cwoWrt99+U3Mc/9g/NQTFaigAEtwB1yBzwzucZSX7RZEILhR1d5GDCsBLVUdIQvsldZfEJt5i/MHx2hGJZFkVVyK242iFeh58oBUFqIQbkfp2DV2X0CkAYgv1sU+P+I/HmBu8nErugdRnUWhfp+A/ddlbEH3uQlBsNobUEMHasK1HOYn8BEEvCUaiuigXRIKj+sGOPA4KAWz9/s7WxcgB4+a6/fI2osEwv4yOENAiPf+wQhbc/5f0gGisWuQaRFmGoIqguARWsBQgTTocDLMT5OJUQnhqdCEig+/EShKSEgTVV0MBMnz04BcshPnLk/+OaV0/dwKzB4QUt1NB6uTDfGOP+cNm9mEsBAFiM7AQh9AKVEU75vy68jeOxrUC4mDEuYO0oLqoSdHaEF2eXYYSm0V+oEOwpLmYFOF3Z4CmAeBTIGueiIw2xoKPzDBJVBXQ5g5O8/twwA+QguIjJt3+g0NQEcDfUXgO5gsqlTBLkQLdl86K3CWneitQ8sg/5oWAUJP2C3V3RoEyji5n4b9lB4t9pz2CA+cAFn1Z9I/uzYsU/ELtEBOCHYQQqGcFejV+yeuRJX31zsKV5IGjway9z6PLDxKwNEPsBuOEiqw57jGgOtZ1Y++T50AuMFl7hPIbhskiOwsATtRoc7rS7dXrpcgrMCGJca6ELJo+Y0be0BW5ZKGcFz4y8W9BduwcDnK9iO5fagsKpp9ANnvDPxeP8THNyIVFo1AMas8Qk5v2Ytm0LCCYAXqn+wQsPTBh/5Bcnne14Os3uCQt28vsK1WUESJFviBgAW//3u9PLxusXchcCR2WsNzv/ImvgZzzkUByDUAIrjTvmSHAowpJBQE4SUlxMxnARlQbIqkArVAJ6pBBvELCCKlkyCDAP45BYfEPfcUpfMch3Vn4bheYK4E66BxAxHSVd5INgEPgU/NBCDfNQ8Ho1CoINAPQAW/QT8OCIZlNFCB84XhoDChFByHGjx35v9BLgyhmojqHYb5QYXnuAecvua0hZe6BV9f7v4ibvgvamrmAc1TmaEir0LQ9h97eYAYVoM/nWA60i8Q3Ifezha9BqaaL3zvqd6IAuwwLSCCuCLuJWch4h30giPtyiAphKEBcCu9BV5wwzkMxID8rhMwdwMhcSFgrBT3RUTQboAUg3+p+Qe1IGarOioVnazmefV3lHpwA0AcLWCahUiXwePHWJsP+GH1gnp/we5KfOhJAbsj0H/BIEb04TbrTPsAyb2LLu93KwfCvn5PLAwrOXAa72eEQRo1CNdw5IprsAZ3hApy9zlcITG2vpCihsRSYxNS+J4vdBZ6B52eqRcQ/QXmSjAWSfa/5GA5qEg4iJFtm624AqXLrSA2gx8p1Mdqcghv41S0lSp/xAYs9gakQc4Ie2RTUYwYgt748mV+FU1Xgp14eW3XYZ6cdqGTNHwHICTwEeTPl0jEZwIgP9gDEaogeg5IHWCF+1eoAhvEKPB/EAeTRsM/pSAP5wjWEUMM1/NJRhwJbpJSgK7S7zF3EOsI5jBQBK9DV80Z8Y0COzvmWzJXgDl40KEC6cqvqgi4OB5cpgLFYK/1CvDiItXqC6/S87wfAUfPtxqfGNzlYaOjlf1IsHPPvffHgDAoEeEST4ZLZUd/RSo91/BjXY5ggWgQ4In3fyj4mUqPrInHOCLKO3wUwRsfyXpt1nEIRLrqcWeTuk7bigsbid1zD4iDRQtnIdQsyIXnFCn1I9D7ADgxEhOvR5AJosoUbu1FkJyYCi9OhQERoIx+4AX/YqUXQhtYEwKN4Cy1HntLMmtaAQpqfrT/UCoLSxeswjA5UWPPi0mjajUWxMTdVusNvt/ChMdmILK5IRMFu90BMEzFYHdg2GAgeYVHMMJIBTA7EFTx/5fpgTFXz9w/en0ZjD8kCDoKPNGwlB01BmoWQbh+AxR689mBponGJOr9OwmMu3dtJ/ylW1Tik4ElUPmR9RqII+pVhD9ychABMQ51gOIZg+/G+5mGIzLB1JJC5WhzYjhJ7IWmLDpA8jzsAafUPkB2WnFBF4iSxkq1ty7f25rv/+EQLOxs2oUdTSA9HIR9swdBlCcFe9owPC3XWDDC0ISVzsEVbSCF/sWdA5Fu4HJqankp2SeQCYYrImNalfmhpVxYrGkUS4LeSUjg8dD7+D7w/ybIfy7vlB9/HJ978zr7/45Qgajzj+4EjIK/ULHPRAOlKr/aG0AFcqCyu0GcW45Igh6JMJmhA49/U+cEssHNJhtXDC1MOya3j/sAiAGcrEtqtgjBD6wEzSDc7D8o6C8rIqAZyPk+NQoNLAZ1hR64Yl1FBY648smUYKnSg1Xwk/0DyRyArByMUobyByhCcPnOaPyoegREFS4jNfYAw+IHCjdC1J2WDZBke/OyN85J24WiXwDYPoJyYuCD238ulvuzwt6KgHf0shWKsqCFFGjB/w8HU8eeTED9wAAAAABJRU5ErkJggg=="),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return l;
});
var i = n(2),
r = n(6),
o = n(25),
a = n(4),
s = n(3),
c = n(13),
l = (function () {
function e(e, t, n) {
void 0 === t && (t = 0),
void 0 === n && (n = null),
(this.name = e),
(this.animations = new Array()),
(this._positions = null),
(this._normals = null),
(this._tangents = null),
(this._uvs = null),
(this._uniqueId = 0),
(this.onInfluenceChanged = new r.c()),
(this._onDataLayoutChanged = new r.c()),
(this._animationPropertiesOverride = null),
(this._scene = n || o.a.LastCreatedScene),
(this.influence = t),
this._scene && (this._uniqueId = this._scene.getUniqueId());
}
return (
Object.defineProperty(e.prototype, "influence", {
get: function () {
return this._influence;
},
set: function (e) {
if (this._influence !== e) {
var t = this._influence;
(this._influence = e), this.onInfluenceChanged.hasObservers && this.onInfluenceChanged.notifyObservers(0 === t || 0 === e);
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "animationPropertiesOverride", {
get: function () {
return !this._animationPropertiesOverride && this._scene ? this._scene.animationPropertiesOverride : this._animationPropertiesOverride;
},
set: function (e) {
this._animationPropertiesOverride = e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "uniqueId", {
get: function () {
return this._uniqueId;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasPositions", {
get: function () {
return !!this._positions;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasNormals", {
get: function () {
return !!this._normals;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasTangents", {
get: function () {
return !!this._tangents;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "hasUVs", {
get: function () {
return !!this._uvs;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setPositions = function (e) {
var t = this.hasPositions;
(this._positions = e), t !== this.hasPositions && this._onDataLayoutChanged.notifyObservers(void 0);
}),
(e.prototype.getPositions = function () {
return this._positions;
}),
(e.prototype.setNormals = function (e) {
var t = this.hasNormals;
(this._normals = e), t !== this.hasNormals && this._onDataLayoutChanged.notifyObservers(void 0);
}),
(e.prototype.getNormals = function () {
return this._normals;
}),
(e.prototype.setTangents = function (e) {
var t = this.hasTangents;
(this._tangents = e), t !== this.hasTangents && this._onDataLayoutChanged.notifyObservers(void 0);
}),
(e.prototype.getTangents = function () {
return this._tangents;
}),
(e.prototype.setUVs = function (e) {
var t = this.hasUVs;
(this._uvs = e), t !== this.hasUVs && this._onDataLayoutChanged.notifyObservers(void 0);
}),
(e.prototype.getUVs = function () {
return this._uvs;
}),
(e.prototype.clone = function () {
var t = this,
n = s.a.Clone(function () {
return new e(t.name, t.influence, t._scene);
}, this);
return (n._positions = this._positions), (n._normals = this._normals), (n._tangents = this._tangents), (n._uvs = this._uvs), n;
}),
(e.prototype.serialize = function () {
var e = {};
return (
(e.name = this.name),
(e.influence = this.influence),
(e.positions = Array.prototype.slice.call(this.getPositions())),
null != this.id && (e.id = this.id),
this.hasNormals && (e.normals = Array.prototype.slice.call(this.getNormals())),
this.hasTangents && (e.tangents = Array.prototype.slice.call(this.getTangents())),
this.hasUVs && (e.uvs = Array.prototype.slice.call(this.getUVs())),
s.a.AppendSerializedAnimations(this, e),
e
);
}),
(e.prototype.getClassName = function () {
return "MorphTarget";
}),
(e.Parse = function (t) {
var n = new e(t.name, t.influence);
if ((n.setPositions(t.positions), null != t.id && (n.id = t.id), t.normals && n.setNormals(t.normals), t.tangents && n.setTangents(t.tangents), t.uvs && n.setUVs(t.uvs), t.animations))
for (var i = 0; i < t.animations.length; i++) {
var r = t.animations[i],
o = c.a.GetClass("BABYLON.Animation");
o && n.animations.push(o.Parse(r));
}
return n;
}),
(e.FromMesh = function (t, n, i) {
n || (n = t.name);
var r = new e(n, i, t.getScene());
return (
r.setPositions(t.getVerticesData(a.b.PositionKind)),
t.isVerticesDataPresent(a.b.NormalKind) && r.setNormals(t.getVerticesData(a.b.NormalKind)),
t.isVerticesDataPresent(a.b.TangentKind) && r.setTangents(t.getVerticesData(a.b.TangentKind)),
t.isVerticesDataPresent(a.b.UVKind) && r.setUVs(t.getVerticesData(a.b.UVKind)),
r
);
}),
Object(i.c)([Object(s.c)()], e.prototype, "id", void 0),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return a;
});
var i = n(2),
r = n(3),
o = n(5),
a = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (
(i.maxSimultaneousLights = 4),
(i.disableLighting = !1),
(i.invertNormalMapX = !1),
(i.invertNormalMapY = !1),
(i.emissiveColor = new o.a(0, 0, 0)),
(i.occlusionStrength = 1),
(i.useLightmapAsShadowmap = !1),
(i._useAlphaFromAlbedoTexture = !0),
(i._useAmbientInGrayScale = !0),
i
);
}
return (
Object(i.d)(t, e),
Object.defineProperty(t.prototype, "doubleSided", {
get: function () {
return this._twoSidedLighting;
},
set: function (e) {
this._twoSidedLighting !== e && ((this._twoSidedLighting = e), (this.backFaceCulling = !e), this._markAllSubMeshesAsTexturesDirty());
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.getClassName = function () {
return "PBRBaseSimpleMaterial";
}),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "maxSimultaneousLights", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "disableLighting", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_reflectionTexture")], t.prototype, "environmentTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapX", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapY", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_bumpTexture")], t.prototype, "normalTexture", void 0),
Object(i.c)([Object(r.e)("emissive"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveColor", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_ambientTextureStrength")], t.prototype, "occlusionStrength", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_ambientTexture")], t.prototype, "occlusionTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_alphaCutOff")], t.prototype, "alphaCutOff", void 0),
Object(i.c)([Object(r.c)()], t.prototype, "doubleSided", null),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", null)], t.prototype, "lightmapTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLightmapAsShadowmap", void 0),
t
);
})(n(95).a);
},
function (e, t, n) {
"use strict";
n.d(t, "b", function () {
return r;
}),
n.d(t, "a", function () {
return o;
});
var i = n(1);
function r(e, t, n, r, o) {
void 0 === o && (o = null);
for (var a = new i.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), s = new i.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), c = n; c < n + r; c++) {
var l = 3 * t[c],
u = e[l],
h = e[l + 1],
d = e[l + 2];
a.minimizeInPlaceFromFloats(u, h, d), s.maximizeInPlaceFromFloats(u, h, d);
}
return o && ((a.x -= a.x * o.x + o.y), (a.y -= a.y * o.x + o.y), (a.z -= a.z * o.x + o.y), (s.x += s.x * o.x + o.y), (s.y += s.y * o.x + o.y), (s.z += s.z * o.x + o.y)), { minimum: a, maximum: s };
}
function o(e, t, n, r, o) {
void 0 === r && (r = null);
var a = new i.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE),
s = new i.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
o || (o = 3);
for (var c = t, l = t * o; c < t + n; c++, l += o) {
var u = e[l],
h = e[l + 1],
d = e[l + 2];
a.minimizeInPlaceFromFloats(u, h, d), s.maximizeInPlaceFromFloats(u, h, d);
}
return r && ((a.x -= a.x * r.x + r.y), (a.y -= a.y * r.x + r.y), (a.z -= a.z * r.x + r.y), (s.x += s.x * r.x + r.y), (s.y += s.y * r.x + r.y), (s.z += s.z * r.x + r.y)), { minimum: a, maximum: s };
}
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return a;
});
var i = n(2),
r = n(3),
o = n(5),
a = (function () {
function e() {
(this._dirty = !0),
(this._tempColor = new o.b(0, 0, 0, 0)),
(this._globalCurve = new o.b(0, 0, 0, 0)),
(this._highlightsCurve = new o.b(0, 0, 0, 0)),
(this._midtonesCurve = new o.b(0, 0, 0, 0)),
(this._shadowsCurve = new o.b(0, 0, 0, 0)),
(this._positiveCurve = new o.b(0, 0, 0, 0)),
(this._negativeCurve = new o.b(0, 0, 0, 0)),
(this._globalHue = 30),
(this._globalDensity = 0),
(this._globalSaturation = 0),
(this._globalExposure = 0),
(this._highlightsHue = 30),
(this._highlightsDensity = 0),
(this._highlightsSaturation = 0),
(this._highlightsExposure = 0),
(this._midtonesHue = 30),
(this._midtonesDensity = 0),
(this._midtonesSaturation = 0),
(this._midtonesExposure = 0),
(this._shadowsHue = 30),
(this._shadowsDensity = 0),
(this._shadowsSaturation = 0),
(this._shadowsExposure = 0);
}
return (
Object.defineProperty(e.prototype, "globalHue", {
get: function () {
return this._globalHue;
},
set: function (e) {
(this._globalHue = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "globalDensity", {
get: function () {
return this._globalDensity;
},
set: function (e) {
(this._globalDensity = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "globalSaturation", {
get: function () {
return this._globalSaturation;
},
set: function (e) {
(this._globalSaturation = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "globalExposure", {
get: function () {
return this._globalExposure;
},
set: function (e) {
(this._globalExposure = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "highlightsHue", {
get: function () {
return this._highlightsHue;
},
set: function (e) {
(this._highlightsHue = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "highlightsDensity", {
get: function () {
return this._highlightsDensity;
},
set: function (e) {
(this._highlightsDensity = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "highlightsSaturation", {
get: function () {
return this._highlightsSaturation;
},
set: function (e) {
(this._highlightsSaturation = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "highlightsExposure", {
get: function () {
return this._highlightsExposure;
},
set: function (e) {
(this._highlightsExposure = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "midtonesHue", {
get: function () {
return this._midtonesHue;
},
set: function (e) {
(this._midtonesHue = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "midtonesDensity", {
get: function () {
return this._midtonesDensity;
},
set: function (e) {
(this._midtonesDensity = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "midtonesSaturation", {
get: function () {
return this._midtonesSaturation;
},
set: function (e) {
(this._midtonesSaturation = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "midtonesExposure", {
get: function () {
return this._midtonesExposure;
},
set: function (e) {
(this._midtonesExposure = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "shadowsHue", {
get: function () {
return this._shadowsHue;
},
set: function (e) {
(this._shadowsHue = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "shadowsDensity", {
get: function () {
return this._shadowsDensity;
},
set: function (e) {
(this._shadowsDensity = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "shadowsSaturation", {
get: function () {
return this._shadowsSaturation;
},
set: function (e) {
(this._shadowsSaturation = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "shadowsExposure", {
get: function () {
return this._shadowsExposure;
},
set: function (e) {
(this._shadowsExposure = e), (this._dirty = !0);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.getClassName = function () {
return "ColorCurves";
}),
(e.Bind = function (e, t, n, i, r) {
void 0 === n && (n = "vCameraColorCurvePositive"),
void 0 === i && (i = "vCameraColorCurveNeutral"),
void 0 === r && (r = "vCameraColorCurveNegative"),
e._dirty &&
((e._dirty = !1),
e.getColorGradingDataToRef(e._globalHue, e._globalDensity, e._globalSaturation, e._globalExposure, e._globalCurve),
e.getColorGradingDataToRef(e._highlightsHue, e._highlightsDensity, e._highlightsSaturation, e._highlightsExposure, e._tempColor),
e._tempColor.multiplyToRef(e._globalCurve, e._highlightsCurve),
e.getColorGradingDataToRef(e._midtonesHue, e._midtonesDensity, e._midtonesSaturation, e._midtonesExposure, e._tempColor),
e._tempColor.multiplyToRef(e._globalCurve, e._midtonesCurve),
e.getColorGradingDataToRef(e._shadowsHue, e._shadowsDensity, e._shadowsSaturation, e._shadowsExposure, e._tempColor),
e._tempColor.multiplyToRef(e._globalCurve, e._shadowsCurve),
e._highlightsCurve.subtractToRef(e._midtonesCurve, e._positiveCurve),
e._midtonesCurve.subtractToRef(e._shadowsCurve, e._negativeCurve)),
t &&
(t.setFloat4(n, e._positiveCurve.r, e._positiveCurve.g, e._positiveCurve.b, e._positiveCurve.a),
t.setFloat4(i, e._midtonesCurve.r, e._midtonesCurve.g, e._midtonesCurve.b, e._midtonesCurve.a),
t.setFloat4(r, e._negativeCurve.r, e._negativeCurve.g, e._negativeCurve.b, e._negativeCurve.a));
}),
(e.PrepareUniforms = function (e) {
e.push("vCameraColorCurveNeutral", "vCameraColorCurvePositive", "vCameraColorCurveNegative");
}),
(e.prototype.getColorGradingDataToRef = function (t, n, i, r, o) {
null != t &&
((t = e.clamp(t, 0, 360)),
(n = e.clamp(n, -100, 100)),
(i = e.clamp(i, -100, 100)),
(r = e.clamp(r, -100, 100)),
(n = e.applyColorGradingSliderNonlinear(n)),
(n *= 0.5),
(r = e.applyColorGradingSliderNonlinear(r)),
n < 0 && ((n *= -1), (t = (t + 180) % 360)),
e.fromHSBToRef(t, n, 50 + 0.25 * r, o),
o.scaleToRef(2, o),
(o.a = 1 + 0.01 * i));
}),
(e.applyColorGradingSliderNonlinear = function (e) {
e /= 100;
var t = Math.abs(e);
return (t = Math.pow(t, 2)), e < 0 && (t *= -1), (t *= 100);
}),
(e.fromHSBToRef = function (t, n, i, r) {
var o = e.clamp(t, 0, 360),
a = e.clamp(n / 100, 0, 1),
s = e.clamp(i / 100, 0, 1);
if (0 === a) (r.r = s), (r.g = s), (r.b = s);
else {
o /= 60;
var c = Math.floor(o),
l = o - c,
u = s * (1 - a),
h = s * (1 - a * l),
d = s * (1 - a * (1 - l));
switch (c) {
case 0:
(r.r = s), (r.g = d), (r.b = u);
break;
case 1:
(r.r = h), (r.g = s), (r.b = u);
break;
case 2:
(r.r = u), (r.g = s), (r.b = d);
break;
case 3:
(r.r = u), (r.g = h), (r.b = s);
break;
case 4:
(r.r = d), (r.g = u), (r.b = s);
break;
default:
(r.r = s), (r.g = u), (r.b = h);
}
}
r.a = 1;
}),
(e.clamp = function (e, t, n) {
return Math.min(Math.max(e, t), n);
}),
(e.prototype.clone = function () {
return r.a.Clone(function () {
return new e();
}, this);
}),
(e.prototype.serialize = function () {
return r.a.Serialize(this);
}),
(e.Parse = function (t) {
return r.a.Parse(
function () {
return new e();
},
t,
null,
null
);
}),
Object(i.c)([Object(r.c)()], e.prototype, "_globalHue", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_globalDensity", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_globalSaturation", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_globalExposure", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_highlightsHue", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_highlightsDensity", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_highlightsSaturation", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_highlightsExposure", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_midtonesHue", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_midtonesDensity", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_midtonesSaturation", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "_midtonesExposure", void 0),
e
);
})();
r.a._ColorCurvesParser = a.Parse;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(53),
r = (function () {
function e(e) {
(this.byteOffset = 0), (this.buffer = e);
}
return (
(e.prototype.loadAsync = function (e) {
var t = this;
return (
delete this._dataView,
delete this._dataByteOffset,
this.buffer.readAsync(this.byteOffset, e).then(function (e) {
(t._dataView = new DataView(e.buffer, e.byteOffset, e.byteLength)), (t._dataByteOffset = 0);
})
);
}),
(e.prototype.readUint32 = function () {
var e = this._dataView.getUint32(this._dataByteOffset, !0);
return (this._dataByteOffset += 4), (this.byteOffset += 4), e;
}),
(e.prototype.readUint8Array = function (e) {
var t = new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + this._dataByteOffset, e);
return (this._dataByteOffset += e), (this.byteOffset += e), t;
}),
(e.prototype.readString = function (e) {
return i.a.Decode(this.readUint8Array(e));
}),
(e.prototype.skipBytes = function (e) {
(this._dataByteOffset += e), (this.byteOffset += e);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(10),
r = n(13),
o = (function () {
function e() {}
return (
(e.Instantiate = function (e) {
if (this.RegisteredExternalClasses && this.RegisteredExternalClasses[e]) return this.RegisteredExternalClasses[e];
var t = r.a.GetClass(e);
if (t) return t;
i.a.Warn(e + " not found, you may have missed an import.");
for (var n = e.split("."), o = window || this, a = 0, s = n.length; a < s; a++) o = o[n[a]];
return "function" != typeof o ? null : o;
}),
(e.RegisteredExternalClasses = {}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return u;
});
var i = n(27),
r = n(180),
o = n(6),
a = n(18),
s = n(1),
c = n(76),
l = n(110),
u = (function () {
function e(e, t, n, i, r, a, s, c, l) {
void 0 === n && (n = 0),
void 0 === i && (i = 100),
void 0 === r && (r = !1),
void 0 === a && (a = 1),
(this.target = t),
(this.fromFrame = n),
(this.toFrame = i),
(this.loopAnimation = r),
(this.onAnimationEnd = s),
(this.onAnimationLoop = l),
(this._localDelayOffset = null),
(this._pausedDelay = null),
(this._runtimeAnimations = new Array()),
(this._paused = !1),
(this._speedRatio = 1),
(this._weight = -1),
(this._syncRoot = null),
(this.disposeOnEnd = !0),
(this.animationStarted = !1),
(this.onAnimationEndObservable = new o.c()),
(this.onAnimationLoopObservable = new o.c()),
(this._scene = e),
c && this.appendAnimations(t, c),
(this._speedRatio = a),
e._activeAnimatables.push(this);
}
return (
Object.defineProperty(e.prototype, "syncRoot", {
get: function () {
return this._syncRoot;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "masterFrame", {
get: function () {
return 0 === this._runtimeAnimations.length ? 0 : this._runtimeAnimations[0].currentFrame;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "weight", {
get: function () {
return this._weight;
},
set: function (e) {
this._weight = -1 !== e ? Math.min(Math.max(e, 0), 1) : -1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "speedRatio", {
get: function () {
return this._speedRatio;
},
set: function (e) {
for (var t = 0; t < this._runtimeAnimations.length; t++) {
this._runtimeAnimations[t]._prepareForSpeedRatioChange(e);
}
this._speedRatio = e;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.syncWith = function (e) {
if (((this._syncRoot = e), e)) {
var t = this._scene._activeAnimatables.indexOf(this);
t > -1 && (this._scene._activeAnimatables.splice(t, 1), this._scene._activeAnimatables.push(this));
}
return this;
}),
(e.prototype.getAnimations = function () {
return this._runtimeAnimations;
}),
(e.prototype.appendAnimations = function (e, t) {
for (var n = this, i = 0; i < t.length; i++) {
var o = t[i],
a = new r.a(e, o, this._scene, this);
(a._onLoop = function () {
n.onAnimationLoopObservable.notifyObservers(n), n.onAnimationLoop && n.onAnimationLoop();
}),
this._runtimeAnimations.push(a);
}
}),
(e.prototype.getAnimationByTargetProperty = function (e) {
for (var t = this._runtimeAnimations, n = 0; n < t.length; n++) if (t[n].animation.targetProperty === e) return t[n].animation;
return null;
}),
(e.prototype.getRuntimeAnimationByTargetProperty = function (e) {
for (var t = this._runtimeAnimations, n = 0; n < t.length; n++) if (t[n].animation.targetProperty === e) return t[n];
return null;
}),
(e.prototype.reset = function () {
for (var e = this._runtimeAnimations, t = 0; t < e.length; t++) e[t].reset(!0);
(this._localDelayOffset = null), (this._pausedDelay = null);
}),
(e.prototype.enableBlending = function (e) {
for (var t = this._runtimeAnimations, n = 0; n < t.length; n++) (t[n].animation.enableBlending = !0), (t[n].animation.blendingSpeed = e);
}),
(e.prototype.disableBlending = function () {
for (var e = this._runtimeAnimations, t = 0; t < e.length; t++) e[t].animation.enableBlending = !1;
}),
(e.prototype.goToFrame = function (e) {
var t = this._runtimeAnimations;
if (t[0]) {
var n = t[0].animation.framePerSecond,
i = e - t[0].currentFrame,
r = 0 !== this.speedRatio ? (1e3 * i) / (n * this.speedRatio) : 0;
null === this._localDelayOffset && (this._localDelayOffset = 0), (this._localDelayOffset -= r);
}
for (var o = 0; o < t.length; o++) t[o].goToFrame(e);
}),
(e.prototype.pause = function () {
this._paused || (this._paused = !0);
}),
(e.prototype.restart = function () {
this._paused = !1;
}),
(e.prototype._raiseOnAnimationEnd = function () {
this.onAnimationEnd && this.onAnimationEnd(), this.onAnimationEndObservable.notifyObservers(this);
}),
(e.prototype.stop = function (e, t) {
if (e || t) {
var n = this._scene._activeAnimatables.indexOf(this);
if (n > -1) {
for (var i = (o = this._runtimeAnimations).length - 1; i >= 0; i--) {
var r = o[i];
(e && r.animation.name != e) || (t && !t(r.target)) || (r.dispose(), o.splice(i, 1));
}
0 == o.length && (this._scene._activeAnimatables.splice(n, 1), this._raiseOnAnimationEnd());
}
} else {
if ((i = this._scene._activeAnimatables.indexOf(this)) > -1) {
this._scene._activeAnimatables.splice(i, 1);
var o = this._runtimeAnimations;
for (i = 0; i < o.length; i++) o[i].dispose();
this._raiseOnAnimationEnd();
}
}
}),
(e.prototype.waitAsync = function () {
var e = this;
return new Promise(function (t, n) {
e.onAnimationEndObservable.add(
function () {
t(e);
},
void 0,
void 0,
e,
!0
);
});
}),
(e.prototype._animate = function (e) {
if (this._paused) return (this.animationStarted = !1), null === this._pausedDelay && (this._pausedDelay = e), !0;
if (
(null === this._localDelayOffset ? ((this._localDelayOffset = e), (this._pausedDelay = null)) : null !== this._pausedDelay && ((this._localDelayOffset += e - this._pausedDelay), (this._pausedDelay = null)),
0 === this._weight)
)
return !0;
var t,
n = !1,
i = this._runtimeAnimations;
for (t = 0; t < i.length; t++) {
var r = i[t].animate(e - this._localDelayOffset, this.fromFrame, this.toFrame, this.loopAnimation, this._speedRatio, this._weight);
n = n || r;
}
if (((this.animationStarted = n), !n)) {
if (this.disposeOnEnd) for (t = this._scene._activeAnimatables.indexOf(this), this._scene._activeAnimatables.splice(t, 1), t = 0; t < i.length; t++) i[t].dispose();
this._raiseOnAnimationEnd(), this.disposeOnEnd && ((this.onAnimationEnd = null), (this.onAnimationLoop = null), this.onAnimationLoopObservable.clear(), this.onAnimationEndObservable.clear());
}
return n;
}),
e
);
})();
(a.a.prototype._animate = function () {
if (this.animationsEnabled) {
var e = c.a.Now;
if (!this._animationTimeLast) {
if (this._pendingData.length > 0) return;
this._animationTimeLast = e;
}
(this.deltaTime = this.useConstantAnimationDeltaTime ? 16 : (e - this._animationTimeLast) * this.animationTimeScale), (this._animationTimeLast = e);
var t = this._activeAnimatables;
if (0 !== t.length) {
this._animationTime += this.deltaTime;
for (var n = this._animationTime, i = 0; i < t.length; i++) {
var r = t[i];
!r._animate(n) && r.disposeOnEnd && i--;
}
this._processLateAnimationBindings();
}
}
}),
(a.a.prototype.beginWeightedAnimation = function (e, t, n, i, r, o, a, s, c, l) {
void 0 === i && (i = 1), void 0 === o && (o = 1);
var u = this.beginAnimation(e, t, n, r, o, a, s, !1, c, l);
return (u.weight = i), u;
}),
(a.a.prototype.beginAnimation = function (e, t, n, i, r, o, a, s, c, l) {
void 0 === r && (r = 1), void 0 === s && (s = !0), t > n && r > 0 && (r *= -1), s && this.stopAnimation(e, void 0, c), a || (a = new u(this, e, t, n, i, r, o, void 0, l));
var h = !c || c(e);
if ((e.animations && h && a.appendAnimations(e, e.animations), e.getAnimatables)) for (var d = e.getAnimatables(), p = 0; p < d.length; p++) this.beginAnimation(d[p], t, n, i, r, o, a, s, c, l);
return a.reset(), a;
}),
(a.a.prototype.beginHierarchyAnimation = function (e, t, n, i, r, o, a, s, c, l, u) {
void 0 === o && (o = 1), void 0 === c && (c = !0);
var h = e.getDescendants(t),
d = [];
d.push(this.beginAnimation(e, n, i, r, o, a, s, c, l));
for (var p = 0, f = h; p < f.length; p++) {
var m = f[p];
d.push(this.beginAnimation(m, n, i, r, o, a, s, c, l));
}
return d;
}),
(a.a.prototype.beginDirectAnimation = function (e, t, n, i, r, o, a, s) {
return void 0 === o && (o = 1), n > i && o > 0 && (o *= -1), new u(this, e, n, i, r, o, a, t, s);
}),
(a.a.prototype.beginDirectHierarchyAnimation = function (e, t, n, i, r, o, a, s, c) {
var l = e.getDescendants(t),
u = [];
u.push(this.beginDirectAnimation(e, n, i, r, o, a, s, c));
for (var h = 0, d = l; h < d.length; h++) {
var p = d[h];
u.push(this.beginDirectAnimation(p, n, i, r, o, a, s, c));
}
return u;
}),
(a.a.prototype.getAnimatableByTarget = function (e) {
for (var t = 0; t < this._activeAnimatables.length; t++) if (this._activeAnimatables[t].target === e) return this._activeAnimatables[t];
return null;
}),
(a.a.prototype.getAllAnimatablesByTarget = function (e) {
for (var t = [], n = 0; n < this._activeAnimatables.length; n++) this._activeAnimatables[n].target === e && t.push(this._activeAnimatables[n]);
return t;
}),
(a.a.prototype.stopAnimation = function (e, t, n) {
for (var i = 0, r = this.getAllAnimatablesByTarget(e); i < r.length; i++) {
r[i].stop(t, n);
}
}),
(a.a.prototype.stopAllAnimations = function () {
if (this._activeAnimatables) {
for (var e = 0; e < this._activeAnimatables.length; e++) this._activeAnimatables[e].stop();
this._activeAnimatables = [];
}
for (var t = 0, n = this.animationGroups; t < n.length; t++) {
n[t].stop();
}
}),
(a.a.prototype._registerTargetForLateAnimationBinding = function (e, t) {
var n = e.target;
this._registeredForLateAnimationBindings.pushNoDuplicate(n),
n._lateAnimationHolders || (n._lateAnimationHolders = {}),
n._lateAnimationHolders[e.targetPath] || (n._lateAnimationHolders[e.targetPath] = { totalWeight: 0, animations: [], originalValue: t }),
n._lateAnimationHolders[e.targetPath].animations.push(e),
(n._lateAnimationHolders[e.targetPath].totalWeight += e.weight);
}),
(a.a.prototype._processLateAnimationBindingsForMatrices = function (e) {
var t = 1,
n = s.c.Vector3[0],
i = s.c.Vector3[1],
r = s.c.Quaternion[0],
o = 0,
a = e.animations[0],
c = e.originalValue,
l = 1;
if (e.totalWeight < 1) c.decompose(i, r, n), (l = 1 - e.totalWeight);
else if (((o = 1), (t = e.totalWeight), a.currentValue.decompose(i, r, n), 1 == (l = a.weight / t))) return a.currentValue;
i.scaleInPlace(l), n.scaleInPlace(l), r.scaleInPlace(l);
for (var u = o; u < e.animations.length; u++) {
var h = e.animations[u],
d = ((l = h.weight / t), s.c.Vector3[2]),
p = s.c.Vector3[3],
f = s.c.Quaternion[1];
h.currentValue.decompose(p, f, d), p.scaleAndAddToRef(l, i), f.scaleAndAddToRef(l, r), d.scaleAndAddToRef(l, n);
}
var m = a._animationState.workValue;
return s.a.ComposeToRef(i, r, n, m), m;
}),
(a.a.prototype._processLateAnimationBindingsForQuaternions = function (e, t) {
var n = e.animations[0],
i = e.originalValue;
if (1 === e.animations.length) return s.b.SlerpToRef(i, n.currentValue, Math.min(1, e.totalWeight), t), t;
var r,
o,
a = 1;
if (e.totalWeight < 1) {
var c = 1 - e.totalWeight;
(o = []), (r = []).push(i), o.push(c);
} else {
if (2 === e.animations.length) return s.b.SlerpToRef(e.animations[0].currentValue, e.animations[1].currentValue, e.animations[1].weight / e.totalWeight, t), t;
(r = []), (o = []), (a = e.totalWeight);
}
for (var l = 0; l < e.animations.length; l++) {
var u = e.animations[l];
r.push(u.currentValue), o.push(u.weight / a);
}
for (var h = 0, d = null, p = 0; p < r.length; ) d ? ((h += o[p]), s.b.SlerpToRef(d, r[p], o[p] / h, d), p++) : (s.b.SlerpToRef(r[p], r[p + 1], o[p + 1] / (o[p] + o[p + 1]), t), (d = t), (h = o[p] + o[p + 1]), (p += 2));
return d;
}),
(a.a.prototype._processLateAnimationBindings = function () {
if (this._registeredForLateAnimationBindings.length) {
for (var e = 0; e < this._registeredForLateAnimationBindings.length; e++) {
var t = this._registeredForLateAnimationBindings.data[e];
for (var n in t._lateAnimationHolders) {
var r = t._lateAnimationHolders[n],
o = r.animations[0],
a = r.originalValue,
c = i.a.AllowMatrixDecomposeForInterpolation && a.m,
l = t[n];
if (c) l = this._processLateAnimationBindingsForMatrices(r);
else if (void 0 !== a.w) l = this._processLateAnimationBindingsForQuaternions(r, l || s.b.Identity());
else {
var u = 0,
h = 1;
if (r.totalWeight < 1) l = a.scale ? a.scale(1 - r.totalWeight) : a * (1 - r.totalWeight);
else {
h = r.totalWeight;
var d = o.weight / h;
(l = 1 !== d ? (o.currentValue.scale ? o.currentValue.scale(d) : o.currentValue * d) : o.currentValue), (u = 1);
}
for (var p = u; p < r.animations.length; p++) {
var f = r.animations[p],
m = f.weight / h;
f.currentValue.scaleAndAddToRef ? f.currentValue.scaleAndAddToRef(m, l) : (l += f.currentValue * m);
}
}
t[n] = l;
}
t._lateAnimationHolders = {};
}
this._registeredForLateAnimationBindings.reset();
}
}),
(l.a.prototype.copyAnimationRange = function (e, t, n, r, o) {
void 0 === r && (r = !1),
void 0 === o && (o = null),
0 === this.animations.length && (this.animations.push(new i.a(this.name, "_matrix", e.animations[0].framePerSecond, i.a.ANIMATIONTYPE_MATRIX, 0)), this.animations[0].setKeys([]));
var a = e.animations[0].getRange(t);
if (!a) return !1;
for (
var s,
c,
l,
u = a.from,
h = a.to,
d = e.animations[0].getKeys(),
p = e.length,
f = e.getParent(),
m = this.getParent(),
g = r && f && p && this.length && p !== this.length,
b = g && m && f ? m.length / f.length : 1,
_ = r && !m && o && (1 !== o.x || 1 !== o.y || 1 !== o.z),
v = this.animations[0].getKeys(),
y = 0,
C = d.length;
y < C;
y++
)
(s = d[y]).frame >= u &&
s.frame <= h &&
(r ? ((l = s.value.clone()), g ? ((c = l.getTranslation()), l.setTranslation(c.scaleInPlace(b))) : _ && o ? ((c = l.getTranslation()), l.setTranslation(c.multiplyInPlace(o))) : (l = s.value)) : (l = s.value),
v.push({ frame: s.frame + n, value: l }));
return this.animations[0].createRange(t, u + n, h + n), !0;
});
},
function (e, t, n) {
"use strict";
var i = n(2),
r = n(32),
o = n(10),
a = n(147),
s = n(38);
(s.a.prototype.createRenderTargetTexture = function (e, t) {
var n = new a.a();
void 0 !== t && "object" == typeof t
? ((n.generateMipMaps = t.generateMipMaps),
(n.generateDepthBuffer = !!t.generateDepthBuffer),
(n.generateStencilBuffer = !!t.generateStencilBuffer),
(n.type = void 0 === t.type ? 0 : t.type),
(n.samplingMode = void 0 === t.samplingMode ? 3 : t.samplingMode),
(n.format = void 0 === t.format ? 5 : t.format))
: ((n.generateMipMaps = t), (n.generateDepthBuffer = !0), (n.generateStencilBuffer = !1), (n.type = 0), (n.samplingMode = 3), (n.format = 5)),
((1 !== n.type || this._caps.textureFloatLinearFiltering) && (2 !== n.type || this._caps.textureHalfFloatLinearFiltering)) || (n.samplingMode = 1),
1 !== n.type || this._caps.textureFloat || ((n.type = 0), o.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type"));
var i = this._gl,
s = new r.a(this, r.b.RenderTarget),
c = e.width || e,
l = e.height || e,
u = e.layers || 0,
h = this._getSamplingParameters(n.samplingMode, !!n.generateMipMaps),
d = 0 !== u ? i.TEXTURE_2D_ARRAY : i.TEXTURE_2D,
p = this._getRGBABufferInternalSizedFormat(n.type, n.format),
f = this._getInternalFormat(n.format),
m = this._getWebGLTextureType(n.type);
this._bindTextureDirectly(d, s),
0 !== u ? ((s.is2DArray = !0), i.texImage3D(d, 0, p, c, l, u, 0, f, m, null)) : i.texImage2D(d, 0, p, c, l, 0, f, m, null),
i.texParameteri(d, i.TEXTURE_MAG_FILTER, h.mag),
i.texParameteri(d, i.TEXTURE_MIN_FILTER, h.min),
i.texParameteri(d, i.TEXTURE_WRAP_S, i.CLAMP_TO_EDGE),
i.texParameteri(d, i.TEXTURE_WRAP_T, i.CLAMP_TO_EDGE),
n.generateMipMaps && this._gl.generateMipmap(d),
this._bindTextureDirectly(d, null);
var g = i.createFramebuffer();
return (
this._bindUnboundFramebuffer(g),
(s._depthStencilBuffer = this._setupFramebufferDepthAttachments(!!n.generateStencilBuffer, n.generateDepthBuffer, c, l)),
s.is2DArray || i.framebufferTexture2D(i.FRAMEBUFFER, i.COLOR_ATTACHMENT0, i.TEXTURE_2D, s._webGLTexture, 0),
this._bindUnboundFramebuffer(null),
(s._framebuffer = g),
(s.baseWidth = c),
(s.baseHeight = l),
(s.width = c),
(s.height = l),
(s.depth = u),
(s.isReady = !0),
(s.samples = 1),
(s.generateMipMaps = !!n.generateMipMaps),
(s.samplingMode = n.samplingMode),
(s.type = n.type),
(s.format = n.format),
(s._generateDepthBuffer = n.generateDepthBuffer),
(s._generateStencilBuffer = !!n.generateStencilBuffer),
this._internalTexturesCache.push(s),
s
);
}),
(s.a.prototype.createDepthStencilTexture = function (e, t) {
if (t.isCube) {
var n = e.width || e;
return this._createDepthStencilCubeTexture(n, t);
}
return this._createDepthStencilTexture(e, t);
}),
(s.a.prototype._createDepthStencilTexture = function (e, t) {
var n = this._gl,
a = e.layers || 0,
s = 0 !== a ? n.TEXTURE_2D_ARRAY : n.TEXTURE_2D,
c = new r.a(this, r.b.Depth);
if (!this._caps.depthTextureExtension) return o.a.Error("Depth texture is not supported by your browser or hardware."), c;
var l = Object(i.a)({ bilinearFiltering: !1, comparisonFunction: 0, generateStencil: !1 }, t);
this._bindTextureDirectly(s, c, !0), this._setupDepthStencilTexture(c, e, l.generateStencil, l.bilinearFiltering, l.comparisonFunction);
var u = l.generateStencil ? n.UNSIGNED_INT_24_8 : n.UNSIGNED_INT,
h = l.generateStencil ? n.DEPTH_STENCIL : n.DEPTH_COMPONENT,
d = h;
return (
this.webGLVersion > 1 && (d = l.generateStencil ? n.DEPTH24_STENCIL8 : n.DEPTH_COMPONENT24),
c.is2DArray ? n.texImage3D(s, 0, d, c.width, c.height, a, 0, h, u, null) : n.texImage2D(s, 0, d, c.width, c.height, 0, h, u, null),
this._bindTextureDirectly(s, null),
c
);
});
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return u;
});
var i = n(12),
r = n(202),
o = n(16);
function a(e) {
return new Promise(function (t) {
DracoDecoderModule({ wasmBinary: e }).then(function (e) {
t({ module: e });
});
});
}
function s(e, t, n, i, r) {
var o = new e.DecoderBuffer();
o.Init(t, t.byteLength);
var a,
s,
c = new e.Decoder();
try {
var l = c.GetEncodedGeometryType(o);
switch (l) {
case e.TRIANGULAR_MESH:
(a = new e.Mesh()), (s = c.DecodeBufferToMesh(o, a));
break;
case e.POINT_CLOUD:
(a = new e.PointCloud()), (s = c.DecodeBufferToPointCloud(o, a));
break;
default:
throw new Error("Invalid geometry type " + l);
}
if (!s.ok() || !a.ptr) throw new Error(s.error_msg());
var u = a.num_points();
if (l === e.TRIANGULAR_MESH) {
var h = a.num_faces(),
d = new e.DracoInt32Array();
try {
for (var p = new Uint32Array(3 * h), f = 0; f < h; f++) {
c.GetFaceFromMesh(a, f, d);
var m = 3 * f;
(p[m + 0] = d.GetValue(0)), (p[m + 1] = d.GetValue(1)), (p[m + 2] = d.GetValue(2));
}
i(p);
} finally {
e.destroy(d);
}
}
var g = function (t, n) {
var i = new e.DracoFloat32Array();
try {
c.GetAttributeFloatForAllPoints(a, n, i);
var o = n.num_components();
if ("color" === t && 3 === o) {
for (var s = new Float32Array(4 * u), l = 0, h = 0; l < s.length; l += 4, h += o) (s[l + 0] = i.GetValue(h + 0)), (s[l + 1] = i.GetValue(h + 1)), (s[l + 2] = i.GetValue(h + 2)), (s[l + 3] = 1);
r(t, s);
} else {
for (s = new Float32Array(u * o), l = 0; l < s.length; l++) s[l] = i.GetValue(l);
r(t, s);
}
} finally {
e.destroy(i);
}
};
if (n)
for (var b in n) {
var _ = n[b];
g(b, c.GetAttributeByUniqueId(a, _));
}
else {
var v = { position: "POSITION", normal: "NORMAL", color: "COLOR", uv: "TEX_COORD" };
for (var b in v) {
if (-1 !== (_ = c.GetAttributeId(a, e[v[b]]))) g(b, c.GetAttribute(a, _));
}
}
} finally {
a && e.destroy(a), e.destroy(c), e.destroy(o);
}
}
function c() {
var e;
onmessage = function (t) {
var n = t.data;
switch (n.id) {
case "init":
var i = n.decoder;
i.url && (importScripts(i.url), (e = a(i.wasmBinary))), postMessage("done");
break;
case "decodeMesh":
if (!e) throw new Error("Draco decoder module is not available");
e.then(function (e) {
s(
e.module,
n.dataView,
n.attributes,
function (e) {
postMessage({ id: "indices", value: e }, [e.buffer]);
},
function (e, t) {
postMessage({ id: e, value: t }, [t.buffer]);
}
),
postMessage("done");
});
}
};
}
function l(e) {
return "object" != typeof document || "string" != typeof e ? e : i.b.GetAbsoluteUrl(e);
}
var u = (function () {
function e(t) {
void 0 === t && (t = e.DefaultNumWorkers);
var n = e.Configuration.decoder,
o = n.wasmUrl && n.wasmBinaryUrl && "object" == typeof WebAssembly ? { url: n.wasmUrl, wasmBinaryPromise: i.b.LoadFileAsync(l(n.wasmBinaryUrl)) } : { url: n.fallbackUrl, wasmBinaryPromise: Promise.resolve(void 0) };
t && "function" == typeof Worker
? (this._workerPoolPromise = o.wasmBinaryPromise.then(function (e) {
for (var n = "" + a + s + "(" + c + ")()", i = URL.createObjectURL(new Blob([n], { type: "application/javascript" })), u = new Array(t), h = 0; h < u.length; h++)
u[h] = new Promise(function (t, n) {
var r = new Worker(i),
a = function (e) {
r.removeEventListener("error", a), r.removeEventListener("message", s), n(e);
},
s = function (e) {
"done" === e.data && (r.removeEventListener("error", a), r.removeEventListener("message", s), t(r));
};
r.addEventListener("error", a), r.addEventListener("message", s), r.postMessage({ id: "init", decoder: { url: l(o.url), wasmBinary: e } });
});
return Promise.all(u).then(function (e) {
return new r.a(e);
});
}))
: (this._decoderModulePromise = o.wasmBinaryPromise.then(function (e) {
if (!o.url) throw new Error("Draco decoder module is not available");
return i.b.LoadScriptAsync(o.url).then(function () {
return a(e);
});
}));
}
return (
Object.defineProperty(e, "DecoderAvailable", {
get: function () {
var t = e.Configuration.decoder;
return !!((t.wasmUrl && t.wasmBinaryUrl && "object" == typeof WebAssembly) || t.fallbackUrl);
},
enumerable: !0,
configurable: !0,
}),
(e.GetDefaultNumWorkers = function () {
return "object" == typeof navigator && navigator.hardwareConcurrency ? Math.min(Math.floor(0.5 * navigator.hardwareConcurrency), 4) : 1;
}),
Object.defineProperty(e, "Default", {
get: function () {
return e._Default || (e._Default = new e()), e._Default;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this._workerPoolPromise &&
this._workerPoolPromise.then(function (e) {
e.dispose();
}),
delete this._workerPoolPromise,
delete this._decoderModulePromise;
}),
(e.prototype.whenReadyAsync = function () {
return this._workerPoolPromise ? this._workerPoolPromise.then(function () {}) : this._decoderModulePromise ? this._decoderModulePromise.then(function () {}) : Promise.resolve();
}),
(e.prototype.decodeMeshAsync = function (e, t) {
var n = e instanceof ArrayBuffer ? new Uint8Array(e) : e;
if (this._workerPoolPromise)
return this._workerPoolPromise.then(function (e) {
return new Promise(function (i, r) {
e.push(function (e, a) {
var s = new o.a(),
c = function (t) {
e.removeEventListener("error", c), e.removeEventListener("message", l), r(t), a();
},
l = function (t) {
"done" === t.data ? (e.removeEventListener("error", c), e.removeEventListener("message", l), i(s), a()) : "indices" === t.data.id ? (s.indices = t.data.value) : s.set(t.data.value, t.data.id);
};
e.addEventListener("error", c), e.addEventListener("message", l);
var u = new Uint8Array(n.byteLength);
u.set(new Uint8Array(n.buffer, n.byteOffset, n.byteLength)), e.postMessage({ id: "decodeMesh", dataView: u, attributes: t }, [u.buffer]);
});
});
});
if (this._decoderModulePromise)
return this._decoderModulePromise.then(function (e) {
var i = new o.a();
return (
s(
e.module,
n,
t,
function (e) {
i.indices = e;
},
function (e, t) {
i.set(t, e);
}
),
i
);
});
throw new Error("Draco decoder module is not available");
}),
(e.Configuration = {
decoder: {
wasmUrl: "assets/babylonjs/draco_wasm_wrapper_gltf.js",
wasmBinaryUrl: "assets/babylonjs/draco_decoder_gltf.wasm",
fallbackUrl: "assets/babylonjs/draco_decoder_gltf.js",
},
}),
(e.DefaultNumWorkers = e.GetDefaultNumWorkers()),
(e._Default = null),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return a;
});
var i = n(8),
r = n(44),
o = n(107),
a = (function () {
function e() {}
return (
(e.CreateResizedCopy = function (e, t, n, a) {
void 0 === a && (a = !0);
var s = e.getScene(),
c = s.getEngine(),
l = new r.a("resized" + e.name, { width: t, height: n }, s, !e.noMipmap, !0, e._texture.type, !1, e.samplingMode, !1);
(l.wrapU = e.wrapU),
(l.wrapV = e.wrapV),
(l.uOffset = e.uOffset),
(l.vOffset = e.vOffset),
(l.uScale = e.uScale),
(l.vScale = e.vScale),
(l.uAng = e.uAng),
(l.vAng = e.vAng),
(l.wAng = e.wAng),
(l.coordinatesIndex = e.coordinatesIndex),
(l.level = e.level),
(l.anisotropicFilteringLevel = e.anisotropicFilteringLevel),
(l._texture.isReady = !1),
(e.wrapU = i.a.CLAMP_ADDRESSMODE),
(e.wrapV = i.a.CLAMP_ADDRESSMODE);
var u = new o.b("pass", 1, null, a ? i.a.BILINEAR_SAMPLINGMODE : i.a.NEAREST_SAMPLINGMODE, c, !1, 0);
return (
u.getEffect().executeWhenCompiled(function () {
u.onApply = function (t) {
t.setTexture("textureSampler", e);
};
var t = l.getInternalTexture();
t && (s.postProcessManager.directRender([u], t), c.unBindFramebuffer(t), l.disposeFramebufferObjects(), u.dispose(), (t.isReady = !0));
}),
l
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(56),
r = (function () {
function e() {}
return (
(e.SetImmediate = function (e) {
i.a.IsWindowObjectExist() && window.setImmediate ? window.setImmediate(e) : setTimeout(e, 1);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return m;
});
var i = n(53),
r = (function () {
function e() {
this.children = [];
}
return (
(e.prototype.isValid = function (e) {
return !0;
}),
(e.prototype.process = function (e, t) {
var n = "";
if (this.line) {
var r = this.line,
o = t.processor;
if (o) {
if ((o.lineProcessor && (r = o.lineProcessor(r, t.isFragment)), o.attributeProcessor && i.a.StartsWith(this.line, "attribute"))) r = o.attributeProcessor(this.line);
else if (o.varyingProcessor && i.a.StartsWith(this.line, "varying")) r = o.varyingProcessor(this.line, t.isFragment);
else if ((o.uniformProcessor || o.uniformBufferProcessor) && i.a.StartsWith(this.line, "uniform")) {
/uniform (.+) (.+)/.test(this.line)
? o.uniformProcessor && (r = o.uniformProcessor(this.line, t.isFragment))
: o.uniformBufferProcessor && ((r = o.uniformBufferProcessor(this.line, t.isFragment)), (t.lookForClosingBracketForUniformBuffer = !0));
}
o.endOfUniformBufferProcessor &&
t.lookForClosingBracketForUniformBuffer &&
-1 !== this.line.indexOf("}") &&
((t.lookForClosingBracketForUniformBuffer = !1), (r = o.endOfUniformBufferProcessor(this.line, t.isFragment)));
}
n += r + "\r\n";
}
return (
this.children.forEach(function (i) {
n += i.process(e, t);
}),
this.additionalDefineKey && (e[this.additionalDefineKey] = this.additionalDefineValue || "true"),
n
);
}),
e
);
})(),
o = (function () {
function e() {}
return (
Object.defineProperty(e.prototype, "currentLine", {
get: function () {
return this._lines[this.lineIndex];
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "canRead", {
get: function () {
return this.lineIndex < this._lines.length - 1;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "lines", {
set: function (e) {
this._lines = [];
for (var t = 0, n = e; t < n.length; t++) {
var i = n[t];
if ("#" !== i[0])
for (var r = i.split(";"), o = 0; o < r.length; o++) {
var a = r[o];
(a = a.trim()) && this._lines.push(a + (o !== r.length - 1 ? ";" : ""));
}
else this._lines.push(i);
}
},
enumerable: !0,
configurable: !0,
}),
e
);
})(),
a = n(2),
s = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(a.d)(t, e),
(t.prototype.process = function (e, t) {
for (var n = 0; n < this.children.length; n++) {
var i = this.children[n];
if (i.isValid(e)) return i.process(e, t);
}
return "";
}),
t
);
})(r),
c = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(a.d)(t, e),
(t.prototype.isValid = function (e) {
return this.testExpression.isTrue(e);
}),
t
);
})(r),
l = (function () {
function e() {}
return (
(e.prototype.isTrue = function (e) {
return !0;
}),
e
);
})(),
u = (function (e) {
function t(t, n) {
void 0 === n && (n = !1);
var i = e.call(this) || this;
return (i.define = t), (i.not = n), i;
}
return (
Object(a.d)(t, e),
(t.prototype.isTrue = function (e) {
var t = void 0 !== e[this.define];
return this.not && (t = !t), t;
}),
t
);
})(l),
h = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(a.d)(t, e),
(t.prototype.isTrue = function (e) {
return this.leftOperand.isTrue(e) || this.rightOperand.isTrue(e);
}),
t
);
})(l),
d = (function (e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
return (
Object(a.d)(t, e),
(t.prototype.isTrue = function (e) {
return this.leftOperand.isTrue(e) && this.rightOperand.isTrue(e);
}),
t
);
})(l),
p = (function (e) {
function t(t, n, i) {
var r = e.call(this) || this;
return (r.define = t), (r.operand = n), (r.testValue = i), r;
}
return (
Object(a.d)(t, e),
(t.prototype.isTrue = function (e) {
var t = e[this.define];
void 0 === t && (t = this.define);
var n = !1,
i = parseInt(t),
r = parseInt(this.testValue);
switch (this.operand) {
case ">":
n = i > r;
break;
case "<":
n = i < r;
break;
case "<=":
n = i <= r;
break;
case ">=":
n = i >= r;
break;
case "==":
n = i === r;
}
return n;
}),
t
);
})(l),
f = n(22),
m = (function () {
function e() {}
return (
(e.Process = function (e, t, n) {
var i = this;
this._ProcessIncludes(e, t, function (e) {
var r = i._ProcessShaderConversion(e, t);
n(r);
});
}),
(e._ProcessPrecision = function (e, t) {
var n = t.shouldUseHighPrecisionShader;
return -1 === e.indexOf("precision highp float") ? (e = n ? "precision highp float;\n" + e : "precision mediump float;\n" + e) : n || (e = e.replace("precision highp float", "precision mediump float")), e;
}),
(e._ExtractOperation = function (e) {
var t = /defined\((.+)\)/.exec(e);
if (t && t.length) return new u(t[1].trim(), "!" === e[0]);
for (var n = "", i = 0, r = 0, o = ["==", ">=", "<=", "<", ">"]; r < o.length && ((n = o[r]), !((i = e.indexOf(n)) > -1)); r++);
if (-1 === i) return new u(e);
var a = e.substring(0, i).trim(),
s = e.substring(i + n.length).trim();
return new p(a, n, s);
}),
(e._BuildSubExpression = function (e) {
var t = e.indexOf("||");
if (-1 === t) {
var n = e.indexOf("&&");
if (n > -1) {
var i = new d(),
r = e.substring(0, n).trim(),
o = e.substring(n + 2).trim();
return (i.leftOperand = this._BuildSubExpression(r)), (i.rightOperand = this._BuildSubExpression(o)), i;
}
return this._ExtractOperation(e);
}
var a = new h();
(r = e.substring(0, t).trim()), (o = e.substring(t + 2).trim());
return (a.leftOperand = this._BuildSubExpression(r)), (a.rightOperand = this._BuildSubExpression(o)), a;
}),
(e._BuildExpression = function (e, t) {
var n = new c(),
i = e.substring(0, t),
r = e.substring(t).trim();
return (n.testExpression = "#ifdef" === i ? new u(r) : "#ifndef" === i ? new u(r, !0) : this._BuildSubExpression(r)), n;
}),
(e._MoveCursorWithinIf = function (e, t, n) {
for (var i = e.currentLine; this._MoveCursor(e, n); ) {
var o = (i = e.currentLine).substring(0, 5).toLowerCase();
if ("#else" === o) {
var a = new r();
return t.children.push(a), void this._MoveCursor(e, a);
}
if ("#elif" === o) {
var s = this._BuildExpression(i, 5);
t.children.push(s), (n = s);
}
}
}),
(e._MoveCursor = function (e, t) {
for (; e.canRead; ) {
e.lineIndex++;
var n = e.currentLine,
i = /(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/.exec(n);
if (i && i.length) {
switch (i[0]) {
case "#ifdef":
var o = new s();
t.children.push(o);
var a = this._BuildExpression(n, 6);
o.children.push(a), this._MoveCursorWithinIf(e, o, a);
break;
case "#else":
case "#elif":
return !0;
case "#endif":
return !1;
case "#ifndef":
o = new s();
t.children.push(o);
a = this._BuildExpression(n, 7);
o.children.push(a), this._MoveCursorWithinIf(e, o, a);
break;
case "#if":
(o = new s()), (a = this._BuildExpression(n, 3));
t.children.push(o), o.children.push(a), this._MoveCursorWithinIf(e, o, a);
}
} else {
var c = new r();
if (((c.line = n), t.children.push(c), "#" === n[0] && "d" === n[1])) {
var l = n.replace(";", "").split(" ");
(c.additionalDefineKey = l[1]), 3 === l.length && (c.additionalDefineValue = l[2]);
}
}
}
return !1;
}),
(e._EvaluatePreProcessors = function (e, t, n) {
var i = new r(),
a = new o();
return (a.lineIndex = -1), (a.lines = e.split("\n")), this._MoveCursor(a, i), i.process(t, n);
}),
(e._PreparePreProcessors = function (e) {
for (var t = {}, n = 0, i = e.defines; n < i.length; n++) {
var r = i[n].replace("#define", "").replace(";", "").trim().split(" ");
t[r[0]] = r.length > 1 ? r[1] : "";
}
return (t.GL_ES = "true"), (t.__VERSION__ = e.version), (t[e.platformName] = "true"), t;
}),
(e._ProcessShaderConversion = function (e, t) {
var n = this._ProcessPrecision(e, t);
if (!t.processor) return n;
if (-1 !== n.indexOf("#version 3")) return n.replace("#version 300 es", "");
var i = t.defines,
r = this._PreparePreProcessors(t);
return t.processor.preProcessor && (n = t.processor.preProcessor(n, i, t.isFragment)), (n = this._EvaluatePreProcessors(n, r, t)), t.processor.postProcessor && (n = t.processor.postProcessor(n, i, t.isFragment)), n;
}),
(e._ProcessIncludes = function (t, n, i) {
for (var r = this, o = /#include<(.+)>(\((.*)\))*(\[(.*)\])*/g, a = o.exec(t), s = new String(t); null != a; ) {
var c = a[1];
if (
(-1 !== c.indexOf("__decl__") && ((c = c.replace(/__decl__/, "")), n.supportsUniformBuffers && (c = (c = c.replace(/Vertex/, "Ubo")).replace(/Fragment/, "Ubo")), (c += "Declaration")),
!n.includesShadersStore[c])
) {
var l = n.shadersRepository + "ShadersInclude/" + c + ".fx";
return void e._FileToolsLoadFile(l, function (e) {
(n.includesShadersStore[c] = e), r._ProcessIncludes(s, n, i);
});
}
var u = n.includesShadersStore[c];
if (a[2])
for (var h = a[3].split(","), d = 0; d < h.length; d += 2) {
var p = new RegExp(h[d], "g"),
f = h[d + 1];
u = u.replace(p, f);
}
if (a[4]) {
var m = a[5];
if (-1 !== m.indexOf("..")) {
var g = m.split(".."),
b = parseInt(g[0]),
_ = parseInt(g[1]),
v = u.slice(0);
(u = ""), isNaN(_) && (_ = n.indexParameters[g[1]]);
for (var y = b; y < _; y++)
n.supportsUniformBuffers ||
(v = v.replace(/light\{X\}.(\w*)/g, function (e, t) {
return t + "{X}";
})),
(u += v.replace(/\{X\}/g, y.toString()) + "\n");
} else
n.supportsUniformBuffers ||
(u = u.replace(/light\{X\}.(\w*)/g, function (e, t) {
return t + "{X}";
})),
(u = u.replace(/\{X\}/g, m));
}
(s = s.replace(a[0], u)), (a = o.exec(t));
}
i(s);
}),
(e._FileToolsLoadFile = function (e, t, n, i, r, o) {
throw f.a.WarnImport("FileTools");
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i = "reflectionFunction",
r =
"vec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {\n\nvec3 invOrigVec=vec3(1.0,1.0,1.0)/origVec;\nvec3 halfSize=cubeSize*0.5;\nvec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;\nvec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;\n\nvec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);\n\nfloat distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);\n\nvec3 intersectPositionWS=vertexPos+origVec*distance;\n\nreturn intersectPositionWS-cubePos;\n}\nvec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)\n{\nfloat lon=atan(direction.z,direction.x);\nfloat lat=acos(direction.y);\nvec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\nfloat s=sphereCoords.x*0.5+0.5;\nfloat t=sphereCoords.y;\nreturn vec3(s,t,0);\n}\nvec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)\n{\nfloat lon=atan(direction.z,direction.x);\nfloat lat=acos(direction.y);\nvec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\nfloat s=sphereCoords.x*0.5+0.5;\nfloat t=sphereCoords.y;\nreturn vec3(1.0-s,t,0);\n}\nvec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)\n{\nvec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);\nvec3 r=normalize(reflect(cameraToVertex,worldNormal));\nr=vec3(reflectionMatrix*vec4(r,0));\nfloat lon=atan(r.z,r.x);\nfloat lat=acos(r.y);\nvec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\nfloat s=sphereCoords.x*0.5+0.5;\nfloat t=sphereCoords.y;\nreturn vec3(s,t,0);\n}\nvec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)\n{\nvec3 viewDir=normalize(vec3(view*worldPos));\nvec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));\nvec3 r=reflect(viewDir,viewNormal);\nr=vec3(reflectionMatrix*vec4(r,0));\nr.z=r.z-1.0;\nfloat m=2.0*length(r);\nreturn vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);\n}\nvec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)\n{\nvec3 viewDir=worldPos.xyz-eyePosition;\nvec3 coords=normalize(reflect(viewDir,worldNormal));\nreturn vec3(reflectionMatrix*vec4(coords,1));\n}\nvec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)\n{\nvec3 viewDir=normalize(worldPos.xyz-eyePosition);\n\nvec3 coords=reflect(viewDir,worldNormal);\ncoords=vec3(reflectionMatrix*vec4(coords,0));\n#ifdef INVERTCUBICMAP\ncoords.y*=-1.0;\n#endif\nreturn coords;\n}\nvec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)\n{\nvec3 viewDir=normalize(worldPos.xyz-eyePosition);\n\nvec3 coords=reflect(viewDir,worldNormal);\ncoords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);\ncoords=vec3(reflectionMatrix*vec4(coords,0));\n#ifdef INVERTCUBICMAP\ncoords.y*=-1.0;\n#endif\nreturn coords;\n}\nvec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)\n{\nreturn vec3(reflectionMatrix*(view*worldPos));\n}\nvec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)\n{\nreturn vec3(reflectionMatrix*vec4(positionW,0));\n}\n#ifdef REFLECTION\nvec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)\n{\n#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\nvec3 direction=normalize(vDirectionW);\nreturn computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);\n#endif\n#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED\nvec3 direction=normalize(vDirectionW);\nreturn computeFixedEquirectangularCoords(worldPos,worldNormal,direction);\n#endif\n#ifdef REFLECTIONMAP_EQUIRECTANGULAR\nreturn computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_SPHERICAL\nreturn computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_PLANAR\nreturn computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_CUBIC\n#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC\nreturn computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);\n#else\nreturn computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#endif\n#ifdef REFLECTIONMAP_PROJECTION\nreturn computeProjectionCoords(worldPos,view,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nreturn computeSkyBoxCoords(vPositionUVW,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_EXPLICIT\nreturn vec3(0,0,0);\n#endif\n}\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "bumpFragmentFunctions",
r =
"#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvarying mat3 vTBN;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform mat4 normalMatrix;\n#endif\nvec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)\n{\ntextureSample=textureSample*2.0-1.0;\n#ifdef NORMALXYSCALE\ntextureSample=normalize(textureSample*vec3(scale,scale,1.0));\n#endif\nreturn normalize(cotangentFrame*textureSample);\n}\n\nmat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)\n{\n\nuv=gl_FrontFacing ? uv : -uv;\n\nvec3 dp1=dFdx(p);\nvec3 dp2=dFdy(p);\nvec2 duv1=dFdx(uv);\nvec2 duv2=dFdy(uv);\n\nvec3 dp2perp=cross(dp2,normal);\nvec3 dp1perp=cross(normal,dp1);\nvec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;\nvec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;\n\ntangent*=tangentSpaceParams.x;\nbitangent*=tangentSpaceParams.y;\n\nfloat invmax=inversesqrt(max(dot(tangent,tangent),dot(bitangent,bitangent)));\nreturn mat3(tangent*invmax,bitangent*invmax,normal);\n}\n#endif\n#if defined(BUMP)\n#if BUMPDIRECTUV == 1\n#define vBumpUV vMainUV1\n#elif BUMPDIRECTUV == 2\n#define vBumpUV vMainUV2\n#else\nvarying vec2 vBumpUV;\n#endif\nuniform sampler2D bumpSampler;\nvec3 perturbNormal(mat3 cotangentFrame,vec2 uv)\n{\nreturn perturbNormal(cotangentFrame,texture2D(bumpSampler,uv).xyz,vBumpInfos.y);\n}\n#endif\n#if defined(BUMP) || defined(CLEARCOAT_BUMP)\nvec3 perturbNormal(mat3 cotangentFrame,vec3 color)\n{\nreturn perturbNormal(cotangentFrame,color,vBumpInfos.y);\n}\n\nmat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv)\n{\nreturn cotangent_frame(normal,p,uv,vTangentSpaceParams);\n}\n#endif\n#if defined(BUMP) && defined(PARALLAX)\nconst float minSamples=4.;\nconst float maxSamples=15.;\nconst int iMaxSamples=15;\n\nvec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {\nfloat parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;\nparallaxLimit*=parallaxScale;\nvec2 vOffsetDir=normalize(vViewDirCoT.xy);\nvec2 vMaxOffset=vOffsetDir*parallaxLimit;\nfloat numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));\nfloat stepSize=1.0/numSamples;\n\nfloat currRayHeight=1.0;\nvec2 vCurrOffset=vec2(0,0);\nvec2 vLastOffset=vec2(0,0);\nfloat lastSampledHeight=1.0;\nfloat currSampledHeight=1.0;\nfor (int i=0; icurrRayHeight)\n{\nfloat delta1=currSampledHeight-currRayHeight;\nfloat delta2=(currRayHeight+stepSize)-lastSampledHeight;\nfloat ratio=delta1/(delta1+delta2);\nvCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;\n\nbreak;\n}\nelse\n{\ncurrRayHeight-=stepSize;\nvLastOffset=vCurrOffset;\nvCurrOffset+=stepSize*vMaxOffset;\nlastSampledHeight=currSampledHeight;\n}\n}\nreturn vCurrOffset;\n}\nvec2 parallaxOffset(vec3 viewDir,float heightScale)\n{\n\nfloat height=texture2D(bumpSampler,vBumpUV).w;\nvec2 texCoordOffset=heightScale*viewDir.xy*height;\nreturn -texCoordOffset;\n}\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i =
"vec2 uvOffset=vec2(0.0,0.0);\n#if defined(BUMP) || defined(PARALLAX)\n#ifdef NORMALXYSCALE\nfloat normalScale=1.0;\n#else\nfloat normalScale=vBumpInfos.y;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#else\nmat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,vBumpUV);\n#endif\n#elif defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#else\nmat3 TBN=cotangent_frame(normalW,vPositionW,vMainUV1,vec2(1.,1.));\n#endif\n#endif\n#ifdef PARALLAX\nmat3 invTBN=transposeMat3(TBN);\n#ifdef PARALLAXOCCLUSION\nuvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\n#else\nuvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\n#endif\n#endif\n#ifdef BUMP\n#ifdef OBJECTSPACE_NORMALMAP\nnormalW=normalize(texture2D(bumpSampler,vBumpUV).xyz*2.0-1.0);\nnormalW=normalize(mat3(normalMatrix)*normalW);\n#else\nnormalW=perturbNormal(TBN,vBumpUV+uvOffset);\n#endif\n#endif";
n(7).a.IncludesShadersStore.bumpFragment = i;
},
function (e, t, n) {
"use strict";
var i = "logDepthFragment",
r = "#ifdef LOGARITHMICDEPTH\ngl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "logDepthVertex",
r = "#ifdef LOGARITHMICDEPTH\nvFragmentDepth=1.0+gl_Position.w;\ngl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
(function (e, t) {
var n;
!(function (n) {
!(function (i) {
var r = "object" == typeof t ? t : "object" == typeof self ? self : "object" == typeof this ? this : Function("return this;")(),
o = a(n);
function a(e, t) {
return function (n, i) {
"function" != typeof e[n] && Object.defineProperty(e, n, { configurable: !0, writable: !0, value: i }), t && t(n, i);
};
}
void 0 === r.Reflect ? (r.Reflect = n) : (o = a(r.Reflect, o)),
(function (t) {
var n = Object.prototype.hasOwnProperty,
i = "function" == typeof Symbol,
r = i && void 0 !== Symbol.toPrimitive ? Symbol.toPrimitive : "@@toPrimitive",
o = i && void 0 !== Symbol.iterator ? Symbol.iterator : "@@iterator",
a = "function" == typeof Object.create,
s = { __proto__: [] } instanceof Array,
c = !a && !s,
l = {
create: a
? function () {
return w(Object.create(null));
}
: s
? function () {
return w({ __proto__: null });
}
: function () {
return w({});
},
has: c
? function (e, t) {
return n.call(e, t);
}
: function (e, t) {
return t in e;
},
get: c
? function (e, t) {
return n.call(e, t) ? e[t] : void 0;
}
: function (e, t) {
return e[t];
},
},
u = Object.getPrototypeOf(Function),
h = "object" == typeof e && e.env && "true" === e.env.REFLECT_METADATA_USE_MAP_POLYFILL,
d =
h || "function" != typeof Map || "function" != typeof Map.prototype.entries
? (function () {
var e = {},
t = [],
n = (function () {
function e(e, t, n) {
(this._index = 0), (this._keys = e), (this._values = t), (this._selector = n);
}
return (
(e.prototype["@@iterator"] = function () {
return this;
}),
(e.prototype[o] = function () {
return this;
}),
(e.prototype.next = function () {
var e = this._index;
if (e >= 0 && e < this._keys.length) {
var n = this._selector(this._keys[e], this._values[e]);
return e + 1 >= this._keys.length ? ((this._index = -1), (this._keys = t), (this._values = t)) : this._index++, { value: n, done: !1 };
}
return { value: void 0, done: !0 };
}),
(e.prototype.throw = function (e) {
throw (this._index >= 0 && ((this._index = -1), (this._keys = t), (this._values = t)), e);
}),
(e.prototype.return = function (e) {
return this._index >= 0 && ((this._index = -1), (this._keys = t), (this._values = t)), { value: e, done: !0 };
}),
e
);
})();
return (function () {
function t() {
(this._keys = []), (this._values = []), (this._cacheKey = e), (this._cacheIndex = -2);
}
return (
Object.defineProperty(t.prototype, "size", {
get: function () {
return this._keys.length;
},
enumerable: !0,
configurable: !0,
}),
(t.prototype.has = function (e) {
return this._find(e, !1) >= 0;
}),
(t.prototype.get = function (e) {
var t = this._find(e, !1);
return t >= 0 ? this._values[t] : void 0;
}),
(t.prototype.set = function (e, t) {
var n = this._find(e, !0);
return (this._values[n] = t), this;
}),
(t.prototype.delete = function (t) {
var n = this._find(t, !1);
if (n >= 0) {
for (var i = this._keys.length, r = n + 1; r < i; r++) (this._keys[r - 1] = this._keys[r]), (this._values[r - 1] = this._values[r]);
return this._keys.length--, this._values.length--, t === this._cacheKey && ((this._cacheKey = e), (this._cacheIndex = -2)), !0;
}
return !1;
}),
(t.prototype.clear = function () {
(this._keys.length = 0), (this._values.length = 0), (this._cacheKey = e), (this._cacheIndex = -2);
}),
(t.prototype.keys = function () {
return new n(this._keys, this._values, i);
}),
(t.prototype.values = function () {
return new n(this._keys, this._values, r);
}),
(t.prototype.entries = function () {
return new n(this._keys, this._values, a);
}),
(t.prototype["@@iterator"] = function () {
return this.entries();
}),
(t.prototype[o] = function () {
return this.entries();
}),
(t.prototype._find = function (e, t) {
return (
this._cacheKey !== e && (this._cacheIndex = this._keys.indexOf((this._cacheKey = e))),
this._cacheIndex < 0 && t && ((this._cacheIndex = this._keys.length), this._keys.push(e), this._values.push(void 0)),
this._cacheIndex
);
}),
t
);
})();
function i(e, t) {
return e;
}
function r(e, t) {
return t;
}
function a(e, t) {
return [e, t];
}
})()
: Map,
p =
h || "function" != typeof Set || "function" != typeof Set.prototype.entries
? (function () {
function e() {
this._map = new d();
}
return (
Object.defineProperty(e.prototype, "size", {
get: function () {
return this._map.size;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.has = function (e) {
return this._map.has(e);
}),
(e.prototype.add = function (e) {
return this._map.set(e, e), this;
}),
(e.prototype.delete = function (e) {
return this._map.delete(e);
}),
(e.prototype.clear = function () {
this._map.clear();
}),
(e.prototype.keys = function () {
return this._map.keys();
}),
(e.prototype.values = function () {
return this._map.values();
}),
(e.prototype.entries = function () {
return this._map.entries();
}),
(e.prototype["@@iterator"] = function () {
return this.keys();
}),
(e.prototype[o] = function () {
return this.keys();
}),
e
);
})()
: Set,
f = new (h || "function" != typeof WeakMap
? (function () {
var e = l.create(),
t = i();
return (function () {
function e() {
this._key = i();
}
return (
(e.prototype.has = function (e) {
var t = r(e, !1);
return void 0 !== t && l.has(t, this._key);
}),
(e.prototype.get = function (e) {
var t = r(e, !1);
return void 0 !== t ? l.get(t, this._key) : void 0;
}),
(e.prototype.set = function (e, t) {
return (r(e, !0)[this._key] = t), this;
}),
(e.prototype.delete = function (e) {
var t = r(e, !1);
return void 0 !== t && delete t[this._key];
}),
(e.prototype.clear = function () {
this._key = i();
}),
e
);
})();
function i() {
var t;
do {
t = "@@WeakMap@@" + a();
} while (l.has(e, t));
return (e[t] = !0), t;
}
function r(e, i) {
if (!n.call(e, t)) {
if (!i) return;
Object.defineProperty(e, t, { value: l.create() });
}
return e[t];
}
function o(e, t) {
for (var n = 0; n < t; ++n) e[n] = (255 * Math.random()) | 0;
return e;
}
function a() {
var e,
t =
((e = 16),
"function" == typeof Uint8Array
? "undefined" != typeof crypto
? crypto.getRandomValues(new Uint8Array(e))
: "undefined" != typeof msCrypto
? msCrypto.getRandomValues(new Uint8Array(e))
: o(new Uint8Array(e), e)
: o(new Array(e), e));
(t[6] = (79 & t[6]) | 64), (t[8] = (191 & t[8]) | 128);
for (var n = "", i = 0; i < 16; ++i) {
var r = t[i];
(4 !== i && 6 !== i && 8 !== i) || (n += "-"), r < 16 && (n += "0"), (n += r.toString(16).toLowerCase());
}
return n;
}
})()
: WeakMap)();
function m(e, t, n) {
var i = f.get(e);
if (C(i)) {
if (!n) return;
(i = new d()), f.set(e, i);
}
var r = i.get(t);
if (C(r)) {
if (!n) return;
(r = new d()), i.set(t, r);
}
return r;
}
function g(e, t, n) {
var i = m(t, n, !1);
return !C(i) && !!i.has(e);
}
function b(e, t, n) {
var i = m(t, n, !1);
if (!C(i)) return i.get(e);
}
function _(e, t, n, i) {
m(n, i, !0).set(e, t);
}
function v(e, t) {
var n = [],
i = m(e, t, !1);
if (C(i)) return n;
for (
var r = (function (e) {
var t = A(e, o);
if (!E(t)) throw new TypeError();
var n = t.call(e);
if (!x(n)) throw new TypeError();
return n;
})(i.keys()),
a = 0;
;
) {
var s = I(r);
if (!s) return (n.length = a), n;
var c = s.value;
try {
n[a] = c;
} catch (e) {
try {
D(r);
} finally {
throw e;
}
}
a++;
}
}
function y(e) {
if (null === e) return 1;
switch (typeof e) {
case "undefined":
return 0;
case "boolean":
return 2;
case "string":
return 3;
case "symbol":
return 4;
case "number":
return 5;
case "object":
return null === e ? 1 : 6;
default:
return 6;
}
}
function C(e) {
return void 0 === e;
}
function P(e) {
return null === e;
}
function x(e) {
return "object" == typeof e ? null !== e : "function" == typeof e;
}
function T(e, t) {
switch (y(e)) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
return e;
}
var n = 3 === t ? "string" : 5 === t ? "number" : "default",
i = A(e, r);
if (void 0 !== i) {
var o = i.call(e, n);
if (x(o)) throw new TypeError();
return o;
}
return (function (e, t) {
if ("string" === t) {
var n = e.toString;
if (E(n)) if (!x((r = n.call(e)))) return r;
if (E((i = e.valueOf))) if (!x((r = i.call(e)))) return r;
} else {
var i;
if (E((i = e.valueOf))) if (!x((r = i.call(e)))) return r;
var r,
o = e.toString;
if (E(o)) if (!x((r = o.call(e)))) return r;
}
throw new TypeError();
})(e, "default" === n ? "number" : n);
}
function S(e) {
var t = T(e, 3);
return "symbol" == typeof t
? t
: (function (e) {
return "" + e;
})(t);
}
function O(e) {
return Array.isArray ? Array.isArray(e) : e instanceof Object ? e instanceof Array : "[object Array]" === Object.prototype.toString.call(e);
}
function E(e) {
return "function" == typeof e;
}
function M(e) {
return "function" == typeof e;
}
function A(e, t) {
var n = e[t];
if (null != n) {
if (!E(n)) throw new TypeError();
return n;
}
}
function I(e) {
var t = e.next();
return !t.done && t;
}
function D(e) {
var t = e.return;
t && t.call(e);
}
function R(e) {
var t = Object.getPrototypeOf(e);
if ("function" != typeof e || e === u) return t;
if (t !== u) return t;
var n = e.prototype,
i = n && Object.getPrototypeOf(n);
if (null == i || i === Object.prototype) return t;
var r = i.constructor;
return "function" != typeof r || r === e ? t : r;
}
function w(e) {
return (e.__ = void 0), delete e.__, e;
}
t("decorate", function (e, t, n, i) {
if (C(n)) {
if (!O(e)) throw new TypeError();
if (!M(t)) throw new TypeError();
return (function (e, t) {
for (var n = e.length - 1; n >= 0; --n) {
var i = (0, e[n])(t);
if (!C(i) && !P(i)) {
if (!M(i)) throw new TypeError();
t = i;
}
}
return t;
})(e, t);
}
if (!O(e)) throw new TypeError();
if (!x(t)) throw new TypeError();
if (!x(i) && !C(i) && !P(i)) throw new TypeError();
return (
P(i) && (i = void 0),
(function (e, t, n, i) {
for (var r = e.length - 1; r >= 0; --r) {
var o = (0, e[r])(t, n, i);
if (!C(o) && !P(o)) {
if (!x(o)) throw new TypeError();
i = o;
}
}
return i;
})(e, t, (n = S(n)), i)
);
}),
t("metadata", function (e, t) {
return function (n, i) {
if (!x(n)) throw new TypeError();
if (
!C(i) &&
!(function (e) {
switch (y(e)) {
case 3:
case 4:
return !0;
default:
return !1;
}
})(i)
)
throw new TypeError();
_(e, t, n, i);
};
}),
t("defineMetadata", function (e, t, n, i) {
if (!x(n)) throw new TypeError();
return C(i) || (i = S(i)), _(e, t, n, i);
}),
t("hasMetadata", function (e, t, n) {
if (!x(t)) throw new TypeError();
return (
C(n) || (n = S(n)),
(function e(t, n, i) {
if (g(t, n, i)) return !0;
var r = R(n);
return !P(r) && e(t, r, i);
})(e, t, n)
);
}),
t("hasOwnMetadata", function (e, t, n) {
if (!x(t)) throw new TypeError();
return C(n) || (n = S(n)), g(e, t, n);
}),
t("getMetadata", function (e, t, n) {
if (!x(t)) throw new TypeError();
return (
C(n) || (n = S(n)),
(function e(t, n, i) {
if (g(t, n, i)) return b(t, n, i);
var r = R(n);
return P(r) ? void 0 : e(t, r, i);
})(e, t, n)
);
}),
t("getOwnMetadata", function (e, t, n) {
if (!x(t)) throw new TypeError();
return C(n) || (n = S(n)), b(e, t, n);
}),
t("getMetadataKeys", function (e, t) {
if (!x(e)) throw new TypeError();
return (
C(t) || (t = S(t)),
(function e(t, n) {
var i = v(t, n),
r = R(t);
if (null === r) return i;
var o = e(r, n);
if (o.length <= 0) return i;
if (i.length <= 0) return o;
for (var a = new p(), s = [], c = 0, l = i; c < l.length; c++) {
var u = l[c];
a.has(u) || (a.add(u), s.push(u));
}
for (var h = 0, d = o; h < d.length; h++) {
u = d[h];
a.has(u) || (a.add(u), s.push(u));
}
return s;
})(e, t)
);
}),
t("getOwnMetadataKeys", function (e, t) {
if (!x(e)) throw new TypeError();
return C(t) || (t = S(t)), v(e, t);
}),
t("deleteMetadata", function (e, t, n) {
if (!x(t)) throw new TypeError();
C(n) || (n = S(n));
var i = m(t, n, !1);
if (C(i)) return !1;
if (!i.delete(e)) return !1;
if (i.size > 0) return !0;
var r = f.get(t);
return r.delete(n), r.size > 0 || f.delete(t), !0;
});
})(o);
})();
})(n || (n = {}));
}.call(this, n(252), n(212)));
},
function (e, t, n) {
var i;
"undefined" != typeof self && self,
(i = function () {
return (function (e) {
var t = {};
function n(i) {
if (t[i]) return t[i].exports;
var r = (t[i] = { i: i, l: !1, exports: {} });
return e[i].call(r.exports, r, r.exports, n), (r.l = !0), r.exports;
}
return (
(n.m = e),
(n.c = t),
(n.d = function (e, t, i) {
n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: i });
}),
(n.r = function (e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
}),
(n.t = function (e, t) {
if ((1 & t && (e = n(e)), 8 & t)) return e;
if (4 & t && "object" == typeof e && e && e.__esModule) return e;
var i = Object.create(null);
if ((n.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e))
for (var r in e)
n.d(
i,
r,
function (t) {
return e[t];
}.bind(null, r)
);
return i;
}),
(n.n = function (e) {
var t =
e && e.__esModule
? function () {
return e.default;
}
: function () {
return e;
};
return n.d(t, "a", t), t;
}),
(n.o = function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}),
(n.p = ""),
n((n.s = 0))
);
})([
function (e, t, n) {
"use strict";
n.r(t);
var i = "__typedJsonJsonObjectMetadataInformation__",
r = 'Are you sure, that you have both "experimentalDecorators" and "emitDecoratorMetadata" in your tsconfig.json?';
function o(e) {
return !!~[Date, Number, String, Boolean].indexOf(e);
}
function a(e) {
return !!~[Float32Array, Float64Array, Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array].indexOf(e);
}
function s(e, t) {
return "string" != typeof e ||
(function (e, t) {
var n = t === String || t === ArrayBuffer || t === DataView,
i = e.length >= 2 && '"' === e[0] && '"' === e[e.length - 1],
r = /^\d+$/.test(e.trim());
return (n && !i) || (!i && !r && t === Date);
})(e, t)
? e
: JSON.parse(e);
}
function c(e, t) {
return e === t || e.prototype instanceof t;
}
function l(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
("object" == typeof console && "function" == typeof console.error) || ("object" == typeof console && console.log);
}
function u(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
("object" == typeof console && "function" == typeof console.warn) || ("object" == typeof console && console.log);
}
function h(e) {
return !(null == e);
}
function d(e, t) {
return "number" == typeof e
? t === Number
: "string" == typeof e
? t === String
: "boolean" == typeof e
? t === Boolean
: !!(function (e) {
return "object" == typeof e;
})(e) && e instanceof t;
}
var p = "object" == typeof Reflect && "function" == typeof Reflect.getMetadata;
function f(e) {
return "string" == typeof e.name ? e.name : "undefined";
}
var m = (function () {
function e(e) {
(this.dataMembers = new Map()), (this.knownTypes = new Set()), (this.isExplicitlyMarked = !1), (this.isHandledWithoutAnnotation = !1), (this.classType = e);
}
return (
(e.getJsonObjectName = function (t) {
var n = e.getFromConstructor(t);
return f(n ? n.classType : t);
}),
(e.getFromConstructor = function (t) {
var n = t.prototype;
if (n) {
var r;
if ((n.hasOwnProperty(i) && (r = n[i]), r && r.isExplicitlyMarked)) return r;
if (e.doesHandleWithoutAnnotation(t)) {
var o = new e(t);
return (o.isExplicitlyMarked = !0), o;
}
}
}),
(e.getKnownTypeNameFromType = function (t) {
var n = e.getFromConstructor(t);
return f(n ? n.classType : t);
}),
(e.doesHandleWithoutAnnotation = function (e) {
return o(e) || a(e) || e === DataView || e === ArrayBuffer;
}),
e
);
})();
function g(e, t, n) {
var r,
o = "@jsonMember on " + f(e.constructor) + "." + String(t);
if ("function" != typeof e)
if ("function" != typeof e[t])
if (n && (n.ctor || n.deserializer)) {
if (e.hasOwnProperty(i)) r = e[i];
else {
r = new m(e.constructor);
var a = e[i];
a &&
a.dataMembers.forEach(function (e, t) {
return r.dataMembers.set(t, e);
}),
Object.defineProperty(e, i, { enumerable: !1, configurable: !1, writable: !1, value: r });
}
n.deserializer || r.knownTypes.add(n.ctor),
n.keyType && r.knownTypes.add(n.keyType),
n.elementType &&
n.elementType.forEach(function (e) {
return r.knownTypes.add(e);
}),
Object.keys(n).forEach(function (e) {
return void 0 === n[e] && delete n[e];
}),
r.dataMembers.set(n.name, n);
} else l(o + ": JsonMemberMetadata has unknown ctor.");
else l(o + ": cannot use a method property.");
else l(o + ": cannot use a static property.");
}
var b = ["preserveNull"];
function _(e) {
var t = Object.keys(e)
.filter(function (e) {
return b.indexOf(e) > -1;
})
.reduce(function (t, n) {
return (t[n] = e[n]), t;
}, {});
return Object.keys(t).length > 0 ? t : void 0;
}
function v(e, t) {
return t && null != t[e]
? t[e]
: (function (e) {
switch (e) {
case "preserveNull":
return !1;
}
return null;
})(e);
}
function y(e, t) {
return t ? Object.assign({}, e, t) : e;
}
var C = function () {
return (C =
Object.assign ||
function (e) {
for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
return e;
}).apply(this, arguments);
};
function P(e, t, n, i) {
t.constructor !== n && (e.__type = i && i.name ? i.name : f(t.constructor));
}
var x = (function () {
function e() {
(this._typeHintEmitter = P), (this._errorHandler = l);
}
return (
(e.prototype.setTypeHintEmitter = function (e) {
if ("function" != typeof e) throw new TypeError("'typeEmitterCallback' is not a function.");
this._typeHintEmitter = e;
}),
(e.prototype.setErrorHandler = function (e) {
if ("function" != typeof e) throw new TypeError("'errorHandlerCallback' is not a function.");
this._errorHandler = e;
}),
(e.prototype.convertSingleValue = function (e, t, n, i) {
if ((void 0 === n && (n = "object"), this.retrievePreserveNull(i) && null === e)) return null;
if (h(e)) {
if (d(e, t.selfType))
return o(t.selfType)
? e
: t.selfType === ArrayBuffer
? this.convertAsArrayBuffer(e)
: t.selfType === DataView
? this.convertAsDataView(e)
: (function (e) {
return e.selfType === Array;
})(t)
? this.convertAsArray(e, t.elementTypes, n, i)
: (function (e) {
return e.selfType === Set;
})(t)
? this.convertAsSet(e, t.elementTypes[0], n, i)
: (function (e) {
return e.selfType === Map;
})(t)
? this.convertAsMap(e, t.keyType, t.elementTypes[0], n, i)
: a(t.selfType)
? this.convertAsTypedArray(e)
: "object" == typeof e
? this.convertAsObject(e, t, n, i)
: void 0;
var r = f(t.selfType),
s = f(e.constructor);
this._errorHandler(new TypeError("Could not serialize '" + n + "': expected '" + r + "', got '" + s + "'."));
}
}),
(e.prototype.convertAsObject = function (e, t, n, i) {
var r,
o,
a = this;
if ((r = e.constructor !== t.selfType && e instanceof t.selfType ? m.getFromConstructor(e.constructor) : m.getFromConstructor(t.selfType))) {
r.beforeSerializationMethodName &&
("function" == typeof e[r.beforeSerializationMethodName]
? e[r.beforeSerializationMethodName]()
: "function" == typeof e.constructor[r.beforeSerializationMethodName]
? e.constructor[r.beforeSerializationMethodName]()
: this._errorHandler(new TypeError("beforeSerialization callback '" + f(r.classType) + "." + r.beforeSerializationMethodName + "' is not a method.")));
var s = r;
o = {};
var c = y(this.options, s.options);
s.dataMembers.forEach(function (t) {
var n,
i = y(c, t.options);
if (t.serializer) n = t.serializer(e[t.key]);
else {
if (!t.ctor) throw new TypeError("Could not serialize " + t.name + ", there is no constructor nor serialization function to use.");
n = a.convertSingleValue(e[t.key], { selfType: t.ctor, elementTypes: t.elementType, keyType: t.keyType }, f(s.classType) + "." + t.key, i);
}
(h(n) || (a.retrievePreserveNull(i) && null === n)) && (o[t.name] = n);
});
} else o = C({}, e);
return this._typeHintEmitter(o, e, t.selfType, r), o;
}),
(e.prototype.convertAsArray = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = "object"), 0 === t.length || !t[0])) throw new TypeError("Could not serialize " + n + " as Array: missing element type definition.");
e.forEach(function (e, o) {
if (!((r.retrievePreserveNull(i) && null === e) || d(e, t[0]))) {
var a = f(t[0]),
s = e && f(e.constructor);
throw new TypeError("Could not serialize " + n + "[" + o + "]: expected '" + a + "', got '" + s + "'.");
}
});
var o = { selfType: t[0], elementTypes: t.length > 1 ? t.slice(1) : [] };
return (
n && (n += "[]"),
e.map(function (e) {
return r.convertSingleValue(e, o, n, i);
})
);
}),
(e.prototype.convertAsSet = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = "object"), !t)) throw new TypeError("Could not serialize " + n + " as Set: missing element type definition.");
var o = { selfType: t };
n && (n += "[]");
var a = [];
return (
e.forEach(function (e) {
var t = r.convertSingleValue(e, o, n, i);
(h(e) && !h(t)) || a.push(t);
}),
a
);
}),
(e.prototype.convertAsMap = function (e, t, n, i, r) {
var o = this;
if ((void 0 === i && (i = "object"), !n)) throw new TypeError("Could not serialize " + i + " as Map: missing value type definition.");
if (!t) throw new TypeError("Could not serialize " + i + " as Map: missing key type definition.");
var a = { selfType: n, elementTypes: [n] },
s = { selfType: t };
i && (i += "[]");
var c = [],
l = this.retrievePreserveNull(r);
return (
e.forEach(function (e, t) {
var n = { key: o.convertSingleValue(t, s, i, r), value: o.convertSingleValue(e, a, i, r) },
u = h(n.key),
d = h(n.value) || (null === n.value && l);
u && d && c.push(n);
}),
c
);
}),
(e.prototype.convertAsTypedArray = function (e) {
return Array.from(e);
}),
(e.prototype.convertAsArrayBuffer = function (e) {
return Array.from(new Uint16Array(e))
.map(function (e) {
return String.fromCharCode(e);
})
.join("");
}),
(e.prototype.convertAsDataView = function (e) {
return this.convertAsArrayBuffer(e.buffer);
}),
(e.prototype.retrievePreserveNull = function (e) {
return v("preserveNull", y(this.options, e));
}),
e
);
})();
function T(e, t) {
if (e.__type) return t.get(e.__type);
}
var S = (function () {
function e() {
(this._typeResolver = T), (this._errorHandler = l);
}
return (
(e.prototype.setNameResolver = function (e) {
this._nameResolver = e;
}),
(e.prototype.setTypeResolver = function (e) {
if ("function" != typeof e) throw new TypeError("'typeResolverCallback' is not a function.");
this._typeResolver = e;
}),
(e.prototype.setErrorHandler = function (e) {
if ("function" != typeof e) throw new TypeError("'errorHandlerCallback' is not a function.");
this._errorHandler = e;
}),
(e.prototype.convertAsObject = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = "object"), "object" == typeof e && null !== e)) {
var o = t.selfConstructor,
a = m.getFromConstructor(o),
s = t.knownTypes;
a && (s = this._mergeKnownTypes(s, this._createKnownTypesMap(a.knownTypes)));
var l = this._typeResolver(e, s);
if ((l && c(l, o) && ((o = l), (a = m.getFromConstructor(l)) && (s = this._mergeKnownTypes(s, this._createKnownTypesMap(a.knownTypes)))), a && a.isExplicitlyMarked)) {
var u = a,
d = {},
p = y(this.options, u.options);
u.dataMembers.forEach(function (t, n) {
var i,
o = e[n],
a = f(u.classType) + "." + n,
c = y(p, t.options);
if (t.deserializer) i = t.deserializer(o);
else {
if (!t.ctor) throw new TypeError("Cannot deserialize " + a + " there is no constructor nor deserialization function to use.");
i = r.convertSingleValue(o, { selfConstructor: t.ctor, elementConstructor: t.elementType, keyConstructor: t.keyType, knownTypes: s }, a, c);
}
h(i) || (r.retrievePreserveNull(c) && null === i) ? (d[t.key] = i) : t.isRequired && r._errorHandler(new TypeError("Missing required member '" + a + "'."));
});
var g = void 0;
if ("function" == typeof a.initializerCallback)
try {
if (!(g = a.initializerCallback(d, e))) throw new TypeError("Cannot deserialize " + n + ": 'initializer' function returned undefined/null, but '" + f(a.classType) + "' was expected.");
if (!(g instanceof a.classType))
throw new TypeError(
"Cannot deserialize " +
n +
":'initializer' returned '" +
f(g.constructor) +
"', but '" +
f(a.classType) +
"' was expected, and '" +
f(g.constructor) +
"' is not a subtype of '" +
f(a.classType) +
"'"
);
} catch (e) {
return void this._errorHandler(e);
}
else g = this._instantiateType(o);
return (
Object.assign(g, d),
a.onDeserializedMethodName &&
("function" == typeof g[a.onDeserializedMethodName]
? g[a.onDeserializedMethodName]()
: "function" == typeof g.constructor[a.onDeserializedMethodName]
? g.constructor[a.onDeserializedMethodName]()
: this._errorHandler(new TypeError("onDeserialized callback '" + f(a.classType) + "." + a.onDeserializedMethodName + "' is not a method."))),
g
);
}
var b = {};
return (
Object.keys(e).forEach(function (n) {
b[n] = r.convertSingleValue(e[n], { selfConstructor: e[n].constructor, knownTypes: t.knownTypes, elementConstructor: t.elementConstructor, keyConstructor: t.keyConstructor }, n);
}),
b
);
}
this._errorHandler(new TypeError("Cannot deserialize " + n + ": 'sourceObject' must be a defined object."));
}),
(e.prototype.convertSingleValue = function (e, t, n, i) {
void 0 === n && (n = "object");
var r = t.selfConstructor,
o = e ? f(e.constructor) : "undefined";
if (this.retrievePreserveNull(i) && null === e) return null;
if (h(e)) {
if (~[Number, String, Boolean].indexOf(r)) {
if (e.constructor === r) return e;
throw new TypeError(this._makeTypeErrorMessage(f(r), e.constructor, n));
}
if (r === Date) {
if ("string" == typeof e || ("number" == typeof e && e > 0)) return new Date(e);
this._throwTypeMismatchError("Date", "an ISO-8601 string", o, n);
} else {
if (r === Float32Array || r === Float64Array) return this._convertAsFloatArray(e, r, o, n);
if (r === Uint8Array || r === Uint8ClampedArray || r === Uint16Array || r === Uint32Array) return this._convertAsUintArray(e, r, o, n);
if (r === ArrayBuffer) {
if ("string" == typeof e) return this._stringToArrayBuffer(e);
this._throwTypeMismatchError("ArrayBuffer", "a string source", o, n);
} else if (r === DataView) {
if ("string" == typeof e) return this._stringToDataView(e);
this._throwTypeMismatchError("DataView", "a string source", o, n);
} else {
if (r === Array) {
if (Array.isArray(e)) return this.convertAsArray(e, t, n, i);
throw new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n));
}
if (r === Set) {
if (Array.isArray(e)) return this.convertAsSet(e, t, n, i);
this._throwTypeMismatchError("Set", "Array", o, n);
} else if (r === Map) {
if (Array.isArray(e)) return this.convertAsMap(e, t, n, i);
this._throwTypeMismatchError("Map", "a source array of key-value-pair objects", o, n);
} else if (e && "object" == typeof e) return this.convertAsObject(e, t, n, i);
}
}
}
}),
(e.prototype.convertAsArray = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = "object"), !Array.isArray(e))) return this._errorHandler(new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n))), [];
if (!t.elementConstructor || !t.elementConstructor.length) return this._errorHandler(new TypeError("Could not deserialize " + n + " as Array: missing constructor reference of Array elements.")), [];
var o = { selfConstructor: t.elementConstructor[0], elementConstructor: t.elementConstructor.length > 1 ? t.elementConstructor.slice(1) : [], knownTypes: t.knownTypes };
return e.map(function (e) {
try {
return r.convertSingleValue(e, o, n + "[]", i);
} catch (e) {
return void r._errorHandler(e);
}
});
}),
(e.prototype.convertAsSet = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = "object"), !Array.isArray(e))) return this._errorHandler(new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n))), new Set();
if (!t.elementConstructor || !t.elementConstructor.length)
return this._errorHandler(new TypeError("Could not deserialize " + n + " as Set: missing constructor reference of Set elements.")), new Set();
var o = { selfConstructor: t.elementConstructor[0], elementConstructor: t.elementConstructor.length > 1 ? t.elementConstructor.slice(1) : [], knownTypes: t.knownTypes },
a = new Set();
return (
e.forEach(function (e, t) {
try {
a.add(r.convertSingleValue(e, o, n + "[" + t + "]", i));
} catch (e) {
r._errorHandler(e);
}
}),
a
);
}),
(e.prototype.convertAsMap = function (e, t, n, i) {
var r = this;
if ((void 0 === n && (n = "object"), Array.isArray(e) || this._errorHandler(new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n))), !t.keyConstructor))
return this._errorHandler(new TypeError("Could not deserialize " + n + " as Map: missing key constructor.")), new Map();
if (!t.elementConstructor || !t.elementConstructor.length) return this._errorHandler(new TypeError("Could not deserialize " + n + " as Map: missing value constructor.")), new Map();
var o = { selfConstructor: t.keyConstructor, knownTypes: t.knownTypes },
a = { selfConstructor: t.elementConstructor[0], elementConstructor: t.elementConstructor.length > 1 ? t.elementConstructor.slice(1) : [], knownTypes: t.knownTypes },
s = new Map();
return (
e.forEach(function (e) {
try {
var t = r.convertSingleValue(e.key, o, n, i);
h(t) && s.set(t, r.convertSingleValue(e.value, a, n + "[" + t + "]", i));
} catch (e) {
r._errorHandler(e);
}
}),
s
);
}),
(e.prototype._convertAsFloatArray = function (e, t, n, i) {
return Array.isArray(e) &&
e.every(function (e) {
return !isNaN(e);
})
? new t(e)
: this._throwTypeMismatchError(t.name, "a numeric source array", n, i);
}),
(e.prototype._convertAsUintArray = function (e, t, n, i) {
return Array.isArray(e) &&
e.every(function (e) {
return !isNaN(e);
})
? new t(
e.map(function (e) {
return ~~e;
})
)
: this._throwTypeMismatchError(t.name, "a numeric source array", n, i);
}),
(e.prototype._throwTypeMismatchError = function (e, t, n, i) {
throw new TypeError("Could not deserialize " + i + " as " + e + ": expected " + t + ", got " + n + ".");
}),
(e.prototype._makeTypeErrorMessage = function (e, t, n) {
return "Could not deserialize " + n + ": expected '" + ("function" == typeof e ? f(e) : e) + "', got '" + ("function" == typeof t ? f(t) : t) + "'.";
}),
(e.prototype._instantiateType = function (e) {
return new e();
}),
(e.prototype._mergeKnownTypes = function () {
for (var e = this, t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n];
var i = new Map();
return (
t.forEach(function (t) {
t.forEach(function (t, n) {
e._nameResolver ? i.set(e._nameResolver(t), t) : i.set(n, t);
});
}),
i
);
}),
(e.prototype._createKnownTypesMap = function (e) {
var t = this,
n = new Map();
return (
e.forEach(function (e) {
if (t._nameResolver) n.set(t._nameResolver(e), e);
else {
var i = m.getFromConstructor(e),
r = i && i.isExplicitlyMarked && i.name ? i.name : e.name;
n.set(r, e);
}
}),
n
);
}),
(e.prototype._stringToArrayBuffer = function (e) {
for (var t = new ArrayBuffer(2 * e.length), n = new Uint16Array(t), i = 0, r = e.length; i < r; i++) n[i] = e.charCodeAt(i);
return t;
}),
(e.prototype._stringToDataView = function (e) {
return new DataView(this._stringToArrayBuffer(e));
}),
(e.prototype.retrievePreserveNull = function (e) {
return v("preserveNull", y(this.options, e));
}),
e
);
})(),
O = function () {
return (O =
Object.assign ||
function (e) {
for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
return e;
}).apply(this, arguments);
},
E = (function () {
function e(t, n) {
(this.serializer = new x()), (this.deserializer = new S()), (this.globalKnownTypes = []), (this.indent = 0);
var i = m.getFromConstructor(t);
if (!i || (!i.isExplicitlyMarked && !i.isHandledWithoutAnnotation)) throw new TypeError("The TypedJSON root data type must have the @jsonObject decorator used.");
(this.nameResolver = function (e) {
return f(e);
}),
(this.rootConstructor = t),
(this.errorHandler = function (e) {
return l(e);
}),
n ? this.config(n) : e._globalConfig && this.config({});
}
return (
(e.parse = function (t, n, i) {
return new e(n, i).parse(t);
}),
(e.parseAsArray = function (t, n, i, r) {
return new e(n, i).parseAsArray(t, r);
}),
(e.parseAsSet = function (t, n, i) {
return new e(n, i).parseAsSet(t);
}),
(e.parseAsMap = function (t, n, i, r) {
return new e(i, r).parseAsMap(t, n);
}),
(e.toPlainJson = function (t, n, i) {
return new e(n, i).toPlainJson(t);
}),
(e.toPlainArray = function (t, n, i, r) {
return new e(n, r).toPlainArray(t, i);
}),
(e.toPlainSet = function (t, n, i) {
return new e(n, i).toPlainSet(t);
}),
(e.toPlainMap = function (t, n, i, r) {
return new e(i, r).toPlainMap(t, n);
}),
(e.stringify = function (t, n, i) {
return new e(n, i).stringify(t);
}),
(e.stringifyAsArray = function (t, n, i, r) {
return new e(n, r).stringifyAsArray(t, i);
}),
(e.stringifyAsSet = function (t, n, i) {
return new e(n, i).stringifyAsSet(t);
}),
(e.stringifyAsMap = function (t, n, i, r) {
return new e(i, r).stringifyAsMap(t, n);
}),
(e.setGlobalConfig = function (e) {
this._globalConfig ? Object.assign(this._globalConfig, e) : (this._globalConfig = e);
}),
(e.prototype.config = function (t) {
e._globalConfig && (t = O({}, e._globalConfig, t)).knownTypes && e._globalConfig.knownTypes && (t.knownTypes = Array.from(new Set(t.knownTypes.concat(e._globalConfig.knownTypes))));
var n = _(t);
(this.serializer.options = n),
(this.deserializer.options = n),
t.errorHandler && ((this.errorHandler = t.errorHandler), this.deserializer.setErrorHandler(t.errorHandler), this.serializer.setErrorHandler(t.errorHandler)),
t.replacer && (this.replacer = t.replacer),
t.typeResolver && this.deserializer.setTypeResolver(t.typeResolver),
t.typeHintEmitter && this.serializer.setTypeHintEmitter(t.typeHintEmitter),
t.indent && (this.indent = t.indent),
t.nameResolver && ((this.nameResolver = t.nameResolver), this.deserializer.setNameResolver(t.nameResolver)),
t.knownTypes &&
(t.knownTypes.forEach(function (e, t) {
null == e && u("TypedJSON.config: 'knownTypes' contains an undefined/null value (element " + t + ").");
}),
(this.globalKnownTypes = t.knownTypes));
}),
(e.prototype.parse = function (e) {
var t,
n = this,
i = s(e, this.rootConstructor),
r = m.getFromConstructor(this.rootConstructor),
o = new Map();
this.globalKnownTypes
.filter(function (e) {
return e;
})
.forEach(function (e) {
o.set(n.nameResolver(e), e);
}),
r &&
r.knownTypes.forEach(function (e) {
o.set(n.nameResolver(e), e);
});
try {
t = this.deserializer.convertSingleValue(i, { selfConstructor: this.rootConstructor, knownTypes: o });
} catch (e) {
this.errorHandler(e);
}
return t;
}),
(e.prototype.parseAsArray = function (e, t) {
void 0 === t && (t = 1);
var n = s(e, Array);
return n instanceof Array
? this.deserializer.convertAsArray(n, {
selfConstructor: Array,
elementConstructor: new Array(t - 1).fill(Array).concat(this.rootConstructor),
knownTypes: this._mapKnownTypes(this.globalKnownTypes),
})
: (this.errorHandler(new TypeError("Expected 'json' to define an Array, but got " + typeof n + ".")), []);
}),
(e.prototype.parseAsSet = function (e) {
var t = s(e, Set);
return t instanceof Array
? this.deserializer.convertAsSet(t, { selfConstructor: Array, elementConstructor: [this.rootConstructor], knownTypes: this._mapKnownTypes(this.globalKnownTypes) })
: (this.errorHandler(new TypeError("Expected 'json' to define a Set (using an Array), but got " + typeof t + ".")), new Set());
}),
(e.prototype.parseAsMap = function (e, t) {
var n = s(e, Map);
return n instanceof Array
? this.deserializer.convertAsMap(n, { selfConstructor: Array, elementConstructor: [this.rootConstructor], knownTypes: this._mapKnownTypes(this.globalKnownTypes), keyConstructor: t })
: (this.errorHandler(new TypeError("Expected 'json' to define a Set (using an Array), but got " + typeof n + ".")), new Map());
}),
(e.prototype.toPlainJson = function (e) {
try {
return this.serializer.convertSingleValue(e, { selfType: this.rootConstructor });
} catch (e) {
this.errorHandler(e);
}
}),
(e.prototype.toPlainArray = function (e, t) {
void 0 === t && (t = 1);
try {
var n = new Array(t - 1).fill(Array).concat(this.rootConstructor);
return this.serializer.convertAsArray(e, n);
} catch (e) {
this.errorHandler(e);
}
}),
(e.prototype.toPlainSet = function (e) {
try {
return this.serializer.convertAsSet(e, this.rootConstructor);
} catch (e) {
this.errorHandler(e);
}
}),
(e.prototype.toPlainMap = function (e, t) {
try {
return this.serializer.convertAsMap(e, t, this.rootConstructor);
} catch (e) {
this.errorHandler(e);
}
}),
(e.prototype.stringify = function (e) {
var t = this.toPlainJson(e);
return void 0 === t ? "" : JSON.stringify(t, this.replacer, this.indent);
}),
(e.prototype.stringifyAsArray = function (e, t) {
return JSON.stringify(this.toPlainArray(e, t), this.replacer, this.indent);
}),
(e.prototype.stringifyAsSet = function (e) {
return JSON.stringify(this.toPlainSet(e), this.replacer, this.indent);
}),
(e.prototype.stringifyAsMap = function (e, t) {
return JSON.stringify(this.toPlainMap(e, t), this.replacer, this.indent);
}),
(e.prototype._mapKnownTypes = function (e) {
var t = this,
n = new Map();
return (
e
.filter(function (e) {
return e;
})
.forEach(function (e) {
return n.set(t.nameResolver(e), e);
}),
n
);
}),
e
);
})();
function M(e) {
var t;
function n(e) {
var n;
if (e.prototype.hasOwnProperty(i)) (n = e.prototype[i]).classType = e;
else {
n = new m(e);
var r = e.prototype[i];
r &&
(r.dataMembers.forEach(function (e, t) {
return n.dataMembers.set(t, e);
}),
r.knownTypes.forEach(function (e) {
return n.knownTypes.add(e);
})),
Object.defineProperty(e.prototype, i, { enumerable: !1, configurable: !1, writable: !1, value: n });
}
(n.isExplicitlyMarked = !0), (n.onDeserializedMethodName = t.onDeserialized), (n.beforeSerializationMethodName = t.beforeSerialization), (n.initializerCallback = t.initializer), t.name && (n.name = t.name);
var o = _(t);
o && (n.options = o),
"string" == typeof t.knownTypes
? (n.knownTypeMethodName = t.knownTypes)
: t.knownTypes instanceof Array &&
t.knownTypes
.filter(function (e) {
return !!e;
})
.forEach(function (e) {
return n.knownTypes.add(e);
});
}
if (((t = "function" == typeof e ? {} : e || {}), "function" != typeof e)) return n;
n(e);
}
function A(e, t) {
if (!(e instanceof Object) || ("string" != typeof t && "symbol" != typeof t))
return function (t, n) {
var i,
r = e || {},
o = "@jsonMember on " + f(t.constructor) + "." + String(n);
if (r.hasOwnProperty("constructor")) {
if (!h(r.constructor)) return void l(o + ": cannot resolve specified property constructor at runtime.");
p && !c(r.constructor, Reflect.getMetadata("design:type", t, n)) && u(o + ": detected property type does not match 'constructor' option."), (i = r.constructor);
} else if (p) {
if (!(i = Reflect.getMetadata("design:type", t, n))) return void l(o + ": cannot resolve detected property constructor at runtime.");
} else if (!r.deserializer) return void l(o + ": ReflectDecorators is required if no 'constructor' option is specified.");
I(o, i) ||
g(t, n, {
ctor: i,
emitDefaultValue: r.emitDefaultValue,
isRequired: r.isRequired,
options: _(r),
key: n.toString(),
name: r.name || n.toString(),
deserializer: r.deserializer,
serializer: r.serializer,
});
};
var n = e,
i = "@jsonMember on " + f(n.constructor) + "." + String(t);
if (p) {
var o = Reflect.getMetadata("design:type", n, t);
o ? I(i, o) || g(n, t, { ctor: o, key: t.toString(), name: t.toString() }) : l(i + ": could not resolve detected property constructor at runtime. " + r);
} else l(i + ": ReflectDecorators is required if no 'constructor' option is specified.");
}
function I(e, t) {
return t === Array
? (l(e + ": property is an Array. Use the jsonArrayMember decorator to serialize this property."), !0)
: t === Set
? (l(e + ": property is a Set. Use the jsonSetMember decorator to serialize this property."), !0)
: t === Map && (l(e + ": property is a Map. Use the jsonMapMember decorator to serialize this property."), !0);
}
function D(e, t) {
return (
void 0 === t && (t = {}),
function (n, i) {
var o = "@jsonArrayMember on " + f(n.constructor) + "." + String(i);
if ("function" == typeof e) {
var a = void 0 === t.dimensions ? 1 : t.dimensions;
!isNaN(a) && a < 1
? l(o + ": 'dimensions' option must be at least 1.")
: p && Reflect.getMetadata("design:type", n, i) !== Array
? l(o + ": property is not an Array. " + r)
: g(n, i, {
ctor: Array,
elementType: R(e, a),
emitDefaultValue: t.emitDefaultValue,
isRequired: t.isRequired,
options: _(t),
key: i.toString(),
name: t.name || i.toString(),
deserializer: t.deserializer,
serializer: t.serializer,
});
} else l(o + ": could not resolve constructor of array elements at runtime.");
}
);
}
function R(e, t) {
var n = new Array(t).fill(Array, 0, -1);
return (n[t - 1] = e), n;
}
function w(e, t) {
return (
void 0 === t && (t = {}),
function (n, i) {
var o = "@jsonSetMember on " + f(n.constructor) + "." + String(i);
"function" == typeof e
? p && Reflect.getMetadata("design:type", n, i) !== Set
? l(o + ": property is not a Set. " + r)
: g(n, i, {
ctor: Set,
elementType: [e],
emitDefaultValue: t.emitDefaultValue,
isRequired: t.isRequired,
options: _(t),
key: i.toString(),
name: t.name || i.toString(),
deserializer: t.deserializer,
serializer: t.serializer,
})
: l(o + ": could not resolve constructor of set elements at runtime.");
}
);
}
function L(e, t, n) {
return (
void 0 === n && (n = {}),
function (i, o) {
var a = "@jsonMapMember on " + f(i.constructor) + "." + String(o);
"function" == typeof e
? "function" == typeof t
? p && Reflect.getMetadata("design:type", i, o) !== Map
? l(a + ": property is not a Map. " + r)
: g(i, o, {
ctor: Map,
elementType: [t],
keyType: e,
emitDefaultValue: n.emitDefaultValue,
isRequired: n.isRequired,
options: _(n),
key: o.toString(),
name: n.name || o.toString(),
deserializer: n.deserializer,
serializer: n.serializer,
})
: l(a + ": could not resolve constructor of map values at runtime.")
: l(a + ": could not resolve constructor of map keys at runtime.");
}
);
}
function F(e) {
if ("function" != typeof e)
return function (t) {
N(t, e);
};
N(e, {});
}
function N(e, t) {
if (!t.overwrite && e.prototype.toJSON) throw new Error(e.name + " already has toJSON defined!");
e.prototype.toJSON = function () {
return E.toPlainJson(this, Object.getPrototypeOf(this).constructor);
};
}
n.d(t, "TypedJSON", function () {
return E;
}),
n.d(t, "jsonObject", function () {
return M;
}),
n.d(t, "jsonMember", function () {
return A;
}),
n.d(t, "jsonArrayMember", function () {
return D;
}),
n.d(t, "jsonSetMember", function () {
return w;
}),
n.d(t, "jsonMapMember", function () {
return L;
}),
n.d(t, "toJson", function () {
return F;
});
},
]);
}),
(e.exports = i());
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.BonusItemTypeProbability = t.BonusItemProtoData = void 0);
class i {}
(t.BonusItemProtoData = i),
(i.DefaultCoinsPerRun = 15),
(i.DefaultCoinPlacementHeight = 0.5),
(i.DefaultCoinMaxHorizOffset = 0.85),
(i.MinCoinsToRepeatPlacement = 10),
(i.MaxCoinHistorySize = 15),
(i.MaxCoinsPerRun = 15),
(i.AllowCoins = !0),
(i.MinDistanceBetweenCoinRuns = 80),
(i.MinDistanceBetweenBonusItems = 500),
(i.ArcMaxHeight = 2.5),
(i.MinDistanceAfterTurn = 20),
(i.MinDistanceAfterZipline = 20),
(i.AllowBonusItems = !0),
(i.ProbabilityBonusItem = 1),
(i.BonusItemPlacementHeight = 3);
t.BonusItemTypeProbability = class {
constructor(e, t, n) {
(this.ItemType = e), (this.ItemProbability = t), (this.MaxAllowed = n);
}
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.Eval = function (t, n) {
return (
"true" ===
(t = t.match(/\([^\(\)]*\)/g)
? t.replace(/\([^\(\)]*\)/g, function (t) {
return (t = t.slice(1, t.length - 1)), e._HandleParenthesisContent(t, n);
})
: e._HandleParenthesisContent(t, n)) ||
("false" !== t && e.Eval(t, n))
);
}),
(e._HandleParenthesisContent = function (t, n) {
var i;
n =
n ||
function (e) {
return "true" === e;
};
var r = t.split("||");
for (var o in r)
if (r.hasOwnProperty(o)) {
var a = e._SimplifyNegation(r[o].trim()),
s = a.split("&&");
if (s.length > 1)
for (var c = 0; c < s.length; ++c) {
var l = e._SimplifyNegation(s[c].trim());
if (!(i = "true" !== l && "false" !== l ? ("!" === l[0] ? !n(l.substring(1)) : n(l)) : "true" === l)) {
a = "false";
break;
}
}
if (i || "true" === a) {
i = !0;
break;
}
i = "true" !== a && "false" !== a ? ("!" === a[0] ? !n(a.substring(1)) : n(a)) : "true" === a;
}
return i ? "true" : "false";
}),
(e._SimplifyNegation = function (e) {
return (
"!true" ===
(e = (e = e.replace(/^[\s!]+/, function (e) {
return (e = e.replace(/[\s]/g, function () {
return "";
})).length % 2
? "!"
: "";
})).trim())
? (e = "false")
: "!false" === e && (e = "true"),
e
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return d;
});
var i = n(1),
r = n(5),
o = n(27),
a = n(109),
s = Object.freeze(new i.b(0, 0, 0, 0)),
c = Object.freeze(i.e.Zero()),
l = Object.freeze(i.d.Zero()),
u = Object.freeze(a.a.Zero()),
h = Object.freeze(r.a.Black()),
d = (function () {
function e(e, t, n, r) {
var a = this;
if (
((this._events = new Array()),
(this._currentFrame = 0),
(this._originalValue = new Array()),
(this._originalBlendValue = null),
(this._offsetsCache = {}),
(this._highLimitsCache = {}),
(this._stopped = !1),
(this._blendingFactor = 0),
(this._currentValue = null),
(this._currentActiveTarget = null),
(this._directTarget = null),
(this._targetPath = ""),
(this._weight = 1),
(this._ratioOffset = 0),
(this._previousDelay = 0),
(this._previousRatio = 0),
(this._targetIsArray = !1),
(this._animation = t),
(this._target = e),
(this._scene = n),
(this._host = r),
(this._activeTargets = []),
t._runtimeAnimations.push(this),
(this._animationState = { key: 0, repeatCount: 0, loopMode: this._getCorrectLoopMode() }),
this._animation.dataType === o.a.ANIMATIONTYPE_MATRIX && (this._animationState.workValue = i.a.Zero()),
(this._keys = this._animation.getKeys()),
(this._minFrame = this._keys[0].frame),
(this._maxFrame = this._keys[this._keys.length - 1].frame),
(this._minValue = this._keys[0].value),
(this._maxValue = this._keys[this._keys.length - 1].value),
0 !== this._minFrame)
) {
var s = { frame: 0, value: this._minValue };
this._keys.splice(0, 0, s);
}
if (this._target instanceof Array) {
for (var c = 0, l = 0, u = this._target; l < u.length; l++) {
var h = u[l];
this._preparePath(h, c), this._getOriginalValues(c), c++;
}
this._targetIsArray = !0;
} else this._preparePath(this._target), this._getOriginalValues(), (this._targetIsArray = !1), (this._directTarget = this._activeTargets[0]);
var d = t.getEvents();
d &&
d.length > 0 &&
d.forEach(function (e) {
a._events.push(e._clone());
}),
(this._enableBlending = e && e.animationPropertiesOverride ? e.animationPropertiesOverride.enableBlending : this._animation.enableBlending);
}
return (
Object.defineProperty(e.prototype, "currentFrame", {
get: function () {
return this._currentFrame;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "weight", {
get: function () {
return this._weight;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "currentValue", {
get: function () {
return this._currentValue;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "targetPath", {
get: function () {
return this._targetPath;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "target", {
get: function () {
return this._currentActiveTarget;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._preparePath = function (e, t) {
void 0 === t && (t = 0);
var n = this._animation.targetPropertyPath;
if (n.length > 1) {
for (var i = e[n[0]], r = 1; r < n.length - 1; r++) i = i[n[r]];
(this._targetPath = n[n.length - 1]), (this._activeTargets[t] = i);
} else (this._targetPath = n[0]), (this._activeTargets[t] = e);
}),
Object.defineProperty(e.prototype, "animation", {
get: function () {
return this._animation;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.reset = function (e) {
if ((void 0 === e && (e = !1), e))
if (this._target instanceof Array)
for (var t = 0, n = 0, i = this._target; n < i.length; n++) {
var r = i[n];
void 0 !== this._originalValue[t] && this._setValue(r, this._activeTargets[t], this._originalValue[t], -1, t), t++;
}
else void 0 !== this._originalValue[0] && this._setValue(this._target, this._directTarget, this._originalValue[0], -1, 0);
(this._offsetsCache = {}), (this._highLimitsCache = {}), (this._currentFrame = 0), (this._blendingFactor = 0);
for (t = 0; t < this._events.length; t++) this._events[t].isDone = !1;
}),
(e.prototype.isStopped = function () {
return this._stopped;
}),
(e.prototype.dispose = function () {
var e = this._animation.runtimeAnimations.indexOf(this);
e > -1 && this._animation.runtimeAnimations.splice(e, 1);
}),
(e.prototype.setValue = function (e, t) {
if (this._targetIsArray)
for (var n = 0; n < this._target.length; n++) {
var i = this._target[n];
this._setValue(i, this._activeTargets[n], e, t, n);
}
else this._setValue(this._target, this._directTarget, e, t, 0);
}),
(e.prototype._getOriginalValues = function (e) {
var t;
void 0 === e && (e = 0);
var n = this._activeTargets[e];
(t = n.getRestPose && "_matrix" === this._targetPath ? n.getRestPose() : n[this._targetPath]) && t.clone ? (this._originalValue[e] = t.clone()) : (this._originalValue[e] = t);
}),
(e.prototype._setValue = function (e, t, n, r, a) {
if (((this._currentActiveTarget = t), (this._weight = r), this._enableBlending && this._blendingFactor <= 1)) {
if (!this._originalBlendValue) {
var s = t[this._targetPath];
s.clone ? (this._originalBlendValue = s.clone()) : (this._originalBlendValue = s);
}
this._originalBlendValue.m
? o.a.AllowMatrixDecomposeForInterpolation
? this._currentValue
? i.a.DecomposeLerpToRef(this._originalBlendValue, n, this._blendingFactor, this._currentValue)
: (this._currentValue = i.a.DecomposeLerp(this._originalBlendValue, n, this._blendingFactor))
: this._currentValue
? i.a.LerpToRef(this._originalBlendValue, n, this._blendingFactor, this._currentValue)
: (this._currentValue = i.a.Lerp(this._originalBlendValue, n, this._blendingFactor))
: (this._currentValue = o.a._UniversalLerp(this._originalBlendValue, n, this._blendingFactor));
var c = e && e.animationPropertiesOverride ? e.animationPropertiesOverride.blendingSpeed : this._animation.blendingSpeed;
this._blendingFactor += c;
} else this._currentValue = n;
-1 !== r ? this._scene._registerTargetForLateAnimationBinding(this, this._originalValue[a]) : (t[this._targetPath] = this._currentValue), e.markAsDirty && e.markAsDirty(this._animation.targetProperty);
}),
(e.prototype._getCorrectLoopMode = function () {
return this._target && this._target.animationPropertiesOverride ? this._target.animationPropertiesOverride.loopMode : this._animation.loopMode;
}),
(e.prototype.goToFrame = function (e) {
var t = this._animation.getKeys();
e < t[0].frame ? (e = t[0].frame) : e > t[t.length - 1].frame && (e = t[t.length - 1].frame);
var n = this._events;
if (n.length) for (var i = 0; i < n.length; i++) n[i].onlyOnce || (n[i].isDone = n[i].frame < e);
this._currentFrame = e;
var r = this._animation._interpolate(e, this._animationState);
this.setValue(r, -1);
}),
(e.prototype._prepareForSpeedRatioChange = function (e) {
var t = (this._previousDelay * (this._animation.framePerSecond * e)) / 1e3;
this._ratioOffset = this._previousRatio - t;
}),
(e.prototype.animate = function (e, t, n, i, r, a) {
void 0 === a && (a = -1);
var d = this._animation,
p = d.targetPropertyPath;
if (!p || p.length < 1) return (this._stopped = !0), !1;
var f = !0;
(t < this._minFrame || t > this._maxFrame) && (t = this._minFrame), (n < this._minFrame || n > this._maxFrame) && (n = this._maxFrame);
var m,
g,
b = n - t,
_ = (e * (d.framePerSecond * r)) / 1e3 + this._ratioOffset,
v = 0;
if (((this._previousDelay = e), (this._previousRatio = _), !i && n >= t && _ >= b)) (f = !1), (v = d._getKeyValue(this._maxValue));
else if (!i && t >= n && _ <= b) (f = !1), (v = d._getKeyValue(this._minValue));
else if (this._animationState.loopMode !== o.a.ANIMATIONLOOPMODE_CYCLE) {
var y = n.toString() + t.toString();
if (!this._offsetsCache[y]) {
(this._animationState.repeatCount = 0), (this._animationState.loopMode = o.a.ANIMATIONLOOPMODE_CYCLE);
var C = d._interpolate(t, this._animationState),
P = d._interpolate(n, this._animationState);
switch (((this._animationState.loopMode = this._getCorrectLoopMode()), d.dataType)) {
case o.a.ANIMATIONTYPE_FLOAT:
this._offsetsCache[y] = P - C;
break;
case o.a.ANIMATIONTYPE_QUATERNION:
this._offsetsCache[y] = P.subtract(C);
break;
case o.a.ANIMATIONTYPE_VECTOR3:
this._offsetsCache[y] = P.subtract(C);
case o.a.ANIMATIONTYPE_VECTOR2:
this._offsetsCache[y] = P.subtract(C);
case o.a.ANIMATIONTYPE_SIZE:
this._offsetsCache[y] = P.subtract(C);
case o.a.ANIMATIONTYPE_COLOR3:
this._offsetsCache[y] = P.subtract(C);
}
this._highLimitsCache[y] = P;
}
(v = this._highLimitsCache[y]), (m = this._offsetsCache[y]);
}
if (void 0 === m)
switch (d.dataType) {
case o.a.ANIMATIONTYPE_FLOAT:
m = 0;
break;
case o.a.ANIMATIONTYPE_QUATERNION:
m = s;
break;
case o.a.ANIMATIONTYPE_VECTOR3:
m = c;
break;
case o.a.ANIMATIONTYPE_VECTOR2:
m = l;
break;
case o.a.ANIMATIONTYPE_SIZE:
m = u;
break;
case o.a.ANIMATIONTYPE_COLOR3:
m = h;
}
if (this._host && this._host.syncRoot) {
var x = this._host.syncRoot;
g = t + (n - t) * ((x.masterFrame - x.fromFrame) / (x.toFrame - x.fromFrame));
} else g = f && 0 !== b ? t + (_ % b) : n;
var T = this._events;
if (((b > 0 && this.currentFrame > g) || (b < 0 && this.currentFrame < g)) && (this._onLoop(), T.length)) for (var S = 0; S < T.length; S++) T[S].onlyOnce || (T[S].isDone = !1);
(this._currentFrame = g), (this._animationState.repeatCount = 0 === b ? 0 : (_ / b) >> 0), (this._animationState.highLimitValue = v), (this._animationState.offsetValue = m);
var O = d._interpolate(g, this._animationState);
if ((this.setValue(O, a), T.length))
for (S = 0; S < T.length; S++)
if ((b > 0 && g >= T[S].frame && T[S].frame >= t) || (b < 0 && g <= T[S].frame && T[S].frame <= t)) {
var E = T[S];
E.isDone || (E.onlyOnce && (T.splice(S, 1), S--), (E.isDone = !0), E.action(g));
}
return f || (this._stopped = !0), f;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.ExponentialBackoff = function (e, t) {
return (
void 0 === e && (e = 3),
void 0 === t && (t = 500),
function (n, i, r) {
return 0 !== i.status || r >= e || -1 !== n.indexOf("file:") ? -1 : Math.pow(2, r) * t;
}
);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this._isDepthTestDirty = !1), (this._isDepthMaskDirty = !1), (this._isDepthFuncDirty = !1), (this._isCullFaceDirty = !1), (this._isCullDirty = !1), (this._isZOffsetDirty = !1), (this._isFrontFaceDirty = !1), this.reset();
}
return (
Object.defineProperty(e.prototype, "isDirty", {
get: function () {
return this._isDepthFuncDirty || this._isDepthTestDirty || this._isDepthMaskDirty || this._isCullFaceDirty || this._isCullDirty || this._isZOffsetDirty || this._isFrontFaceDirty;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "zOffset", {
get: function () {
return this._zOffset;
},
set: function (e) {
this._zOffset !== e && ((this._zOffset = e), (this._isZOffsetDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "cullFace", {
get: function () {
return this._cullFace;
},
set: function (e) {
this._cullFace !== e && ((this._cullFace = e), (this._isCullFaceDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "cull", {
get: function () {
return this._cull;
},
set: function (e) {
this._cull !== e && ((this._cull = e), (this._isCullDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "depthFunc", {
get: function () {
return this._depthFunc;
},
set: function (e) {
this._depthFunc !== e && ((this._depthFunc = e), (this._isDepthFuncDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "depthMask", {
get: function () {
return this._depthMask;
},
set: function (e) {
this._depthMask !== e && ((this._depthMask = e), (this._isDepthMaskDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "depthTest", {
get: function () {
return this._depthTest;
},
set: function (e) {
this._depthTest !== e && ((this._depthTest = e), (this._isDepthTestDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "frontFace", {
get: function () {
return this._frontFace;
},
set: function (e) {
this._frontFace !== e && ((this._frontFace = e), (this._isFrontFaceDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.reset = function () {
(this._depthMask = !0),
(this._depthTest = !0),
(this._depthFunc = null),
(this._cullFace = null),
(this._cull = null),
(this._zOffset = 0),
(this._frontFace = null),
(this._isDepthTestDirty = !0),
(this._isDepthMaskDirty = !0),
(this._isDepthFuncDirty = !1),
(this._isCullFaceDirty = !1),
(this._isCullDirty = !1),
(this._isZOffsetDirty = !1),
(this._isFrontFaceDirty = !1);
}),
(e.prototype.apply = function (e) {
this.isDirty &&
(this._isCullDirty && (this.cull ? e.enable(e.CULL_FACE) : e.disable(e.CULL_FACE), (this._isCullDirty = !1)),
this._isCullFaceDirty && (e.cullFace(this.cullFace), (this._isCullFaceDirty = !1)),
this._isDepthMaskDirty && (e.depthMask(this.depthMask), (this._isDepthMaskDirty = !1)),
this._isDepthTestDirty && (this.depthTest ? e.enable(e.DEPTH_TEST) : e.disable(e.DEPTH_TEST), (this._isDepthTestDirty = !1)),
this._isDepthFuncDirty && (e.depthFunc(this.depthFunc), (this._isDepthFuncDirty = !1)),
this._isZOffsetDirty && (this.zOffset ? (e.enable(e.POLYGON_OFFSET_FILL), e.polygonOffset(this.zOffset, 0)) : e.disable(e.POLYGON_OFFSET_FILL), (this._isZOffsetDirty = !1)),
this._isFrontFaceDirty && (e.frontFace(this.frontFace), (this._isFrontFaceDirty = !1)));
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this._isStencilTestDirty = !1), (this._isStencilMaskDirty = !1), (this._isStencilFuncDirty = !1), (this._isStencilOpDirty = !1), this.reset();
}
return (
Object.defineProperty(e.prototype, "isDirty", {
get: function () {
return this._isStencilTestDirty || this._isStencilMaskDirty || this._isStencilFuncDirty || this._isStencilOpDirty;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilFunc", {
get: function () {
return this._stencilFunc;
},
set: function (e) {
this._stencilFunc !== e && ((this._stencilFunc = e), (this._isStencilFuncDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilFuncRef", {
get: function () {
return this._stencilFuncRef;
},
set: function (e) {
this._stencilFuncRef !== e && ((this._stencilFuncRef = e), (this._isStencilFuncDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilFuncMask", {
get: function () {
return this._stencilFuncMask;
},
set: function (e) {
this._stencilFuncMask !== e && ((this._stencilFuncMask = e), (this._isStencilFuncDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilOpStencilFail", {
get: function () {
return this._stencilOpStencilFail;
},
set: function (e) {
this._stencilOpStencilFail !== e && ((this._stencilOpStencilFail = e), (this._isStencilOpDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilOpDepthFail", {
get: function () {
return this._stencilOpDepthFail;
},
set: function (e) {
this._stencilOpDepthFail !== e && ((this._stencilOpDepthFail = e), (this._isStencilOpDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilOpStencilDepthPass", {
get: function () {
return this._stencilOpStencilDepthPass;
},
set: function (e) {
this._stencilOpStencilDepthPass !== e && ((this._stencilOpStencilDepthPass = e), (this._isStencilOpDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilMask", {
get: function () {
return this._stencilMask;
},
set: function (e) {
this._stencilMask !== e && ((this._stencilMask = e), (this._isStencilMaskDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "stencilTest", {
get: function () {
return this._stencilTest;
},
set: function (e) {
this._stencilTest !== e && ((this._stencilTest = e), (this._isStencilTestDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.reset = function () {
(this._stencilTest = !1),
(this._stencilMask = 255),
(this._stencilFunc = e.ALWAYS),
(this._stencilFuncRef = 1),
(this._stencilFuncMask = 255),
(this._stencilOpStencilFail = e.KEEP),
(this._stencilOpDepthFail = e.KEEP),
(this._stencilOpStencilDepthPass = e.REPLACE),
(this._isStencilTestDirty = !0),
(this._isStencilMaskDirty = !0),
(this._isStencilFuncDirty = !0),
(this._isStencilOpDirty = !0);
}),
(e.prototype.apply = function (e) {
this.isDirty &&
(this._isStencilTestDirty && (this.stencilTest ? e.enable(e.STENCIL_TEST) : e.disable(e.STENCIL_TEST), (this._isStencilTestDirty = !1)),
this._isStencilMaskDirty && (e.stencilMask(this.stencilMask), (this._isStencilMaskDirty = !1)),
this._isStencilFuncDirty && (e.stencilFunc(this.stencilFunc, this.stencilFuncRef, this.stencilFuncMask), (this._isStencilFuncDirty = !1)),
this._isStencilOpDirty && (e.stencilOp(this.stencilOpStencilFail, this.stencilOpDepthFail, this.stencilOpStencilDepthPass), (this._isStencilOpDirty = !1)));
}),
(e.ALWAYS = 519),
(e.KEEP = 7680),
(e.REPLACE = 7681),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this._isAlphaBlendDirty = !1),
(this._isBlendFunctionParametersDirty = !1),
(this._isBlendEquationParametersDirty = !1),
(this._isBlendConstantsDirty = !1),
(this._alphaBlend = !1),
(this._blendFunctionParameters = new Array(4)),
(this._blendEquationParameters = new Array(2)),
(this._blendConstants = new Array(4)),
this.reset();
}
return (
Object.defineProperty(e.prototype, "isDirty", {
get: function () {
return this._isAlphaBlendDirty || this._isBlendFunctionParametersDirty;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "alphaBlend", {
get: function () {
return this._alphaBlend;
},
set: function (e) {
this._alphaBlend !== e && ((this._alphaBlend = e), (this._isAlphaBlendDirty = !0));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.setAlphaBlendConstants = function (e, t, n, i) {
(this._blendConstants[0] === e && this._blendConstants[1] === t && this._blendConstants[2] === n && this._blendConstants[3] === i) ||
((this._blendConstants[0] = e), (this._blendConstants[1] = t), (this._blendConstants[2] = n), (this._blendConstants[3] = i), (this._isBlendConstantsDirty = !0));
}),
(e.prototype.setAlphaBlendFunctionParameters = function (e, t, n, i) {
(this._blendFunctionParameters[0] === e && this._blendFunctionParameters[1] === t && this._blendFunctionParameters[2] === n && this._blendFunctionParameters[3] === i) ||
((this._blendFunctionParameters[0] = e), (this._blendFunctionParameters[1] = t), (this._blendFunctionParameters[2] = n), (this._blendFunctionParameters[3] = i), (this._isBlendFunctionParametersDirty = !0));
}),
(e.prototype.setAlphaEquationParameters = function (e, t) {
(this._blendEquationParameters[0] === e && this._blendEquationParameters[1] === t) || ((this._blendEquationParameters[0] = e), (this._blendEquationParameters[1] = t), (this._isBlendEquationParametersDirty = !0));
}),
(e.prototype.reset = function () {
(this._alphaBlend = !1),
(this._blendFunctionParameters[0] = null),
(this._blendFunctionParameters[1] = null),
(this._blendFunctionParameters[2] = null),
(this._blendFunctionParameters[3] = null),
(this._blendEquationParameters[0] = null),
(this._blendEquationParameters[1] = null),
(this._blendConstants[0] = null),
(this._blendConstants[1] = null),
(this._blendConstants[2] = null),
(this._blendConstants[3] = null),
(this._isAlphaBlendDirty = !0),
(this._isBlendFunctionParametersDirty = !1),
(this._isBlendEquationParametersDirty = !1),
(this._isBlendConstantsDirty = !1);
}),
(e.prototype.apply = function (e) {
this.isDirty &&
(this._isAlphaBlendDirty && (this._alphaBlend ? e.enable(e.BLEND) : e.disable(e.BLEND), (this._isAlphaBlendDirty = !1)),
this._isBlendFunctionParametersDirty &&
(e.blendFuncSeparate(this._blendFunctionParameters[0], this._blendFunctionParameters[1], this._blendFunctionParameters[2], this._blendFunctionParameters[3]), (this._isBlendFunctionParametersDirty = !1)),
this._isBlendEquationParametersDirty && (e.blendEquationSeparate(this._blendEquationParameters[0], this._blendEquationParameters[1]), (this._isBlendEquationParametersDirty = !1)),
this._isBlendConstantsDirty && (e.blendColor(this._blendConstants[0], this._blendConstants[1], this._blendConstants[2], this._blendConstants[3]), (this._isBlendConstantsDirty = !1)));
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
(this.vertexCompilationError = null), (this.fragmentCompilationError = null), (this.programLinkError = null), (this.programValidationError = null);
}
return (
Object.defineProperty(e.prototype, "isAsync", {
get: function () {
return this.isParallelCompiled;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isReady", {
get: function () {
return !!this.program && (!this.isParallelCompiled || this.engine._isRenderingStateCompiled(this));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._handlesSpectorRebuildCallback = function (e) {
e && this.program && e(this.program);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
var i;
n.d(t, "a", function () {
return a;
}),
(function (e) {
(e[(e.Pending = 0)] = "Pending"), (e[(e.Fulfilled = 1)] = "Fulfilled"), (e[(e.Rejected = 2)] = "Rejected");
})(i || (i = {}));
var r = function () {
(this.count = 0), (this.target = 0), (this.results = []);
},
o = (function () {
function e(e) {
var t = this;
if (((this._state = i.Pending), (this._children = new Array()), (this._rejectWasConsumed = !1), e))
try {
e(
function (e) {
t._resolve(e);
},
function (e) {
t._reject(e);
}
);
} catch (e) {
this._reject(e);
}
}
return (
Object.defineProperty(e.prototype, "_result", {
get: function () {
return this._resultValue;
},
set: function (e) {
(this._resultValue = e), this._parent && void 0 === this._parent._result && (this._parent._result = e);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.catch = function (e) {
return this.then(void 0, e);
}),
(e.prototype.then = function (t, n) {
var r = this,
o = new e();
return (
(o._onFulfilled = t),
(o._onRejected = n),
this._children.push(o),
(o._parent = this),
this._state !== i.Pending &&
setTimeout(function () {
if (r._state === i.Fulfilled || r._rejectWasConsumed) {
var e = o._resolve(r._result);
if (null != e)
if (void 0 !== e._state) {
var t = e;
o._children.push(t), (t._parent = o), (o = t);
} else o._result = e;
} else o._reject(r._reason);
}),
o
);
}),
(e.prototype._moveChildren = function (e) {
var t,
n = this;
if (
((t = this._children).push.apply(t, e.splice(0, e.length)),
this._children.forEach(function (e) {
e._parent = n;
}),
this._state === i.Fulfilled)
)
for (var r = 0, o = this._children; r < o.length; r++) {
o[r]._resolve(this._result);
}
else if (this._state === i.Rejected)
for (var a = 0, s = this._children; a < s.length; a++) {
s[a]._reject(this._reason);
}
}),
(e.prototype._resolve = function (e) {
try {
this._state = i.Fulfilled;
var t = null;
if ((this._onFulfilled && (t = this._onFulfilled(e)), null != t))
if (void 0 !== t._state) {
var n = t;
(n._parent = this), n._moveChildren(this._children), (e = n._result);
} else e = t;
this._result = e;
for (var r = 0, o = this._children; r < o.length; r++) {
o[r]._resolve(e);
}
(this._children.length = 0), delete this._onFulfilled, delete this._onRejected;
} catch (e) {
this._reject(e, !0);
}
}),
(e.prototype._reject = function (e, t) {
if ((void 0 === t && (t = !1), (this._state = i.Rejected), (this._reason = e), this._onRejected && !t))
try {
this._onRejected(e), (this._rejectWasConsumed = !0);
} catch (t) {
e = t;
}
for (var n = 0, r = this._children; n < r.length; n++) {
var o = r[n];
this._rejectWasConsumed ? o._resolve(null) : o._reject(e);
}
(this._children.length = 0), delete this._onFulfilled, delete this._onRejected;
}),
(e.resolve = function (t) {
var n = new e();
return n._resolve(t), n;
}),
(e._RegisterForFulfillment = function (e, t, n) {
e.then(
function (e) {
return (t.results[n] = e), t.count++, t.count === t.target && t.rootPromise._resolve(t.results), null;
},
function (e) {
t.rootPromise._state !== i.Rejected && t.rootPromise._reject(e);
}
);
}),
(e.all = function (t) {
var n = new e(),
i = new r();
if (((i.target = t.length), (i.rootPromise = n), t.length)) for (var o = 0; o < t.length; o++) e._RegisterForFulfillment(t[o], i, o);
else n._resolve([]);
return n;
}),
(e.race = function (t) {
var n = new e();
if (t.length)
for (var i = 0, r = t; i < r.length; i++) {
r[i].then(
function (e) {
return n && (n._resolve(e), (n = null)), null;
},
function (e) {
n && (n._reject(e), (n = null));
}
);
}
return n;
}),
e
);
})(),
a = (function () {
function e() {}
return (
(e.Apply = function (e) {
(void 0 === e && (e = !1), e || "undefined" == typeof Promise) && (window.Promise = o);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
}),
n.d(t, "b", function () {
return o;
});
var i = n(76),
r = (function () {
function e(e) {
void 0 === e && (e = 30), (this._enabled = !0), (this._rollingFrameTime = new o(e));
}
return (
(e.prototype.sampleFrame = function (e) {
if ((void 0 === e && (e = i.a.Now), this._enabled)) {
if (null != this._lastFrameTimeMs) {
var t = e - this._lastFrameTimeMs;
this._rollingFrameTime.add(t);
}
this._lastFrameTimeMs = e;
}
}),
Object.defineProperty(e.prototype, "averageFrameTime", {
get: function () {
return this._rollingFrameTime.average;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "averageFrameTimeVariance", {
get: function () {
return this._rollingFrameTime.variance;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "instantaneousFrameTime", {
get: function () {
return this._rollingFrameTime.history(0);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "averageFPS", {
get: function () {
return 1e3 / this._rollingFrameTime.average;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "instantaneousFPS", {
get: function () {
var e = this._rollingFrameTime.history(0);
return 0 === e ? 0 : 1e3 / e;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "isSaturated", {
get: function () {
return this._rollingFrameTime.isSaturated();
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.enable = function () {
this._enabled = !0;
}),
(e.prototype.disable = function () {
(this._enabled = !1), (this._lastFrameTimeMs = null);
}),
Object.defineProperty(e.prototype, "isEnabled", {
get: function () {
return this._enabled;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.reset = function () {
(this._lastFrameTimeMs = null), this._rollingFrameTime.reset();
}),
e
);
})(),
o = (function () {
function e(e) {
(this._samples = new Array(e)), this.reset();
}
return (
(e.prototype.add = function (e) {
var t;
if (this.isSaturated()) {
var n = this._samples[this._pos];
(t = n - this.average), (this.average -= t / (this._sampleCount - 1)), (this._m2 -= t * (n - this.average));
} else this._sampleCount++;
(t = e - this.average),
(this.average += t / this._sampleCount),
(this._m2 += t * (e - this.average)),
(this.variance = this._m2 / (this._sampleCount - 1)),
(this._samples[this._pos] = e),
this._pos++,
(this._pos %= this._samples.length);
}),
(e.prototype.history = function (e) {
if (e >= this._sampleCount || e >= this._samples.length) return 0;
var t = this._wrapPosition(this._pos - 1);
return this._samples[this._wrapPosition(t - e)];
}),
(e.prototype.isSaturated = function () {
return this._sampleCount >= this._samples.length;
}),
(e.prototype.reset = function () {
(this.average = 0), (this.variance = 0), (this._sampleCount = 0), (this._pos = 0), (this._m2 = 0);
}),
(e.prototype._wrapPosition = function (e) {
var t = this._samples.length;
return ((e % t) + t) % t;
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(1),
r = function () {
(this._checkCollisions = !1), (this._collisionMask = -1), (this._collisionGroup = -1), (this._collider = null), (this._oldPositionForCollisions = new i.e(0, 0, 0)), (this._diffPositionForCollisions = new i.e(0, 0, 0));
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(47),
r = n(1),
o = (function () {
function e(e, t, n, r, o) {
void 0 === n && (n = null),
void 0 === r && (r = null),
void 0 === o && (o = null),
(this.index = e),
(this._opaqueSubMeshes = new i.a(256)),
(this._transparentSubMeshes = new i.a(256)),
(this._alphaTestSubMeshes = new i.a(256)),
(this._depthOnlySubMeshes = new i.a(256)),
(this._particleSystems = new i.a(256)),
(this._spriteManagers = new i.a(256)),
(this._edgesRenderers = new i.a(16)),
(this._scene = t),
(this.opaqueSortCompareFn = n),
(this.alphaTestSortCompareFn = r),
(this.transparentSortCompareFn = o);
}
return (
Object.defineProperty(e.prototype, "opaqueSortCompareFn", {
set: function (t) {
(this._opaqueSortCompareFn = t), (this._renderOpaque = t ? this.renderOpaqueSorted : e.renderUnsorted);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "alphaTestSortCompareFn", {
set: function (t) {
(this._alphaTestSortCompareFn = t), (this._renderAlphaTest = t ? this.renderAlphaTestSorted : e.renderUnsorted);
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "transparentSortCompareFn", {
set: function (t) {
(this._transparentSortCompareFn = t || e.defaultTransparentSortCompare), (this._renderTransparent = this.renderTransparentSorted);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.render = function (e, t, n, i) {
if (e) e(this._opaqueSubMeshes, this._alphaTestSubMeshes, this._transparentSubMeshes, this._depthOnlySubMeshes);
else {
var r = this._scene.getEngine();
0 !== this._depthOnlySubMeshes.length && (r.setColorWrite(!1), this._renderAlphaTest(this._depthOnlySubMeshes), r.setColorWrite(!0)),
0 !== this._opaqueSubMeshes.length && this._renderOpaque(this._opaqueSubMeshes),
0 !== this._alphaTestSubMeshes.length && this._renderAlphaTest(this._alphaTestSubMeshes);
var o = r.getStencilBuffer();
if (
(r.setStencilBuffer(!1),
t && this._renderSprites(),
n && this._renderParticles(i),
this.onBeforeTransparentRendering && this.onBeforeTransparentRendering(),
0 !== this._transparentSubMeshes.length && (this._renderTransparent(this._transparentSubMeshes), r.setAlphaMode(0)),
r.setStencilBuffer(!1),
this._edgesRenderers.length)
) {
for (var a = 0; a < this._edgesRenderers.length; a++) this._edgesRenderers.data[a].render();
r.setAlphaMode(0);
}
r.setStencilBuffer(o);
}
}),
(e.prototype.renderOpaqueSorted = function (t) {
return e.renderSorted(t, this._opaqueSortCompareFn, this._scene.activeCamera, !1);
}),
(e.prototype.renderAlphaTestSorted = function (t) {
return e.renderSorted(t, this._alphaTestSortCompareFn, this._scene.activeCamera, !1);
}),
(e.prototype.renderTransparentSorted = function (t) {
return e.renderSorted(t, this._transparentSortCompareFn, this._scene.activeCamera, !0);
}),
(e.renderSorted = function (t, n, i, o) {
for (var a, s = 0, c = i ? i.globalPosition : e._zeroVector; s < t.length; s++)
((a = t.data[s])._alphaIndex = a.getMesh().alphaIndex), (a._distanceToCamera = r.e.Distance(a.getBoundingInfo().boundingSphere.centerWorld, c));
var l = t.data.slice(0, t.length);
for (n && l.sort(n), s = 0; s < l.length; s++) {
if (((a = l[s]), o)) {
var u = a.getMaterial();
if (u && u.needDepthPrePass) {
var h = u.getScene().getEngine();
h.setColorWrite(!1), h.setAlphaMode(0), a.render(!1), h.setColorWrite(!0);
}
}
a.render(o);
}
}),
(e.renderUnsorted = function (e) {
for (var t = 0; t < e.length; t++) {
e.data[t].render(!1);
}
}),
(e.defaultTransparentSortCompare = function (t, n) {
return t._alphaIndex > n._alphaIndex ? 1 : t._alphaIndex < n._alphaIndex ? -1 : e.backToFrontSortCompare(t, n);
}),
(e.backToFrontSortCompare = function (e, t) {
return e._distanceToCamera < t._distanceToCamera ? 1 : e._distanceToCamera > t._distanceToCamera ? -1 : 0;
}),
(e.frontToBackSortCompare = function (e, t) {
return e._distanceToCamera < t._distanceToCamera ? -1 : e._distanceToCamera > t._distanceToCamera ? 1 : 0;
}),
(e.prototype.prepare = function () {
this._opaqueSubMeshes.reset(),
this._transparentSubMeshes.reset(),
this._alphaTestSubMeshes.reset(),
this._depthOnlySubMeshes.reset(),
this._particleSystems.reset(),
this._spriteManagers.reset(),
this._edgesRenderers.reset();
}),
(e.prototype.dispose = function () {
this._opaqueSubMeshes.dispose(),
this._transparentSubMeshes.dispose(),
this._alphaTestSubMeshes.dispose(),
this._depthOnlySubMeshes.dispose(),
this._particleSystems.dispose(),
this._spriteManagers.dispose(),
this._edgesRenderers.dispose();
}),
(e.prototype.dispatch = function (e, t, n) {
void 0 === t && (t = e.getMesh()),
void 0 === n && (n = e.getMaterial()),
null != n &&
(n.needAlphaBlendingForMesh(t)
? this._transparentSubMeshes.push(e)
: n.needAlphaTesting()
? (n.needDepthPrePass && this._depthOnlySubMeshes.push(e), this._alphaTestSubMeshes.push(e))
: (n.needDepthPrePass && this._depthOnlySubMeshes.push(e), this._opaqueSubMeshes.push(e)),
(t._renderingGroup = this),
t._edgesRenderer && t._edgesRenderer.isEnabled && this._edgesRenderers.push(t._edgesRenderer));
}),
(e.prototype.dispatchSprites = function (e) {
this._spriteManagers.push(e);
}),
(e.prototype.dispatchParticles = function (e) {
this._particleSystems.push(e);
}),
(e.prototype._renderParticles = function (e) {
if (0 !== this._particleSystems.length) {
var t = this._scene.activeCamera;
this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);
for (var n = 0; n < this._particleSystems.length; n++) {
var i = this._particleSystems.data[n];
if (0 !== (t && t.layerMask & i.layerMask)) {
var r = i.emitter;
(r.position && e && -1 === e.indexOf(r)) || this._scene._activeParticles.addCount(i.render(), !1);
}
}
this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene);
}
}),
(e.prototype._renderSprites = function () {
if (this._scene.spritesEnabled && 0 !== this._spriteManagers.length) {
var e = this._scene.activeCamera;
this._scene.onBeforeSpritesRenderingObservable.notifyObservers(this._scene);
for (var t = 0; t < this._spriteManagers.length; t++) {
var n = this._spriteManagers.data[t];
0 !== (e && e.layerMask & n.layerMask) && n.render();
}
this._scene.onAfterSpritesRenderingObservable.notifyObservers(this._scene);
}
}),
(e._zeroVector = r.e.Zero()),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e(e, t, n) {
(this.frame = e), (this.action = t), (this.onlyOnce = n), (this.isDone = !1);
}
return (
(e.prototype._clone = function () {
return new e(this.frame, this.action, this.onlyOnce);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = function (e, t) {
(this.distance = e), (this.mesh = t);
};
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(10),
r = (function () {
function e(e, t, n) {
var i = this;
if (((this.loop = !1), (this._coneInnerAngle = 360), (this._coneOuterAngle = 360), (this._volume = 1), (this.isPlaying = !1), (this.isPaused = !1), (this._sounds = []), (this._weights = []), t.length !== n.length))
throw new Error("Sounds length does not equal weights length");
(this.loop = e), (this._weights = n);
for (var r = 0, o = 0, a = n; o < a.length; o++) {
r += a[o];
}
for (var s = r > 0 ? 1 / r : 0, c = 0; c < this._weights.length; c++) this._weights[c] *= s;
this._sounds = t;
for (var l = 0, u = this._sounds; l < u.length; l++) {
u[l].onEndedObservable.add(function () {
i._onended();
});
}
}
return (
Object.defineProperty(e.prototype, "directionalConeInnerAngle", {
get: function () {
return this._coneInnerAngle;
},
set: function (e) {
if (e !== this._coneInnerAngle) {
if (this._coneOuterAngle < e) return void i.a.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");
this._coneInnerAngle = e;
for (var t = 0, n = this._sounds; t < n.length; t++) {
n[t].directionalConeInnerAngle = e;
}
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "directionalConeOuterAngle", {
get: function () {
return this._coneOuterAngle;
},
set: function (e) {
if (e !== this._coneOuterAngle) {
if (e < this._coneInnerAngle) return void i.a.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");
this._coneOuterAngle = e;
for (var t = 0, n = this._sounds; t < n.length; t++) {
n[t].directionalConeOuterAngle = e;
}
}
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "volume", {
get: function () {
return this._volume;
},
set: function (e) {
if (e !== this._volume)
for (var t = 0, n = this._sounds; t < n.length; t++) {
n[t].setVolume(e);
}
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._onended = function () {
void 0 !== this._currentIndex && (this._sounds[this._currentIndex].autoplay = !1), this.loop && this.isPlaying ? this.play() : (this.isPlaying = !1);
}),
(e.prototype.pause = function () {
(this.isPaused = !0), void 0 !== this._currentIndex && this._sounds[this._currentIndex].pause();
}),
(e.prototype.stop = function () {
(this.isPlaying = !1), void 0 !== this._currentIndex && this._sounds[this._currentIndex].stop();
}),
(e.prototype.play = function (e) {
if (!this.isPaused) {
this.stop();
for (var t = Math.random(), n = 0, i = 0; i < this._weights.length; i++)
if (t <= (n += this._weights[i])) {
this._currentIndex = i;
break;
}
}
var r = this._sounds[this._currentIndex];
r.isReady() ? r.play(0, this.isPaused ? void 0 : e) : (r.autoplay = !0), (this.isPlaying = !0), (this.isPaused = !1);
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {
var e = this;
(this.delay = 0),
(this.fadeInTime = 300),
(this._millisecondsPerFrame = 1e3 / 60),
(this._hovered = !1),
(this._hoverValue = 0),
(this._ownerNode = null),
(this._update = function () {
if (e._ownerNode) {
if (((e._hoverValue += e._hovered ? e._millisecondsPerFrame : -e._millisecondsPerFrame), e._setAllVisibility(e._ownerNode, (e._hoverValue - e.delay) / e.fadeInTime), e._ownerNode.visibility > 1))
return e._setAllVisibility(e._ownerNode, 1), void (e._hoverValue = e.fadeInTime + e.delay);
if (e._ownerNode.visibility < 0 && (e._setAllVisibility(e._ownerNode, 0), e._hoverValue < 0)) return void (e._hoverValue = 0);
setTimeout(e._update, e._millisecondsPerFrame);
}
});
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return "FadeInOut";
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.init = function () {}),
(e.prototype.attach = function (e) {
(this._ownerNode = e), this._setAllVisibility(this._ownerNode, 0);
}),
(e.prototype.detach = function () {
this._ownerNode = null;
}),
(e.prototype.fadeIn = function (e) {
(this._hovered = e), this._update();
}),
(e.prototype._setAllVisibility = function (e, t) {
var n = this;
(e.visibility = t),
e.getChildMeshes().forEach(function (e) {
n._setAllVisibility(e, t);
});
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(3),
o = n(42),
a = n(89),
s = n(1),
c = (function () {
function e() {
(this.keysUp = [38]), (this.keysDown = [40]), (this.keysLeft = [37]), (this.keysRight = [39]), (this._keys = new Array());
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this;
this._onCanvasBlurObserver ||
((this._scene = this.camera.getScene()),
(this._engine = this._scene.getEngine()),
(this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () {
n._keys = [];
})),
(this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) {
var i,
r = e.event;
r.metaKey ||
(e.type === a.a.KEYDOWN
? (-1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode)) ||
(-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), t || r.preventDefault())
: (-1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode)) ||
((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), t || r.preventDefault()));
})));
}),
(e.prototype.detachControl = function (e) {
this._scene &&
(this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),
this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),
(this._onKeyboardObserver = null),
(this._onCanvasBlurObserver = null)),
(this._keys = []);
}),
(e.prototype.checkInputs = function () {
if (this._onKeyboardObserver)
for (var e = this.camera, t = 0; t < this._keys.length; t++) {
var n = this._keys[t],
i = e._computeLocalCameraSpeed();
-1 !== this.keysLeft.indexOf(n)
? e._localDirection.copyFromFloats(-i, 0, 0)
: -1 !== this.keysUp.indexOf(n)
? e._localDirection.copyFromFloats(0, 0, i)
: -1 !== this.keysRight.indexOf(n)
? e._localDirection.copyFromFloats(i, 0, 0)
: -1 !== this.keysDown.indexOf(n) && e._localDirection.copyFromFloats(0, 0, -i),
e.getScene().useRightHandedSystem && (e._localDirection.z *= -1),
e.getViewMatrix().invertToRef(e._cameraTransformMatrix),
s.e.TransformNormalToRef(e._localDirection, e._cameraTransformMatrix, e._transformedDirection),
e.cameraDirection.addInPlace(e._transformedDirection);
}
}),
(e.prototype.getClassName = function () {
return "FreeCameraKeyboardMoveInput";
}),
(e.prototype._onLostFocus = function () {
this._keys = [];
}),
(e.prototype.getSimpleName = function () {
return "keyboard";
}),
Object(i.c)([Object(r.c)()], e.prototype, "keysUp", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "keysDown", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "keysLeft", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "keysRight", void 0),
e
);
})();
o.a.FreeCameraKeyboardMoveInput = c;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(6),
o = n(3),
a = n(42),
s = n(20),
c = (function () {
function e(e) {
void 0 === e && (e = !0),
(this.touchEnabled = e),
(this.buttons = [0, 1, 2]),
(this.angularSensibility = 2e3),
(this.previousPosition = null),
(this.onPointerMovedObservable = new r.c()),
(this._allowCameraRotation = !0);
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this,
i = this.camera.getEngine();
this._pointerInput ||
(this._pointerInput = function (r) {
var o = r.event;
if (!i.isInVRExclusivePointerMode && (n.touchEnabled || "touch" !== o.pointerType) && (r.type === s.a.POINTERMOVE || -1 !== n.buttons.indexOf(o.button))) {
var a = o.srcElement || o.target;
if (r.type === s.a.POINTERDOWN && a) {
try {
a.setPointerCapture(o.pointerId);
} catch (e) {}
(n.previousPosition = { x: o.clientX, y: o.clientY }), t || (o.preventDefault(), e.focus());
} else if (r.type === s.a.POINTERUP && a) {
try {
a.releasePointerCapture(o.pointerId);
} catch (e) {}
(n.previousPosition = null), t || o.preventDefault();
} else if (r.type === s.a.POINTERMOVE) {
if (!n.previousPosition || i.isPointerLock) return;
var c = o.clientX - n.previousPosition.x,
l = o.clientY - n.previousPosition.y;
n.camera.getScene().useRightHandedSystem && (c *= -1),
n.camera.parent && n.camera.parent._getWorldMatrixDeterminant() < 0 && (c *= -1),
n._allowCameraRotation && ((n.camera.cameraRotation.y += c / n.angularSensibility), (n.camera.cameraRotation.x += l / n.angularSensibility)),
n.onPointerMovedObservable.notifyObservers({ offsetX: c, offsetY: l }),
(n.previousPosition = { x: o.clientX, y: o.clientY }),
t || o.preventDefault();
}
}
}),
(this._onMouseMove = function (e) {
if (i.isPointerLock && !i.isInVRExclusivePointerMode) {
var r = e.movementX || e.mozMovementX || e.webkitMovementX || e.msMovementX || 0;
n.camera.getScene().useRightHandedSystem && (r *= -1), n.camera.parent && n.camera.parent._getWorldMatrixDeterminant() < 0 && (r *= -1), (n.camera.cameraRotation.y += r / n.angularSensibility);
var o = e.movementY || e.mozMovementY || e.webkitMovementY || e.msMovementY || 0;
(n.camera.cameraRotation.x += o / n.angularSensibility), (n.previousPosition = null), t || e.preventDefault();
}
}),
(this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, s.a.POINTERDOWN | s.a.POINTERUP | s.a.POINTERMOVE)),
e.addEventListener("mousemove", this._onMouseMove, !1),
e.addEventListener("contextmenu", this.onContextMenu.bind(this), !1);
}),
(e.prototype.onContextMenu = function (e) {
e.preventDefault();
}),
(e.prototype.detachControl = function (e) {
this._observer &&
e &&
(this.camera.getScene().onPointerObservable.remove(this._observer),
this._onMouseMove && e.removeEventListener("mousemove", this._onMouseMove),
this.onContextMenu && e.removeEventListener("contextmenu", this.onContextMenu),
this.onPointerMovedObservable && this.onPointerMovedObservable.clear(),
(this._observer = null),
(this._onMouseMove = null),
(this.previousPosition = null));
}),
(e.prototype.getClassName = function () {
return "FreeCameraMouseInput";
}),
(e.prototype.getSimpleName = function () {
return "mouse";
}),
Object(i.c)([Object(o.c)()], e.prototype, "buttons", void 0),
Object(i.c)([Object(o.c)()], e.prototype, "angularSensibility", void 0),
e
);
})();
a.a.FreeCameraMouseInput = c;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(3),
o = n(42),
a = n(20),
s = n(1),
c = (function () {
function e() {
(this.touchAngularSensibility = 2e5), (this.touchMoveSensibility = 250), (this._offsetX = null), (this._offsetY = null), (this._pointerPressed = new Array());
}
return (
(e.prototype.attachControl = function (e, t) {
var n = this,
i = null;
void 0 === this._pointerInput &&
((this._onLostFocus = function () {
(n._offsetX = null), (n._offsetY = null);
}),
(this._pointerInput = function (e) {
var r = e.event;
if ("mouse" !== r.pointerType)
if (e.type === a.a.POINTERDOWN) {
if ((t || r.preventDefault(), n._pointerPressed.push(r.pointerId), 1 !== n._pointerPressed.length)) return;
i = { x: r.clientX, y: r.clientY };
} else if (e.type === a.a.POINTERUP) {
if ((t || r.preventDefault(), -1 === (o = n._pointerPressed.indexOf(r.pointerId)))) return;
if ((n._pointerPressed.splice(o, 1), 0 != o)) return;
(i = null), (n._offsetX = null), (n._offsetY = null);
} else if (e.type === a.a.POINTERMOVE) {
if ((t || r.preventDefault(), !i)) return;
var o;
if (0 != (o = n._pointerPressed.indexOf(r.pointerId))) return;
(n._offsetX = r.clientX - i.x), (n._offsetY = -(r.clientY - i.y));
}
})),
(this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, a.a.POINTERDOWN | a.a.POINTERUP | a.a.POINTERMOVE)),
this._onLostFocus && e.addEventListener("blur", this._onLostFocus);
}),
(e.prototype.detachControl = function (e) {
this._pointerInput &&
e &&
(this._observer && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null)),
this._onLostFocus && (e.removeEventListener("blur", this._onLostFocus), (this._onLostFocus = null)),
(this._pointerPressed = []),
(this._offsetX = null),
(this._offsetY = null));
}),
(e.prototype.checkInputs = function () {
if (this._offsetX && this._offsetY) {
var e = this.camera;
if (((e.cameraRotation.y += this._offsetX / this.touchAngularSensibility), this._pointerPressed.length > 1)) e.cameraRotation.x += -this._offsetY / this.touchAngularSensibility;
else {
var t = e._computeLocalCameraSpeed(),
n = new s.e(0, 0, (t * this._offsetY) / this.touchMoveSensibility);
s.a.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, 0, e._cameraRotationMatrix), e.cameraDirection.addInPlace(s.e.TransformCoordinates(n, e._cameraRotationMatrix));
}
}
}),
(e.prototype.getClassName = function () {
return "FreeCameraTouchInput";
}),
(e.prototype.getSimpleName = function () {
return "touch";
}),
Object(i.c)([Object(r.c)()], e.prototype, "touchAngularSensibility", void 0),
Object(i.c)([Object(r.c)()], e.prototype, "touchMoveSensibility", void 0),
e
);
})();
o.a.FreeCameraTouchInput = c;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(24),
r =
(n(229),
n(166),
(function () {
function e() {}
return (
(e.ExpandRGBDTexture = function (e) {
var t = e._texture;
if (t && e.isRGBD) {
var n = t.getEngine(),
r = n.getCaps(),
o = !1;
r.textureHalfFloatRender && r.textureHalfFloatLinearFiltering ? ((o = !0), (t.type = 2)) : r.textureFloatRender && r.textureFloatLinearFiltering && ((o = !0), (t.type = 1)),
o && ((t.isReady = !1), (t._isRGBD = !1), (t.invertY = !1)),
e.onLoadObservable.addOnce(function () {
if (o) {
var r = new i.a("rgbdDecode", "rgbdDecode", null, null, 1, null, 3, n, !1, void 0, t.type, void 0, null, !1),
a = n.createRenderTargetTexture(t.width, { generateDepthBuffer: !1, generateMipMaps: !1, generateStencilBuffer: !1, samplingMode: t.samplingMode, type: t.type, format: 5 });
r.getEffect().executeWhenCompiled(function () {
(r.onApply = function (e) {
e._bindTexture("textureSampler", t), e.setFloat2("scale", 1, 1);
}),
e.getScene().postProcessManager.directRender([r], a, !0),
n.restoreDefaultFramebuffer(),
n._releaseTexture(t),
n._releaseFramebufferObjects(a),
r && r.dispose(),
a._swapAndDie(t),
(t.isReady = !0);
});
}
});
}
}),
e
);
})());
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return r;
});
var i = n(21),
r = (function () {
function e(e) {
(this.name = i.a.NAME_LAYER), (this.scene = e), (this._engine = e.getEngine()), (e.layers = new Array());
}
return (
(e.prototype.register = function () {
this.scene._beforeCameraDrawStage.registerStep(i.a.STEP_BEFORECAMERADRAW_LAYER, this, this._drawCameraBackground),
this.scene._afterCameraDrawStage.registerStep(i.a.STEP_AFTERCAMERADRAW_LAYER, this, this._drawCameraForeground),
this.scene._beforeRenderTargetDrawStage.registerStep(i.a.STEP_BEFORERENDERTARGETDRAW_LAYER, this, this._drawRenderTargetBackground),
this.scene._afterRenderTargetDrawStage.registerStep(i.a.STEP_AFTERRENDERTARGETDRAW_LAYER, this, this._drawRenderTargetForeground);
}),
(e.prototype.rebuild = function () {
for (var e = 0, t = this.scene.layers; e < t.length; e++) {
t[e]._rebuild();
}
}),
(e.prototype.dispose = function () {
for (var e = this.scene.layers; e.length; ) e[0].dispose();
}),
(e.prototype._draw = function (e) {
var t = this.scene.layers;
if (t.length) {
this._engine.setDepthBuffer(!1);
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
e(r) && r.render();
}
this._engine.setDepthBuffer(!0);
}
}),
(e.prototype._drawCameraPredicate = function (e, t, n) {
return !e.renderOnlyInRenderTargetTextures && e.isBackground === t && 0 != (e.layerMask & n);
}),
(e.prototype._drawCameraBackground = function (e) {
var t = this;
this._draw(function (n) {
return t._drawCameraPredicate(n, !0, e.layerMask);
});
}),
(e.prototype._drawCameraForeground = function (e) {
var t = this;
this._draw(function (n) {
return t._drawCameraPredicate(n, !1, e.layerMask);
});
}),
(e.prototype._drawRenderTargetPredicate = function (e, t, n, i) {
return e.renderTargetTextures.length > 0 && e.isBackground === t && e.renderTargetTextures.indexOf(i) > -1 && 0 != (e.layerMask & n);
}),
(e.prototype._drawRenderTargetBackground = function (e) {
var t = this;
this._draw(function (n) {
return t._drawRenderTargetPredicate(n, !0, t.scene.activeCamera.layerMask, e);
});
}),
(e.prototype._drawRenderTargetForeground = function (e) {
var t = this;
this._draw(function (n) {
return t._drawRenderTargetPredicate(n, !1, t.scene.activeCamera.layerMask, e);
});
}),
(e.prototype.addFromContainer = function (e) {
var t = this;
e.layers &&
e.layers.forEach(function (e) {
t.scene.layers.push(e);
});
}),
(e.prototype.removeFromContainer = function (e, t) {
var n = this;
void 0 === t && (t = !1),
e.layers &&
e.layers.forEach(function (e) {
var i = n.scene.layers.indexOf(e);
-1 !== i && n.scene.layers.splice(i, 1), t && e.dispose();
});
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return s;
});
var i = n(2),
r = n(3),
o = n(160),
a = n(13),
s = (function (e) {
function t(t, n) {
var i = e.call(this, t, n) || this;
return (i._useRoughnessFromMetallicTextureAlpha = !1), (i._useRoughnessFromMetallicTextureGreen = !0), (i._useMetallnessFromMetallicTextureBlue = !0), (i.metallic = 1), (i.roughness = 1), i;
}
return (
Object(i.d)(t, e),
(t.prototype.getClassName = function () {
return "PBRMetallicRoughnessMaterial";
}),
(t.prototype.clone = function (e) {
var n = this,
i = r.a.Clone(function () {
return new t(e, n.getScene());
}, this);
return (i.id = e), (i.name = e), this.clearCoat.copyTo(i.clearCoat), this.anisotropy.copyTo(i.anisotropy), this.brdf.copyTo(i.brdf), this.sheen.copyTo(i.sheen), this.subSurface.copyTo(i.subSurface), i;
}),
(t.prototype.serialize = function () {
var e = r.a.Serialize(this);
return (
(e.customType = "BABYLON.PBRMetallicRoughnessMaterial"),
(e.clearCoat = this.clearCoat.serialize()),
(e.anisotropy = this.anisotropy.serialize()),
(e.brdf = this.brdf.serialize()),
(e.sheen = this.sheen.serialize()),
(e.subSurface = this.subSurface.serialize()),
e
);
}),
(t.Parse = function (e, n, i) {
var o = r.a.Parse(
function () {
return new t(e.name, n);
},
e,
n,
i
);
return (
e.clearCoat && o.clearCoat.parse(e.clearCoat, n, i),
e.anisotropy && o.anisotropy.parse(e.anisotropy, n, i),
e.brdf && o.brdf.parse(e.brdf, n, i),
e.sheen && o.sheen.parse(e.sheen, n, i),
e.subSurface && o.subSurface.parse(e.subSurface, n, i),
o
);
}),
Object(i.c)([Object(r.e)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_albedoColor")], t.prototype, "baseColor", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_albedoTexture")], t.prototype, "baseTexture", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallic", void 0),
Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "roughness", void 0),
Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_metallicTexture")], t.prototype, "metallicRoughnessTexture", void 0),
t
);
})(o.a);
a.a.RegisteredTypes["BABYLON.PBRMetallicRoughnessMaterial"] = s;
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return o;
});
var i = n(12),
r = n(21),
o = (function () {
function e(e) {
(this.name = r.a.NAME_PROCEDURALTEXTURE), (this.scene = e), (this.scene.proceduralTextures = new Array());
}
return (
(e.prototype.register = function () {
this.scene._beforeClearStage.registerStep(r.a.STEP_BEFORECLEAR_PROCEDURALTEXTURE, this, this._beforeClear);
}),
(e.prototype.rebuild = function () {}),
(e.prototype.dispose = function () {}),
(e.prototype._beforeClear = function () {
if (this.scene.proceduralTexturesEnabled) {
i.b.StartPerformanceCounter("Procedural textures", this.scene.proceduralTextures.length > 0);
for (var e = 0; e < this.scene.proceduralTextures.length; e++) {
var t = this.scene.proceduralTextures[e];
t._shouldRender() && t.render();
}
i.b.EndPerformanceCounter("Procedural textures", this.scene.proceduralTextures.length > 0);
}
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return c;
});
var i = n(2),
r = n(3),
o = n(117),
a = n(32),
s = n(98),
c =
(n(155),
(function (e) {
function t(t, n, i, r, o, a, s, c, l) {
void 0 === r && (r = 5), void 0 === o && (o = 0), void 0 === a && (a = !1), void 0 === s && (s = !1), void 0 === c && (c = 3), void 0 === l && (l = null);
var u = e.call(this, "", t) || this;
return (u._texture = t.getEngine().createRawCubeTexture(n, i, r, o, a, s, c, l)), u;
}
return (
Object(i.d)(t, e),
(t.prototype.update = function (e, t, n, i, r) {
void 0 === r && (r = null), this._texture.getEngine().updateRawCubeTexture(this._texture, e, t, n, i, r);
}),
(t.prototype.updateRGBDAsync = function (e, n, i, r) {
return void 0 === n && (n = null), void 0 === i && (i = 0.8), void 0 === r && (r = 0), t._UpdateRGBDAsync(this._texture, e, n, i, r);
}),
(t.prototype.clone = function () {
var e = this;
return r.a.Clone(function () {
var n = e.getScene(),
i = e._texture,
r = new t(n, i._bufferViewArray, i.width, i.format, i.type, i.generateMipMaps, i.invertY, i.samplingMode, i._compression);
return i.source === a.b.CubeRawRGBD && r.updateRGBDAsync(i._bufferViewArrayArray, i._sphericalPolynomial, i._lodGenerationScale, i._lodGenerationOffset), r;
}, this);
}),
(t._UpdateRGBDAsync = function (e, t, n, i, r) {
return (
(e._source = a.b.CubeRawRGBD),
(e._bufferViewArrayArray = t),
(e._lodGenerationScale = i),
(e._lodGenerationOffset = r),
(e._sphericalPolynomial = n),
o.a.UploadLevelsAsync(e, t).then(function () {
e.isReady = !0;
})
);
}),
t
);
})(s.a));
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e(e) {
(this._pendingActions = new Array()),
(this._workerInfos = e.map(function (e) {
return { worker: e, active: !1 };
}));
}
return (
(e.prototype.dispose = function () {
for (var e = 0, t = this._workerInfos; e < t.length; e++) {
t[e].worker.terminate();
}
delete this._workerInfos, delete this._pendingActions;
}),
(e.prototype.push = function (e) {
for (var t = 0, n = this._workerInfos; t < n.length; t++) {
var i = n[t];
if (!i.active) return void this._execute(i, e);
}
this._pendingActions.push(e);
}),
(e.prototype._execute = function (e, t) {
var n = this;
(e.active = !0),
t(e.worker, function () {
e.active = !1;
var t = n._pendingActions.shift();
t && n._execute(e, t);
});
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return m;
});
var i = n(6),
r = n(1),
o = n(5),
a = n(25),
s = n(4),
c = n(28),
l = n(8),
u = n(21),
h = n(198),
d = n(7),
p =
(n(59),
"\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\n\n#include\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef LINEAR\nbaseColor.rgb=toGammaSpace(baseColor.rgb);\n#endif\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=baseColor*color;\n}");
d.a.ShadersStore.layerPixelShader = p;
var f =
"\nattribute vec2 position;\n\nuniform vec2 scale;\nuniform vec2 offset;\nuniform mat4 textureMatrix;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvec2 shiftedPosition=position*scale+offset;\nvUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));\ngl_Position=vec4(shiftedPosition,0.0,1.0);\n}";
d.a.ShadersStore.layerVertexShader = f;
var m = (function () {
function e(e, t, n, c, d) {
(this.name = e),
(this.scale = new r.d(1, 1)),
(this.offset = new r.d(0, 0)),
(this.alphaBlendingMode = 2),
(this.layerMask = 268435455),
(this.renderTargetTextures = []),
(this.renderOnlyInRenderTargetTextures = !1),
(this._vertexBuffers = {}),
(this.onDisposeObservable = new i.c()),
(this.onBeforeRenderObservable = new i.c()),
(this.onAfterRenderObservable = new i.c()),
(this.texture = t ? new l.a(t, n, !0) : null),
(this.isBackground = void 0 === c || c),
(this.color = void 0 === d ? new o.b(1, 1, 1, 1) : d),
(this._scene = n || a.a.LastCreatedScene);
var p = this._scene._getComponent(u.a.NAME_LAYER);
p || ((p = new h.a(this._scene)), this._scene._addComponent(p)), this._scene.layers.push(this);
var f = this._scene.getEngine(),
m = [];
m.push(1, 1), m.push(-1, 1), m.push(-1, -1), m.push(1, -1);
var g = new s.b(f, m, s.b.PositionKind, !1, !1, 2);
(this._vertexBuffers[s.b.PositionKind] = g), this._createIndexBuffer();
}
return (
Object.defineProperty(e.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onBeforeRender", {
set: function (e) {
this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onAfterRender", {
set: function (e) {
this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._createIndexBuffer = function () {
var e = this._scene.getEngine(),
t = [];
t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), (this._indexBuffer = e.createIndexBuffer(t));
}),
(e.prototype._rebuild = function () {
var e = this._vertexBuffers[s.b.PositionKind];
e && e._rebuild(), this._createIndexBuffer();
}),
(e.prototype.render = function () {
var e = this._scene.getEngine(),
t = "";
this.alphaTest && (t = "#define ALPHATEST"),
this.texture && !this.texture.gammaSpace && (t += "\r\n#define LINEAR"),
this._previousDefines !== t && ((this._previousDefines = t), (this._effect = e.createEffect("layer", [s.b.PositionKind], ["textureMatrix", "color", "scale", "offset"], ["textureSampler"], t)));
var n = this._effect;
if (n && n.isReady() && this.texture && this.texture.isReady()) {
e = this._scene.getEngine();
this.onBeforeRenderObservable.notifyObservers(this),
e.enableEffect(n),
e.setState(!1),
n.setTexture("textureSampler", this.texture),
n.setMatrix("textureMatrix", this.texture.getTextureMatrix()),
n.setFloat4("color", this.color.r, this.color.g, this.color.b, this.color.a),
n.setVector2("offset", this.offset),
n.setVector2("scale", this.scale),
e.bindBuffers(this._vertexBuffers, this._indexBuffer, n),
this.alphaTest ? e.drawElementsType(c.a.TriangleFillMode, 0, 6) : (e.setAlphaMode(this.alphaBlendingMode), e.drawElementsType(c.a.TriangleFillMode, 0, 6), e.setAlphaMode(0)),
this.onAfterRenderObservable.notifyObservers(this);
}
}),
(e.prototype.dispose = function () {
var e = this._vertexBuffers[s.b.PositionKind];
e && (e.dispose(), (this._vertexBuffers[s.b.PositionKind] = null)),
this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)),
this.texture && (this.texture.dispose(), (this.texture = null)),
(this.renderTargetTextures = []);
var t = this._scene.layers.indexOf(this);
this._scene.layers.splice(t, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onAfterRenderObservable.clear(), this.onBeforeRenderObservable.clear();
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
(e.RandomId = function () {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (e) {
var t = (16 * Math.random()) | 0;
return ("x" === e ? t : (3 & t) | 8).toString(16);
});
}),
e
);
})();
},
function (e, t, n) {
"use strict";
n.d(t, "a", function () {
return i;
});
var i = (function () {
function e() {}
return (
Object.defineProperty(e, "UniqueId", {
get: function () {
var e = this._UniqueIdCounter;
return this._UniqueIdCounter++, e;
},
enumerable: !0,
configurable: !0,
}),
(e._UniqueIdCounter = 0),
e
);
})();
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "b4164048526649efa19dd822ae6c6313.png");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "859534eabad5724a69cd5381dc82428f.webp");
},
function (e, t, n) {
"use strict";
var i = "postprocessVertexShader",
r = "\nattribute vec2 position;\nuniform vec2 scale;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=(position*madd+madd)*scale;\ngl_Position=vec4(position,0.0,1.0);\n}";
n(7).a.ShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = n(2),
r = n(32),
o = n(10);
n(38).a.prototype.createRenderTargetCubeTexture = function (e, t) {
var n = Object(i.a)({ generateMipMaps: !0, generateDepthBuffer: !0, generateStencilBuffer: !1, type: 0, samplingMode: 3, format: 5 }, t);
(n.generateStencilBuffer = n.generateDepthBuffer && n.generateStencilBuffer), ((1 !== n.type || this._caps.textureFloatLinearFiltering) && (2 !== n.type || this._caps.textureHalfFloatLinearFiltering)) || (n.samplingMode = 1);
var a = this._gl,
s = new r.a(this, r.b.RenderTarget);
this._bindTextureDirectly(a.TEXTURE_CUBE_MAP, s, !0);
var c = this._getSamplingParameters(n.samplingMode, n.generateMipMaps);
1 !== n.type || this._caps.textureFloat || ((n.type = 0), o.a.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MAG_FILTER, c.mag),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MIN_FILTER, c.min),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_S, a.CLAMP_TO_EDGE),
a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_T, a.CLAMP_TO_EDGE);
for (var l = 0; l < 6; l++) a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X + l, 0, this._getRGBABufferInternalSizedFormat(n.type, n.format), e, e, 0, this._getInternalFormat(n.format), this._getWebGLTextureType(n.type), null);
var u = a.createFramebuffer();
return (
this._bindUnboundFramebuffer(u),
(s._depthStencilBuffer = this._setupFramebufferDepthAttachments(n.generateStencilBuffer, n.generateDepthBuffer, e, e)),
n.generateMipMaps && a.generateMipmap(a.TEXTURE_CUBE_MAP),
this._bindTextureDirectly(a.TEXTURE_CUBE_MAP, null),
this._bindUnboundFramebuffer(null),
(s._framebuffer = u),
(s.width = e),
(s.height = e),
(s.isReady = !0),
(s.isCube = !0),
(s.samples = 1),
(s.generateMipMaps = n.generateMipMaps),
(s.samplingMode = n.samplingMode),
(s.type = n.type),
(s.format = n.format),
(s._generateDepthBuffer = n.generateDepthBuffer),
(s._generateStencilBuffer = n.generateStencilBuffer),
this._internalTexturesCache.push(s),
s
);
};
},
function (e, t, n) {
"use strict";
var i =
"#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP)\n#if defined(TANGENT) && defined(NORMAL)\nvec3 tbnNormal=normalize(normalUpdated);\nvec3 tbnTangent=normalize(tangentUpdated.xyz);\nvec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;\nvTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\n#endif\n#endif";
n(7).a.IncludesShadersStore.bumpVertex = i;
},
function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "DebugLayerTab", function () {
return i;
}),
n.d(t, "DebugLayer", function () {
return l;
});
var i,
r = n(2),
o = n(12),
a = n(6),
s = n(18),
c = n(14);
Object.defineProperty(s.a.prototype, "debugLayer", {
get: function () {
return this._debugLayer || (this._debugLayer = new l(this)), this._debugLayer;
},
enumerable: !0,
configurable: !0,
}),
(function (e) {
(e[(e.Properties = 0)] = "Properties"), (e[(e.Debug = 1)] = "Debug"), (e[(e.Statistics = 2)] = "Statistics"), (e[(e.Tools = 3)] = "Tools"), (e[(e.Settings = 4)] = "Settings");
})(i || (i = {}));
var l = (function () {
function e(e) {
var t = this;
(this.BJSINSPECTOR = this._getGlobalInspector()),
(this._scene = e),
this._scene.onDisposeObservable.add(function () {
t._scene._debugLayer && t._scene._debugLayer.hide();
});
}
return (
Object.defineProperty(e.prototype, "onPropertyChangedObservable", {
get: function () {
return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector
? this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable
: (this._onPropertyChangedObservable || (this._onPropertyChangedObservable = new a.c()), this._onPropertyChangedObservable);
},
enumerable: !0,
configurable: !0,
}),
(e.prototype._createInspector = function (e) {
if (!this.isVisible()) {
if (this._onPropertyChangedObservable) {
for (var t = 0, n = this._onPropertyChangedObservable.observers; t < n.length; t++) {
var i = n[t];
this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(i);
}
this._onPropertyChangedObservable.clear(), (this._onPropertyChangedObservable = void 0);
}
var o = Object(r.a)({ overlay: !1, showExplorer: !0, showInspector: !0, embedMode: !1, handleResize: !0, enablePopup: !0 }, e);
(this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector()), this.BJSINSPECTOR.Inspector.Show(this._scene, o);
}
}),
(e.prototype.select = function (e, t) {
this.BJSINSPECTOR && (this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(t), this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(e));
}),
(e.prototype._getGlobalInspector = function () {
return "undefined" != typeof INSPECTOR ? INSPECTOR : "undefined" != typeof BABYLON && void 0 !== BABYLON.Inspector ? BABYLON : void 0;
}),
(e.prototype.isVisible = function () {
return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.IsVisible;
}),
(e.prototype.hide = function () {
this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.Hide();
}),
(e.prototype.show = function (t) {
var n = this;
return new Promise(function (i, r) {
if (void 0 === n.BJSINSPECTOR) {
var a = t && t.inspectorURL ? t.inspectorURL : e.InspectorURL;
o.b.LoadScript(a, function () {
n._createInspector(t), i(n);
});
} else n._createInspector(t), i(n);
});
}),
(e.InspectorURL = "https://unpkg.com/babylonjs-inspector@" + c.a.Version + "/babylon.inspector.bundle.js"),
e
);
})();
},
function (e, t) {
var n;
n = (function () {
return this;
})();
try {
n = n || new Function("return this")();
} catch (e) {
"object" == typeof window && (n = window);
}
e.exports = n;
},
function (e, t, n) {
"use strict";
var i = n(145),
r = n(68);
Object.defineProperty(r.a.prototype, "sphericalPolynomial", {
get: function () {
if (this._texture) {
if (this._texture._sphericalPolynomial) return this._texture._sphericalPolynomial;
this._texture.isReady && (this._texture._sphericalPolynomial = i.a.ConvertCubeMapTextureToSphericalPolynomial(this));
}
return null;
},
set: function (e) {
this._texture && (this._texture._sphericalPolynomial = e);
},
enumerable: !0,
configurable: !0,
});
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.TypedJSONProvider = void 0), n(176);
const i = n(177);
class r {
constructor() {
this._serializers = new Map();
}
static instance() {
return null == this._instance && (this._instance = new r()), this._instance;
}
get(e) {
return 0 == this._serializers.has(e) && this._serializers.set(e, new i.TypedJSON(e)), this._serializers.get(e);
}
}
t.TypedJSONProvider = r;
},
function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "GLTFLoaderCoordinateSystemMode", function () {
return p;
}),
n.d(t, "GLTFLoaderAnimationStartMode", function () {
return f;
}),
n.d(t, "GLTFLoaderState", function () {
return m;
}),
n.d(t, "GLTFFileLoader", function () {
return b;
}),
n.d(t, "GLTFValidation", function () {
return g;
}),
n.d(t, "GLTF1", function () {
return i;
}),
n.d(t, "GLTF2", function () {
return r;
});
var i = {};
n.r(i),
n.d(i, "GLTFBinaryExtension", function () {
return Te;
}),
n.d(i, "GLTFLoaderBase", function () {
return Ce;
}),
n.d(i, "GLTFLoader", function () {
return Pe;
}),
n.d(i, "GLTFLoaderExtension", function () {
return xe;
}),
n.d(i, "EComponentType", function () {
return _;
}),
n.d(i, "EShaderType", function () {
return v;
}),
n.d(i, "EParameterType", function () {
return y;
}),
n.d(i, "ETextureWrapMode", function () {
return C;
}),
n.d(i, "ETextureFilterType", function () {
return P;
}),
n.d(i, "ETextureFormat", function () {
return x;
}),
n.d(i, "ECullingType", function () {
return T;
}),
n.d(i, "EBlendingFunction", function () {
return S;
}),
n.d(i, "GLTFUtils", function () {
return Q;
}),
n.d(i, "GLTFMaterialsCommonExtension", function () {
return Se;
});
var r = {};
n.r(r),
n.d(r, "ArrayItem", function () {
return Le;
}),
n.d(r, "GLTFLoader", function () {
return Fe;
}),
n.d(r, "EXT_lights_image_based", function () {
return Be;
}),
n.d(r, "KHR_draco_mesh_compression", function () {
return Ge;
}),
n.d(r, "KHR_lights", function () {
return We;
}),
n.d(r, "KHR_materials_pbrSpecularGlossiness", function () {
return Xe;
}),
n.d(r, "KHR_materials_unlit", function () {
return Ye;
}),
n.d(r, "KHR_materials_clearcoat", function () {
return Ke;
}),
n.d(r, "KHR_materials_sheen", function () {
return Ze;
}),
n.d(r, "KHR_materials_specular", function () {
return qe;
}),
n.d(r, "KHR_mesh_quantization", function () {
return Qe;
}),
n.d(r, "KHR_texture_basisu", function () {
return Je;
}),
n.d(r, "KHR_texture_transform", function () {
return $e;
}),
n.d(r, "MSFT_audio_emitter", function () {
return it;
}),
n.d(r, "MSFT_lod", function () {
return rt;
}),
n.d(r, "MSFT_minecraftMesh", function () {
return ot;
}),
n.d(r, "MSFT_sRGBFactors", function () {
return at;
}),
n.d(r, "ExtrasAsMetadata", function () {
return st;
});
var o = n(6),
a = n(12),
s = n(37),
c = n(119),
l = n(10),
u = n(163);
function h(e, t, n, i) {
var r = {
externalResourceFunction: function (e) {
return i(e).then(function (e) {
return new Uint8Array(e);
});
},
};
return n && (r.uri = "file:" === t ? n : t + n), e instanceof ArrayBuffer ? GLTFValidator.validateBytes(new Uint8Array(e), r) : GLTFValidator.validateString(e, r);
}
function d() {
var e = [];
onmessage = function (t) {
var n = t.data;
switch (n.id) {
case "init":
importScripts(n.url);
break;
case "validate":
h(n.data, n.rootUrl, n.fileName, function (t) {
return new Promise(function (n, i) {
var r = e.length;
e.push({ resolve: n, reject: i }), postMessage({ id: "getExternalResource", index: r, uri: t });
});
}).then(
function (e) {
postMessage({ id: "validate.resolve", value: e });
},
function (e) {
postMessage({ id: "validate.reject", reason: e });
}
);
break;
case "getExternalResource.resolve":
e[n.index].resolve(n.value);
break;
case "getExternalResource.reject":
e[n.index].reject(n.reason);
}
};
}
var p,
f,
m,
g = (function () {
function e() {}
return (
(e.ValidateAsync = function (e, t, n, i) {
var r = this;
return "function" == typeof Worker
? new Promise(function (o, s) {
var c = h + "(" + d + ")()",
l = URL.createObjectURL(new Blob([c], { type: "application/javascript" })),
u = new Worker(l),
p = function (e) {
u.removeEventListener("error", p), u.removeEventListener("message", f), s(e);
},
f = function (e) {
var t = e.data;
switch (t.id) {
case "getExternalResource":
i(t.uri).then(
function (e) {
u.postMessage({ id: "getExternalResource.resolve", index: t.index, value: e }, [e]);
},
function (e) {
u.postMessage({ id: "getExternalResource.reject", index: t.index, reason: e });
}
);
break;
case "validate.resolve":
u.removeEventListener("error", p), u.removeEventListener("message", f), o(t.value);
break;
case "validate.reject":
u.removeEventListener("error", p), u.removeEventListener("message", f), s(t.reason);
}
};
u.addEventListener("error", p),
u.addEventListener("message", f),
u.postMessage({ id: "init", url: a.b.GetAbsoluteUrl(r.Configuration.url) }),
u.postMessage({ id: "validate", data: e, rootUrl: t, fileName: n });
})
: (this._LoadScriptPromise || (this._LoadScriptPromise = a.b.LoadScriptAsync(this.Configuration.url)),
this._LoadScriptPromise.then(function () {
return h(e, t, n, i);
}));
}),
(e.Configuration = { url: "assets/babylonjs/gltf_validator.js" }),
e
);
})();
!(function (e) {
(e[(e.AUTO = 0)] = "AUTO"), (e[(e.FORCE_RIGHT_HANDED = 1)] = "FORCE_RIGHT_HANDED");
})(p || (p = {})),
(function (e) {
(e[(e.NONE = 0)] = "NONE"), (e[(e.FIRST = 1)] = "FIRST"), (e[(e.ALL = 2)] = "ALL");
})(f || (f = {})),
(function (e) {
(e[(e.LOADING = 0)] = "LOADING"), (e[(e.READY = 1)] = "READY"), (e[(e.COMPLETE = 2)] = "COMPLETE");
})(m || (m = {}));
var b = (function () {
function e() {
(this.onParsedObservable = new o.c()),
(this.coordinateSystemMode = p.AUTO),
(this.animationStartMode = f.FIRST),
(this.compileMaterials = !1),
(this.useClipPlane = !1),
(this.compileShadowGenerators = !1),
(this.transparencyAsCoverage = !1),
(this.useRangeRequests = !1),
(this.createInstances = !0),
(this.preprocessUrlAsync = function (e) {
return Promise.resolve(e);
}),
(this.onMeshLoadedObservable = new o.c()),
(this.onTextureLoadedObservable = new o.c()),
(this.onMaterialLoadedObservable = new o.c()),
(this.onCameraLoadedObservable = new o.c()),
(this.onCompleteObservable = new o.c()),
(this.onErrorObservable = new o.c()),
(this.onDisposeObservable = new o.c()),
(this.onExtensionLoadedObservable = new o.c()),
(this.validate = !1),
(this.onValidatedObservable = new o.c()),
(this._loader = null),
(this.name = "gltf"),
(this.extensions = { ".gltf": { isBinary: !1 }, ".glb": { isBinary: !0 } }),
(this._logIndentLevel = 0),
(this._loggingEnabled = !1),
(this._log = this._logDisabled),
(this._capturePerformanceCounters = !1),
(this._startPerformanceCounter = this._startPerformanceCounterDisabled),
(this._endPerformanceCounter = this._endPerformanceCounterDisabled);
}
return (
Object.defineProperty(e.prototype, "onParsed", {
set: function (e) {
this._onParsedObserver && this.onParsedObservable.remove(this._onParsedObserver), (this._onParsedObserver = this.onParsedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onMeshLoaded", {
set: function (e) {
this._onMeshLoadedObserver && this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver), (this._onMeshLoadedObserver = this.onMeshLoadedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onTextureLoaded", {
set: function (e) {
this._onTextureLoadedObserver && this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver), (this._onTextureLoadedObserver = this.onTextureLoadedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onMaterialLoaded", {
set: function (e) {
this._onMaterialLoadedObserver && this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver), (this._onMaterialLoadedObserver = this.onMaterialLoadedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onCameraLoaded", {
set: function (e) {
this._onCameraLoadedObserver && this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver), (this._onCameraLoadedObserver = this.onCameraLoadedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onComplete", {
set: function (e) {
this._onCompleteObserver && this.onCompleteObservable.remove(this._onCompleteObserver), (this._onCompleteObserver = this.onCompleteObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onError", {
set: function (e) {
this._onErrorObserver && this.onErrorObservable.remove(this._onErrorObserver), (this._onErrorObserver = this.onErrorObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onDispose", {
set: function (e) {
this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onExtensionLoaded", {
set: function (e) {
this._onExtensionLoadedObserver && this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver), (this._onExtensionLoadedObserver = this.onExtensionLoadedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "loggingEnabled", {
get: function () {
return this._loggingEnabled;
},
set: function (e) {
this._loggingEnabled !== e && ((this._loggingEnabled = e), this._loggingEnabled ? (this._log = this._logEnabled) : (this._log = this._logDisabled));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "capturePerformanceCounters", {
get: function () {
return this._capturePerformanceCounters;
},
set: function (e) {
this._capturePerformanceCounters !== e &&
((this._capturePerformanceCounters = e),
this._capturePerformanceCounters
? ((this._startPerformanceCounter = this._startPerformanceCounterEnabled), (this._endPerformanceCounter = this._endPerformanceCounterEnabled))
: ((this._startPerformanceCounter = this._startPerformanceCounterDisabled), (this._endPerformanceCounter = this._endPerformanceCounterDisabled)));
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "onValidated", {
set: function (e) {
this._onValidatedObserver && this.onValidatedObservable.remove(this._onValidatedObserver), (this._onValidatedObserver = this.onValidatedObservable.add(e));
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
this._loader && (this._loader.dispose(), (this._loader = null)), this._clear(), this.onDisposeObservable.notifyObservers(void 0), this.onDisposeObservable.clear();
}),
(e.prototype._clear = function () {
(this.preprocessUrlAsync = function (e) {
return Promise.resolve(e);
}),
this.onMeshLoadedObservable.clear(),
this.onTextureLoadedObservable.clear(),
this.onMaterialLoadedObservable.clear(),
this.onCameraLoadedObservable.clear(),
this.onCompleteObservable.clear(),
this.onExtensionLoadedObservable.clear();
}),
(e.prototype.requestFile = function (e, t, n, i, r, s) {
var c = this;
if (r) {
if (this.useRangeRequests) {
this.validate && l.a.Warn("glTF validation is not supported when range requests are enabled");
var h = new Array(),
d = {
abort: function () {
return h.forEach(function (e) {
return e.abort();
});
},
onCompleteObservable: new o.c(),
},
p = {
readAsync: function (n, r) {
return new Promise(function (o, a) {
h.push(
e._requestFile(
t,
function (e, t) {
var n = t.getResponseHeader("Content-Range");
n && (p.byteLength = Number(n.split("/")[1])), o(new Uint8Array(e));
},
i,
!0,
!0,
function (e) {
a(e);
},
function (e) {
e.setRequestHeader("Range", "bytes=" + n + "-" + (n + r - 1));
}
)
);
});
},
byteLength: 0,
};
return (
this._unpackBinaryAsync(new u.a(p)).then(function (e) {
d.onCompleteObservable.notifyObservers(d), n(e);
}, s),
d
);
}
return e._requestFile(
t,
function (e, t) {
var i = e;
c._unpackBinaryAsync(
new u.a({
readAsync: function (e, t) {
return Promise.resolve(new Uint8Array(i, e, t));
},
byteLength: i.byteLength,
})
).then(function (e) {
n(e, t);
}, s);
},
i,
!0,
!0,
s
);
}
return e._requestFile(
t,
function (i, r) {
c._validate(e, i, a.b.GetFolderPath(t), a.b.GetFilename(t)), n({ json: c._parseJson(i) }, r);
},
i,
!0,
!1,
s
);
}),
(e.prototype.readFile = function (e, t, n, i, r, o) {
var a = this;
return e._readFile(
t,
function (i) {
if ((a._validate(e, i, "file:", t.name), r)) {
var s = i;
a._unpackBinaryAsync(
new u.a({
readAsync: function (e, t) {
return Promise.resolve(new Uint8Array(s, e, t));
},
byteLength: s.byteLength,
})
).then(n, o);
} else n({ json: a._parseJson(i) });
},
i,
r,
o
);
}),
(e.prototype.importMeshAsync = function (e, t, n, i, r, o) {
var a = this;
return Promise.resolve().then(function () {
return a.onParsedObservable.notifyObservers(n), a.onParsedObservable.clear(), a._log("Loading " + (o || "")), (a._loader = a._getLoader(n)), a._loader.importMeshAsync(e, t, !1, n, i, r, o);
});
}),
(e.prototype.loadAsync = function (e, t, n, i, r) {
var o = this;
return Promise.resolve().then(function () {
return o.onParsedObservable.notifyObservers(t), o.onParsedObservable.clear(), o._log("Loading " + (r || "")), (o._loader = o._getLoader(t)), o._loader.loadAsync(e, t, n, i, r);
});
}),
(e.prototype.loadAssetContainerAsync = function (e, t, n, i, r) {
var o = this;
return Promise.resolve().then(function () {
o.onParsedObservable.notifyObservers(t), o.onParsedObservable.clear(), o._log("Loading " + (r || "")), (o._loader = o._getLoader(t));
var a = [];
o.onMaterialLoadedObservable.add(function (e) {
a.push(e);
});
var s = [];
return (
o.onTextureLoadedObservable.add(function (e) {
s.push(e);
}),
o._loader.importMeshAsync(null, e, !0, t, n, i, r).then(function (t) {
var n = new c.a(e);
return (
Array.prototype.push.apply(n.meshes, t.meshes),
Array.prototype.push.apply(n.particleSystems, t.particleSystems),
Array.prototype.push.apply(n.skeletons, t.skeletons),
Array.prototype.push.apply(n.animationGroups, t.animationGroups),
Array.prototype.push.apply(n.materials, a),
Array.prototype.push.apply(n.textures, s),
Array.prototype.push.apply(n.lights, t.lights),
Array.prototype.push.apply(n.transformNodes, t.transformNodes),
n
);
})
);
});
}),
(e.prototype.canDirectLoad = function (e) {
return -1 !== e.indexOf("asset") && -1 !== e.indexOf("version");
}),
(e.prototype.directLoad = function (e, t) {
return this._validate(e, t), { json: this._parseJson(t) };
}),
(e.prototype.createPlugin = function () {
return new e();
}),
Object.defineProperty(e.prototype, "loaderState", {
get: function () {
return this._loader ? this._loader.state : null;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.whenCompleteAsync = function () {
var e = this;
return new Promise(function (t, n) {
e.onCompleteObservable.addOnce(function () {
t();
}),
e.onErrorObservable.addOnce(function (e) {
n(e);
});
});
}),
(e.prototype._validate = function (e, t, n, i) {
var r = this;
void 0 === n && (n = ""),
void 0 === i && (i = ""),
this.validate &&
(this._startPerformanceCounter("Validate JSON"),
g
.ValidateAsync(t, n, i, function (t) {
return r.preprocessUrlAsync(n + t).then(function (t) {
return e._loadFileAsync(t, void 0, !0, !0);
});
})
.then(
function (e) {
r._endPerformanceCounter("Validate JSON"), r.onValidatedObservable.notifyObservers(e), r.onValidatedObservable.clear();
},
function (e) {
r._endPerformanceCounter("Validate JSON"), a.b.Warn("Failed to validate: " + e.message), r.onValidatedObservable.clear();
}
));
}),
(e.prototype._getLoader = function (t) {
var n = t.json.asset || {};
this._log("Asset version: " + n.version), n.minVersion && this._log("Asset minimum version: " + n.minVersion), n.generator && this._log("Asset generator: " + n.generator);
var i = e._parseVersion(n.version);
if (!i) throw new Error("Invalid version: " + n.version);
if (void 0 !== n.minVersion) {
var r = e._parseVersion(n.minVersion);
if (!r) throw new Error("Invalid minimum version: " + n.minVersion);
if (e._compareVersion(r, { major: 2, minor: 0 }) > 0) throw new Error("Incompatible minimum version: " + n.minVersion);
}
var o = { 1: e._CreateGLTF1Loader, 2: e._CreateGLTF2Loader }[i.major];
if (!o) throw new Error("Unsupported version: " + n.version);
return o(this);
}),
(e.prototype._parseJson = function (e) {
this._startPerformanceCounter("Parse JSON"), this._log("JSON length: " + e.length);
var t = JSON.parse(e);
return this._endPerformanceCounter("Parse JSON"), t;
}),
(e.prototype._unpackBinaryAsync = function (e) {
var t = this;
return (
this._startPerformanceCounter("Unpack Binary"),
e.loadAsync(20).then(function () {
var n = e.readUint32();
if (1179937895 !== n) throw new Error("Unexpected magic: " + n);
var i = e.readUint32();
t.loggingEnabled && t._log("Binary version: " + i);
var r,
o = e.readUint32();
if (0 != e.buffer.byteLength && o !== e.buffer.byteLength) throw new Error("Length in header does not match actual data length: " + o + " != " + e.buffer.byteLength);
switch (i) {
case 1:
r = t._unpackBinaryV1Async(e, o);
break;
case 2:
r = t._unpackBinaryV2Async(e, o);
break;
default:
throw new Error("Unsupported version: " + i);
}
return t._endPerformanceCounter("Unpack Binary"), r;
})
);
}),
(e.prototype._unpackBinaryV1Async = function (e, t) {
var n = e.readUint32(),
i = e.readUint32();
if (0 !== i) throw new Error("Unexpected content format: " + i);
var r = t - e.byteOffset,
o = { json: this._parseJson(e.readString(n)), bin: null };
if (0 !== r) {
var a = e.byteOffset;
o.bin = {
readAsync: function (t, n) {
return e.buffer.readAsync(a + t, n);
},
byteLength: r,
};
}
return Promise.resolve(o);
}),
(e.prototype._unpackBinaryV2Async = function (e, t) {
var n = this,
i = 1313821514,
r = 5130562,
o = e.readUint32();
if (e.readUint32() !== i) throw new Error("First chunk format is not JSON");
return e.byteOffset + o === t
? e.loadAsync(o).then(function () {
return { json: n._parseJson(e.readString(o)), bin: null };
})
: e.loadAsync(o + 8).then(function () {
var a = { json: n._parseJson(e.readString(o)), bin: null },
s = function () {
var n = e.readUint32();
switch (e.readUint32()) {
case i:
throw new Error("Unexpected JSON chunk");
case r:
var o = e.byteOffset;
(a.bin = {
readAsync: function (t, n) {
return e.buffer.readAsync(o + t, n);
},
byteLength: n,
}),
e.skipBytes(n);
break;
default:
e.skipBytes(n);
}
return e.byteOffset !== t ? e.loadAsync(8).then(s) : Promise.resolve(a);
};
return s();
});
}),
(e._parseVersion = function (e) {
if ("1.0" === e || "1.0.1" === e) return { major: 1, minor: 0 };
var t = (e + "").match(/^(\d+)\.(\d+)/);
return t ? { major: parseInt(t[1]), minor: parseInt(t[2]) } : null;
}),
(e._compareVersion = function (e, t) {
return e.major > t.major ? 1 : e.major < t.major ? -1 : e.minor > t.minor ? 1 : e.minor < t.minor ? -1 : 0;
}),
(e.prototype._logOpen = function (e) {
this._log(e), this._logIndentLevel++;
}),
(e.prototype._logClose = function () {
--this._logIndentLevel;
}),
(e.prototype._logEnabled = function (t) {
var n = e._logSpaces.substr(0, 2 * this._logIndentLevel);
l.a.Log("" + n + t);
}),
(e.prototype._logDisabled = function (e) {}),
(e.prototype._startPerformanceCounterEnabled = function (e) {
a.b.StartPerformanceCounter(e);
}),
(e.prototype._startPerformanceCounterDisabled = function (e) {}),
(e.prototype._endPerformanceCounterEnabled = function (e) {
a.b.EndPerformanceCounter(e);
}),
(e.prototype._endPerformanceCounterDisabled = function (e) {}),
(e.IncrementalLoading = !0),
(e.HomogeneousCoordinates = !1),
(e._logSpaces = " "),
e
);
})();
s.a && s.a.RegisterPlugin(new b());
var _,
v,
y,
C,
P,
x,
T,
S,
O = n(2);
!(function (e) {
(e[(e.BYTE = 5120)] = "BYTE"), (e[(e.UNSIGNED_BYTE = 5121)] = "UNSIGNED_BYTE"), (e[(e.SHORT = 5122)] = "SHORT"), (e[(e.UNSIGNED_SHORT = 5123)] = "UNSIGNED_SHORT"), (e[(e.FLOAT = 5126)] = "FLOAT");
})(_ || (_ = {})),
(function (e) {
(e[(e.FRAGMENT = 35632)] = "FRAGMENT"), (e[(e.VERTEX = 35633)] = "VERTEX");
})(v || (v = {})),
(function (e) {
(e[(e.BYTE = 5120)] = "BYTE"),
(e[(e.UNSIGNED_BYTE = 5121)] = "UNSIGNED_BYTE"),
(e[(e.SHORT = 5122)] = "SHORT"),
(e[(e.UNSIGNED_SHORT = 5123)] = "UNSIGNED_SHORT"),
(e[(e.INT = 5124)] = "INT"),
(e[(e.UNSIGNED_INT = 5125)] = "UNSIGNED_INT"),
(e[(e.FLOAT = 5126)] = "FLOAT"),
(e[(e.FLOAT_VEC2 = 35664)] = "FLOAT_VEC2"),
(e[(e.FLOAT_VEC3 = 35665)] = "FLOAT_VEC3"),
(e[(e.FLOAT_VEC4 = 35666)] = "FLOAT_VEC4"),
(e[(e.INT_VEC2 = 35667)] = "INT_VEC2"),
(e[(e.INT_VEC3 = 35668)] = "INT_VEC3"),
(e[(e.INT_VEC4 = 35669)] = "INT_VEC4"),
(e[(e.BOOL = 35670)] = "BOOL"),
(e[(e.BOOL_VEC2 = 35671)] = "BOOL_VEC2"),
(e[(e.BOOL_VEC3 = 35672)] = "BOOL_VEC3"),
(e[(e.BOOL_VEC4 = 35673)] = "BOOL_VEC4"),
(e[(e.FLOAT_MAT2 = 35674)] = "FLOAT_MAT2"),
(e[(e.FLOAT_MAT3 = 35675)] = "FLOAT_MAT3"),
(e[(e.FLOAT_MAT4 = 35676)] = "FLOAT_MAT4"),
(e[(e.SAMPLER_2D = 35678)] = "SAMPLER_2D");
})(y || (y = {})),
(function (e) {
(e[(e.CLAMP_TO_EDGE = 33071)] = "CLAMP_TO_EDGE"), (e[(e.MIRRORED_REPEAT = 33648)] = "MIRRORED_REPEAT"), (e[(e.REPEAT = 10497)] = "REPEAT");
})(C || (C = {})),
(function (e) {
(e[(e.NEAREST = 9728)] = "NEAREST"),
(e[(e.LINEAR = 9728)] = "LINEAR"),
(e[(e.NEAREST_MIPMAP_NEAREST = 9984)] = "NEAREST_MIPMAP_NEAREST"),
(e[(e.LINEAR_MIPMAP_NEAREST = 9985)] = "LINEAR_MIPMAP_NEAREST"),
(e[(e.NEAREST_MIPMAP_LINEAR = 9986)] = "NEAREST_MIPMAP_LINEAR"),
(e[(e.LINEAR_MIPMAP_LINEAR = 9987)] = "LINEAR_MIPMAP_LINEAR");
})(P || (P = {})),
(function (e) {
(e[(e.ALPHA = 6406)] = "ALPHA"), (e[(e.RGB = 6407)] = "RGB"), (e[(e.RGBA = 6408)] = "RGBA"), (e[(e.LUMINANCE = 6409)] = "LUMINANCE"), (e[(e.LUMINANCE_ALPHA = 6410)] = "LUMINANCE_ALPHA");
})(x || (x = {})),
(function (e) {
(e[(e.FRONT = 1028)] = "FRONT"), (e[(e.BACK = 1029)] = "BACK"), (e[(e.FRONT_AND_BACK = 1032)] = "FRONT_AND_BACK");
})(T || (T = {})),
(function (e) {
(e[(e.ZERO = 0)] = "ZERO"),
(e[(e.ONE = 1)] = "ONE"),
(e[(e.SRC_COLOR = 768)] = "SRC_COLOR"),
(e[(e.ONE_MINUS_SRC_COLOR = 769)] = "ONE_MINUS_SRC_COLOR"),
(e[(e.DST_COLOR = 774)] = "DST_COLOR"),
(e[(e.ONE_MINUS_DST_COLOR = 775)] = "ONE_MINUS_DST_COLOR"),
(e[(e.SRC_ALPHA = 770)] = "SRC_ALPHA"),
(e[(e.ONE_MINUS_SRC_ALPHA = 771)] = "ONE_MINUS_SRC_ALPHA"),
(e[(e.DST_ALPHA = 772)] = "DST_ALPHA"),
(e[(e.ONE_MINUS_DST_ALPHA = 773)] = "ONE_MINUS_DST_ALPHA"),
(e[(e.CONSTANT_COLOR = 32769)] = "CONSTANT_COLOR"),
(e[(e.ONE_MINUS_CONSTANT_COLOR = 32770)] = "ONE_MINUS_CONSTANT_COLOR"),
(e[(e.CONSTANT_ALPHA = 32771)] = "CONSTANT_ALPHA"),
(e[(e.ONE_MINUS_CONSTANT_ALPHA = 32772)] = "ONE_MINUS_CONSTANT_ALPHA"),
(e[(e.SRC_ALPHA_SATURATE = 776)] = "SRC_ALPHA_SATURATE");
})(S || (S = {}));
var E,
M = n(1),
A = n(5),
I = n(26),
D = n(67),
R = n(27),
w = n(110),
L = n(129),
F = n(7),
N = n(28),
k = n(94),
z = n(33),
j = n(106),
B = n(8),
V = n(16),
G = n(4),
U = n(79),
H = n(78),
W = n(31),
X = n(9),
Y = n(96),
K = n(115),
Z = n(123),
q = n(122),
Q = (function () {
function e() {}
return (
(e.SetMatrix = function (e, t, n, i, r) {
var o = null;
if (
("MODEL" === n.semantic
? (o = t.getWorldMatrix())
: "PROJECTION" === n.semantic
? (o = e.getProjectionMatrix())
: "VIEW" === n.semantic
? (o = e.getViewMatrix())
: "MODELVIEWINVERSETRANSPOSE" === n.semantic
? (o = M.a.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()))
: "MODELVIEW" === n.semantic
? (o = t.getWorldMatrix().multiply(e.getViewMatrix()))
: "MODELVIEWPROJECTION" === n.semantic
? (o = t.getWorldMatrix().multiply(e.getTransformMatrix()))
: "MODELINVERSE" === n.semantic
? (o = t.getWorldMatrix().invert())
: "VIEWINVERSE" === n.semantic
? (o = e.getViewMatrix().invert())
: "PROJECTIONINVERSE" === n.semantic
? (o = e.getProjectionMatrix().invert())
: "MODELVIEWINVERSE" === n.semantic
? (o = t.getWorldMatrix().multiply(e.getViewMatrix()).invert())
: "MODELVIEWPROJECTIONINVERSE" === n.semantic
? (o = t.getWorldMatrix().multiply(e.getTransformMatrix()).invert())
: "MODELINVERSETRANSPOSE" === n.semantic && (o = M.a.Transpose(t.getWorldMatrix().invert())),
o)
)
switch (n.type) {
case y.FLOAT_MAT2:
r.setMatrix2x2(i, M.a.GetAsMatrix2x2(o));
break;
case y.FLOAT_MAT3:
r.setMatrix3x3(i, M.a.GetAsMatrix3x3(o));
break;
case y.FLOAT_MAT4:
r.setMatrix(i, o);
}
}),
(e.SetUniform = function (e, t, n, i) {
switch (i) {
case y.FLOAT:
return e.setFloat(t, n), !0;
case y.FLOAT_VEC2:
return e.setVector2(t, M.d.FromArray(n)), !0;
case y.FLOAT_VEC3:
return e.setVector3(t, M.e.FromArray(n)), !0;
case y.FLOAT_VEC4:
return e.setVector4(t, M.f.FromArray(n)), !0;
default:
return !1;
}
}),
(e.GetWrapMode = function (e) {
switch (e) {
case C.CLAMP_TO_EDGE:
return B.a.CLAMP_ADDRESSMODE;
case C.MIRRORED_REPEAT:
return B.a.MIRROR_ADDRESSMODE;
case C.REPEAT:
default:
return B.a.WRAP_ADDRESSMODE;
}
}),
(e.GetByteStrideFromType = function (e) {
switch (e.type) {
case "VEC2":
return 2;
case "VEC3":
return 3;
case "VEC4":
case "MAT2":
return 4;
case "MAT3":
return 9;
case "MAT4":
return 16;
default:
return 1;
}
}),
(e.GetTextureFilterMode = function (e) {
switch (e) {
case P.LINEAR:
case P.LINEAR_MIPMAP_NEAREST:
case P.LINEAR_MIPMAP_LINEAR:
return B.a.TRILINEAR_SAMPLINGMODE;
case P.NEAREST:
case P.NEAREST_MIPMAP_NEAREST:
return B.a.NEAREST_SAMPLINGMODE;
default:
return B.a.BILINEAR_SAMPLINGMODE;
}
}),
(e.GetBufferFromBufferView = function (e, t, n, i, r) {
n = t.byteOffset + n;
var o = e.loadedBufferViews[t.buffer];
if (n + i > o.byteLength) throw new Error("Buffer access is out of range");
var a = o.buffer;
switch (((n += o.byteOffset), r)) {
case _.BYTE:
return new Int8Array(a, n, i);
case _.UNSIGNED_BYTE:
return new Uint8Array(a, n, i);
case _.SHORT:
return new Int16Array(a, n, i);
case _.UNSIGNED_SHORT:
return new Uint16Array(a, n, i);
default:
return new Float32Array(a, n, i);
}
}),
(e.GetBufferFromAccessor = function (t, n) {
var i = t.bufferViews[n.bufferView],
r = n.count * e.GetByteStrideFromType(n);
return e.GetBufferFromBufferView(t, i, n.byteOffset, r, n.componentType);
}),
(e.DecodeBufferToText = function (e) {
for (var t = "", n = e.byteLength, i = 0; i < n; ++i) t += String.fromCharCode(e[i]);
return t;
}),
(e.GetDefaultMaterial = function (t) {
if (!e._DefaultMaterial) {
(F.a.ShadersStore.GLTFDefaultMaterialVertexShader = [
"precision highp float;",
"",
"uniform mat4 worldView;",
"uniform mat4 projection;",
"",
"attribute vec3 position;",
"",
"void main(void)",
"{",
" gl_Position = projection * worldView * vec4(position, 1.0);",
"}",
].join("\n")),
(F.a.ShadersStore.GLTFDefaultMaterialPixelShader = ["precision highp float;", "", "uniform vec4 u_emission;", "", "void main(void)", "{", " gl_FragColor = u_emission;", "}"].join("\n"));
var n = { attributes: ["position"], uniforms: ["worldView", "projection", "u_emission"], samplers: new Array(), needAlphaBlending: !1 };
(e._DefaultMaterial = new j.a("GLTFDefaultMaterial", t, { vertex: "GLTFDefaultMaterial", fragment: "GLTFDefaultMaterial" }, n)), e._DefaultMaterial.setColor4("u_emission", new A.b(0.5, 0.5, 0.5, 1));
}
return e._DefaultMaterial;
}),
(e._DefaultMaterial = null),
e
);
})(),
J = n(80);
!(function (e) {
(e[(e.IDENTIFIER = 1)] = "IDENTIFIER"), (e[(e.UNKNOWN = 2)] = "UNKNOWN"), (e[(e.END_OF_INPUT = 3)] = "END_OF_INPUT");
})(E || (E = {}));
var $ = (function () {
function e(e) {
(this._pos = 0), (this.currentToken = E.UNKNOWN), (this.currentIdentifier = ""), (this.currentString = ""), (this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/), (this._toParse = e), (this._maxPos = e.length);
}
return (
(e.prototype.getNextToken = function () {
if (this.isEnd()) return E.END_OF_INPUT;
if (((this.currentString = this.read()), (this.currentToken = E.UNKNOWN), "_" === this.currentString || this.isLetterOrDigitPattern.test(this.currentString)))
for (this.currentToken = E.IDENTIFIER, this.currentIdentifier = this.currentString; !this.isEnd() && (this.isLetterOrDigitPattern.test((this.currentString = this.peek())) || "_" === this.currentString); )
(this.currentIdentifier += this.currentString), this.forward();
return this.currentToken;
}),
(e.prototype.peek = function () {
return this._toParse[this._pos];
}),
(e.prototype.read = function () {
return this._toParse[this._pos++];
}),
(e.prototype.forward = function () {
this._pos++;
}),
(e.prototype.isEnd = function () {
return this._pos >= this._maxPos;
}),
e
);
})(),
ee = ["MODEL", "VIEW", "PROJECTION", "MODELVIEW", "MODELVIEWPROJECTION", "JOINTMATRIX"],
te = ["world", "view", "projection", "worldView", "worldViewProjection", "mBones"],
ne = ["translation", "rotation", "scale"],
ie = ["position", "rotationQuaternion", "scaling"],
re = function (e, t, n) {
for (var i in e) {
var r = e[i];
n[t][i] = r;
}
},
oe = function (e) {
if (e) for (var t = 0; t < e.length / 2; t++) e[2 * t + 1] = 1 - e[2 * t + 1];
},
ae = function (e) {
if ("NORMAL" === e.semantic) return "normal";
if ("POSITION" === e.semantic) return "position";
if ("JOINT" === e.semantic) return "matricesIndices";
if ("WEIGHT" === e.semantic) return "matricesWeights";
if ("COLOR" === e.semantic) return "color";
if (e.semantic && -1 !== e.semantic.indexOf("TEXCOORD_")) {
var t = Number(e.semantic.split("_")[1]);
return "uv" + (0 === t ? "" : t + 1);
}
return null;
},
se = function (e) {
var t = null;
if (e.translation || e.rotation || e.scale) {
var n = M.e.FromArray(e.scale || [1, 1, 1]),
i = M.b.FromArray(e.rotation || [0, 0, 0, 1]),
r = M.e.FromArray(e.translation || [0, 0, 0]);
t = M.a.Compose(n, i, r);
} else t = M.a.FromArray(e.matrix);
return t;
},
ce = function (e, t, n, i) {
for (var r = 0; r < i.bones.length; r++) if (i.bones[r].name === n) return i.bones[r];
var o = e.nodes;
for (var a in o) {
var s = o[a];
if (s.jointName) {
var c = s.children;
for (r = 0; r < c.length; r++) {
var l = e.nodes[c[r]];
if (l.jointName && l.jointName === n) {
var u = se(s),
h = new w.a(s.name || "", i, ce(e, t, s.jointName, i), u);
return (h.id = a), h;
}
}
}
}
return null;
},
le = function (e, t) {
for (var n = 0; n < e.length; n++)
for (var i = e[n], r = 0; r < i.node.children.length; r++) {
if (i.node.children[r] === t) return i.bone;
}
return null;
},
ue = function (e, t) {
var n = e.nodes,
i = n[t];
if (i) return { node: i, id: t };
for (var r in n) if ((i = n[r]).jointName === t) return { node: i, id: r };
return null;
},
he = function (e, t) {
for (var n = 0; n < e.jointNames.length; n++) if (e.jointNames[n] === t) return !0;
return !1;
},
de = function (e, t, n, i, r) {
if ((i || (i = new L.a(t.name || "", "", e.scene)), !t.babylonSkeleton)) return i;
var o = [],
s = [];
!(function (e, t, n, i) {
for (var r in e.nodes) {
var o = e.nodes[r],
a = r;
if (o.jointName && !he(n, o.jointName)) {
var s = se(o),
c = new w.a(o.name || "", t, null, s);
(c.id = a), i.push({ bone: c, node: o, id: a });
}
}
for (var l = 0; l < i.length; l++)
for (var u = i[l], h = u.node.children, d = 0; d < h.length; d++) {
for (var p = null, f = 0; f < i.length; f++)
if (i[f].id === h[d]) {
p = i[f];
break;
}
p && ((p.bone._parent = u.bone), u.bone.children.push(p.bone));
}
})(e, i, t, o),
(i.bones = []);
for (var c = 0; c < t.jointNames.length; c++) {
if ((y = ue(e, t.jointNames[c]))) {
var l = y.node;
if (l) {
r = y.id;
var u = e.scene.getBoneByID(r);
if (u) i.bones.push(u);
else {
for (var h = !1, d = null, p = 0; p < c; p++) {
var f = ue(e, t.jointNames[p]);
if (f) {
var m = f.node;
if (m) {
var g = m.children;
if (g) {
h = !1;
for (var b = 0; b < g.length; b++)
if (g[b] === r) {
(d = ce(e, t, t.jointNames[p], i)), (h = !0);
break;
}
if (h) break;
}
} else a.b.Warn("Joint named " + t.jointNames[p] + " does not exist when looking for parent");
}
}
var _ = se(l);
!d && o.length > 0 && (d = le(o, r)) && -1 === s.indexOf(d) && s.push(d), (new w.a(l.jointName || "", i, d, _).id = r);
}
} else a.b.Warn("Joint named " + t.jointNames[c] + " does not exist");
}
}
var v = i.bones;
i.bones = [];
for (c = 0; c < t.jointNames.length; c++) {
var y;
if ((y = ue(e, t.jointNames[c])))
for (p = 0; p < v.length; p++)
if (v[p].id === y.id) {
i.bones.push(v[p]);
break;
}
}
i.prepare();
for (c = 0; c < s.length; c++) i.bones.push(s[c]);
return i;
},
pe = function (e, t, n, i, r) {
if ((r || ((e.scene._blockEntityCollection = e.forAssetContainer), (r = new X.a(t.name || "", e.scene)), (e.scene._blockEntityCollection = !1), (r.id = i)), !t.babylonNode)) return r;
for (var o, a = [], s = null, c = new Array(), l = new Array(), u = new Array(), h = new Array(), d = 0; d < n.length; d++) {
var p = n[d];
if ((A = e.meshes[p]))
for (var f = 0; f < A.primitives.length; f++) {
var m = new V.a(),
g = A.primitives[f];
g.mode;
var _ = g.attributes,
v = null,
y = null;
for (var C in _)
if (((v = e.accessors[_[C]]), (y = Q.GetBufferFromAccessor(e, v)), "NORMAL" === C)) (m.normals = new Float32Array(y.length)), m.normals.set(y);
else if ("POSITION" === C) {
if (b.HomogeneousCoordinates) {
m.positions = new Float32Array(y.length - y.length / 4);
for (var P = 0; P < y.length; P += 4) (m.positions[P] = y[P]), (m.positions[P + 1] = y[P + 1]), (m.positions[P + 2] = y[P + 2]);
} else (m.positions = new Float32Array(y.length)), m.positions.set(y);
l.push(m.positions.length);
} else if (-1 !== C.indexOf("TEXCOORD_")) {
var x = Number(C.split("_")[1]),
T = G.b.UVKind + (0 === x ? "" : x + 1),
S = new Float32Array(y.length);
S.set(y), oe(S), m.set(S, T);
} else
"JOINT" === C
? ((m.matricesIndices = new Float32Array(y.length)), m.matricesIndices.set(y))
: "WEIGHT" === C
? ((m.matricesWeights = new Float32Array(y.length)), m.matricesWeights.set(y))
: "COLOR" === C && ((m.colors = new Float32Array(y.length)), m.colors.set(y));
if ((v = e.accessors[g.indices])) (y = Q.GetBufferFromAccessor(e, v)), (m.indices = new Int32Array(y.length)), m.indices.set(y), h.push(m.indices.length);
else {
var O = [];
for (P = 0; P < m.positions.length / 3; P++) O.push(P);
(m.indices = new Int32Array(O)), h.push(m.indices.length);
}
s ? s.merge(m) : (s = m);
var E = e.scene.getMaterialByID(g.material);
a.push(null === E ? Q.GetDefaultMaterial(e.scene) : E), c.push(0 === c.length ? 0 : c[c.length - 1] + l[l.length - 2]), u.push(0 === u.length ? 0 : u[u.length - 1] + h[h.length - 2]);
}
}
(e.scene._blockEntityCollection = e.forAssetContainer),
a.length > 1 ? ((o = new k.a("multimat" + i, e.scene)).subMaterials = a) : (o = new z.a("multimat" + i, e.scene)),
1 === a.length && (o = a[0]),
r.material || (r.material = o),
new U.a(i, e.scene, s, !1, r),
r.computeWorldMatrix(!0),
(e.scene._blockEntityCollection = !1),
(r.subMeshes = []);
var M = 0;
for (d = 0; d < n.length; d++) {
var A;
p = n[d];
if ((A = e.meshes[p])) for (f = 0; f < A.primitives.length; f++) A.primitives[f].mode, H.b.AddToMesh(M, c[M], l[M], u[M], h[M], r, r, !0), M++;
}
return r;
},
fe = function (e, t, n, i) {
e.position && (e.position = t), (e.rotationQuaternion || e.rotation) && (e.rotationQuaternion = n), e.scaling && (e.scaling = i);
},
me = function (e, t, n, i) {
var r = null;
if (e.importOnlyMeshes && (t.skin || t.meshes) && e.importMeshesNames && e.importMeshesNames.length > 0 && -1 === e.importMeshesNames.indexOf(t.name || "")) return null;
if (t.skin) {
if (t.meshes) {
var o = e.skins[t.skin];
((a = pe(e, t, t.meshes, n, t.babylonNode)).skeleton = e.scene.getLastSkeletonByID(t.skin)),
null === a.skeleton && ((a.skeleton = de(e, o, 0, o.babylonSkeleton, t.skin)), o.babylonSkeleton || (o.babylonSkeleton = a.skeleton)),
(r = a);
}
} else if (t.meshes) {
var a;
r = a = pe(e, t, t.mesh ? [t.mesh] : t.meshes, n, t.babylonNode);
} else if (!t.light || t.babylonNode || e.importOnlyMeshes) {
if (t.camera && !t.babylonNode && !e.importOnlyMeshes) {
var s = e.cameras[t.camera];
if (s) {
if (((e.scene._blockEntityCollection = e.forAssetContainer), "orthographic" === s.type)) {
var c = new D.a(t.camera, M.e.Zero(), e.scene, !1);
(c.name = t.name || ""), (c.mode = I.a.ORTHOGRAPHIC_CAMERA), c.attachControl(e.scene.getEngine().getInputElement()), (r = c);
} else if ("perspective" === s.type) {
var l = s[s.type],
u = new D.a(t.camera, M.e.Zero(), e.scene, !1);
(u.name = t.name || ""),
u.attachControl(e.scene.getEngine().getInputElement()),
l.aspectRatio || (l.aspectRatio = e.scene.getEngine().getRenderWidth() / e.scene.getEngine().getRenderHeight()),
l.znear && l.zfar && ((u.maxZ = l.zfar), (u.minZ = l.znear)),
(r = u);
}
e.scene._blockEntityCollection = !1;
}
}
} else {
var h = e.lights[t.light];
if (h)
if ("ambient" === h.type) {
var d = h[h.type],
p = new Y.a(t.light, M.e.Zero(), e.scene);
(p.name = t.name || ""), d.color && (p.diffuse = A.a.FromArray(d.color)), (r = p);
} else if ("directional" === h.type) {
var f = h[h.type],
m = new K.a(t.light, M.e.Zero(), e.scene);
(m.name = t.name || ""), f.color && (m.diffuse = A.a.FromArray(f.color)), (r = m);
} else if ("point" === h.type) {
var g = h[h.type],
b = new Z.a(t.light, M.e.Zero(), e.scene);
(b.name = t.name || ""), g.color && (b.diffuse = A.a.FromArray(g.color)), (r = b);
} else if ("spot" === h.type) {
var _ = h[h.type],
v = new q.a(t.light, M.e.Zero(), M.e.Zero(), 0, 0, e.scene);
(v.name = t.name || ""), _.color && (v.diffuse = A.a.FromArray(_.color)), _.fallOfAngle && (v.angle = _.fallOfAngle), _.fallOffExponent && (v.exponent = _.fallOffExponent), (r = v);
}
}
if (!t.jointName) {
if (t.babylonNode) return t.babylonNode;
if (null === r) {
e.scene._blockEntityCollection = e.forAssetContainer;
var y = new X.a(t.name || "", e.scene);
(e.scene._blockEntityCollection = !1), (t.babylonNode = y), (r = y);
}
}
if (null !== r) {
if (t.matrix && r instanceof X.a)
!(function (e, t, n) {
if (t.matrix) {
var i = new M.e(0, 0, 0),
r = new M.b(),
o = new M.e(0, 0, 0);
M.a.FromArray(t.matrix).decompose(o, r, i), fe(e, i, r, o);
} else t.translation && t.rotation && t.scale && fe(e, M.e.FromArray(t.translation), M.b.FromArray(t.rotation), M.e.FromArray(t.scale));
e.computeWorldMatrix(!0);
})(r, t);
else {
var C = t.translation || [0, 0, 0],
P = t.rotation || [0, 0, 0, 1],
x = t.scale || [1, 1, 1];
fe(r, M.e.FromArray(C), M.b.FromArray(P), M.e.FromArray(x));
}
r.updateCache(!0), (t.babylonNode = r);
}
return r;
},
ge = function (e, t, n, i) {
void 0 === i && (i = !1);
var r = e.nodes[t],
o = null;
if (
((i = !(e.importOnlyMeshes && !i && e.importMeshesNames) || -1 !== e.importMeshesNames.indexOf(r.name || "") || 0 === e.importMeshesNames.length),
!r.jointName && i && null !== (o = me(e, r, t)) && ((o.id = t), (o.parent = n)),
r.children)
)
for (var a = 0; a < r.children.length; a++) ge(e, r.children[a], o, i);
},
be = function (e) {
var t = e.currentScene;
if (t) for (var n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null);
else
for (var i in e.scenes) {
t = e.scenes[i];
for (n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null);
}
!(function (e) {
for (var t in e.animations) {
var n = e.animations[t];
if (n.channels && n.samplers)
for (var i = null, r = 0; r < n.channels.length; r++) {
var o = n.channels[r],
s = n.samplers[o.sampler];
if (s) {
var c = null,
l = null;
n.parameters ? ((c = n.parameters[s.input]), (l = n.parameters[s.output])) : ((c = s.input), (l = s.output));
var u = Q.GetBufferFromAccessor(e, e.accessors[c]),
h = Q.GetBufferFromAccessor(e, e.accessors[l]),
d = o.target.id,
p = e.scene.getNodeByID(d);
if ((null === p && (p = e.scene.getNodeByName(d)), null !== p)) {
var f = p instanceof w.a,
m = o.target.path,
g = ne.indexOf(m);
-1 !== g && (m = ie[g]);
var b = R.a.ANIMATIONTYPE_MATRIX;
f || ("rotationQuaternion" === m ? ((b = R.a.ANIMATIONTYPE_QUATERNION), (p.rotationQuaternion = new M.b())) : (b = R.a.ANIMATIONTYPE_VECTOR3));
var _ = null,
v = [],
y = 0,
C = !1;
f && i && i.getKeys().length === u.length && ((_ = i), (C = !0)),
C || ((e.scene._blockEntityCollection = e.forAssetContainer), (_ = new R.a(t, f ? "_matrix" : m, 1, b, R.a.ANIMATIONLOOPMODE_CYCLE)), (e.scene._blockEntityCollection = !1));
for (var P = 0; P < u.length; P++) {
var x = null;
if (("rotationQuaternion" === m ? ((x = M.b.FromArray([h[y], h[y + 1], h[y + 2], h[y + 3]])), (y += 4)) : ((x = M.e.FromArray([h[y], h[y + 1], h[y + 2]])), (y += 3)), f)) {
var T = p,
S = M.e.Zero(),
O = new M.b(),
E = M.e.Zero(),
A = T.getBaseMatrix();
C && i && (A = i.getKeys()[P].value), A.decompose(E, O, S), "position" === m ? (S = x) : "rotationQuaternion" === m ? (O = x) : (E = x), (x = M.a.Compose(E, O, S));
}
C ? i && (i.getKeys()[P].value = x) : v.push({ frame: u[P], value: x });
}
!C && _ && (_.setKeys(v), p.animations.push(_)), (i = _), e.scene.stopAnimation(p), e.scene.beginAnimation(p, 0, u[u.length - 1], !0, 1);
} else a.b.Warn("Creating animation named " + t + ". But cannot find node named " + d + " to attach to");
}
}
}
})(e);
for (n = 0; n < e.scene.skeletons.length; n++) {
var r = e.scene.skeletons[n];
e.scene.beginAnimation(r, 0, Number.MAX_VALUE, !0, 1);
}
},
_e = function (e, t, n, i, r, o) {
return function (a) {
!(function (e, t, n, i, r) {
var o = i.values || n.parameters,
a = n.uniforms;
for (var s in r) {
var c = r[s],
l = c.type,
u = o[a[s]];
if ((void 0 === u && (u = c.value), u)) {
var h = function (e) {
return function (n) {
c.value && e && (t.setTexture(e, n), delete r[e]);
};
};
l === y.SAMPLER_2D
? xe.LoadTextureAsync(e, i.values ? u : c.value, h(s), function () {
return h(null);
})
: c.value && Q.SetUniform(t, s, i.values ? u : c.value, l) && delete r[s];
}
}
})(e, t, n, i, r),
(t.onBind = function (a) {
!(function (e, t, n, i, r, o, a) {
var s = o.values || r.parameters;
for (var c in n) {
var l = n[c],
u = l.type;
if (u === y.FLOAT_MAT2 || u === y.FLOAT_MAT3 || u === y.FLOAT_MAT4)
if (!l.semantic || l.source || l.node) {
if (l.semantic && (l.source || l.node)) {
var h = t.scene.getNodeByName(l.source || l.node || "");
if ((null === h && (h = t.scene.getNodeByID(l.source || l.node || "")), null === h)) continue;
Q.SetMatrix(t.scene, h, l, c, i.getEffect());
}
} else Q.SetMatrix(t.scene, e, l, c, i.getEffect());
else {
var d = s[r.uniforms[c]];
if (!d) continue;
if (u === y.SAMPLER_2D) {
var p = t.textures[o.values ? d : l.value].babylonTexture;
if (null == p) continue;
i.getEffect().setTexture(c, p);
} else Q.SetUniform(i.getEffect(), c, d, u);
}
}
a(i);
})(a, e, r, t, n, i, o);
});
};
},
ve = function (e, t, n) {
for (var i in t.uniforms) {
var r = t.uniforms[i],
o = t.parameters[r];
if (e.currentIdentifier === i && o.semantic && !o.source && !o.node) {
var a = ee.indexOf(o.semantic);
if (-1 !== a) return delete n[i], te[a];
}
}
return e.currentIdentifier;
},
ye = function (e) {
for (var t in e.materials)
xe.LoadMaterialAsync(
e,
t,
function (e) {},
function () {}
);
},
Ce = (function () {
function e() {}
return (
(e.CreateRuntime = function (e, t, n) {
var i = {
extensions: {},
accessors: {},
buffers: {},
bufferViews: {},
meshes: {},
lights: {},
cameras: {},
nodes: {},
images: {},
textures: {},
shaders: {},
programs: {},
samplers: {},
techniques: {},
materials: {},
animations: {},
skins: {},
extensionsUsed: [],
scenes: {},
buffersCount: 0,
shaderscount: 0,
scene: t,
rootUrl: n,
loadedBufferCount: 0,
loadedBufferViews: {},
loadedShaderCount: 0,
importOnlyMeshes: !1,
dummyNodes: [],
forAssetContainer: !1,
};
return (
e.extensions && re(e.extensions, "extensions", i),
e.extensionsUsed && re(e.extensionsUsed, "extensionsUsed", i),
e.buffers &&
(function (e, t) {
for (var n in e) {
var i = e[n];
(t.buffers[n] = i), t.buffersCount++;
}
})(e.buffers, i),
e.bufferViews && re(e.bufferViews, "bufferViews", i),
e.accessors && re(e.accessors, "accessors", i),
e.meshes && re(e.meshes, "meshes", i),
e.lights && re(e.lights, "lights", i),
e.cameras && re(e.cameras, "cameras", i),
e.nodes && re(e.nodes, "nodes", i),
e.images && re(e.images, "images", i),
e.textures && re(e.textures, "textures", i),
e.shaders &&
(function (e, t) {
for (var n in e) {
var i = e[n];
(t.shaders[n] = i), t.shaderscount++;
}
})(e.shaders, i),
e.programs && re(e.programs, "programs", i),
e.samplers && re(e.samplers, "samplers", i),
e.techniques && re(e.techniques, "techniques", i),
e.materials && re(e.materials, "materials", i),
e.animations && re(e.animations, "animations", i),
e.skins && re(e.skins, "skins", i),
e.scenes && (i.scenes = e.scenes),
e.scene && e.scenes && (i.currentScene = e.scenes[e.scene]),
i
);
}),
(e.LoadBufferAsync = function (e, t, n, i, r) {
var o = e.buffers[t];
a.b.IsBase64(o.uri)
? setTimeout(function () {
return n(new Uint8Array(a.b.DecodeBase64(o.uri)));
})
: a.b.LoadFile(
e.rootUrl + o.uri,
function (e) {
return n(new Uint8Array(e));
},
r,
void 0,
!0,
function (e) {
e && i(e.status + " " + e.statusText);
}
);
}),
(e.LoadTextureBufferAsync = function (e, t, n, i) {
var r = e.textures[t];
if (r && r.source)
if (r.babylonTexture) n(null);
else {
var o = e.images[r.source];
a.b.IsBase64(o.uri)
? setTimeout(function () {
return n(new Uint8Array(a.b.DecodeBase64(o.uri)));
})
: a.b.LoadFile(
e.rootUrl + o.uri,
function (e) {
return n(new Uint8Array(e));
},
void 0,
void 0,
!0,
function (e) {
e && i(e.status + " " + e.statusText);
}
);
}
else i("");
}),
(e.CreateTextureAsync = function (e, t, n, i, r) {
var o = e.textures[t];
if (o.babylonTexture) i(o.babylonTexture);
else {
var a = e.samplers[o.sampler],
s = a.minFilter === P.NEAREST_MIPMAP_NEAREST || a.minFilter === P.NEAREST_MIPMAP_LINEAR || a.minFilter === P.LINEAR_MIPMAP_NEAREST || a.minFilter === P.LINEAR_MIPMAP_LINEAR,
c = B.a.BILINEAR_SAMPLINGMODE,
l = null == n ? new Blob() : new Blob([n]),
u = URL.createObjectURL(l),
h = function () {
return URL.revokeObjectURL(u);
},
d = new B.a(u, e.scene, !s, !0, c, h, h);
void 0 !== a.wrapS && (d.wrapU = Q.GetWrapMode(a.wrapS)), void 0 !== a.wrapT && (d.wrapV = Q.GetWrapMode(a.wrapT)), (d.name = t), (o.babylonTexture = d), i(d);
}
}),
(e.LoadShaderStringAsync = function (e, t, n, i) {
var r = e.shaders[t];
if (a.b.IsBase64(r.uri)) {
var o = atob(r.uri.split(",")[1]);
n && n(o);
} else
a.b.LoadFile(e.rootUrl + r.uri, n, void 0, void 0, !1, function (e) {
e && i && i(e.status + " " + e.statusText);
});
}),
(e.LoadMaterialAsync = function (e, t, n, i) {
var r = e.materials[t];
if (r.technique) {
var o = e.techniques[r.technique];
if (!o) {
e.scene._blockEntityCollection = e.forAssetContainer;
var a = new z.a(t, e.scene);
return (e.scene._blockEntityCollection = !1), (a.diffuseColor = new A.a(0.5, 0.5, 0.5)), (a.sideOrientation = N.a.CounterClockWiseSideOrientation), void n(a);
}
var s = e.programs[o.program],
c = o.states,
l = F.a.ShadersStore[s.vertexShader + "VertexShader"],
u = F.a.ShadersStore[s.fragmentShader + "PixelShader"],
h = "",
d = "",
p = new $(l),
f = new $(u),
m = {},
g = [],
b = [],
_ = [];
for (var v in o.uniforms) {
var C = o.uniforms[v],
P = o.parameters[C];
if (((m[v] = P), !P.semantic || P.node || P.source)) P.type === y.SAMPLER_2D ? _.push(v) : g.push(v);
else {
var x = ee.indexOf(P.semantic);
-1 !== x ? (g.push(te[x]), delete m[v]) : g.push(v);
}
}
for (var O in o.attributes) {
var M = o.attributes[O];
if ((R = o.parameters[M]).semantic) {
var I = ae(R);
I && b.push(I);
}
}
for (; !p.isEnd() && p.getNextToken(); ) {
if (p.currentToken === E.IDENTIFIER) {
var D = !1;
for (var O in o.attributes) {
M = o.attributes[O];
var R = o.parameters[M];
if (p.currentIdentifier === O && R.semantic) {
(h += ae(R)), (D = !0);
break;
}
}
D || (h += ve(p, o, m));
} else h += p.currentString;
}
for (; !f.isEnd() && f.getNextToken(); ) {
f.currentToken === E.IDENTIFIER ? (d += ve(f, o, m)) : (d += f.currentString);
}
var w = { vertex: s.vertexShader + t, fragment: s.fragmentShader + t },
L = { attributes: b, uniforms: g, samplers: _, needAlphaBlending: c && c.enable && -1 !== c.enable.indexOf(3042) };
(F.a.ShadersStore[s.vertexShader + t + "VertexShader"] = h), (F.a.ShadersStore[s.fragmentShader + t + "PixelShader"] = d);
var k = new j.a(t, e.scene, w, L);
if (
((k.onError = (function (e, t, n) {
return function (i, r) {
t.dispose(!0), n("Cannot compile program named " + e.name + ". Error: " + r + ". Default material will be applied");
};
})(s, k, i)),
(k.onCompiled = _e(e, k, o, r, m, n)),
(k.sideOrientation = N.a.CounterClockWiseSideOrientation),
c && c.functions)
) {
var B = c.functions;
B.cullFace && B.cullFace[0] !== T.BACK && (k.backFaceCulling = !1);
var V = B.blendFuncSeparate;
V &&
(V[0] === S.SRC_ALPHA && V[1] === S.ONE_MINUS_SRC_ALPHA && V[2] === S.ONE && V[3] === S.ONE
? (k.alphaMode = J.a.ALPHA_COMBINE)
: V[0] === S.ONE && V[1] === S.ONE && V[2] === S.ZERO && V[3] === S.ONE
? (k.alphaMode = J.a.ALPHA_ONEONE)
: V[0] === S.SRC_ALPHA && V[1] === S.ONE && V[2] === S.ZERO && V[3] === S.ONE
? (k.alphaMode = J.a.ALPHA_ADD)
: V[0] === S.ZERO && V[1] === S.ONE_MINUS_SRC_COLOR && V[2] === S.ONE && V[3] === S.ONE
? (k.alphaMode = J.a.ALPHA_SUBTRACT)
: V[0] === S.DST_COLOR && V[1] === S.ZERO && V[2] === S.ONE && V[3] === S.ONE
? (k.alphaMode = J.a.ALPHA_MULTIPLY)
: V[0] === S.SRC_ALPHA && V[1] === S.ONE_MINUS_SRC_COLOR && V[2] === S.ONE && V[3] === S.ONE && (k.alphaMode = J.a.ALPHA_MAXIMIZED));
}
} else i && i("No technique found.");
}),
e
);
})(),
Pe = (function () {
function e() {
this.state = null;
}
return (
(e.RegisterExtension = function (t) {
e.Extensions[t.name] ? a.b.Error('Tool with the same name "' + t.name + '" already exists') : (e.Extensions[t.name] = t);
}),
(e.prototype.dispose = function () {}),
(e.prototype._importMeshAsync = function (e, t, n, i, r, o, s, c) {
var l = this;
return (
(t.useRightHandedSystem = !0),
xe.LoadRuntimeAsync(
t,
n,
i,
function (t) {
(t.forAssetContainer = r),
(t.importOnlyMeshes = !0),
"" === e
? (t.importMeshesNames = [])
: "string" == typeof e
? (t.importMeshesNames = [e])
: !e || e instanceof Array
? ((t.importMeshesNames = []), a.b.Warn("Argument meshesNames must be of type string or string[]"))
: (t.importMeshesNames = [e]),
l._createNodes(t);
var n = new Array(),
i = new Array();
for (var c in t.nodes) {
var u = t.nodes[c];
u.babylonNode instanceof W.a && n.push(u.babylonNode);
}
for (var h in t.skins) {
var d = t.skins[h];
d.babylonSkeleton instanceof L.a && i.push(d.babylonSkeleton);
}
l._loadBuffersAsync(
t,
function () {
l._loadShadersAsync(t, function () {
ye(t), be(t), !b.IncrementalLoading && o && o(n, i);
});
},
s
),
b.IncrementalLoading && o && o(n, i);
},
c
),
!0
);
}),
(e.prototype.importMeshAsync = function (e, t, n, i, r, o) {
var a = this;
return new Promise(function (s, c) {
a._importMeshAsync(
e,
t,
i,
r,
n,
function (e, t) {
s({ meshes: e, particleSystems: [], skeletons: t, animationGroups: [], lights: [], transformNodes: [] });
},
o,
function (e) {
c(new Error(e));
}
);
});
}),
(e.prototype._loadAsync = function (e, t, n, i, r, o, a) {
var s = this;
(e.useRightHandedSystem = !0),
xe.LoadRuntimeAsync(
e,
t,
n,
function (e) {
xe.LoadRuntimeExtensionsAsync(
e,
function () {
s._createNodes(e),
s._loadBuffersAsync(e, function () {
s._loadShadersAsync(e, function () {
ye(e), be(e), b.IncrementalLoading || r();
});
}),
b.IncrementalLoading && r();
},
a
);
},
a
);
}),
(e.prototype.loadAsync = function (e, t, n, i) {
var r = this;
return new Promise(function (o, a) {
r._loadAsync(
e,
t,
n,
!1,
function () {
o();
},
i,
function (e) {
a(new Error(e));
}
);
});
}),
(e.prototype._loadShadersAsync = function (e, t) {
var n = !1,
i = function (n, i) {
xe.LoadShaderStringAsync(
e,
n,
function (r) {
r instanceof ArrayBuffer || (e.loadedShaderCount++, r && (F.a.ShadersStore[n + (i.type === v.VERTEX ? "VertexShader" : "PixelShader")] = r), e.loadedShaderCount === e.shaderscount && t());
},
function () {
a.b.Error("Error when loading shader program named " + n + " located at " + i.uri);
}
);
};
for (var r in e.shaders) {
n = !0;
var o = e.shaders[r];
o ? i.bind(this, r, o)() : a.b.Error("No shader named: " + r);
}
n || t();
}),
(e.prototype._loadBuffersAsync = function (e, t, n) {
var i = !1,
r = function (n, i) {
xe.LoadBufferAsync(
e,
n,
function (r) {
e.loadedBufferCount++,
r && (r.byteLength != e.buffers[n].byteLength && a.b.Error("Buffer named " + n + " is length " + r.byteLength + ". Expected: " + i.byteLength), (e.loadedBufferViews[n] = r)),
e.loadedBufferCount === e.buffersCount && t();
},
function () {
a.b.Error("Error when loading buffer named " + n + " located at " + i.uri);
}
);
};
for (var o in e.buffers) {
i = !0;
var s = e.buffers[o];
s ? r.bind(this, o, s)() : a.b.Error("No buffer named: " + o);
}
i || t();
}),
(e.prototype._createNodes = function (e) {
var t = e.currentScene;
if (t) for (var n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null);
else
for (var i in e.scenes) {
t = e.scenes[i];
for (n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null);
}
}),
(e.Extensions = {}),
e
);
})(),
xe = (function () {
function e(e) {
this._name = e;
}
return (
Object.defineProperty(e.prototype, "name", {
get: function () {
return this._name;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.loadRuntimeAsync = function (e, t, n, i, r) {
return !1;
}),
(e.prototype.loadRuntimeExtensionsAsync = function (e, t, n) {
return !1;
}),
(e.prototype.loadBufferAsync = function (e, t, n, i, r) {
return !1;
}),
(e.prototype.loadTextureBufferAsync = function (e, t, n, i) {
return !1;
}),
(e.prototype.createTextureAsync = function (e, t, n, i, r) {
return !1;
}),
(e.prototype.loadShaderStringAsync = function (e, t, n, i) {
return !1;
}),
(e.prototype.loadMaterialAsync = function (e, t, n, i) {
return !1;
}),
(e.LoadRuntimeAsync = function (t, n, i, r, o) {
e.ApplyExtensions(
function (e) {
return e.loadRuntimeAsync(t, n, i, r, o);
},
function () {
setTimeout(function () {
r && r(Ce.CreateRuntime(n.json, t, i));
});
}
);
}),
(e.LoadRuntimeExtensionsAsync = function (t, n, i) {
e.ApplyExtensions(
function (e) {
return e.loadRuntimeExtensionsAsync(t, n, i);
},
function () {
setTimeout(function () {
n();
});
}
);
}),
(e.LoadBufferAsync = function (t, n, i, r, o) {
e.ApplyExtensions(
function (e) {
return e.loadBufferAsync(t, n, i, r, o);
},
function () {
Ce.LoadBufferAsync(t, n, i, r, o);
}
);
}),
(e.LoadTextureAsync = function (t, n, i, r) {
e.LoadTextureBufferAsync(
t,
n,
function (o) {
o && e.CreateTextureAsync(t, n, o, i, r);
},
r
);
}),
(e.LoadShaderStringAsync = function (t, n, i, r) {
e.ApplyExtensions(
function (e) {
return e.loadShaderStringAsync(t, n, i, r);
},
function () {
Ce.LoadShaderStringAsync(t, n, i, r);
}
);
}),
(e.LoadMaterialAsync = function (t, n, i, r) {
e.ApplyExtensions(
function (e) {
return e.loadMaterialAsync(t, n, i, r);
},
function () {
Ce.LoadMaterialAsync(t, n, i, r);
}
);
}),
(e.LoadTextureBufferAsync = function (t, n, i, r) {
e.ApplyExtensions(
function (e) {
return e.loadTextureBufferAsync(t, n, i, r);
},
function () {
Ce.LoadTextureBufferAsync(t, n, i, r);
}
);
}),
(e.CreateTextureAsync = function (t, n, i, r, o) {
e.ApplyExtensions(
function (e) {
return e.createTextureAsync(t, n, i, r, o);
},
function () {
Ce.CreateTextureAsync(t, n, i, r, o);
}
);
}),
(e.ApplyExtensions = function (e, t) {
for (var n in Pe.Extensions) {
if (e(Pe.Extensions[n])) return;
}
t();
}),
e
);
})();
b._CreateGLTF1Loader = function () {
return new Pe();
};
var Te = (function (e) {
function t() {
return e.call(this, "KHR_binary_glTF") || this;
}
return (
Object(O.d)(t, e),
(t.prototype.loadRuntimeAsync = function (e, t, n, i, r) {
var o = t.json.extensionsUsed;
return !(!o || -1 === o.indexOf(this.name) || !t.bin) && ((this._bin = t.bin), i(Ce.CreateRuntime(t.json, e, n)), !0);
}),
(t.prototype.loadBufferAsync = function (e, t, n, i) {
return (
-1 !== e.extensionsUsed.indexOf(this.name) &&
"binary_glTF" === t &&
(this._bin.readAsync(0, this._bin.byteLength).then(n, function (e) {
return i(e.message);
}),
!0)
);
}),
(t.prototype.loadTextureBufferAsync = function (e, t, n, i) {
var r = e.textures[t],
o = e.images[r.source];
if (!o.extensions || !(this.name in o.extensions)) return !1;
var a = o.extensions[this.name],
s = e.bufferViews[a.bufferView];
return n(Q.GetBufferFromBufferView(e, s, 0, s.byteLength, _.UNSIGNED_BYTE)), !0;
}),
(t.prototype.loadShaderStringAsync = function (e, t, n, i) {
var r = e.shaders[t];
if (!r.extensions || !(this.name in r.extensions)) return !1;
var o = r.extensions[this.name],
a = e.bufferViews[o.bufferView],
s = Q.GetBufferFromBufferView(e, a, 0, a.byteLength, _.UNSIGNED_BYTE);
return (
setTimeout(function () {
var e = Q.DecodeBufferToText(s);
n(e);
}),
!0
);
}),
t
);
})(xe);
Pe.RegisterExtension(new Te());
var Se = (function (e) {
function t() {
return e.call(this, "KHR_materials_common") || this;
}
return (
Object(O.d)(t, e),
(t.prototype.loadRuntimeExtensionsAsync = function (e, t, n) {
if (!e.extensions) return !1;
var i = e.extensions[this.name];
if (!i) return !1;
var r = i.lights;
if (r)
for (var o in r) {
var s = r[o];
switch (s.type) {
case "ambient":
var c = new Y.a(s.name, new M.e(0, 1, 0), e.scene),
l = s.ambient;
l && (c.diffuse = A.a.FromArray(l.color || [1, 1, 1]));
break;
case "point":
var u = new Z.a(s.name, new M.e(10, 10, 10), e.scene),
h = s.point;
h && (u.diffuse = A.a.FromArray(h.color || [1, 1, 1]));
break;
case "directional":
var d = new K.a(s.name, new M.e(0, -1, 0), e.scene),
p = s.directional;
p && (d.diffuse = A.a.FromArray(p.color || [1, 1, 1]));
break;
case "spot":
var f = s.spot;
if (f) new q.a(s.name, new M.e(0, 10, 0), new M.e(0, -1, 0), f.fallOffAngle || Math.PI, f.fallOffExponent || 0, e.scene).diffuse = A.a.FromArray(f.color || [1, 1, 1]);
break;
default:
a.b.Warn('GLTF Material Common extension: light type "' + s.type + "” not supported");
}
}
return !1;
}),
(t.prototype.loadMaterialAsync = function (e, t, n, i) {
var r = e.materials[t];
if (!r || !r.extensions) return !1;
var o = r.extensions[this.name];
if (!o) return !1;
var a = new z.a(t, e.scene);
return (
(a.sideOrientation = N.a.CounterClockWiseSideOrientation),
"CONSTANT" === o.technique && (a.disableLighting = !0),
(a.backFaceCulling = void 0 !== o.doubleSided && !o.doubleSided),
(a.alpha = void 0 === o.values.transparency ? 1 : o.values.transparency),
(a.specularPower = void 0 === o.values.shininess ? 0 : o.values.shininess),
"string" == typeof o.values.ambient ? this._loadTexture(e, o.values.ambient, a, "ambientTexture", i) : (a.ambientColor = A.a.FromArray(o.values.ambient || [0, 0, 0])),
"string" == typeof o.values.diffuse ? this._loadTexture(e, o.values.diffuse, a, "diffuseTexture", i) : (a.diffuseColor = A.a.FromArray(o.values.diffuse || [0, 0, 0])),
"string" == typeof o.values.emission ? this._loadTexture(e, o.values.emission, a, "emissiveTexture", i) : (a.emissiveColor = A.a.FromArray(o.values.emission || [0, 0, 0])),
"string" == typeof o.values.specular ? this._loadTexture(e, o.values.specular, a, "specularTexture", i) : (a.specularColor = A.a.FromArray(o.values.specular || [0, 0, 0])),
!0
);
}),
(t.prototype._loadTexture = function (e, t, n, i, r) {
Ce.LoadTextureBufferAsync(
e,
t,
function (o) {
Ce.CreateTextureAsync(
e,
t,
o,
function (e) {
return (n[i] = e);
},
r
);
},
r
);
}),
t
);
})(xe);
Pe.RegisterExtension(new Se());
var Oe = n(138),
Ee = n(144),
Me = n(49),
Ae = n(39),
Ie = n(159),
De = n(154),
Re = n(134),
we = n(74),
Le = (function () {
function e() {}
return (
(e.Get = function (e, t, n) {
if (!t || null == n || !t[n]) throw new Error(e + ": Failed to find index (" + n + ")");
return t[n];
}),
(e.Assign = function (e) {
if (e) for (var t = 0; t < e.length; t++) e[t].index = t;
}),
e
);
})(),
Fe = (function () {
function e(e) {
(this._completePromises = new Array()),
(this._forAssetContainer = !1),
(this._babylonLights = []),
(this._disposed = !1),
(this._state = null),
(this._extensions = new Array()),
(this._defaultBabylonMaterialData = {}),
(this._requests = new Array()),
(this._parent = e);
}
return (
(e.RegisterExtension = function (t, n) {
e.UnregisterExtension(t) && l.a.Warn("Extension with the name '" + t + "' already exists"), (e._RegisteredExtensions[t] = { factory: n });
}),
(e.UnregisterExtension = function (t) {
return !!e._RegisteredExtensions[t] && (delete e._RegisteredExtensions[t], !0);
}),
Object.defineProperty(e.prototype, "state", {
get: function () {
return this._state;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "gltf", {
get: function () {
return this._gltf;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "bin", {
get: function () {
return this._bin;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "parent", {
get: function () {
return this._parent;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "babylonScene", {
get: function () {
return this._babylonScene;
},
enumerable: !0,
configurable: !0,
}),
Object.defineProperty(e.prototype, "rootBabylonMesh", {
get: function () {
return this._rootBabylonMesh;
},
enumerable: !0,
configurable: !0,
}),
(e.prototype.dispose = function () {
if (!this._disposed) {
this._disposed = !0;
for (var e = 0, t = this._requests; e < t.length; e++) {
t[e].abort();
}
for (var n in ((this._requests.length = 0), (this._completePromises.length = 0), this._extensions)) {
var i = this._extensions[n];
i.dispose && i.dispose(), delete this._extensions[n];
}
delete this._gltf, delete this._babylonScene, delete this._rootBabylonMesh, delete this._progressCallback, this._parent._clear();
}
}),
(e.prototype.importMeshAsync = function (e, t, n, i, r, o, a) {
var s = this;
return Promise.resolve().then(function () {
(s._babylonScene = t), (s._rootUrl = r), (s._fileName = a || "scene"), (s._progressCallback = o), (s._forAssetContainer = n), s._loadData(i);
var c = null;
if (e) {
var l = {};
if (s._gltf.nodes)
for (var u = 0, h = s._gltf.nodes; u < h.length; u++) {
var d = h[u];
d.name && (l[d.name] = d.index);
}
c = (e instanceof Array ? e : [e]).map(function (e) {
var t = l[e];
if (void 0 === t) throw new Error("Failed to find node '" + e + "'");
return t;
});
}
return s._loadAsync(c, function () {
return { meshes: s._getMeshes(), particleSystems: [], skeletons: s._getSkeletons(), animationGroups: s._getAnimationGroups(), lights: s._babylonLights, transformNodes: s._getTransformNodes() };
});
});
}),
(e.prototype.loadAsync = function (e, t, n, i, r) {
var o = this;
return Promise.resolve().then(function () {
return (o._babylonScene = e), (o._rootUrl = n), (o._fileName = r || "scene"), (o._progressCallback = i), o._loadData(t), o._loadAsync(null, function () {});
});
}),
(e.prototype._loadAsync = function (e, t) {
var n = this;
return Promise.resolve().then(
function () {
(n._uniqueRootUrl = -1 === n._rootUrl.indexOf("file:") && n._fileName ? n._rootUrl : "" + n._rootUrl + Date.now() + "/"), n._loadExtensions(), n._checkExtensions();
var i = m[m.LOADING] + " => " + m[m.READY],
r = m[m.LOADING] + " => " + m[m.COMPLETE];
n._parent._startPerformanceCounter(i), n._parent._startPerformanceCounter(r), n._setState(m.LOADING), n._extensionsOnLoading();
var o = new Array(),
s = n._babylonScene.blockMaterialDirtyMechanism;
if (((n._babylonScene.blockMaterialDirtyMechanism = !0), e)) o.push(n.loadSceneAsync("/nodes", { nodes: e, index: -1 }));
else if (null != n._gltf.scene || (n._gltf.scenes && n._gltf.scenes[0])) {
var c = Le.Get("/scene", n._gltf.scenes, n._gltf.scene || 0);
o.push(n.loadSceneAsync("/scenes/" + c.index, c));
}
(n._babylonScene.blockMaterialDirtyMechanism = s), n._parent.compileMaterials && o.push(n._compileMaterialsAsync()), n._parent.compileShadowGenerators && o.push(n._compileShadowGeneratorsAsync());
var l = Promise.all(o).then(function () {
return n._rootBabylonMesh && n._rootBabylonMesh.setEnabled(!0), n._setState(m.READY), n._extensionsOnReady(), n._startAnimations(), t();
});
return (
l.then(function () {
n._parent._endPerformanceCounter(i),
a.b.SetImmediate(function () {
n._disposed ||
Promise.all(n._completePromises).then(
function () {
n._parent._endPerformanceCounter(r), n._setState(m.COMPLETE), n._parent.onCompleteObservable.notifyObservers(void 0), n._parent.onCompleteObservable.clear(), n.dispose();
},
function (e) {
n._parent.onErrorObservable.notifyObservers(e), n._parent.onErrorObservable.clear(), n.dispose();
}
);
});
}),
l
);
},
function (e) {
throw (n._disposed || (n._parent.onErrorObservable.notifyObservers(e), n._parent.onErrorObservable.clear(), n.dispose()), e);
}
);
}),
(e.prototype._loadData = function (e) {
if (((this._gltf = e.json), this._setupData(), e.bin)) {
var t = this._gltf.buffers;
if (t && t[0] && !t[0].uri) {
var n = t[0];
(n.byteLength < e.bin.byteLength - 3 || n.byteLength > e.bin.byteLength) && l.a.Warn("Binary buffer length (" + n.byteLength + ") from JSON does not match chunk length (" + e.bin.byteLength + ")"),
(this._bin = e.bin);
} else l.a.Warn("Unexpected BIN chunk");
}
}),
(e.prototype._setupData = function () {
if (
(Le.Assign(this._gltf.accessors),
Le.Assign(this._gltf.animations),
Le.Assign(this._gltf.buffers),
Le.Assign(this._gltf.bufferViews),
Le.Assign(this._gltf.cameras),
Le.Assign(this._gltf.images),
Le.Assign(this._gltf.materials),
Le.Assign(this._gltf.meshes),
Le.Assign(this._gltf.nodes),
Le.Assign(this._gltf.samplers),
Le.Assign(this._gltf.scenes),
Le.Assign(this._gltf.skins),
Le.Assign(this._gltf.textures),
this._gltf.nodes)
) {
for (var e = {}, t = 0, n = this._gltf.nodes; t < n.length; t++) {
if ((c = n[t]).children)
for (var i = 0, r = c.children; i < r.length; i++) {
e[r[i]] = c.index;
}
}
for (var o = this._createRootNode(), a = 0, s = this._gltf.nodes; a < s.length; a++) {
var c,
l = e[(c = s[a]).index];
c.parent = void 0 === l ? o : this._gltf.nodes[l];
}
}
}),
(e.prototype._loadExtensions = function () {
for (var t in e._RegisteredExtensions) {
var n = e._RegisteredExtensions[t].factory(this);
n.name !== t && l.a.Warn("The name of the glTF loader extension instance does not match the registered name: " + n.name + " !== " + t),
this._extensions.push(n),
this._parent.onExtensionLoadedObservable.notifyObservers(n);
}
this._extensions.sort(function (e, t) {
return (e.order || Number.MAX_VALUE) - (t.order || Number.MAX_VALUE);
}),
this._parent.onExtensionLoadedObservable.clear();
}),
(e.prototype._checkExtensions = function () {
if (this._gltf.extensionsRequired)
for (
var e = function (e) {
if (
!t._extensions.some(function (t) {
return t.name === e && t.enabled;
})
)
throw new Error("Require extension " + e + " is not available");
},
t = this,
n = 0,
i = this._gltf.extensionsRequired;
n < i.length;
n++
) {
e(i[n]);
}
}),
(e.prototype._setState = function (e) {
(this._state = e), this.log(m[this._state]);
}),
(e.prototype._createRootNode = function () {
(this._babylonScene._blockEntityCollection = this._forAssetContainer),
(this._rootBabylonMesh = new X.a("__root__", this._babylonScene)),
(this._babylonScene._blockEntityCollection = !1),
this._rootBabylonMesh.setEnabled(!1);
var t = { _babylonTransformNode: this._rootBabylonMesh, index: -1 };
switch (this._parent.coordinateSystemMode) {
case p.AUTO:
this._babylonScene.useRightHandedSystem || ((t.rotation = [0, 1, 0, 0]), (t.scale = [1, 1, -1]), e._LoadTransform(t, this._rootBabylonMesh));
break;
case p.FORCE_RIGHT_HANDED:
this._babylonScene.useRightHandedSystem = !0;
break;
default:
throw new Error("Invalid coordinate system mode (" + this._parent.coordinateSystemMode + ")");
}
return this._parent.onMeshLoadedObservable.notifyObservers(this._rootBabylonMesh), t;
}),
(e.prototype.loadSceneAsync = function (e, t) {
var n = this,
i = this._extensionsLoadSceneAsync(e, t);
if (i) return i;
var r = new Array();
if ((this.logOpen(e + " " + (t.name || "")), t.nodes))
for (var o = 0, a = t.nodes; o < a.length; o++) {
var s = a[o],
c = Le.Get(e + "/nodes/" + s, this._gltf.nodes, s);
r.push(
this.loadNodeAsync("/nodes/" + c.index, c, function (e) {
e.parent = n._rootBabylonMesh;
})
);
}
if (this._gltf.nodes)
for (var l = 0, u = this._gltf.nodes; l < u.length; l++) {
if ((c = u[l])._babylonTransformNode && c._babylonBones)
for (var h = 0, d = c._babylonBones; h < d.length; h++) {
d[h].linkTransformNode(c._babylonTransformNode);
}
}
return r.push(this._loadAnimationsAsync()), this.logClose(), Promise.all(r).then(function () {});
}),
(e.prototype._forEachPrimitive = function (e, t) {
if (e._primitiveBabylonMeshes)
for (var n = 0, i = e._primitiveBabylonMeshes; n < i.length; n++) {
t(i[n]);
}
}),
(e.prototype._getMeshes = function () {
var e = new Array();
e.push(this._rootBabylonMesh);
var t = this._gltf.nodes;
if (t)
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
this._forEachPrimitive(r, function (t) {
e.push(t);
});
}
return e;
}),
(e.prototype._getTransformNodes = function () {
var e = new Array(),
t = this._gltf.nodes;
if (t)
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
r._babylonTransformNode && "TransformNode" === r._babylonTransformNode.getClassName() && e.push(r._babylonTransformNode);
}
return e;
}),
(e.prototype._getSkeletons = function () {
var e = new Array(),
t = this._gltf.skins;
if (t)
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
r._data && e.push(r._data.babylonSkeleton);
}
return e;
}),
(e.prototype._getAnimationGroups = function () {
var e = new Array(),
t = this._gltf.animations;
if (t)
for (var n = 0, i = t; n < i.length; n++) {
var r = i[n];
r._babylonAnimationGroup && e.push(r._babylonAnimationGroup);
}
return e;
}),
(e.prototype._startAnimations = function () {
switch (this._parent.animationStartMode) {
case f.NONE:
break;
case f.FIRST:
0 !== (e = this._getAnimationGroups()).length && e[0].start(!0);
break;
case f.ALL:
for (var e, t = 0, n = (e = this._getAnimationGroups()); t < n.length; t++) {
n[t].start(!0);
}
break;
default:
return void l.a.Error("Invalid animation start mode (" + this._parent.animationStartMode + ")");
}
}),
(e.prototype.loadNodeAsync = function (t, n, i) {
var r = this;
void 0 === i && (i = function () {});
var o = this._extensionsLoadNodeAsync(t, n, i);
if (o) return o;
if (n._babylonTransformNode) throw new Error(t + ": Invalid recursive node hierarchy");
var a = new Array();
this.logOpen(t + " " + (n.name || ""));
var s = function (o) {
if ((e.AddPointerMetadata(o, t), e._LoadTransform(n, o), null != n.camera)) {
var s = Le.Get(t + "/camera", r._gltf.cameras, n.camera);
a.push(
r.loadCameraAsync("/cameras/" + s.index, s, function (e) {
e.parent = o;
})
);
}
if (n.children)
for (var c = 0, l = n.children; c < l.length; c++) {
var u = l[c],
h = Le.Get(t + "/children/" + u, r._gltf.nodes, u);
a.push(
r.loadNodeAsync("/nodes/" + h.index, h, function (e) {
e.parent = o;
})
);
}
i(o);
};
if (null == n.mesh) {
var c = n.name || "node" + n.index;
(this._babylonScene._blockEntityCollection = this._forAssetContainer), (n._babylonTransformNode = new Ae.a(c, this._babylonScene)), (this._babylonScene._blockEntityCollection = !1), s(n._babylonTransformNode);
} else {
var l = Le.Get(t + "/mesh", this._gltf.meshes, n.mesh);
a.push(this._loadMeshAsync("/meshes/" + l.index, n, l, s));
}
return (
this.logClose(),
Promise.all(a).then(function () {
return (
r._forEachPrimitive(n, function (e) {
e.refreshBoundingInfo(!0);
}),
n._babylonTransformNode
);
})
);
}),
(e.prototype._loadMeshAsync = function (e, t, n, i) {
var r = n.primitives;
if (!r || !r.length) throw new Error(e + ": Primitives are missing");
null == r[0].index && Le.Assign(r);
var o = new Array();
this.logOpen(e + " " + (n.name || ""));
var a = t.name || "node" + t.index;
if (1 === r.length) {
var s = n.primitives[0];
o.push(
this._loadMeshPrimitiveAsync(e + "/primitives/" + s.index, a, t, n, s, function (e) {
(t._babylonTransformNode = e), (t._primitiveBabylonMeshes = [e]);
})
);
} else {
(t._babylonTransformNode = new Ae.a(a, this._babylonScene)), (t._primitiveBabylonMeshes = []);
for (var c = 0, l = r; c < l.length; c++) {
s = l[c];
o.push(
this._loadMeshPrimitiveAsync(e + "/primitives/" + s.index, a + "_primitive" + s.index, t, n, s, function (e) {
(e.parent = t._babylonTransformNode), t._primitiveBabylonMeshes.push(e);
})
);
}
}
if (null != t.skin) {
var u = Le.Get(e + "/skin", this._gltf.skins, t.skin);
o.push(this._loadSkinAsync("/skins/" + u.index, t, u));
}
return (
i(t._babylonTransformNode),
this.logClose(),
Promise.all(o).then(function () {
return t._babylonTransformNode;
})
);
}),
(e.prototype._loadMeshPrimitiveAsync = function (t, n, i, r, o, a) {
var s = this,
c = this._extensionsLoadMeshPrimitiveAsync(t, n, i, r, o, a);
if (c) return c;
this.logOpen("" + t);
var l,
u,
h = this._parent.createInstances && null == i.skin && !r.primitives[0].targets;
if (h && o._instanceData) (l = o._instanceData.babylonSourceMesh.createInstance(n)), (u = o._instanceData.promise);
else {
var d = new Array();
this._babylonScene._blockEntityCollection = this._forAssetContainer;
var p = new X.a(n, this._babylonScene);
(this._babylonScene._blockEntityCollection = !1),
(p.overrideMaterialSideOrientation = this._babylonScene.useRightHandedSystem ? N.a.CounterClockWiseSideOrientation : N.a.ClockWiseSideOrientation),
this._createMorphTargets(t, i, r, o, p),
d.push(
this._loadVertexDataAsync(t, o, p).then(function (e) {
return s._loadMorphTargetsAsync(t, o, p, e).then(function () {
e.applyToMesh(p);
});
})
);
var f = e._GetDrawMode(t, o.mode);
if (null == o.material) {
var m = this._defaultBabylonMaterialData[f];
m || ((m = this._createDefaultMaterial("__GLTFLoader._default", f)), this._parent.onMaterialLoadedObservable.notifyObservers(m), (this._defaultBabylonMaterialData[f] = m)), (p.material = m);
} else {
var g = Le.Get(t + "/material", this._gltf.materials, o.material);
d.push(
this._loadMaterialAsync("/materials/" + g.index, g, p, f, function (e) {
p.material = e;
})
);
}
(u = Promise.all(d)), h && (o._instanceData = { babylonSourceMesh: p, promise: u }), (l = p);
}
return (
e.AddPointerMetadata(l, t),
this._parent.onMeshLoadedObservable.notifyObservers(l),
a(l),
this.logClose(),
u.then(function () {
return l;
})
);
}),
(e.prototype._loadVertexDataAsync = function (e, t, n) {
var i = this,
r = this._extensionsLoadVertexDataAsync(e, t, n);
if (r) return r;
var o = t.attributes;
if (!o) throw new Error(e + ": Attributes are missing");
var a = new Array(),
s = new U.a(n.name, this._babylonScene);
if (null == t.indices) n.isUnIndexed = !0;
else {
var c = Le.Get(e + "/indices", this._gltf.accessors, t.indices);
a.push(
this._loadIndicesAccessorAsync("/accessors/" + c.index, c).then(function (e) {
s.setIndices(e);
})
);
}
var l = function (t, r, c) {
if (null != o[t]) {
(n._delayInfo = n._delayInfo || []), -1 === n._delayInfo.indexOf(r) && n._delayInfo.push(r);
var l = Le.Get(e + "/attributes/" + t, i._gltf.accessors, o[t]);
a.push(
i._loadVertexAccessorAsync("/accessors/" + l.index, l, r).then(function (e) {
s.setVerticesBuffer(e, l.count);
})
),
r == G.b.MatricesIndicesExtraKind && (n.numBoneInfluencers = 8),
c && c(l);
}
};
return (
l("POSITION", G.b.PositionKind),
l("NORMAL", G.b.NormalKind),
l("TANGENT", G.b.TangentKind),
l("TEXCOORD_0", G.b.UVKind),
l("TEXCOORD_1", G.b.UV2Kind),
l("JOINTS_0", G.b.MatricesIndicesKind),
l("WEIGHTS_0", G.b.MatricesWeightsKind),
l("JOINTS_1", G.b.MatricesIndicesExtraKind),
l("WEIGHTS_1", G.b.MatricesWeightsExtraKind),
l("COLOR_0", G.b.ColorKind, function (e) {
"VEC4" === e.type && (n.hasVertexAlpha = !0);
}),
Promise.all(a).then(function () {
return s;
})
);
}),
(e.prototype._createMorphTargets = function (e, t, n, i, r) {
if (i.targets) {
if (null == t._numMorphTargets) t._numMorphTargets = i.targets.length;
else if (i.targets.length !== t._numMorphTargets) throw new Error(e + ": Primitives do not have the same number of targets");
var o = n.extras ? n.extras.targetNames : null;
r.morphTargetManager = new De.a(r.getScene());
for (var a = 0; a < i.targets.length; a++) {
var s = t.weights ? t.weights[a] : n.weights ? n.weights[a] : 0,
c = o ? o[a] : "morphTarget" + a;
r.morphTargetManager.addTarget(new Ie.a(c, s, r.getScene()));
}
}
}),
(e.prototype._loadMorphTargetsAsync = function (e, t, n, i) {
if (!t.targets) return Promise.resolve();
for (var r = new Array(), o = n.morphTargetManager, a = 0; a < o.numTargets; a++) {
var s = o.getTarget(a);
r.push(this._loadMorphTargetVertexDataAsync(e + "/targets/" + a, i, t.targets[a], s));
}
return Promise.all(r).then(function () {});
}),
(e.prototype._loadMorphTargetVertexDataAsync = function (e, t, n, i) {
var r = this,
o = new Array(),
a = function (i, a, s) {
if (null != n[i]) {
var c = t.getVertexBuffer(a);
if (c) {
var l = Le.Get(e + "/" + i, r._gltf.accessors, n[i]);
o.push(
r._loadFloatAccessorAsync("/accessors/" + l.index, l).then(function (e) {
s(c, e);
})
);
}
}
};
return (
a("POSITION", G.b.PositionKind, function (e, t) {
var n = new Float32Array(t.length);
e.forEach(t.length, function (e, i) {
n[i] = t[i] + e;
}),
i.setPositions(n);
}),
a("NORMAL", G.b.NormalKind, function (e, t) {
var n = new Float32Array(t.length);
e.forEach(n.length, function (e, i) {
n[i] = t[i] + e;
}),
i.setNormals(n);
}),
a("TANGENT", G.b.TangentKind, function (e, t) {
var n = new Float32Array((t.length / 3) * 4),
r = 0;
e.forEach((t.length / 3) * 4, function (e, i) {
(i + 1) % 4 != 0 && ((n[r] = t[r] + e), r++);
}),
i.setTangents(n);
}),
Promise.all(o).then(function () {})
);
}),
(e._LoadTransform = function (e, t) {
if (null == e.skin) {
var n = M.e.Zero(),
i = M.b.Identity(),
r = M.e.One();
if (e.matrix) M.a.FromArray(e.matrix).decompose(r, i, n);
else e.translation && (n = M.e.FromArray(e.translation)), e.rotation && (i = M.b.FromArray(e.rotation)), e.scale && (r = M.e.FromArray(e.scale));
(t.position = n), (t.rotationQuaternion = i), (t.scaling = r);
}
}),
(e.prototype._loadSkinAsync = function (e, t, n) {
var i = this,
r = this._extensionsLoadSkinAsync(e, t, n);
if (r) return r;
var o = function (e) {
i._forEachPrimitive(t, function (t) {
t.skeleton = e;
});
};
if (n._data) return o(n._data.babylonSkeleton), n._data.promise;
var a = "skeleton" + n.index;
this._babylonScene._blockEntityCollection = this._forAssetContainer;
var s = new L.a(n.name || a, a, this._babylonScene);
(this._babylonScene._blockEntityCollection = !1), (s.overrideMesh = this._rootBabylonMesh), this._loadBones(e, n, s), o(s);
var c = this._loadSkinInverseBindMatricesDataAsync(e, n).then(function (e) {
i._updateBoneMatrices(s, e);
});
return (n._data = { babylonSkeleton: s, promise: c }), c;
}),
(e.prototype._loadBones = function (e, t, n) {
for (var i = {}, r = 0, o = t.joints; r < o.length; r++) {
var a = o[r],
s = Le.Get(e + "/joints/" + a, this._gltf.nodes, a);
this._loadBone(s, t, n, i);
}
}),
(e.prototype._loadBone = function (e, t, n, i) {
var r = i[e.index];
if (r) return r;
var o = null;
e.parent && e.parent._babylonTransformNode !== this._rootBabylonMesh && (o = this._loadBone(e.parent, t, n, i));
var a = t.joints.indexOf(e.index);
return (r = new w.a(e.name || "joint" + e.index, n, o, this._getNodeMatrix(e), null, null, a)), (i[e.index] = r), (e._babylonBones = e._babylonBones || []), e._babylonBones.push(r), r;
}),
(e.prototype._loadSkinInverseBindMatricesDataAsync = function (e, t) {
if (null == t.inverseBindMatrices) return Promise.resolve(null);
var n = Le.Get(e + "/inverseBindMatrices", this._gltf.accessors, t.inverseBindMatrices);
return this._loadFloatAccessorAsync("/accessors/" + n.index, n);
}),
(e.prototype._updateBoneMatrices = function (e, t) {
for (var n = 0, i = e.bones; n < i.length; n++) {
var r = i[n],
o = M.a.Identity(),
a = r._index;
t && -1 !== a && (M.a.FromArrayToRef(t, 16 * a, o), o.invertToRef(o));
var s = r.getParent();
s && o.multiplyToRef(s.getInvertedAbsoluteTransform(), o), r.updateMatrix(o, !1, !1), r._updateDifferenceMatrix(void 0, !1);
}
}),
(e.prototype._getNodeMatrix = function (e) {
return e.matrix
? M.a.FromArray(e.matrix)
: M.a.Compose(e.scale ? M.e.FromArray(e.scale) : M.e.One(), e.rotation ? M.b.FromArray(e.rotation) : M.b.Identity(), e.translation ? M.e.FromArray(e.translation) : M.e.Zero());
}),
(e.prototype.loadCameraAsync = function (t, n, i) {
void 0 === i && (i = function () {});
var r = this._extensionsLoadCameraAsync(t, n, i);
if (r) return r;
var o = new Array();
this.logOpen(t + " " + (n.name || "")), (this._babylonScene._blockEntityCollection = this._forAssetContainer);
var a = new D.a(n.name || "camera" + n.index, M.e.Zero(), this._babylonScene, !1);
switch (((this._babylonScene._blockEntityCollection = !1), (a.rotation = new M.e(0, Math.PI, 0)), n.type)) {
case "perspective":
var s = n.perspective;
if (!s) throw new Error(t + ": Camera perspective properties are missing");
(a.fov = s.yfov), (a.minZ = s.znear), (a.maxZ = s.zfar || Number.MAX_VALUE);
break;
case "orthographic":
if (!n.orthographic) throw new Error(t + ": Camera orthographic properties are missing");
(a.mode = I.a.ORTHOGRAPHIC_CAMERA),
(a.orthoLeft = -n.orthographic.xmag),
(a.orthoRight = n.orthographic.xmag),
(a.orthoBottom = -n.orthographic.ymag),
(a.orthoTop = n.orthographic.ymag),
(a.minZ = n.orthographic.znear),
(a.maxZ = n.orthographic.zfar);
break;
default:
throw new Error(t + ": Invalid camera type (" + n.type + ")");
}
return (
e.AddPointerMetadata(a, t),
this._parent.onCameraLoadedObservable.notifyObservers(a),
i(a),
Promise.all(o).then(function () {
return a;
})
);
}),
(e.prototype._loadAnimationsAsync = function () {
var e = this._gltf.animations;
if (!e) return Promise.resolve();
for (var t = new Array(), n = 0; n < e.length; n++) {
var i = e[n];
t.push(this.loadAnimationAsync("/animations/" + i.index, i));
}
return Promise.all(t).then(function () {});
}),
(e.prototype.loadAnimationAsync = function (e, t) {
var n = this._extensionsLoadAnimationAsync(e, t);
if (n) return n;
this._babylonScene._blockEntityCollection = this._forAssetContainer;
var i = new Ee.a(t.name || "animation" + t.index, this._babylonScene);
(this._babylonScene._blockEntityCollection = !1), (t._babylonAnimationGroup = i);
var r = new Array();
Le.Assign(t.channels), Le.Assign(t.samplers);
for (var o = 0, a = t.channels; o < a.length; o++) {
var s = a[o];
r.push(this._loadAnimationChannelAsync(e + "/channels/" + s.index, e, t, s, i));
}
return Promise.all(r).then(function () {
return i.normalize(0), i;
});
}),
(e.prototype._loadAnimationChannelAsync = function (e, t, n, i, r, o) {
var a = this;
if ((void 0 === o && (o = null), null == i.target.node)) return Promise.resolve();
var s = Le.Get(e + "/target/node", this._gltf.nodes, i.target.node);
if (("weights" === i.target.path && !s._numMorphTargets) || ("weights" !== i.target.path && !s._babylonTransformNode)) return Promise.resolve();
var c = Le.Get(e + "/sampler", n.samplers, i.sampler);
return this._loadAnimationSamplerAsync(t + "/samplers/" + i.sampler, c).then(function (t) {
var n, c;
switch (i.target.path) {
case "translation":
(n = "position"), (c = R.a.ANIMATIONTYPE_VECTOR3);
break;
case "rotation":
(n = "rotationQuaternion"), (c = R.a.ANIMATIONTYPE_QUATERNION);
break;
case "scale":
(n = "scaling"), (c = R.a.ANIMATIONTYPE_VECTOR3);
break;
case "weights":
(n = "influence"), (c = R.a.ANIMATIONTYPE_FLOAT);
break;
default:
throw new Error(e + "/target/path: Invalid value (" + i.target.path + ")");
}
var l,
u,
h = 0;
switch (n) {
case "position":
l = function () {
var e = M.e.FromArray(t.output, h);
return (h += 3), e;
};
break;
case "rotationQuaternion":
l = function () {
var e = M.b.FromArray(t.output, h);
return (h += 4), e;
};
break;
case "scaling":
l = function () {
var e = M.e.FromArray(t.output, h);
return (h += 3), e;
};
break;
case "influence":
l = function () {
for (var e = new Array(s._numMorphTargets), n = 0; n < s._numMorphTargets; n++) e[n] = t.output[h++];
return e;
};
}
switch (t.interpolation) {
case "STEP":
u = function (e) {
return { frame: t.input[e], value: l(), interpolation: Re.a.STEP };
};
break;
case "LINEAR":
u = function (e) {
return { frame: t.input[e], value: l() };
};
break;
case "CUBICSPLINE":
u = function (e) {
return { frame: t.input[e], inTangent: l(), value: l(), outTangent: l() };
};
}
for (var d = new Array(t.input.length), p = 0; p < t.input.length; p++) d[p] = u(p);
if ("influence" === n)
for (
var f = function (e) {
var t = r.name + "_channel" + r.targetedAnimations.length,
i = new R.a(t, n, 1, c);
i.setKeys(
d.map(function (t) {
return { frame: t.frame, inTangent: t.inTangent ? t.inTangent[e] : void 0, value: t.value[e], outTangent: t.outTangent ? t.outTangent[e] : void 0 };
})
),
a._forEachPrimitive(s, function (t) {
var n = t.morphTargetManager.getTarget(e),
o = i.clone();
n.animations.push(o), r.addTargetedAnimation(o, n);
});
},
m = 0;
m < s._numMorphTargets;
m++
)
f(m);
else {
var g = r.name + "_channel" + r.targetedAnimations.length,
b = new R.a(g, n, 1, c);
b.setKeys(d), null != o && null != o.animations ? (o.animations.push(b), r.addTargetedAnimation(b, o)) : (s._babylonTransformNode.animations.push(b), r.addTargetedAnimation(b, s._babylonTransformNode));
}
});
}),
(e.prototype._loadAnimationSamplerAsync = function (e, t) {
if (t._data) return t._data;
var n = t.interpolation || "LINEAR";
switch (n) {
case "STEP":
case "LINEAR":
case "CUBICSPLINE":
break;
default:
throw new Error(e + "/interpolation: Invalid value (" + t.interpolation + ")");
}
var i = Le.Get(e + "/input", this._gltf.accessors, t.input),
r = Le.Get(e + "/output", this._gltf.accessors, t.output);
return (
(t._data = Promise.all([this._loadFloatAccessorAsync("/accessors/" + i.index, i), this._loadFloatAccessorAsync("/accessors/" + r.index, r)]).then(function (e) {
var t = e[0],
i = e[1];
return { input: t, interpolation: n, output: i };
})),
t._data
);
}),
(e.prototype._loadBufferAsync = function (e, t, n, i) {
var r = this._extensionsLoadBufferAsync(e, t, n, i);
if (r) return r;
if (!t._data)
if (t.uri) t._data = this.loadUriAsync(e + "/uri", t, t.uri);
else {
if (!this._bin) throw new Error(e + ": Uri is missing or the binary glTF is missing its binary chunk");
t._data = this._bin.readAsync(0, t.byteLength);
}
return t._data.then(function (t) {
try {
return new Uint8Array(t.buffer, t.byteOffset + n, i);
} catch (t) {
throw new Error(e + ": " + t.message);
}
});
}),
(e.prototype.loadBufferViewAsync = function (e, t) {
var n = this._extensionsLoadBufferViewAsync(e, t);
if (n) return n;
if (t._data) return t._data;
var i = Le.Get(e + "/buffer", this._gltf.buffers, t.buffer);
return (t._data = this._loadBufferAsync("/buffers/" + i.index, i, t.byteOffset || 0, t.byteLength)), t._data;
}),
(e.prototype._loadAccessorAsync = function (t, n, i) {
var r = this;
if (n._data) return n._data;
var o = e._GetNumComponents(t, n.type),
a = o * G.b.GetTypeByteLength(n.componentType),
s = o * n.count;
if (null == n.bufferView) n._data = Promise.resolve(new i(s));
else {
var c = Le.Get(t + "/bufferView", this._gltf.bufferViews, n.bufferView);
n._data = this.loadBufferViewAsync("/bufferViews/" + c.index, c).then(function (r) {
if (5126 !== n.componentType || n.normalized) {
var l = new i(s);
return (
G.b.ForEach(r, n.byteOffset || 0, c.byteStride || a, o, n.componentType, l.length, n.normalized || !1, function (e, t) {
l[t] = e;
}),
l
);
}
return e._GetTypedArray(t, n.componentType, r, n.byteOffset, s);
});
}
if (n.sparse) {
var l = n.sparse;
n._data = n._data.then(function (s) {
var c = s,
u = Le.Get(t + "/sparse/indices/bufferView", r._gltf.bufferViews, l.indices.bufferView),
h = Le.Get(t + "/sparse/values/bufferView", r._gltf.bufferViews, l.values.bufferView);
return Promise.all([r.loadBufferViewAsync("/bufferViews/" + u.index, u), r.loadBufferViewAsync("/bufferViews/" + h.index, h)]).then(function (r) {
var s,
u = r[0],
h = r[1],
d = e._GetTypedArray(t + "/sparse/indices", l.indices.componentType, u, l.indices.byteOffset, l.count),
p = o * l.count;
if (5126 !== n.componentType || n.normalized) {
var f = e._GetTypedArray(t + "/sparse/values", n.componentType, h, l.values.byteOffset, p);
(s = new i(p)),
G.b.ForEach(f, 0, a, o, n.componentType, s.length, n.normalized || !1, function (e, t) {
s[t] = e;
});
} else s = e._GetTypedArray(t + "/sparse/values", n.componentType, h, l.values.byteOffset, p);
for (var m = 0, g = 0; g < d.length; g++) for (var b = d[g] * o, _ = 0; _ < o; _++) c[b++] = s[m++];
return c;
});
});
}
return n._data;
}),
(e.prototype._loadFloatAccessorAsync = function (e, t) {
return this._loadAccessorAsync(e, t, Float32Array);
}),
(e.prototype._loadIndicesAccessorAsync = function (t, n) {
if ("SCALAR" !== n.type) throw new Error(t + "/type: Invalid value " + n.type);
if (5121 !== n.componentType && 5123 !== n.componentType && 5125 !== n.componentType) throw new Error(t + "/componentType: Invalid value " + n.componentType);
if (n._data) return n._data;
if (n.sparse) {
var i = e._GetTypedArrayConstructor(t + "/componentType", n.componentType);
n._data = this._loadAccessorAsync(t, n, i);
} else {
var r = Le.Get(t + "/bufferView", this._gltf.bufferViews, n.bufferView);
n._data = this.loadBufferViewAsync("/bufferViews/" + r.index, r).then(function (i) {
return e._GetTypedArray(t, n.componentType, i, n.byteOffset, n.count);
});
}
return n._data;
}),
(e.prototype._loadVertexBufferViewAsync = function (e, t) {
var n = this;
return (
e._babylonBuffer ||
(e._babylonBuffer = this.loadBufferViewAsync("/bufferViews/" + e.index, e).then(function (e) {
return new G.a(n._babylonScene.getEngine(), e, !1);
})),
e._babylonBuffer
);
}),
(e.prototype._loadVertexAccessorAsync = function (t, n, i) {
var r = this;
if (n._babylonVertexBuffer) return n._babylonVertexBuffer;
if (n.sparse)
n._babylonVertexBuffer = this._loadFloatAccessorAsync("/accessors/" + n.index, n).then(function (e) {
return new G.b(r._babylonScene.getEngine(), e, i, !1);
});
else if (n.byteOffset && n.byteOffset % G.b.GetTypeByteLength(n.componentType) != 0)
l.a.Warn("Accessor byte offset is not a multiple of component type byte length"),
(n._babylonVertexBuffer = this._loadFloatAccessorAsync("/accessors/" + n.index, n).then(function (e) {
return new G.b(r._babylonScene.getEngine(), e, i, !1);
}));
else if (i === G.b.MatricesIndicesKind || i === G.b.MatricesIndicesExtraKind)
n._babylonVertexBuffer = this._loadFloatAccessorAsync("/accessors/" + n.index, n).then(function (e) {
return new G.b(r._babylonScene.getEngine(), e, i, !1);
});
else {
var o = Le.Get(t + "/bufferView", this._gltf.bufferViews, n.bufferView);
n._babylonVertexBuffer = this._loadVertexBufferViewAsync(o, i).then(function (a) {
var s = e._GetNumComponents(t, n.type);
return new G.b(r._babylonScene.getEngine(), a, i, !1, !1, o.byteStride, !1, n.byteOffset, s, n.componentType, n.normalized, !0);
});
}
return n._babylonVertexBuffer;
}),
(e.prototype._loadMaterialMetallicRoughnessPropertiesAsync = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
var i = new Array();
return (
t &&
(t.baseColorFactor ? ((n.albedoColor = A.a.FromArray(t.baseColorFactor)), (n.alpha = t.baseColorFactor[3])) : (n.albedoColor = A.a.White()),
(n.metallic = null == t.metallicFactor ? 1 : t.metallicFactor),
(n.roughness = null == t.roughnessFactor ? 1 : t.roughnessFactor),
t.baseColorTexture &&
i.push(
this.loadTextureInfoAsync(e + "/baseColorTexture", t.baseColorTexture, function (e) {
(e.name = n.name + " (Base Color)"), (n.albedoTexture = e);
})
),
t.metallicRoughnessTexture &&
(i.push(
this.loadTextureInfoAsync(e + "/metallicRoughnessTexture", t.metallicRoughnessTexture, function (e) {
(e.name = n.name + " (Metallic Roughness)"), (n.metallicTexture = e);
})
),
(n.useMetallnessFromMetallicTextureBlue = !0),
(n.useRoughnessFromMetallicTextureGreen = !0),
(n.useRoughnessFromMetallicTextureAlpha = !1))),
Promise.all(i).then(function () {})
);
}),
(e.prototype._loadMaterialAsync = function (t, n, i, r, o) {
void 0 === o && (o = function () {});
var a = this._extensionsLoadMaterialAsync(t, n, i, r, o);
if (a) return a;
n._data = n._data || {};
var s = n._data[r];
if (!s) {
this.logOpen(t + " " + (n.name || ""));
var c = this.createMaterial(t, n, r);
(s = { babylonMaterial: c, babylonMeshes: [], promise: this.loadMaterialPropertiesAsync(t, n, c) }),
(n._data[r] = s),
e.AddPointerMetadata(c, t),
this._parent.onMaterialLoadedObservable.notifyObservers(c),
this.logClose();
}
return (
s.babylonMeshes.push(i),
i.onDisposeObservable.addOnce(function () {
var e = s.babylonMeshes.indexOf(i);
-1 !== e && s.babylonMeshes.splice(e, 1);
}),
o(s.babylonMaterial),
s.promise.then(function () {
return s.babylonMaterial;
})
);
}),
(e.prototype._createDefaultMaterial = function (e, t) {
this._babylonScene._blockEntityCollection = this._forAssetContainer;
var n = new Me.a(e, this._babylonScene);
return (
(this._babylonScene._blockEntityCollection = !1),
(n.fillMode = t),
(n.enableSpecularAntiAliasing = !0),
(n.useRadianceOverAlpha = !this._parent.transparencyAsCoverage),
(n.useSpecularOverAlpha = !this._parent.transparencyAsCoverage),
(n.transparencyMode = Me.a.PBRMATERIAL_OPAQUE),
(n.metallic = 1),
(n.roughness = 1),
n
);
}),
(e.prototype.createMaterial = function (e, t, n) {
var i = this._extensionsCreateMaterial(e, t, n);
if (i) return i;
var r = t.name || "material" + t.index;
return this._createDefaultMaterial(r, n);
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this._extensionsLoadMaterialPropertiesAsync(e, t, n);
if (i) return i;
var r = new Array();
return (
r.push(this.loadMaterialBasePropertiesAsync(e, t, n)),
t.pbrMetallicRoughness && r.push(this._loadMaterialMetallicRoughnessPropertiesAsync(e + "/pbrMetallicRoughness", t.pbrMetallicRoughness, n)),
this.loadMaterialAlphaProperties(e, t, n),
Promise.all(r).then(function () {})
);
}),
(e.prototype.loadMaterialBasePropertiesAsync = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
var i = new Array();
return (
(n.emissiveColor = t.emissiveFactor ? A.a.FromArray(t.emissiveFactor) : new A.a(0, 0, 0)),
t.doubleSided && ((n.backFaceCulling = !1), (n.twoSidedLighting = !0)),
t.normalTexture &&
(i.push(
this.loadTextureInfoAsync(e + "/normalTexture", t.normalTexture, function (e) {
(e.name = n.name + " (Normal)"), (n.bumpTexture = e);
})
),
(n.invertNormalMapX = !this._babylonScene.useRightHandedSystem),
(n.invertNormalMapY = this._babylonScene.useRightHandedSystem),
null != t.normalTexture.scale && (n.bumpTexture.level = t.normalTexture.scale),
(n.forceIrradianceInFragment = !0)),
t.occlusionTexture &&
(i.push(
this.loadTextureInfoAsync(e + "/occlusionTexture", t.occlusionTexture, function (e) {
(e.name = n.name + " (Occlusion)"), (n.ambientTexture = e);
})
),
(n.useAmbientInGrayScale = !0),
null != t.occlusionTexture.strength && (n.ambientTextureStrength = t.occlusionTexture.strength)),
t.emissiveTexture &&
i.push(
this.loadTextureInfoAsync(e + "/emissiveTexture", t.emissiveTexture, function (e) {
(e.name = n.name + " (Emissive)"), (n.emissiveTexture = e);
})
),
Promise.all(i).then(function () {})
);
}),
(e.prototype.loadMaterialAlphaProperties = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
switch (t.alphaMode || "OPAQUE") {
case "OPAQUE":
n.transparencyMode = Me.a.PBRMATERIAL_OPAQUE;
break;
case "MASK":
(n.transparencyMode = Me.a.PBRMATERIAL_ALPHATEST), (n.alphaCutOff = null == t.alphaCutoff ? 0.5 : t.alphaCutoff), n.albedoTexture && (n.albedoTexture.hasAlpha = !0);
break;
case "BLEND":
(n.transparencyMode = Me.a.PBRMATERIAL_ALPHABLEND), n.albedoTexture && ((n.albedoTexture.hasAlpha = !0), (n.useAlphaFromAlbedoTexture = !0));
break;
default:
throw new Error(e + "/alphaMode: Invalid value (" + t.alphaMode + ")");
}
}),
(e.prototype.loadTextureInfoAsync = function (t, n, i) {
var r = this;
void 0 === i && (i = function () {});
var o = this._extensionsLoadTextureInfoAsync(t, n, i);
if (o) return o;
if ((this.logOpen("" + t), n.texCoord >= 2)) throw new Error(t + "/texCoord: Invalid value (" + n.texCoord + ")");
var a = Le.Get(t + "/index", this._gltf.textures, n.index),
s = this._loadTextureAsync("/textures/" + n.index, a, function (o) {
(o.coordinatesIndex = n.texCoord || 0), e.AddPointerMetadata(o, t), r._parent.onTextureLoadedObservable.notifyObservers(o), i(o);
});
return this.logClose(), s;
}),
(e.prototype._loadTextureAsync = function (t, n, i) {
void 0 === i && (i = function () {});
var r = this._extensionsLoadTextureAsync(t, n, i);
if (r) return r;
this.logOpen(t + " " + (n.name || ""));
var o = null == n.sampler ? e.DefaultSampler : Le.Get(t + "/sampler", this._gltf.samplers, n.sampler),
a = Le.Get(t + "/source", this._gltf.images, n.source),
s = this._createTextureAsync(t, o, a, i);
return this.logClose(), s;
}),
(e.prototype._createTextureAsync = function (e, t, n, i) {
var r = this;
void 0 === i && (i = function () {});
var o = this._loadSampler("/samplers/" + t.index, t),
a = new Array(),
s = new Oe.a();
this._babylonScene._blockEntityCollection = this._forAssetContainer;
var c = new B.a(
null,
this._babylonScene,
o.noMipMaps,
!1,
o.samplingMode,
function () {
r._disposed || s.resolve();
},
function (t, n) {
r._disposed || s.reject(new Error(e + ": " + (n && n.message ? n.message : t || "Failed to load texture")));
},
void 0,
void 0,
void 0,
n.mimeType
);
return (
(this._babylonScene._blockEntityCollection = !1),
a.push(s.promise),
a.push(
this.loadImageAsync("/images/" + n.index, n).then(function (e) {
var t = n.uri || r._fileName + "#image" + n.index,
i = "data:" + r._uniqueRootUrl + t;
c.updateURL(i, e);
})
),
(c.wrapU = o.wrapU),
(c.wrapV = o.wrapV),
i(c),
Promise.all(a).then(function () {
return c;
})
);
}),
(e.prototype._loadSampler = function (t, n) {
return (
n._data ||
(n._data = {
noMipMaps: 9728 === n.minFilter || 9729 === n.minFilter,
samplingMode: e._GetTextureSamplingMode(t, n),
wrapU: e._GetTextureWrapMode(t + "/wrapS", n.wrapS),
wrapV: e._GetTextureWrapMode(t + "/wrapT", n.wrapT),
}),
n._data
);
}),
(e.prototype.loadImageAsync = function (e, t) {
if (!t._data) {
if ((this.logOpen(e + " " + (t.name || "")), t.uri)) t._data = this.loadUriAsync(e + "/uri", t, t.uri);
else {
var n = Le.Get(e + "/bufferView", this._gltf.bufferViews, t.bufferView);
t._data = this.loadBufferViewAsync("/bufferViews/" + n.index, n);
}
this.logClose();
}
return t._data;
}),
(e.prototype.loadUriAsync = function (t, n, i) {
var r = this,
o = this._extensionsLoadUriAsync(t, n, i);
if (o) return o;
if (!e._ValidateUri(i)) throw new Error(t + ": '" + i + "' is invalid");
if (a.b.IsBase64(i)) {
var s = new Uint8Array(a.b.DecodeBase64(i));
return this.log("Decoded " + i.substr(0, 64) + "... (" + s.length + " bytes)"), Promise.resolve(s);
}
return (
this.log("Loading " + i),
this._parent.preprocessUrlAsync(this._rootUrl + i).then(function (e) {
return new Promise(function (n, o) {
if (!r._disposed) {
var s = a.b.LoadFile(
e,
function (e) {
if (!r._disposed) {
var t = new Uint8Array(e);
r.log("Loaded " + i + " (" + t.length + " bytes)"), n(t);
}
},
function (e) {
if (!r._disposed && (s && ((s._lengthComputable = e.lengthComputable), (s._loaded = e.loaded), (s._total = e.total)), r._state === m.LOADING))
try {
r._onProgress();
} catch (e) {
o(e);
}
},
r._babylonScene.offlineProvider,
!0,
function (e, n) {
r._disposed || o(new we.b(t + ": Failed to load '" + i + "'" + (e ? ": " + e.status + " " + e.statusText : ""), e));
}
);
r._requests.push(s);
}
});
})
);
}),
(e.prototype._onProgress = function () {
if (this._progressCallback) {
for (var e = !0, t = 0, n = 0, i = 0, r = this._requests; i < r.length; i++) {
var o = r[i];
if (void 0 === o._lengthComputable || void 0 === o._loaded || void 0 === o._total) return;
(e = e && o._lengthComputable), (t += o._loaded), (n += o._total);
}
this._progressCallback(new s.c(e, t, e ? n : 0));
}
}),
(e.AddPointerMetadata = function (e, t) {
var n = (e.metadata = e.metadata || {}),
i = (n.gltf = n.gltf || {});
(i.pointers = i.pointers || []).push(t);
}),
(e._GetTextureWrapMode = function (e, t) {
switch ((t = null == t ? 10497 : t)) {
case 33071:
return B.a.CLAMP_ADDRESSMODE;
case 33648:
return B.a.MIRROR_ADDRESSMODE;
case 10497:
return B.a.WRAP_ADDRESSMODE;
default:
return l.a.Warn(e + ": Invalid value (" + t + ")"), B.a.WRAP_ADDRESSMODE;
}
}),
(e._GetTextureSamplingMode = function (e, t) {
var n = null == t.magFilter ? 9729 : t.magFilter,
i = null == t.minFilter ? 9987 : t.minFilter;
if (9729 === n)
switch (i) {
case 9728:
return B.a.LINEAR_NEAREST;
case 9729:
return B.a.LINEAR_LINEAR;
case 9984:
return B.a.LINEAR_NEAREST_MIPNEAREST;
case 9985:
return B.a.LINEAR_LINEAR_MIPNEAREST;
case 9986:
return B.a.LINEAR_NEAREST_MIPLINEAR;
case 9987:
return B.a.LINEAR_LINEAR_MIPLINEAR;
default:
return l.a.Warn(e + "/minFilter: Invalid value (" + i + ")"), B.a.LINEAR_LINEAR_MIPLINEAR;
}
else
switch ((9728 !== n && l.a.Warn(e + "/magFilter: Invalid value (" + n + ")"), i)) {
case 9728:
return B.a.NEAREST_NEAREST;
case 9729:
return B.a.NEAREST_LINEAR;
case 9984:
return B.a.NEAREST_NEAREST_MIPNEAREST;
case 9985:
return B.a.NEAREST_LINEAR_MIPNEAREST;
case 9986:
return B.a.NEAREST_NEAREST_MIPLINEAR;
case 9987:
return B.a.NEAREST_LINEAR_MIPLINEAR;
default:
return l.a.Warn(e + "/minFilter: Invalid value (" + i + ")"), B.a.NEAREST_NEAREST_MIPNEAREST;
}
}),
(e._GetTypedArrayConstructor = function (e, t) {
switch (t) {
case 5120:
return Int8Array;
case 5121:
return Uint8Array;
case 5122:
return Int16Array;
case 5123:
return Uint16Array;
case 5125:
return Uint32Array;
case 5126:
return Float32Array;
default:
throw new Error(e + ": Invalid component type " + t);
}
}),
(e._GetTypedArray = function (t, n, i, r, o) {
var a = i.buffer;
r = i.byteOffset + (r || 0);
var s = e._GetTypedArrayConstructor(t + "/componentType", n);
try {
return new s(a, r, o);
} catch (e) {
throw new Error(t + ": " + e);
}
}),
(e._GetNumComponents = function (e, t) {
switch (t) {
case "SCALAR":
return 1;
case "VEC2":
return 2;
case "VEC3":
return 3;
case "VEC4":
case "MAT2":
return 4;
case "MAT3":
return 9;
case "MAT4":
return 16;
}
throw new Error(e + ": Invalid type (" + t + ")");
}),
(e._ValidateUri = function (e) {
return a.b.IsBase64(e) || -1 === e.indexOf("..");
}),
(e._GetDrawMode = function (e, t) {
switch ((null == t && (t = 4), t)) {
case 0:
return N.a.PointListDrawMode;
case 1:
return N.a.LineListDrawMode;
case 2:
return N.a.LineLoopDrawMode;
case 3:
return N.a.LineStripDrawMode;
case 4:
return N.a.TriangleFillMode;
case 5:
return N.a.TriangleStripDrawMode;
case 6:
return N.a.TriangleFanDrawMode;
}
throw new Error(e + ": Invalid mesh primitive mode (" + t + ")");
}),
(e.prototype._compileMaterialsAsync = function () {
var e = this;
this._parent._startPerformanceCounter("Compile materials");
var t = new Array();
if (this._gltf.materials)
for (var n = 0, i = this._gltf.materials; n < i.length; n++) {
var r = i[n];
if (r._data)
for (var o in r._data)
for (var a = r._data[o], s = 0, c = a.babylonMeshes; s < c.length; s++) {
var l = c[s];
l.computeWorldMatrix(!0);
var u = a.babylonMaterial;
t.push(u.forceCompilationAsync(l)),
t.push(u.forceCompilationAsync(l, { useInstances: !0 })),
this._parent.useClipPlane && (t.push(u.forceCompilationAsync(l, { clipPlane: !0 })), t.push(u.forceCompilationAsync(l, { clipPlane: !0, useInstances: !0 })));
}
}
return Promise.all(t).then(function () {
e._parent._endPerformanceCounter("Compile materials");
});
}),
(e.prototype._compileShadowGeneratorsAsync = function () {
var e = this;
this._parent._startPerformanceCounter("Compile shadow generators");
for (var t = new Array(), n = 0, i = this._babylonScene.lights; n < i.length; n++) {
var r = i[n].getShadowGenerator();
r && t.push(r.forceCompilationAsync());
}
return Promise.all(t).then(function () {
e._parent._endPerformanceCounter("Compile shadow generators");
});
}),
(e.prototype._forEachExtensions = function (e) {
for (var t = 0, n = this._extensions; t < n.length; t++) {
var i = n[t];
i.enabled && e(i);
}
}),
(e.prototype._applyExtensions = function (e, t, n) {
for (var i = 0, r = this._extensions; i < r.length; i++) {
var o = r[i];
if (o.enabled) {
var a = o.name + "." + t,
s = e;
s._activeLoaderExtensionFunctions = s._activeLoaderExtensionFunctions || {};
var c = s._activeLoaderExtensionFunctions;
if (!c[a]) {
c[a] = !0;
try {
var l = n(o);
if (l) return l;
} finally {
delete c[a];
}
}
}
}
return null;
}),
(e.prototype._extensionsOnLoading = function () {
this._forEachExtensions(function (e) {
return e.onLoading && e.onLoading();
});
}),
(e.prototype._extensionsOnReady = function () {
this._forEachExtensions(function (e) {
return e.onReady && e.onReady();
});
}),
(e.prototype._extensionsLoadSceneAsync = function (e, t) {
return this._applyExtensions(t, "loadScene", function (n) {
return n.loadSceneAsync && n.loadSceneAsync(e, t);
});
}),
(e.prototype._extensionsLoadNodeAsync = function (e, t, n) {
return this._applyExtensions(t, "loadNode", function (i) {
return i.loadNodeAsync && i.loadNodeAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadCameraAsync = function (e, t, n) {
return this._applyExtensions(t, "loadCamera", function (i) {
return i.loadCameraAsync && i.loadCameraAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadVertexDataAsync = function (e, t, n) {
return this._applyExtensions(t, "loadVertexData", function (i) {
return i._loadVertexDataAsync && i._loadVertexDataAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadMeshPrimitiveAsync = function (e, t, n, i, r, o) {
return this._applyExtensions(r, "loadMeshPrimitive", function (a) {
return a._loadMeshPrimitiveAsync && a._loadMeshPrimitiveAsync(e, t, n, i, r, o);
});
}),
(e.prototype._extensionsLoadMaterialAsync = function (e, t, n, i, r) {
return this._applyExtensions(t, "loadMaterial", function (o) {
return o._loadMaterialAsync && o._loadMaterialAsync(e, t, n, i, r);
});
}),
(e.prototype._extensionsCreateMaterial = function (e, t, n) {
return this._applyExtensions(t, "createMaterial", function (i) {
return i.createMaterial && i.createMaterial(e, t, n);
});
}),
(e.prototype._extensionsLoadMaterialPropertiesAsync = function (e, t, n) {
return this._applyExtensions(t, "loadMaterialProperties", function (i) {
return i.loadMaterialPropertiesAsync && i.loadMaterialPropertiesAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadTextureInfoAsync = function (e, t, n) {
return this._applyExtensions(t, "loadTextureInfo", function (i) {
return i.loadTextureInfoAsync && i.loadTextureInfoAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadTextureAsync = function (e, t, n) {
return this._applyExtensions(t, "loadTexture", function (i) {
return i._loadTextureAsync && i._loadTextureAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadAnimationAsync = function (e, t) {
return this._applyExtensions(t, "loadAnimation", function (n) {
return n.loadAnimationAsync && n.loadAnimationAsync(e, t);
});
}),
(e.prototype._extensionsLoadSkinAsync = function (e, t, n) {
return this._applyExtensions(n, "loadSkin", function (i) {
return i._loadSkinAsync && i._loadSkinAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadUriAsync = function (e, t, n) {
return this._applyExtensions(t, "loadUri", function (i) {
return i._loadUriAsync && i._loadUriAsync(e, t, n);
});
}),
(e.prototype._extensionsLoadBufferViewAsync = function (e, t) {
return this._applyExtensions(t, "loadBufferView", function (n) {
return n.loadBufferViewAsync && n.loadBufferViewAsync(e, t);
});
}),
(e.prototype._extensionsLoadBufferAsync = function (e, t, n, i) {
return this._applyExtensions(t, "loadBuffer", function (r) {
return r.loadBufferAsync && r.loadBufferAsync(e, t, n, i);
});
}),
(e.LoadExtensionAsync = function (e, t, n, i) {
if (!t.extensions) return null;
var r = t.extensions[n];
return r ? i(e + "/extensions/" + n, r) : null;
}),
(e.LoadExtraAsync = function (e, t, n, i) {
if (!t.extras) return null;
var r = t.extras[n];
return r ? i(e + "/extras/" + n, r) : null;
}),
(e.prototype.isExtensionUsed = function (e) {
return !!this._gltf.extensionsUsed && -1 !== this._gltf.extensionsUsed.indexOf(e);
}),
(e.prototype.logOpen = function (e) {
this._parent._logOpen(e);
}),
(e.prototype.logClose = function () {
this._parent._logClose();
}),
(e.prototype.log = function (e) {
this._parent._log(e);
}),
(e.prototype.startPerformanceCounter = function (e) {
this._parent._startPerformanceCounter(e);
}),
(e.prototype.endPerformanceCounter = function (e) {
this._parent._endPerformanceCounter(e);
}),
(e._RegisteredExtensions = {}),
(e.DefaultSampler = { index: -1 }),
e
);
})();
b._CreateGLTF2Loader = function (e) {
return new Fe(e);
};
var Ne = n(15),
ke = n(108),
ze = n(201),
je = "EXT_lights_image_based",
Be = (function () {
function e(e) {
(this.name = je), (this._loader = e), (this.enabled = this._loader.isExtensionUsed(je));
}
return (
(e.prototype.dispose = function () {
delete this._loader, delete this._lights;
}),
(e.prototype.onLoading = function () {
var e = this._loader.gltf.extensions;
if (e && e[this.name]) {
var t = e[this.name];
this._lights = t.lights;
}
}),
(e.prototype.loadSceneAsync = function (e, t) {
var n = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (i, r) {
var o = new Array();
o.push(n._loader.loadSceneAsync(e, t)), n._loader.logOpen("" + i);
var a = Le.Get(i + "/light", n._lights, r.light);
return (
o.push(
n._loadLightAsync("#/extensions/" + n.name + "/lights/" + r.light, a).then(function (e) {
n._loader.babylonScene.environmentTexture = e;
})
),
n._loader.logClose(),
Promise.all(o).then(function () {})
);
});
}),
(e.prototype._loadLightAsync = function (e, t) {
var n = this;
if (!t._loaded) {
var i = new Array();
this._loader.logOpen("" + e);
for (
var r = new Array(t.specularImages.length),
o = function (n) {
var o = t.specularImages[n];
r[n] = new Array(o.length);
for (
var s = function (t) {
var s = e + "/specularImages/" + n + "/" + t;
a._loader.logOpen("" + s);
var c = o[t],
l = Le.Get(s, a._loader.gltf.images, c);
i.push(
a._loader.loadImageAsync("#/images/" + c, l).then(function (e) {
r[n][t] = e;
})
),
a._loader.logClose();
},
c = 0;
c < o.length;
c++
)
s(c);
},
a = this,
s = 0;
s < t.specularImages.length;
s++
)
o(s);
this._loader.logClose(),
(t._loaded = Promise.all(i).then(function () {
var e = new ze.a(n._loader.babylonScene, null, t.specularImageSize);
if (((t._babylonTexture = e), null != t.intensity && (e.level = t.intensity), t.rotation)) {
var i = M.b.FromArray(t.rotation);
n._loader.babylonScene.useRightHandedSystem || (i = M.b.Inverse(i)), M.a.FromQuaternionToRef(i, e.getReflectionTextureMatrix());
}
var o = ke.a.FromArray(t.irradianceCoefficients);
o.scaleInPlace(t.intensity), o.convertIrradianceToLambertianRadiance();
var a = ke.b.FromHarmonics(o),
s = (r.length - 1) / Ne.a.Log2(t.specularImageSize);
return e.updateRGBDAsync(r, a, s);
}));
}
return t._loaded.then(function () {
return t._babylonTexture;
});
}),
e
);
})();
Fe.RegisterExtension(je, function (e) {
return new Be(e);
});
var Ve = n(167),
Ge = (function () {
function e(e) {
(this.name = "KHR_draco_mesh_compression"), (this._loader = e), (this.enabled = Ve.a.DecoderAvailable && this._loader.isExtensionUsed("KHR_draco_mesh_compression"));
}
return (
(e.prototype.dispose = function () {
delete this.dracoCompression, delete this._loader;
}),
(e.prototype._loadVertexDataAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
if (null != t.mode) {
if (5 !== t.mode && 4 !== t.mode) throw new Error(e + ": Unsupported mode " + t.mode);
if (5 === t.mode) throw new Error(e + ": Mode " + t.mode + " is not currently supported");
}
var a = {},
s = function (e, t) {
var i = o.attributes[e];
null != i && ((n._delayInfo = n._delayInfo || []), -1 === n._delayInfo.indexOf(t) && n._delayInfo.push(t), (a[t] = i));
};
s("POSITION", G.b.PositionKind),
s("NORMAL", G.b.NormalKind),
s("TANGENT", G.b.TangentKind),
s("TEXCOORD_0", G.b.UVKind),
s("TEXCOORD_1", G.b.UV2Kind),
s("JOINTS_0", G.b.MatricesIndicesKind),
s("WEIGHTS_0", G.b.MatricesWeightsKind),
s("COLOR_0", G.b.ColorKind);
var c = Le.Get(r, i._loader.gltf.bufferViews, o.bufferView);
return (
c._dracoBabylonGeometry ||
(c._dracoBabylonGeometry = i._loader.loadBufferViewAsync("#/bufferViews/" + c.index, c).then(function (t) {
return (i.dracoCompression || Ve.a.Default)
.decodeMeshAsync(t, a)
.then(function (e) {
var t = new U.a(n.name, i._loader.babylonScene);
return e.applyToGeometry(t), t;
})
.catch(function (t) {
throw new Error(e + ": " + t.message);
});
})),
c._dracoBabylonGeometry
);
});
}),
e
);
})();
Fe.RegisterExtension("KHR_draco_mesh_compression", function (e) {
return new Ge(e);
});
var Ue,
He = n(57);
!(function (e) {
(e.DIRECTIONAL = "directional"), (e.POINT = "point"), (e.SPOT = "spot");
})(Ue || (Ue = {}));
var We = (function () {
function e(e) {
(this.name = "KHR_lights_punctual"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_lights_punctual"));
}
return (
(e.prototype.dispose = function () {
delete this._loader, delete this._lights;
}),
(e.prototype.onLoading = function () {
var e = this._loader.gltf.extensions;
if (e && e[this.name]) {
var t = e[this.name];
this._lights = t.lights;
}
}),
(e.prototype.loadNodeAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
return i._loader.loadNodeAsync(e, t, function (e) {
var t,
a = Le.Get(r, i._lights, o.light),
s = a.name || e.name;
switch (((i._loader.babylonScene._blockEntityCollection = i._loader._forAssetContainer), a.type)) {
case Ue.DIRECTIONAL:
t = new K.a(s, M.e.Backward(), i._loader.babylonScene);
break;
case Ue.POINT:
t = new Z.a(s, M.e.Zero(), i._loader.babylonScene);
break;
case Ue.SPOT:
var c = new q.a(s, M.e.Zero(), M.e.Backward(), 0, 1, i._loader.babylonScene);
(c.angle = 2 * ((a.spot && a.spot.outerConeAngle) || Math.PI / 4)), (c.innerAngle = 2 * ((a.spot && a.spot.innerConeAngle) || 0)), (t = c);
break;
default:
throw ((i._loader.babylonScene._blockEntityCollection = !1), new Error(r + ": Invalid light type (" + a.type + ")"));
}
(i._loader.babylonScene._blockEntityCollection = !1),
(t.falloffType = He.a.FALLOFF_GLTF),
(t.diffuse = a.color ? A.a.FromArray(a.color) : A.a.White()),
(t.intensity = null == a.intensity ? 1 : a.intensity),
(t.range = null == a.range ? Number.MAX_VALUE : a.range),
(t.parent = e),
i._loader._babylonLights.push(t),
Fe.AddPointerMetadata(t, r),
n(e);
});
});
}),
e
);
})();
Fe.RegisterExtension("KHR_lights_punctual", function (e) {
return new We(e);
});
var Xe = (function () {
function e(e) {
(this.name = "KHR_materials_pbrSpecularGlossiness"), (this.order = 200), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_pbrSpecularGlossiness"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
var a = new Array();
return a.push(i._loader.loadMaterialBasePropertiesAsync(e, t, n)), a.push(i._loadSpecularGlossinessPropertiesAsync(r, t, o, n)), i._loader.loadMaterialAlphaProperties(e, t, n), Promise.all(a).then(function () {});
});
}),
(e.prototype._loadSpecularGlossinessPropertiesAsync = function (e, t, n, i) {
if (!(i instanceof Me.a)) throw new Error(e + ": Material type not supported");
var r = new Array();
return (
(i.metallic = null),
(i.roughness = null),
n.diffuseFactor ? ((i.albedoColor = A.a.FromArray(n.diffuseFactor)), (i.alpha = n.diffuseFactor[3])) : (i.albedoColor = A.a.White()),
(i.reflectivityColor = n.specularFactor ? A.a.FromArray(n.specularFactor) : A.a.White()),
(i.microSurface = null == n.glossinessFactor ? 1 : n.glossinessFactor),
n.diffuseTexture &&
r.push(
this._loader.loadTextureInfoAsync(e + "/diffuseTexture", n.diffuseTexture, function (e) {
(e.name = i.name + " (Diffuse)"), (i.albedoTexture = e);
})
),
n.specularGlossinessTexture &&
(r.push(
this._loader.loadTextureInfoAsync(e + "/specularGlossinessTexture", n.specularGlossinessTexture, function (e) {
(e.name = i.name + " (Specular Glossiness)"), (i.reflectivityTexture = e);
})
),
(i.reflectivityTexture.hasAlpha = !0),
(i.useMicroSurfaceFromReflectivityMapAlpha = !0)),
Promise.all(r).then(function () {})
);
}),
e
);
})();
Fe.RegisterExtension("KHR_materials_pbrSpecularGlossiness", function (e) {
return new Xe(e);
});
var Ye = (function () {
function e(e) {
(this.name = "KHR_materials_unlit"), (this.order = 210), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_unlit"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function () {
return i._loadUnlitPropertiesAsync(e, t, n);
});
}),
(e.prototype._loadUnlitPropertiesAsync = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
var i = new Array();
n.unlit = !0;
var r = t.pbrMetallicRoughness;
return (
r &&
(r.baseColorFactor ? ((n.albedoColor = A.a.FromArray(r.baseColorFactor)), (n.alpha = r.baseColorFactor[3])) : (n.albedoColor = A.a.White()),
r.baseColorTexture &&
i.push(
this._loader.loadTextureInfoAsync(e + "/baseColorTexture", r.baseColorTexture, function (e) {
(e.name = n.name + " (Base Color)"), (n.albedoTexture = e);
})
)),
t.doubleSided && ((n.backFaceCulling = !1), (n.twoSidedLighting = !0)),
this._loader.loadMaterialAlphaProperties(e, t, n),
Promise.all(i).then(function () {})
);
}),
e
);
})();
Fe.RegisterExtension("KHR_materials_unlit", function (e) {
return new Ye(e);
});
var Ke = (function () {
function e(e) {
(this.name = "KHR_materials_clearcoat"), (this.order = 190), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_clearcoat"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
var a = new Array();
return a.push(i._loader.loadMaterialPropertiesAsync(e, t, n)), a.push(i._loadClearCoatPropertiesAsync(r, o, n)), Promise.all(a).then(function () {});
});
}),
(e.prototype._loadClearCoatPropertiesAsync = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
var i = new Array();
return (
(n.clearCoat.isEnabled = !0),
null != t.clearcoatFactor ? (n.clearCoat.intensity = t.clearcoatFactor) : (n.clearCoat.intensity = 0),
t.clearcoatTexture &&
i.push(
this._loader.loadTextureInfoAsync(e + "/clearcoatTexture", t.clearcoatTexture, function (e) {
(e.name = n.name + " (ClearCoat Intensity)"), (n.clearCoat.texture = e);
})
),
null != t.clearcoatRoughnessFactor ? (n.clearCoat.roughness = t.clearcoatRoughnessFactor) : (n.clearCoat.roughness = 0),
t.clearcoatRoughnessTexture &&
i.push(
this._loader.loadTextureInfoAsync(e + "/clearcoatRoughnessTexture", t.clearcoatRoughnessTexture, function (e) {
(e.name = n.name + " (ClearCoat Roughness)"), (n.clearCoat.texture = e);
})
),
t.clearcoatNormalTexture &&
(i.push(
this._loader.loadTextureInfoAsync(e + "/clearcoatNormalTexture", t.clearcoatNormalTexture, function (e) {
(e.name = n.name + " (ClearCoat Normal)"), (n.clearCoat.bumpTexture = e);
})
),
(n.invertNormalMapX = !n.getScene().useRightHandedSystem),
(n.invertNormalMapY = n.getScene().useRightHandedSystem),
null != t.clearcoatNormalTexture.scale && (n.clearCoat.bumpTexture.level = t.clearcoatNormalTexture.scale)),
Promise.all(i).then(function () {})
);
}),
e
);
})();
Fe.RegisterExtension("KHR_materials_clearcoat", function (e) {
return new Ke(e);
});
var Ze = (function () {
function e(e) {
(this.name = "KHR_materials_sheen"), (this.order = 190), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_sheen"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
var a = new Array();
return a.push(i._loader.loadMaterialPropertiesAsync(e, t, n)), a.push(i._loadSheenPropertiesAsync(r, o, n)), Promise.all(a).then(function () {});
});
}),
(e.prototype._loadSheenPropertiesAsync = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
var i = new Array();
return (
(n.sheen.isEnabled = !0),
null != t.intensityFactor ? (n.sheen.intensity = t.intensityFactor) : (n.sheen.intensity = 0),
null != t.colorFactor && (n.sheen.color = A.a.FromArray(t.colorFactor)),
t.colorIntensityTexture &&
i.push(
this._loader.loadTextureInfoAsync(e + "/sheenTexture", t.colorIntensityTexture, function (e) {
(e.name = n.name + " (Sheen Intensity)"), (n.sheen.texture = e);
})
),
Promise.all(i).then(function () {})
);
}),
e
);
})();
Fe.RegisterExtension("KHR_materials_sheen", function (e) {
return new Ze(e);
});
var qe = (function () {
function e(e) {
(this.name = "KHR_materials_specular"), (this.order = 190), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_specular"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
var a = new Array();
return a.push(i._loader.loadMaterialPropertiesAsync(e, t, n)), a.push(i._loadSpecularPropertiesAsync(r, o, n)), Promise.all(a).then(function () {});
});
}),
(e.prototype._loadSpecularPropertiesAsync = function (e, t, n) {
if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported");
return void 0 !== t.specularFactor && (n.metallicF0Factor = t.specularFactor), t.specularTexture && (n.useMetallicF0FactorFromMetallicTexture = !0), Promise.resolve();
}),
e
);
})();
Fe.RegisterExtension("KHR_materials_specular", function (e) {
return new qe(e);
});
var Qe = (function () {
function e(e) {
(this.name = "KHR_mesh_quantization"), (this.enabled = e.isExtensionUsed("KHR_mesh_quantization"));
}
return (e.prototype.dispose = function () {}), e;
})();
Fe.RegisterExtension("KHR_mesh_quantization", function (e) {
return new Qe(e);
});
var Je = (function () {
function e(e) {
(this.name = "KHR_texture_basisu"), (this._loader = e), (this.enabled = e.isExtensionUsed("KHR_texture_basisu"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype._loadTextureAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
var a = null == t.sampler ? Fe.DefaultSampler : Le.Get(e + "/sampler", i._loader.gltf.samplers, t.sampler),
s = Le.Get(r + "/source", i._loader.gltf.images, o.source);
return i._loader._createTextureAsync(e, a, s, function (e) {
(e.gammaSpace = !1), n(e);
});
});
}),
e
);
})();
Fe.RegisterExtension("KHR_texture_basisu", function (e) {
return new Je(e);
});
var $e = (function () {
function e(e) {
(this.name = "KHR_texture_transform"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_texture_transform"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadTextureInfoAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) {
return i._loader.loadTextureInfoAsync(e, t, function (e) {
if (!(e instanceof B.a)) throw new Error(r + ": Texture type not supported");
o.offset && ((e.uOffset = o.offset[0]), (e.vOffset = o.offset[1])),
(e.uRotationCenter = 0),
(e.vRotationCenter = 0),
o.rotation && (e.wAng = -o.rotation),
o.scale && ((e.uScale = o.scale[0]), (e.vScale = o.scale[1])),
null != o.texCoord && (e.coordinatesIndex = o.texCoord),
n(e);
});
});
}),
e
);
})();
Fe.RegisterExtension("KHR_texture_transform", function (e) {
return new $e(e);
});
var et = n(190),
tt = n(137),
nt = n(192),
it = (function () {
function e(e) {
(this.name = "MSFT_audio_emitter"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_audio_emitter"));
}
return (
(e.prototype.dispose = function () {
delete this._loader, delete this._clips, delete this._emitters;
}),
(e.prototype.onLoading = function () {
var e = this._loader.gltf.extensions;
if (e && e[this.name]) {
var t = e[this.name];
(this._clips = t.clips), (this._emitters = t.emitters), Le.Assign(this._clips), Le.Assign(this._emitters);
}
}),
(e.prototype.loadSceneAsync = function (e, t) {
var n = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (i, r) {
var o = new Array();
o.push(n._loader.loadSceneAsync(e, t));
for (var a = 0, s = r.emitters; a < s.length; a++) {
var c = s[a],
l = Le.Get(i + "/emitters", n._emitters, c);
if (null != l.refDistance || null != l.maxDistance || null != l.rolloffFactor || null != l.distanceModel || null != l.innerAngle || null != l.outerAngle)
throw new Error(i + ": Direction or Distance properties are not allowed on emitters attached to a scene");
o.push(n._loadEmitterAsync(i + "/emitters/" + l.index, l));
}
return Promise.all(o).then(function () {});
});
}),
(e.prototype.loadNodeAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (e, r) {
var o = new Array();
return i._loader
.loadNodeAsync(e, t, function (t) {
for (
var s = function (n) {
var r = Le.Get(e + "/emitters", i._emitters, n);
o.push(
i._loadEmitterAsync(e + "/emitters/" + r.index, r).then(function () {
for (var e = 0, n = r._babylonSounds; e < n.length; e++) {
var i = n[e];
i.attachToMesh(t),
(null == r.innerAngle && null == r.outerAngle) ||
(i.setLocalDirectionToMesh(M.e.Forward()),
i.setDirectionalCone(2 * a.b.ToDegrees(null == r.innerAngle ? Math.PI : r.innerAngle), 2 * a.b.ToDegrees(null == r.outerAngle ? Math.PI : r.outerAngle), 0));
}
})
);
},
c = 0,
l = r.emitters;
c < l.length;
c++
) {
s(l[c]);
}
n(t);
})
.then(function (e) {
return Promise.all(o).then(function () {
return e;
});
});
});
}),
(e.prototype.loadAnimationAsync = function (e, t) {
var n = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (i, r) {
return n._loader.loadAnimationAsync(e, t).then(function (o) {
var a = new Array();
Le.Assign(r.events);
for (var s = 0, c = r.events; s < c.length; s++) {
var l = c[s];
a.push(n._loadAnimationEventAsync(i + "/events/" + l.index, e, t, l, o));
}
return Promise.all(a).then(function () {
return o;
});
});
});
}),
(e.prototype._loadClipAsync = function (e, t) {
if (t._objectURL) return t._objectURL;
var n;
if (t.uri) n = this._loader.loadUriAsync(e, t, t.uri);
else {
var i = Le.Get(e + "/bufferView", this._loader.gltf.bufferViews, t.bufferView);
n = this._loader.loadBufferViewAsync("#/bufferViews/" + i.index, i);
}
return (
(t._objectURL = n.then(function (e) {
return URL.createObjectURL(new Blob([e], { type: t.mimeType }));
})),
t._objectURL
);
}),
(e.prototype._loadEmitterAsync = function (e, t) {
var n = this;
if (((t._babylonSounds = t._babylonSounds || []), !t._babylonData)) {
for (
var i = new Array(),
r = t.name || "emitter" + t.index,
o = { loop: !1, autoplay: !1, volume: null == t.volume ? 1 : t.volume },
s = function (e) {
var a = "#/extensions/" + c.name + "/clips",
s = Le.Get(a, c._clips, t.clips[e].clip);
i.push(
c._loadClipAsync(a + "/" + t.clips[e].clip, s).then(function (i) {
var a = (t._babylonSounds[e] = new tt.a(r, i, n._loader.babylonScene, null, o));
(a.refDistance = t.refDistance || 1),
(a.maxDistance = t.maxDistance || 256),
(a.rolloffFactor = t.rolloffFactor || 1),
(a.distanceModel = t.distanceModel || "exponential"),
(a._positionInEmitterSpace = !0);
})
);
},
c = this,
l = 0;
l < t.clips.length;
l++
)
s(l);
var u = Promise.all(i).then(function () {
var e = t.clips.map(function (e) {
return e.weight || 1;
}),
n = new nt.a(t.loop || !1, t._babylonSounds, e);
t.innerAngle && (n.directionalConeInnerAngle = 2 * a.b.ToDegrees(t.innerAngle)),
t.outerAngle && (n.directionalConeOuterAngle = 2 * a.b.ToDegrees(t.outerAngle)),
t.volume && (n.volume = t.volume),
(t._babylonData.sound = n);
});
t._babylonData = { loaded: u };
}
return t._babylonData.loaded;
}),
(e.prototype._getEventAction = function (e, t, n, i, r) {
switch (n) {
case "play":
return function (e) {
var n = (r || 0) + (e - i);
t.play(n);
};
case "stop":
return function (e) {
t.stop();
};
case "pause":
return function (e) {
t.pause();
};
default:
throw new Error(e + ": Unsupported action " + n);
}
}),
(e.prototype._loadAnimationEventAsync = function (e, t, n, i, r) {
var o = this;
if (0 == r.targetedAnimations.length) return Promise.resolve();
var a = r.targetedAnimations[0],
s = i.emitter,
c = Le.Get("#/extensions/" + this.name + "/emitters", this._emitters, s);
return this._loadEmitterAsync(e, c).then(function () {
var t = c._babylonData.sound;
if (t) {
var n = new et.a(i.time, o._getEventAction(e, t, i.action, i.time, i.startOffset));
a.animation.addEvent(n),
r.onAnimationGroupEndObservable.add(function () {
t.stop();
}),
r.onAnimationGroupPauseObservable.add(function () {
t.pause();
});
}
});
}),
e
);
})();
Fe.RegisterExtension("MSFT_audio_emitter", function (e) {
return new it(e);
});
var rt = (function () {
function e(e) {
(this.name = "MSFT_lod"),
(this.order = 100),
(this.maxLODsToLoad = 10),
(this.onNodeLODsLoadedObservable = new o.c()),
(this.onMaterialLODsLoadedObservable = new o.c()),
(this._nodeIndexLOD = null),
(this._nodeSignalLODs = new Array()),
(this._nodePromiseLODs = new Array()),
(this._materialIndexLOD = null),
(this._materialSignalLODs = new Array()),
(this._materialPromiseLODs = new Array()),
(this._indexLOD = null),
(this._bufferLODs = new Array()),
(this._loader = e),
(this.enabled = this._loader.isExtensionUsed("MSFT_lod"));
}
return (
(e.prototype.dispose = function () {
delete this._loader,
(this._nodeIndexLOD = null),
(this._nodeSignalLODs.length = 0),
(this._nodePromiseLODs.length = 0),
(this._materialIndexLOD = null),
(this._materialSignalLODs.length = 0),
(this._materialPromiseLODs.length = 0),
(this._indexLOD = null),
(this._bufferLODs.length = 0),
this.onMaterialLODsLoadedObservable.clear(),
this.onNodeLODsLoadedObservable.clear();
}),
(e.prototype.onReady = function () {
for (
var e = this,
t = function (t) {
var i = Promise.all(n._nodePromiseLODs[t]).then(function () {
0 !== t && e._loader.endPerformanceCounter("Node LOD " + t),
e._loader.log("Loaded node LOD " + t),
e.onNodeLODsLoadedObservable.notifyObservers(t),
t !== e._nodePromiseLODs.length - 1 && (e._loader.startPerformanceCounter("Node LOD " + (t + 1)), e._nodeSignalLODs[t] && e._nodeSignalLODs[t].resolve());
});
n._loader._completePromises.push(i);
},
n = this,
i = 0;
i < this._nodePromiseLODs.length;
i++
)
t(i);
var r = function (t) {
var n = Promise.all(o._materialPromiseLODs[t]).then(function () {
0 !== t && e._loader.endPerformanceCounter("Material LOD " + t),
e._loader.log("Loaded material LOD " + t),
e.onMaterialLODsLoadedObservable.notifyObservers(t),
t !== e._materialPromiseLODs.length - 1 && (e._loader.startPerformanceCounter("Material LOD " + (t + 1)), e._materialSignalLODs[t] && e._materialSignalLODs[t].resolve());
});
o._loader._completePromises.push(n);
},
o = this;
for (i = 0; i < this._materialPromiseLODs.length; i++) r(i);
for (i = 1; i < this._bufferLODs.length; i++) this._loadBufferLOD(i);
}),
(e.prototype.loadSceneAsync = function (e, t) {
var n = this._loader.loadSceneAsync(e, t);
return 0 !== this._bufferLODs.length && this._loadBufferLOD(0), n;
}),
(e.prototype.loadNodeAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtensionAsync(e, t, this.name, function (e, n) {
var r,
o = i._getLODs(e, t, i._loader.gltf.nodes, n.ids);
i._loader.logOpen("" + e);
for (
var a = function (e) {
var t = o[e];
(i._indexLOD = e), 0 !== e && ((i._nodeIndexLOD = e), (i._nodeSignalLODs[e] = i._nodeSignalLODs[e] || new Oe.a()));
var n = i._loader
.loadNodeAsync("#/nodes/" + t.index, t, function (e) {
e.setEnabled(!1);
})
.then(function (t) {
if (0 !== e) {
var n = o[e - 1];
n._babylonTransformNode && (i._disposeTransformNode(n._babylonTransformNode), delete n._babylonTransformNode);
}
return t.setEnabled(!0), t;
});
0 === e ? (r = n) : (i._nodeIndexLOD = null), (i._indexLOD = null), (i._nodePromiseLODs[e] = i._nodePromiseLODs[e] || []), i._nodePromiseLODs[e].push(n);
},
s = 0;
s < o.length;
s++
)
a(s);
return i._loader.logClose(), r;
});
}),
(e.prototype._loadMaterialAsync = function (e, t, n, i, r) {
var o = this;
return this._indexLOD
? null
: Fe.LoadExtensionAsync(e, t, this.name, function (e, a) {
var s,
c = o._getLODs(e, t, o._loader.gltf.materials, a.ids);
o._loader.logOpen("" + e);
for (
var l = function (e) {
var t = c[e];
(o._indexLOD = e), 0 !== e && (o._materialIndexLOD = e);
var a = o._loader
._loadMaterialAsync("#/materials/" + t.index, t, n, i, function (t) {
0 === e && r(t);
})
.then(function (t) {
if (0 !== e) {
r(t);
var n = c[e - 1]._data;
n[i] && (o._disposeMaterials([n[i].babylonMaterial]), delete n[i]);
}
return t;
});
0 === e ? (s = a) : (o._materialIndexLOD = null), (o._indexLOD = null), (o._materialPromiseLODs[e] = o._materialPromiseLODs[e] || []), o._materialPromiseLODs[e].push(a);
},
u = 0;
u < c.length;
u++
)
l(u);
return o._loader.logClose(), s;
});
}),
(e.prototype._loadUriAsync = function (e, t, n) {
var i = this;
if (null !== this._materialIndexLOD) {
this._loader.log("deferred");
var r = this._materialIndexLOD - 1;
return (
(this._materialSignalLODs[r] = this._materialSignalLODs[r] || new Oe.a()),
this._materialSignalLODs[r].promise.then(function () {
return i._loader.loadUriAsync(e, t, n);
})
);
}
if (null !== this._nodeIndexLOD) {
this._loader.log("deferred");
r = this._nodeIndexLOD - 1;
return (
(this._nodeSignalLODs[r] = this._nodeSignalLODs[r] || new Oe.a()),
this._nodeSignalLODs[this._nodeIndexLOD - 1].promise.then(function () {
return i._loader.loadUriAsync(e, t, n);
})
);
}
return null;
}),
(e.prototype.loadBufferAsync = function (e, t, n, i) {
if (this._loader.parent.useRangeRequests && !t.uri) {
if (!this._loader.bin) throw new Error(e + ": Uri is missing or the binary glTF is missing its binary chunk");
var r = this._indexLOD || 0,
o = n,
a = o + i - 1,
s = this._bufferLODs[r];
return (
s ? ((s.start = Math.min(s.start, o)), (s.end = Math.max(s.end, a))) : ((s = { start: o, end: a, loaded: new Oe.a() }), (this._bufferLODs[r] = s)),
s.loaded.promise.then(function (e) {
return new Uint8Array(e.buffer, e.byteOffset + n - s.start, i);
})
);
}
return null;
}),
(e.prototype._loadBufferLOD = function (e) {
var t = this._bufferLODs[e];
this._loader.bin.readAsync(t.start, t.end - t.start + 1).then(
function (e) {
t.loaded.resolve(e);
},
function (e) {
t.loaded.reject(e);
}
);
}),
(e.prototype._getLODs = function (e, t, n, i) {
if (this.maxLODsToLoad <= 0) throw new Error("maxLODsToLoad must be greater than zero");
for (var r = new Array(), o = i.length - 1; o >= 0; o--) if ((r.push(Le.Get(e + "/ids/" + i[o], n, i[o])), r.length === this.maxLODsToLoad)) return r;
return r.push(t), r;
}),
(e.prototype._disposeTransformNode = function (e) {
var t = this,
n = new Array(),
i = e.material;
i && n.push(i);
for (var r = 0, o = e.getChildMeshes(); r < o.length; r++) {
var a = o[r];
a.material && n.push(a.material);
}
e.dispose();
var s = n.filter(function (e) {
return t._loader.babylonScene.meshes.every(function (t) {
return t.material != e;
});
});
this._disposeMaterials(s);
}),
(e.prototype._disposeMaterials = function (e) {
for (var t = {}, n = 0, i = e; n < i.length; n++) {
for (var r = 0, o = (u = i[n]).getActiveTextures(); r < o.length; r++) {
var a = o[r];
t[a.uniqueId] = a;
}
u.dispose();
}
for (var s in t)
for (var c = 0, l = this._loader.babylonScene.materials; c < l.length; c++) {
var u;
(u = l[c]).hasTexture(t[s]) && delete t[s];
}
for (var s in t) t[s].dispose();
}),
e
);
})();
Fe.RegisterExtension("MSFT_lod", function (e) {
return new rt(e);
});
var ot = (function () {
function e(e) {
(this.name = "MSFT_minecraftMesh"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_minecraftMesh"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtraAsync(e, t, this.name, function (r, o) {
if (o) {
if (!(n instanceof Me.a)) throw new Error(r + ": Material type not supported");
var a = i._loader.loadMaterialPropertiesAsync(e, t, n);
return n.needAlphaBlending() && ((n.forceDepthWrite = !0), (n.separateCullingPass = !0)), (n.backFaceCulling = n.forceDepthWrite), (n.twoSidedLighting = !0), a;
}
return null;
});
}),
e
);
})();
Fe.RegisterExtension("MSFT_minecraftMesh", function (e) {
return new ot(e);
});
var at = (function () {
function e(e) {
(this.name = "MSFT_sRGBFactors"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_sRGBFactors"));
}
return (
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadMaterialPropertiesAsync = function (e, t, n) {
var i = this;
return Fe.LoadExtraAsync(e, t, this.name, function (r, o) {
if (o) {
if (!(n instanceof Me.a)) throw new Error(r + ": Material type not supported");
var a = i._loader.loadMaterialPropertiesAsync(e, t, n);
return n.albedoTexture || n.albedoColor.toLinearSpaceToRef(n.albedoColor), n.reflectivityTexture || n.reflectivityColor.toLinearSpaceToRef(n.reflectivityColor), a;
}
return null;
});
}),
e
);
})();
Fe.RegisterExtension("MSFT_sRGBFactors", function (e) {
return new at(e);
});
var st = (function () {
function e(e) {
(this.name = "ExtrasAsMetadata"), (this.enabled = !0), (this._loader = e);
}
return (
(e.prototype._assignExtras = function (e, t) {
if (t.extras && Object.keys(t.extras).length > 0) {
var n = (e.metadata = e.metadata || {});
(n.gltf = n.gltf || {}).extras = t.extras;
}
}),
(e.prototype.dispose = function () {
delete this._loader;
}),
(e.prototype.loadNodeAsync = function (e, t, n) {
var i = this;
return this._loader.loadNodeAsync(e, t, function (e) {
i._assignExtras(e, t), n(e);
});
}),
(e.prototype.loadCameraAsync = function (e, t, n) {
var i = this;
return this._loader.loadCameraAsync(e, t, function (e) {
i._assignExtras(e, t), n(e);
});
}),
(e.prototype.createMaterial = function (e, t, n) {
var i = this._loader.createMaterial(e, t, n);
return this._assignExtras(i, t), i;
}),
e
);
})();
Fe.RegisterExtension("ExtrasAsMetadata", function (e) {
return new st(e);
});
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "cd718180b9204d15f661250c7741c545.webp");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "42b21c6b50ae9ddd74894c0829ae870d.png");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "d4a3141421fd427168cf625156fee2ab.webp");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "79f0227ca8e0ed5e63f699e10abab7b0.png");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "c3a474ec7869a10db304b9734dc161a8.webp");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "62c86f25133c0384d6077e75c0913118.png");
},
function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "derived", function () {
return s;
}),
n.d(t, "readable", function () {
return o;
}),
n.d(t, "writable", function () {
return a;
});
var i = n(0);
n.d(t, "get", function () {
return i.p;
});
const r = [];
function o(e, t) {
return { subscribe: a(e, t).subscribe };
}
function a(e, t = i.x) {
let n;
const o = [];
function a(t) {
if (Object(i.C)(e, t) && ((e = t), n)) {
const t = !r.length;
for (let t = 0; t < o.length; t += 1) {
const n = o[t];
n[1](), r.push(n, e);
}
if (t) {
for (let e = 0; e < r.length; e += 2) r[e][0](r[e + 1]);
r.length = 0;
}
}
}
return {
set: a,
update: function (t) {
a(t(e));
},
subscribe: function (r, s = i.x) {
const c = [r, s];
return (
o.push(c),
1 === o.length && (n = t(a) || i.x),
r(e),
() => {
const e = o.indexOf(c);
-1 !== e && o.splice(e, 1), 0 === o.length && (n(), (n = null));
}
);
},
};
}
function s(e, t, n) {
const r = !Array.isArray(e),
a = r ? [e] : e,
s = t.length < 2;
return o(n, (e) => {
let n = !1;
const o = [];
let c = 0,
l = i.x;
const u = () => {
if (c) return;
l();
const n = t(r ? o[0] : o, e);
s ? e(n) : (l = Object(i.u)(n) ? n : i.x);
},
h = a.map((e, t) =>
Object(i.I)(
e,
(e) => {
(o[t] = e), (c &= ~(1 << t)), n && u();
},
() => {
c |= 1 << t;
}
)
);
return (
(n = !0),
u(),
function () {
Object(i.B)(h), l();
}
);
});
}
},
function (e, t, n) {
"use strict";
var i = "fresnelFunction",
r = "#ifdef FRESNEL\nfloat computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power)\n{\nfloat fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);\nreturn clamp(fresnelTerm,0.,1.);\n}\n#endif";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = "bumpVertexDeclaration",
r = "#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP)\n#if defined(TANGENT) && defined(NORMAL)\nvarying mat3 vTBN;\n#endif\n#endif\n";
n(7).a.IncludesShadersStore[i] = r;
},
function (e, t, n) {
"use strict";
var i = n(38),
r = n(32);
(i.a.prototype.createDynamicTexture = function (e, t, n, o) {
var a = new r.a(this, r.b.Dynamic);
return (
(a.baseWidth = e),
(a.baseHeight = t),
n && ((e = this.needPOTTextures ? i.a.GetExponentOfTwo(e, this._caps.maxTextureSize) : e), (t = this.needPOTTextures ? i.a.GetExponentOfTwo(t, this._caps.maxTextureSize) : t)),
(a.width = e),
(a.height = t),
(a.isReady = !1),
(a.generateMipMaps = n),
(a.samplingMode = o),
this.updateTextureSamplingMode(o, a),
this._internalTexturesCache.push(a),
a
);
}),
(i.a.prototype.updateDynamicTexture = function (e, t, n, i, r, o) {
if ((void 0 === i && (i = !1), void 0 === o && (o = !1), e)) {
this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0, o), this._unpackFlipY(n), i && this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
var a = r ? this._getInternalFormat(r) : this._gl.RGBA;
this._gl.texImage2D(this._gl.TEXTURE_2D, 0, a, a, this._gl.UNSIGNED_BYTE, t),
e.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D),
this._bindTextureDirectly(this._gl.TEXTURE_2D, null),
i && this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0),
(e.isReady = !0);
}
});
},
function (e, t, n) {
"use strict";
var i = n(7),
r = (n(86), n(82), "colorPixelShader"),
o =
"#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#else\nuniform vec4 color;\n#endif\n#include\nvoid main(void) {\n#include\n#ifdef VERTEXCOLOR\ngl_FragColor=vColor;\n#else\ngl_FragColor=color;\n#endif\n}";
i.a.ShadersStore[r] = o;
},
function (e, t, n) {
"use strict";
var i = n(7),
r = (n(70), n(88), n(71), n(72), n(73), n(83), "colorVertexShader"),
o =
"\nattribute vec3 position;\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n\n#include\nuniform mat4 viewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;\n#endif\n\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\nvoid main(void) {\n#include\n#include\nvec4 worldPos=finalWorld*vec4(position,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR == 0u) {\ngl_Position=viewProjection*worldPos;\n} else {\ngl_Position=viewProjectionR*worldPos;\n}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\n#include\n#ifdef VERTEXCOLOR\n\nvColor=color;\n#endif\n}";
i.a.ShadersStore[r] = o;
},
function (e, t, n) {
"use strict";
(function (e) {
n.d(t, "b", function () {
return l;
}),
n.d(t, "a", function () {
return u;
});
var i = n(2),
r = n(10),
o = n(14),
a = n(147),
s = n(32),
c = n(127),
l = function () {
(this.renderWidth = 512), (this.renderHeight = 256), (this.textureSize = 512), (this.deterministicLockstep = !1), (this.lockstepMaxSteps = 4);
},
u = (function (t) {
function n(n) {
void 0 === n && (n = new l());
var i = t.call(this, null) || this;
o.a.Instances.push(i),
void 0 === n.deterministicLockstep && (n.deterministicLockstep = !1),
void 0 === n.lockstepMaxSteps && (n.lockstepMaxSteps = 4),
(i._options = n),
(i._caps = {
maxTexturesImageUnits: 16,
maxVertexTextureImageUnits: 16,
maxCombinedTexturesImageUnits: 32,
maxTextureSize: 512,
maxCubemapTextureSize: 512,
maxRenderTextureSize: 512,
maxVertexAttribs: 16,
maxVaryingVectors: 16,
maxFragmentUniformVectors: 16,
maxVertexUniformVectors: 16,
standardDerivatives: !1,
astc: null,
pvrtc: null,
etc1: null,
etc2: null,
maxAnisotropy: 0,
uintIndices: !1,
fragmentDepthSupported: !1,
highPrecisionShaderSupported: !0,
colorBufferFloat: !1,
textureFloat: !1,
textureFloatLinearFiltering: !1,
textureFloatRender: !1,
textureHalfFloat: !1,
textureHalfFloatLinearFiltering: !1,
textureHalfFloatRender: !1,
textureLOD: !1,
drawBuffersExtension: !1,
depthTextureExtension: !1,
vertexArrayObject: !1,
instancedArrays: !1,
canUseTimestampForTimerQuery: !1,
maxMSAASamples: 1,
blendMinMax: !1,
}),
r.a.Log("Babylon.js v" + o.a.Version + " - Null engine");
var a = "undefined" != typeof self ? self : void 0 !== e ? e : window;
return "undefined" == typeof URL && (a.URL = { createObjectURL: function () {}, revokeObjectURL: function () {} }), "undefined" == typeof Blob && (a.Blob = function () {}), i;
}
return (
Object(i.d)(n, t),
(n.prototype.isDeterministicLockStep = function () {
return this._options.deterministicLockstep;
}),
(n.prototype.getLockstepMaxSteps = function () {
return this._options.lockstepMaxSteps;
}),
(n.prototype.getHardwareScalingLevel = function () {
return 1;
}),
(n.prototype.createVertexBuffer = function (e) {
var t = new c.a();
return (t.references = 1), t;
}),
(n.prototype.createIndexBuffer = function (e) {
var t = new c.a();
return (t.references = 1), t;
}),
(n.prototype.clear = function (e, t, n, i) {
void 0 === i && (i = !1);
}),
(n.prototype.getRenderWidth = function (e) {
return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._options.renderWidth;
}),
(n.prototype.getRenderHeight = function (e) {
return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._options.renderHeight;
}),
(n.prototype.setViewport = function (e, t, n) {
this._cachedViewport = e;
}),
(n.prototype.createShaderProgram = function (e, t, n, i, r) {
return { __SPECTOR_rebuildProgram: null };
}),
(n.prototype.getUniforms = function (e, t) {
return [];
}),
(n.prototype.getAttributes = function (e, t) {
return [];
}),
(n.prototype.bindSamplers = function (e) {
this._currentEffect = null;
}),
(n.prototype.enableEffect = function (e) {
(this._currentEffect = e), e.onBind && e.onBind(e), e._onBindObservable && e._onBindObservable.notifyObservers(e);
}),
(n.prototype.setState = function (e, t, n, i) {
void 0 === t && (t = 0), void 0 === i && (i = !1);
}),
(n.prototype.setIntArray = function (e, t) {}),
(n.prototype.setIntArray2 = function (e, t) {}),
(n.prototype.setIntArray3 = function (e, t) {}),
(n.prototype.setIntArray4 = function (e, t) {}),
(n.prototype.setFloatArray = function (e, t) {}),
(n.prototype.setFloatArray2 = function (e, t) {}),
(n.prototype.setFloatArray3 = function (e, t) {}),
(n.prototype.setFloatArray4 = function (e, t) {}),
(n.prototype.setArray = function (e, t) {}),
(n.prototype.setArray2 = function (e, t) {}),
(n.prototype.setArray3 = function (e, t) {}),
(n.prototype.setArray4 = function (e, t) {}),
(n.prototype.setMatrices = function (e, t) {}),
(n.prototype.setMatrix3x3 = function (e, t) {}),
(n.prototype.setMatrix2x2 = function (e, t) {}),
(n.prototype.setFloat = function (e, t) {}),
(n.prototype.setFloat2 = function (e, t, n) {}),
(n.prototype.setFloat3 = function (e, t, n, i) {}),
(n.prototype.setBool = function (e, t) {}),
(n.prototype.setFloat4 = function (e, t, n, i, r) {}),
(n.prototype.setAlphaMode = function (e, t) {
void 0 === t && (t = !1), this._alphaMode !== e && ((this.alphaState.alphaBlend = 0 !== e), t || this.setDepthWrite(0 === e), (this._alphaMode = e));
}),
(n.prototype.bindBuffers = function (e, t, n) {}),
(n.prototype.wipeCaches = function (e) {
this.preventCacheWipeBetweenFrames ||
(this.resetTextureCache(),
(this._currentEffect = null),
e && ((this._currentProgram = null), this.stencilState.reset(), this.depthCullingState.reset(), this.alphaState.reset()),
(this._cachedVertexBuffers = null),
(this._cachedIndexBuffer = null),
(this._cachedEffectForVertexBuffers = null));
}),
(n.prototype.draw = function (e, t, n, i) {}),
(n.prototype.drawElementsType = function (e, t, n, i) {}),
(n.prototype.drawArraysType = function (e, t, n, i) {}),
(n.prototype._createTexture = function () {
return {};
}),
(n.prototype._releaseTexture = function (e) {}),
(n.prototype.createTexture = function (e, t, n, i, r, o, a, c, l, u, h, d) {
void 0 === r && (r = 3), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = null), void 0 === h && (h = null);
var p = new s.a(this, s.b.Url),
f = String(e);
return (
(p.url = f),
(p.generateMipMaps = !t),
(p.samplingMode = r),
(p.invertY = n),
(p.baseWidth = this._options.textureSize),
(p.baseHeight = this._options.textureSize),
(p.width = this._options.textureSize),
(p.height = this._options.textureSize),
u && (p.format = u),
(p.isReady = !0),
o && o(),
this._internalTexturesCache.push(p),
p
);
}),
(n.prototype.createRenderTargetTexture = function (e, t) {
var n = new a.a();
void 0 !== t && "object" == typeof t
? ((n.generateMipMaps = t.generateMipMaps),
(n.generateDepthBuffer = void 0 === t.generateDepthBuffer || t.generateDepthBuffer),
(n.generateStencilBuffer = n.generateDepthBuffer && t.generateStencilBuffer),
(n.type = void 0 === t.type ? 0 : t.type),
(n.samplingMode = void 0 === t.samplingMode ? 3 : t.samplingMode))
: ((n.generateMipMaps = t), (n.generateDepthBuffer = !0), (n.generateStencilBuffer = !1), (n.type = 0), (n.samplingMode = 3));
var i = new s.a(this, s.b.RenderTarget),
r = e.width || e,
o = e.height || e;
return (
(i._depthStencilBuffer = {}),
(i._framebuffer = {}),
(i.baseWidth = r),
(i.baseHeight = o),
(i.width = r),
(i.height = o),
(i.isReady = !0),
(i.samples = 1),
(i.generateMipMaps = !!n.generateMipMaps),
(i.samplingMode = n.samplingMode),
(i.type = n.type),
(i._generateDepthBuffer = n.generateDepthBuffer),
(i._generateStencilBuffer = !!n.generateStencilBuffer),
this._internalTexturesCache.push(i),
i
);
}),
(n.prototype.updateTextureSamplingMode = function (e, t) {
t.samplingMode = e;
}),
(n.prototype.bindFramebuffer = function (e, t, n, i, r) {
this._currentRenderTarget && this.unBindFramebuffer(this._currentRenderTarget),
(this._currentRenderTarget = e),
(this._currentFramebuffer = e._MSAAFramebuffer ? e._MSAAFramebuffer : e._framebuffer),
this._cachedViewport && !r && this.setViewport(this._cachedViewport, n, i);
}),
(n.prototype.unBindFramebuffer = function (e, t, n) {
void 0 === t && (t = !1), (this._currentRenderTarget = null), n && (e._MSAAFramebuffer && (this._currentFramebuffer = e._framebuffer), n()), (this._currentFramebuffer = null);
}),
(n.prototype.createDynamicVertexBuffer = function (e) {
var t = new c.a();
return (t.references = 1), (t.capacity = 1), t;
}),
(n.prototype.updateDynamicTexture = function (e, t, n, i, r) {
void 0 === i && (i = !1);
}),
(n.prototype.areAllEffectsReady = function () {
return !0;
}),
(n.prototype.getError = function () {
return 0;
}),
(n.prototype._getUnpackAlignement = function () {
return 1;
}),
(n.prototype._unpackFlipY = function (e) {}),
(n.prototype.updateDynamicIndexBuffer = function (e, t, n) {
void 0 === n && (n = 0);
}),
(n.prototype.updateDynamicVertexBuffer = function (e, t, n, i) {}),
(n.prototype._bindTextureDirectly = function (e, t) {
return this._boundTexturesCache[this._activeChannel] !== t && ((this._boundTexturesCache[this._activeChannel] = t), !0);
}),
(n.prototype._bindTexture = function (e, t) {
e < 0 || this._bindTextureDirectly(0, t);
}),
(n.prototype._deleteBuffer = function (e) {}),
(n.prototype.releaseEffects = function () {}),
(n.prototype.displayLoadingUI = function () {}),
(n.prototype.hideLoadingUI = function () {}),
(n.prototype._uploadCompressedDataToTextureDirectly = function (e, t, n, i, r, o, a) {
void 0 === o && (o = 0), void 0 === a && (a = 0);
}),
(n.prototype._uploadDataToTextureDirectly = function (e, t, n, i) {
void 0 === n && (n = 0), void 0 === i && (i = 0);
}),
(n.prototype._uploadArrayBufferViewToTexture = function (e, t, n, i) {
void 0 === n && (n = 0), void 0 === i && (i = 0);
}),
(n.prototype._uploadImageToTexture = function (e, t, n, i) {
void 0 === n && (n = 0), void 0 === i && (i = 0);
}),
n
);
})(o.a);
}.call(this, n(212)));
},
function (e, t, n) {
"use strict";
var i = n(7),
r = (n(59), "rgbdDecodePixelShader"),
o = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\nvoid main(void)\n{\ngl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);\n}";
i.a.ShadersStore[r] = o;
},
function (e, t, n) {
"use strict";
var i = n(2),
r = n(38),
o = n(32),
a = n(10),
s = n(74);
(r.a.prototype._createDepthStencilCubeTexture = function (e, t) {
var n = new o.a(this, o.b.Unknown);
if (((n.isCube = !0), 1 === this.webGLVersion)) return a.a.Error("Depth cube texture is not supported by WebGL 1."), n;
var r = Object(i.a)({ bilinearFiltering: !1, comparisonFunction: 0, generateStencil: !1 }, t),
s = this._gl;
this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, n, !0), this._setupDepthStencilTexture(n, e, r.generateStencil, r.bilinearFiltering, r.comparisonFunction);
for (var c = 0; c < 6; c++)
r.generateStencil
? s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + c, 0, s.DEPTH24_STENCIL8, e, e, 0, s.DEPTH_STENCIL, s.UNSIGNED_INT_24_8, null)
: s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + c, 0, s.DEPTH_COMPONENT24, e, e, 0, s.DEPTH_COMPONENT, s.UNSIGNED_INT, null);
return this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, null), n;
}),
(r.a.prototype._partialLoadFile = function (e, t, n, i, r) {
void 0 === r && (r = null);
this._loadFile(
e,
function (e) {
(n[t] = e), n._internalCount++, 6 === n._internalCount && i(n);
},
void 0,
void 0,
!0,
function (e, t) {
r && e && r(e.status + " " + e.statusText, t);
}
);
}),
(r.a.prototype._cascadeLoadFiles = function (e, t, n, i) {
void 0 === i && (i = null);
var r = [];
r._internalCount = 0;
for (var o = 0; o < 6; o++) this._partialLoadFile(n[o], o, r, t, i);
}),
(r.a.prototype._cascadeLoadImgs = function (e, t, n, i, r) {
void 0 === i && (i = null);
var o = [];
o._internalCount = 0;
for (var a = 0; a < 6; a++) this._partialLoadImg(n[a], a, o, e, t, i, r);
}),
(r.a.prototype._partialLoadImg = function (e, t, n, i, r, o, a) {
var c;
void 0 === o && (o = null);
(c = s.a.LoadImage(
e,
function () {
c && ((n[t] = c), n._internalCount++, i && i._removePendingData(c)), 6 === n._internalCount && r(n);
},
function (e, t) {
i && i._removePendingData(c), o && o(e, t);
},
i ? i.offlineProvider : null,
a
)),
i && c && i._addPendingData(c);
}),
(r.a.prototype._setCubeMapTextureParams = function (e) {
var t = this._gl;
t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, t.LINEAR),
t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, e ? t.LINEAR_MIPMAP_LINEAR : t.LINEAR),
t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE),
t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE),
this._bindTextureDirectly(t.TEXTURE_CUBE_MAP, null);
}),
(r.a.prototype.createCubeTexture = function (e, t, n, i, s, c, l, u, h, d, p, f) {
var m = this;
void 0 === s && (s = null), void 0 === c && (c = null), void 0 === u && (u = null), void 0 === h && (h = !1), void 0 === d && (d = 0), void 0 === p && (p = 0), void 0 === f && (f = null);
var g = this._gl,
b = f || new o.a(this, o.b.Cube);
(b.isCube = !0), (b.url = e), (b.generateMipMaps = !i), (b._lodGenerationScale = d), (b._lodGenerationOffset = p), this._doNotHandleContextLost || ((b._extension = u), (b._files = n));
for (var _ = e.lastIndexOf("."), v = u || (_ > -1 ? e.substring(_).toLowerCase() : ""), y = null, C = 0, P = r.a._TextureLoaders; C < P.length; C++) {
var x = P[C];
if (x.canLoad(v)) {
y = x;
break;
}
}
if (y) {
var T = function (e) {
m._bindTextureDirectly(g.TEXTURE_CUBE_MAP, b, !0), y.loadCubeData(e, b, h, s, c);
};
n && 6 === n.length
? y.supportCascades
? this._cascadeLoadFiles(
t,
function (e) {
return T(
e.map(function (e) {
return new Uint8Array(e);
})
);
},
n,
c
)
: c
? c("Textures type does not support cascades.")
: a.a.Warn("Texture loader does not support cascades.")
: this._loadFile(
e,
function (e) {
return T(new Uint8Array(e));
},
void 0,
void 0,
!0,
function (e, t) {
c && e && c(e.status + " " + e.statusText, t);
}
);
} else {
if (!n) throw new Error("Cannot load cubemap because files were not defined");
this._cascadeLoadImgs(
t,
function (e) {
var t = m.needPOTTextures ? r.a.GetExponentOfTwo(e[0].width, m._caps.maxCubemapTextureSize) : e[0].width,
n = t,
o = [g.TEXTURE_CUBE_MAP_POSITIVE_X, g.TEXTURE_CUBE_MAP_POSITIVE_Y, g.TEXTURE_CUBE_MAP_POSITIVE_Z, g.TEXTURE_CUBE_MAP_NEGATIVE_X, g.TEXTURE_CUBE_MAP_NEGATIVE_Y, g.TEXTURE_CUBE_MAP_NEGATIVE_Z];
m._bindTextureDirectly(g.TEXTURE_CUBE_MAP, b, !0), m._unpackFlipY(!1);
for (var c = l ? m._getInternalFormat(l) : m._gl.RGBA, u = 0; u < o.length; u++)
if (e[u].width !== t || e[u].height !== n) {
if ((m._prepareWorkingCanvas(), !m._workingCanvas || !m._workingContext)) return void a.a.Warn("Cannot create canvas to resize texture.");
(m._workingCanvas.width = t), (m._workingCanvas.height = n), m._workingContext.drawImage(e[u], 0, 0, e[u].width, e[u].height, 0, 0, t, n), g.texImage2D(o[u], 0, c, c, g.UNSIGNED_BYTE, m._workingCanvas);
} else g.texImage2D(o[u], 0, c, c, g.UNSIGNED_BYTE, e[u]);
i || g.generateMipmap(g.TEXTURE_CUBE_MAP),
m._setCubeMapTextureParams(!i),
(b.width = t),
(b.height = n),
(b.isReady = !0),
l && (b.format = l),
b.onLoadedObservable.notifyObservers(b),
b.onLoadedObservable.clear(),
s && s();
},
n,
c
);
}
return this._internalTexturesCache.push(b), b;
});
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackHelper = void 0);
const i = n(133),
r = n(62),
o = n(150),
a = n(40),
s = n(48);
t.TrackHelper = class {
static loadConfigs() {
const e = i.RegionInfo.fromJson(n(253)(`./${s.GameConfig.DEFAULT_REGION}/${s.GameConfig.DEFAULT_REGION}Region.json`)),
t = i.TrackPacing.fromJson(n(255)),
r = new Map(),
o = new Map();
s.GameConfig.DEFAULT_ZONES.forEach((e) => {
const t = `${s.GameConfig.DEFAULT_REGION}${e}`,
a = i.RegionZoneInfo.fromJson(n(256)(`./${s.GameConfig.DEFAULT_REGION}/${e}/${t}Zone.json`));
r.set(a.ID, a);
const c = new Map(),
l = `${s.GameConfig.DEFAULT_REGION}${e}`,
u = n(262)(`./${s.GameConfig.DEFAULT_REGION}/${e}/${l}Pieces.json`);
for (const e in u) c.set(e, i.TrackPieceInfo.fromJson(u[e]));
o.set(a.ID, c);
});
for (const [, e] of r) for (const t of e.Definitions) t.initialize(), (t.LedgeLeftOrRightIsObstacle = !e.IsLedgeZone);
return [e, t, r, o];
}
static selectPieceSimple(e, t, n, i) {
var r;
let a = 0;
const s = n.SelectedDefinition.ID.ZoneID,
c = (null === (r = e.getZoneInfo(s)) || void 0 === r ? void 0 : r.Definitions) || [];
if (c.length < 1) return;
for (let e = 0; e < c.length; ++e) {
const n = c[e];
if (!(n.SelectionOdds < 1 && o.Utils.random(0, 1e3) >= 1e3 * n.SelectionOdds) && ((t.AvailablePieceDefinitions[a] = n), ++a, a > t.MaxPossibleDefinitions)) break;
}
const l = o.Utils.random(0, a);
return (i.Definition = t.AvailablePieceDefinitions[l]), i;
}
static selectPieceComplex(e, t, n, r) {
const c = n.SelectedDefinition,
l = e.getZoneInfo(c.ID.ZoneID),
u = t.findZonePacing(c.ID.ZoneID),
h = t.ActiveMilestone;
let d = !!h.AllowObstacles,
p = !1;
n.DistanceSinceLastMandatoryTurn < h.MinDistanceAfterTurnForObstacle && (d = !1),
(n.BackToBackObstacleCount >= h.MaxBackToBackObstacles || 0 == !!c.AllowDoubleObstacle) && (d = !1),
n.DistanceSinceLastObstacle < h.MinDistanceBetweenObstacles && o.Utils.random(0, 1e3) >= 1e3 * h.DoubleObstaclePercent && (d = !1),
c.isMandatoryTurn() && (d = !1),
t.IsFastTurnSection && 0 == !!l.AllowObstacleDuringFastTurn && (d = !1);
const f = n.DistanceSinceLastMandatoryTurn >= h.MinDistanceBetweenTurns,
m = c.isObstacle() && 0 == !!h.AllowTurnAfterObstacle,
g = !!h.AllowTurns && 1 == f && 0 == m,
b = n.DistanceSinceLastOptionalTurn >= h.MinDistanceBetweenOptionalTurns,
_ = 1 == !!h.AllowOptionalTurns && 1 == b,
v = !(d && (c.IsJumpOver || c.IsStumble)),
y = s.GameConfig.IS_DEBUG && s.GameConfig.DEFAULT_ZONES.length != s.GameConfig.DEBUG_SELECTED_ZONES.length,
C = y ? s.GameConfig.DEBUG_MIN_DISTANCE_BETWEEN_BASE_ZONE_CHANGE : t.MinDistanceBetweenBaseZoneChange,
P = !t.IsFastTurnSection && !c.isObstacle() && !!l.TransitionToZoneSupported && n.DistanceSinceLastZoneChange > C;
p = null == u ? n.DistanceSinceLastZoneChange > 100 : n.DistanceSinceLastZoneChange > u.MinLength;
let x = !1,
T = !1;
l.TransitionToZoneSupported &&
!P &&
(g && n.DistanceSinceLastMandatoryTurn >= h.MaxDistanceBetweenTurns && (x = !0),
d && n.DistanceSinceLastObstacle >= h.MaxDistanceBetweenObstacles && (T = !0),
x && T && (0 == o.Utils.random(0, 2) ? (x = !1) : (T = !1)));
const S = !(c.CategoryType == i.TrackPieceCategory.ZoneExitTransition);
let O = 0;
const E = e.getAllZones();
for (const [, n] of E) {
if (!e.enabledZones.includes(n.Name) || (y && !s.GameConfig.DEBUG_SELECTED_ZONES.includes(n.Name))) continue;
const r = t.findZonePacing(n.ID),
u = n.ID == l.ID && S,
f = P && n.ID != l.ID && null != r,
m = c.CategoryType == i.TrackPieceCategory.ZoneExitTransition && !!n.TransitionToZoneSupported;
if (u || f || m)
for (const e of n.Definitions) {
const r = !(e.CategoryType == i.TrackPieceCategory.CompoundPieceMiddle || e.CategoryType == i.TrackPieceCategory.CompoundPieceEnd),
s = f && e.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition && c.CategoryType != i.TrackPieceCategory.ZoneEntranceTransition,
u = !!n.TransitionToZoneSupported || (l.ID == n.ID && c.CategoryType != i.TrackPieceCategory.ZoneExitTransition && 0 == s);
let m = r && (s || u);
const b = e.DifficultyLevel <= h.MaxTrackPieceDifficulty;
if (n.IsLedgeZone && e.CategoryType != i.TrackPieceCategory.ZoneEntranceTransition) {
const t = !!(
(c.IsLedgeLeft && (e.IsLedgeLeft || e.LedgeZoneTransitionType == i.LedgeZoneTransition.LeftToRight)) ||
(c.IsLedgeRight && (e.IsLedgeRight || e.LedgeZoneTransitionType == i.LedgeZoneTransition.RightToLeft))
);
m = m && t;
}
let C = m && b && (e.SelectionOdds >= 1 || o.Utils.random(0, 1e3) < 1e3 * e.SelectionOdds);
if ((y && e.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition && 0 == a.GameController.instance.character.params.currentTrackPiece.SelectedDefinition.ID.ZoneID && e.ID.ZoneID > 0 && (C = !0), C)) {
const n = x || T,
r = 0 == n && P && e.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition,
o = 0 == n && p && e.CategoryType == i.TrackPieceCategory.ZoneExitTransition;
let a = 0 == x && d && e.isObstacle() && !e.isZoneTransition();
const s = 0 == T && 1 == e.isMandatoryTurn() && 1 == g,
c = 0 == n && 0 == e.isTurn() && 0 == e.isObstacle() && 0 == e.isZoneTransition(),
l = 1 == !!e.IsOptionalJunction && 1 == _;
if ((a && e.IsSlideUnder && !v && (a = !1), (c || a || s || 1 == l || r || o) && ((t.AvailablePieceDefinitions[O] = e), O++, O > t.MaxPossibleDefinitions))) break;
}
}
if (O > t.MaxPossibleDefinitions) break;
}
if (O > 0) {
const n = o.Utils.random(0, O);
if (((r.Definition = t.AvailablePieceDefinitions[n]), r.Definition.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition)) {
const t = e.getZoneInfo(r.Definition.ID.ZoneID);
null != t && null != t.TutorialPacing && t.TutorialPacing.TutorialEnabled && (r.Pacing = t.TutorialPacing);
}
} else r = new i.NewTrackPieceInfo();
return r;
}
static selectPieceTutorial() {}
static drawDebugPathSplines(e, t) {
const n = r.Vector3.Zero(),
i = [];
for (let t = 0; t < e.trackInfo.Paths[0].GeneratedPath.length; ++t) {
const r = n.add(e.trackInfo.Paths[0].GeneratedPath[t]);
i.push(r);
}
const o = e.trackInfo.Paths[0].GeneratedPath.length,
a = r.Curve3.CreateCatmullRomSpline(i, o, !1),
s = r.Mesh.CreateLines("catmullRom", a.getPoints(), t);
(s.color = new r.Color3(0, 1, 0)), s.setParent(e.assetInfo.rootMesh);
}
static createWorldSpline(e, t, n, i) {
for (const o of e.trackInfo.Paths) {
const a = [];
for (let e = 0; e < o.GeneratedPath.length; ++e) {
const s = new r.TransformNode("path_node", i);
(s.position = o.GeneratedPath[e].clone()), s.position.addInPlace(t), s.rotateAround(t, r.Axis.Y, (n * Math.PI) / 180), a.push(s.position.clone()), s.dispose();
}
e.trackPaths.push(a);
}
}
static calcPointAlongTrack(e, t) {
let n,
o = e.currentTrackPiece.trackPaths[e.currentTrackPiece.selectedPathId],
s = e.distanceFromPieceStart;
const c = e.currentPosition;
if (e.currentSegment + 1 >= o.length) {
if (((n = a.GameController.instance.track.advanceToNextPieceAndBuild(e.currentTrackPiece)), null == n)) return e;
(e.currentTrackPiece = n), (e.currentSegment = 0), (e.pathId = i.TrackPieceDefinition.MainPathID), (s = 0), (o = e.currentTrackPiece.trackPaths[e.currentTrackPiece.selectedPathId]);
}
const l = t.deltaTime * (e.boostVelocity > 0 ? e.boostVelocity : e.currentVelocity),
u = e.currentDirection.multiplyByFloats(l, l, l);
e.currentPosition = e.currentPosition.add(u);
let h = o[e.currentSegment],
d = o[e.currentSegment + 1],
p = d.subtract(h),
f = p.length();
p = p.normalize();
let m = e.currentPosition.subtract(h),
g = r.Vector3.Dot(m, p);
const b = e.currentSegment;
for (; g > f; ) {
if ((++e.currentSegment, e.currentSegment + 1 >= o.length)) {
if (((n = a.GameController.instance.track.advanceToNextPieceAndBuild(e.currentTrackPiece)), null == n)) return e;
(e.currentTrackPiece = n), (e.currentSegment = 0), (e.pathId = i.TrackPieceDefinition.MainPathID), (s = 0), (o = e.currentTrackPiece.trackPaths[e.currentTrackPiece.selectedPathId]);
}
if (((h = o[e.currentSegment]), (d = o[e.currentSegment + 1]), (p = d.subtract(h)), (f = p.length()), (p = p.normalize()), (m = e.currentPosition.subtract(h)), (g = r.Vector3.Dot(m, p)), b == e.currentSegment)) break;
}
let _ = 0;
if (o.length > e.currentSegment) for (let t = 0; t < e.currentSegment; ++t) _ += r.Vector3.Distance(o[t], o[t + 1]);
(s = _ + g), (e.distanceFromPieceStart = s), (e.distanceFromStartOfSegment = g), (e.currentDirection = p), (m = p.multiplyByFloats(g, g, g)), (e.currentPosition = m.add(h));
const v = e.currentPosition.subtract(c),
y = r.Vector3.Dot(v, v.clone().normalize());
return (e.deltaDistance = y), a.GameController.instance.track.updatePacingDistance(y), e;
}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.AssetUtils = t.AssetInfo = void 0);
const r = n(62),
o = n(40),
a = n(48);
class s {
constructor(e, t) {
(this.meshes = []),
(this.nodes = []),
(this.fillMeshes = []),
(this.skeletons = []),
(this.animationGroups = []),
(this.particleSystems = []),
(this.collisionMeshes = []),
(this.shadowMeshes = []),
(this.axisScaling = new r.Vector3(-1, 1, -1)),
(this.partOfPack = !1),
(this.id = e),
(this.name = t);
}
clone() {
const e = new s(Math.random().toString(36).substr(2, 9), this.name),
t = this.container.instantiateModelsToScene((e) => e);
return (
(t.rootNodes[0].name = this.name),
(e.rootMesh = t.rootNodes[0]),
(e.animationGroups = t.animationGroups),
(e.skeletons = t.skeletons),
(e.axisScaling = this.axisScaling.clone()),
(e.partOfPack = this.partOfPack),
e.rootMesh
.getChildMeshes(!1, (e) => e instanceof r.AbstractMesh)
.forEach((t) => {
const n = t;
e.meshes.push(n),
n.name.includes("_fill")
? (e.fillMeshes.push(n), n.setEnabled(!0), (n.isVisible = !0))
: n.name.includes("Collider")
? n.name.includes("ShadowBox") || n.name.includes("shadowtestbox")
? ((n.isVisible = !1), (n.checkCollisions = !0), e.shadowMeshes.push(n))
: ((n.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES),
n.name.includes("mine_duck_b") && (n.scaling.z = 3),
e.collisionMeshes.push(n),
(n.checkCollisions = !0),
(n.isVisible = a.GameConfig.showColliders))
: n.name.includes("god_rays") || ((n.checkCollisions = !0), (n.isVisible = !0));
}),
(e.rootMesh.scaling = e.axisScaling.clone()),
e
);
}
}
t.AssetInfo = s;
t.AssetUtils = class {
static loadAssetAsync(e, t, n) {
return i(this, void 0, void 0, function* () {
const i = yield r.SceneLoader.LoadAssetContainerAsync(t, void 0, n),
a = new s(e, e);
(a.meshes = i.meshes),
a.meshes.forEach((e) => {
(e.checkCollisions = !1),
(e.isVisible = !1),
(e.alphaIndex = 0),
(e.cullingStrategy = r.AbstractMesh.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY),
(e.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES),
e instanceof r.Mesh && (e.receiveShadows = !1);
});
return (
i.transformNodes.forEach((e) => {
if (e.name.includes("god")) {
const t = 4,
i = 8,
a = 3,
s = 2,
c = s / t,
l = a / i,
u = (s - 1) / t,
h = (a - 1) / i,
d = new r.Vector4(c, l, u, h),
p = { size: 1, frontUVs: d, backUVs: d, sideOrientation: r.Mesh.DOUBLESIDE },
f = r.MeshBuilder.CreatePlane("godray", p, n);
(f.parent = e.parent),
(f.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES),
f.rotate(r.Axis.Z, (Math.PI / 180) * 135, r.Space.LOCAL),
(f.position = e.position.clone()),
(f.position.y -= 2),
(f.position.x -= 3),
f.setPivotPoint(new r.Vector3(0.5, 0.5, 0.5), r.Space.LOCAL),
(f.scaling.x = 10),
(f.scaling.y = 4),
(f.isVisible = !1);
} else if (e.name.includes("mine_entrance")) {
const t = r.Mesh.CreatePlane("mine_exposure_plane", 1, n);
(t.scaling = new r.Vector3(5, 5, 1)),
(t.parent = e.parent),
(t.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES),
(t.position = e.position.clone()),
(t.position.z = 3),
(t.position.y = 1.5),
(t.isVisible = !0);
}
}),
(a.skeletons = i.skeletons),
(a.animationGroups = i.animationGroups),
(a.particleSystems = i.particleSystems),
(a.container = i),
a.container.createRootMesh(),
a
);
});
}
};
},
function (e, t, n) {
"use strict";
var i,
r =
(this && this.__decorate) ||
function (e, t, n, i) {
var r,
o = arguments.length,
a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i);
else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a);
return o > 3 && a && Object.defineProperty(t, n, a), a;
},
o =
(this && this.__metadata) ||
function (e, t) {
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t);
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.AbiltiesUpgradeModel = t.Ability = t.Rule = void 0), n(176);
const a = n(177),
s = n(214);
let c = class {
constructor() {
(this.level = 0), (this.amount = 0), (this.reward = 0);
}
};
r([a.jsonMember, o("design:type", Number)], c.prototype, "level", void 0),
r([a.jsonMember, o("design:type", Number)], c.prototype, "amount", void 0),
r([a.jsonMember, o("design:type", Number)], c.prototype, "reward", void 0),
(c = r([a.jsonObject], c)),
(t.Rule = c);
let l = class {
constructor() {
(this.eid = 0), (this.rule = new Array());
}
};
r([a.jsonMember, o("design:type", Number)], l.prototype, "eid", void 0),
r([a.jsonMember, o("design:type", String)], l.prototype, "name", void 0),
r([a.jsonArrayMember(c), o("design:type", Array)], l.prototype, "rule", void 0),
(l = r([a.jsonObject], l)),
(t.Ability = l);
let u = (i = class {
constructor() {
this.data = [];
}
static fromJson(e) {
return s.TypedJSONProvider.instance().get(i).parse(e);
}
});
r([a.jsonArrayMember(l), o("design:type", Array)], u.prototype, "data", void 0), (u = i = r([a.jsonObject], u)), (t.AbiltiesUpgradeModel = u);
},
function (e, t, n) {
"use strict";
var i,
r,
o =
(this && this.__decorate) ||
function (e, t, n, i) {
var r,
o = arguments.length,
a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i);
else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a);
return o > 3 && a && Object.defineProperty(t, n, a), a;
},
a =
(this && this.__metadata) ||
function (e, t) {
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t);
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.DailyChallenges = t.ChallengeData = t.ObjectiveFilterType = t.ObjectiveTimeType = t.ObjectiveType = void 0), n(176);
const s = n(177),
c = n(214);
var l, u, h;
!(function (e) {
(e[(e.None = -1)] = "None"),
(e[(e.CollectCoins = 0)] = "CollectCoins"),
(e[(e.Distance = 1)] = "Distance"),
(e[(e.Runs = 2)] = "Runs"),
(e[(e.Score = 3)] = "Score"),
(e[(e.CollectPowerups = 4)] = "CollectPowerups"),
(e[(e.Resurrects = 5)] = "Resurrects"),
(e[(e.UsedPowerMeter = 6)] = "UsedPowerMeter"),
(e[(e.WaterZone_Exit = 7)] = "WaterZone_Exit"),
(e[(e.MineZone_Exit = 8)] = "MineZone_Exit");
})((l = t.ObjectiveType || (t.ObjectiveType = {}))),
(function (e) {
(e[(e.None = -1)] = "None"), (e[(e.OverTime = 0)] = "OverTime"), (e[(e.PerRun = 1)] = "PerRun"), (e[(e.Lifetime = 2)] = "Lifetime");
})((u = t.ObjectiveTimeType || (t.ObjectiveTimeType = {}))),
(function (e) {
(e[(e.None = -1)] = "None"),
(e[(e.WithoutCoins = 0)] = "WithoutCoins"),
(e[(e.WithoutPowerups = 1)] = "WithoutPowerups"),
(e[(e.WithoutStumble = 2)] = "WithoutStumble"),
(e[(e.WithoutSaveMe = 3)] = "WithoutSaveMe"),
(e[(e.InMineCart = 4)] = "InMineCart"),
(e[(e.InWaterSlide = 5)] = "InWaterSlide");
})((h = t.ObjectiveFilterType || (t.ObjectiveFilterType = {})));
let d = (i = class {
constructor() {
(this.objectiveType = l.Distance), (this.objectiveTimeType = u.PerRun), (this.objectiveFilterType = h.None);
}
clone() {
const e = new i();
return (
(e.ID = this.ID),
(e.descriptionPreEarned = this.descriptionPreEarned),
(e.tier = this.tier),
(e.objectiveType = this.objectiveType),
(e.objectiveTimeType = this.objectiveTimeType),
(e.objectiveFilterType = this.objectiveFilterType),
(e.statValue = this.statValue),
e
);
}
});
o([s.jsonMember, a("design:type", Number)], d.prototype, "ID", void 0),
o([s.jsonMember, a("design:type", String)], d.prototype, "descriptionPreEarned", void 0),
o([s.jsonMember, a("design:type", Number)], d.prototype, "tier", void 0),
o([s.jsonMember, a("design:type", Number)], d.prototype, "objectiveType", void 0),
o([s.jsonMember, a("design:type", Number)], d.prototype, "objectiveTimeType", void 0),
o([s.jsonMember, a("design:type", Number)], d.prototype, "objectiveFilterType", void 0),
o([s.jsonMember, a("design:type", Number)], d.prototype, "statValue", void 0),
(d = i = o([s.jsonObject], d)),
(t.ChallengeData = d);
let p = (r = class {
constructor() {
this.data = [];
}
static fromJson(e) {
return c.TypedJSONProvider.instance().get(r).parse(e);
}
});
o([s.jsonArrayMember(d), a("design:type", Array)], p.prototype, "data", void 0), (p = r = o([s.jsonObject], p)), (t.DailyChallenges = p);
},
function (e) {
e.exports = JSON.parse(
'{"data":[{"eid":0,"name":"Shield","rule":[{"level":1,"amount":250,"reward":25},{"level":2,"amount":1000,"reward":50},{"level":3,"amount":2500,"reward":75},{"level":4,"amount":5000,"reward":100},{"level":5,"amount":10000,"reward":150}]},{"eid":1,"name":"CoinMagnet","rule":[{"level":1,"amount":250,"reward":25},{"level":2,"amount":2500,"reward":50},{"level":3,"amount":5000,"reward":75},{"level":4,"amount":10000,"reward":100},{"level":5,"amount":25000,"reward":150}]},{"eid":2,"name":"Boost","rule":[{"level":1,"amount":100,"reward":50},{"level":2,"amount":1000,"reward":100},{"level":3,"amount":5000,"reward":150},{"level":4,"amount":10000,"reward":200},{"level":5,"amount":25000,"reward":250}]}]}'
);
},
function (e) {
e.exports = JSON.parse(
'{"data":[{"ID":0,"descriptionPreEarned":"Run 1,000 Meters in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1000},{"ID":1,"descriptionPreEarned":"Run 1,500 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1500},{"ID":2,"descriptionPreEarned":"Run 1,750 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1750},{"ID":3,"descriptionPreEarned":"Run 2,000 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2000},{"ID":4,"descriptionPreEarned":"Run 2,250 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2250},{"ID":5,"descriptionPreEarned":"Run 2,500 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2500},{"ID":6,"descriptionPreEarned":"Run 3,000 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":3000},{"ID":7,"descriptionPreEarned":"Run 3,500 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":3500},{"ID":8,"descriptionPreEarned":"Run 4,000 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":4000},{"ID":9,"descriptionPreEarned":"Run 3,000 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3000},{"ID":10,"descriptionPreEarned":"Run 3,500 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3500},{"ID":11,"descriptionPreEarned":"Run 4,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":4000},{"ID":12,"descriptionPreEarned":"Run 4,500 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":4500},{"ID":13,"descriptionPreEarned":"Run 5,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5000},{"ID":14,"descriptionPreEarned":"Run 5,500 Meters","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5500},{"ID":15,"descriptionPreEarned":"Run 6,500 Meters","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":6500},{"ID":16,"descriptionPreEarned":"Run 7,000 Meters","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":7000},{"ID":17,"descriptionPreEarned":"Run 8,000 Meters","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":8000},{"ID":18,"descriptionPreEarned":"Run 9,000 Meters","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":9000},{"ID":19,"descriptionPreEarned":"Run 10,000 Meters","tier":5,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10000},{"ID":20,"descriptionPreEarned":"Run 500 Meters\\nCollecting No Coins","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":0,"statValue":500},{"ID":21,"descriptionPreEarned":"Run 750 Meters\\nCollecting No Coins","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":0,"statValue":750},{"ID":22,"descriptionPreEarned":"Run 1,000 Meters\\nWithout Stumbling in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":1000},{"ID":23,"descriptionPreEarned":"Run 2,000 Meters\\nWithout Stumbling in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":2000},{"ID":24,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Stumbling in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":3000},{"ID":25,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Stumbling in One Run","tier":4,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":4000},{"ID":26,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Stumbling","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":3000},{"ID":27,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Stumbling","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":4000},{"ID":28,"descriptionPreEarned":"Run 5,000 Meters\\nWithout Stumbling","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":5000},{"ID":29,"descriptionPreEarned":"Run 6,000 Meters\\nWithout Stumbling","tier":5,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":6000},{"ID":30,"descriptionPreEarned":"Run 2,000 Meters\\nWithout Powerups in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":2000},{"ID":31,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Powerups in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":3000},{"ID":32,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Powerups in One Run","tier":4,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":4000},{"ID":33,"descriptionPreEarned":"Run 5,000 Meters\\nWithout Powerups in One Run","tier":5,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":5000},{"ID":34,"descriptionPreEarned":"Run 2,000 Meters\\nWithout Powerups in One Run","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":2000},{"ID":35,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Powerups in One Run","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":3000},{"ID":36,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Powerups in One Run","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":4000},{"ID":37,"descriptionPreEarned":"Run 5,000 Meters\\nWithout Powerups in One Run","tier":5,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":5000},{"ID":38,"descriptionPreEarned":"Ride the Minecart\\nFor 750 Meters in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":4,"statValue":750},{"ID":39,"descriptionPreEarned":"Ride the Minecart\\nFor 1000 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":1000},{"ID":40,"descriptionPreEarned":"Ride the Minecart\\nFor 1,500 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":1500},{"ID":41,"descriptionPreEarned":"Ride the Minecart\\nFor 2,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":2000},{"ID":42,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 750 Meters in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":5,"statValue":750},{"ID":43,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 1000 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":1000},{"ID":44,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 1,500 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":1500},{"ID":45,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 2,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":2000},{"ID":46,"descriptionPreEarned":"Collect 250 Coins\\nin One Run","tier":1,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":250},{"ID":47,"descriptionPreEarned":"Collect 350 Coins\\nin One Run","tier":2,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":350},{"ID":48,"descriptionPreEarned":"Collect 400 Coins\\nin One Run","tier":2,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":400},{"ID":49,"descriptionPreEarned":"Collect 500 Coins\\nin One Run","tier":3,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":500},{"ID":50,"descriptionPreEarned":"Collect 600 Coins\\nin One Run","tier":3,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":600},{"ID":51,"descriptionPreEarned":"Collect 700 Coins\\nin One Run","tier":3,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":700},{"ID":52,"descriptionPreEarned":"Collect 800 Coins\\nin One Run","tier":4,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":800},{"ID":53,"descriptionPreEarned":"Collect 900 Coins\\nin One Run","tier":4,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":900},{"ID":54,"descriptionPreEarned":"Collect 1,000 Coins\\nin One Run","tier":5,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1000},{"ID":55,"descriptionPreEarned":"Collect 1,000 Coins","tier":1,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1000},{"ID":56,"descriptionPreEarned":"Collect 1,250 Coins","tier":1,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1250},{"ID":57,"descriptionPreEarned":"Collect 1,500 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1500},{"ID":58,"descriptionPreEarned":"Collect 1,750 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1750},{"ID":59,"descriptionPreEarned":"Collect 2,000 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2000},{"ID":60,"descriptionPreEarned":"Collect 2,250 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2250},{"ID":61,"descriptionPreEarned":"Collect 2,500 Coins","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2500},{"ID":62,"descriptionPreEarned":"Collect 2,750 Coins","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2750},{"ID":63,"descriptionPreEarned":"Collect 3,000 Coins","tier":4,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3000},{"ID":64,"descriptionPreEarned":"Collect 250 Coins\\nin the Minecart","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":250},{"ID":65,"descriptionPreEarned":"Collect 250 Coins\\nin the WaterSlide","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":250},{"ID":66,"descriptionPreEarned":"Collect 500 Coins\\nin the Minecart","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":500},{"ID":67,"descriptionPreEarned":"Collect 500 Coins\\nin the WaterSlide","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":500},{"ID":68,"descriptionPreEarned":"Collect 750 Coins\\nin the Minecart","tier":4,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":750},{"ID":69,"descriptionPreEarned":"Collect 750 Coins\\nin the WaterSlide","tier":4,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":750},{"ID":70,"descriptionPreEarned":"Score 30,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":30000},{"ID":71,"descriptionPreEarned":"Score 45,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":45000},{"ID":72,"descriptionPreEarned":"Score 60,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":60000},{"ID":73,"descriptionPreEarned":"Score 75,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":75000},{"ID":74,"descriptionPreEarned":"Score 90,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":90000},{"ID":75,"descriptionPreEarned":"Score 100,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":100000},{"ID":76,"descriptionPreEarned":"Score 120,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":120000},{"ID":77,"descriptionPreEarned":"Score 140,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":140000},{"ID":78,"descriptionPreEarned":"Score 160,000 points","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":160000},{"ID":79,"descriptionPreEarned":"Score 180,000 points","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":180000},{"ID":80,"descriptionPreEarned":"Score 200,000 points","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":200000},{"ID":81,"descriptionPreEarned":"Score 250,000 points","tier":4,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":250000},{"ID":82,"descriptionPreEarned":"Score 30,000 points\\nin One Run","tier":1,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":30000},{"ID":83,"descriptionPreEarned":"Score 45,000 points\\nin One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":45000},{"ID":84,"descriptionPreEarned":"Score 60,000 points\\nin One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":60000},{"ID":85,"descriptionPreEarned":"Score 75,000 points\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":75000},{"ID":86,"descriptionPreEarned":"Score 90,000 points\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":90000},{"ID":87,"descriptionPreEarned":"Score 100,000 points\\nin One Run","tier":4,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":100000},{"ID":88,"descriptionPreEarned":"Score 30,000 points \'No Save Me\'\\nin One Run","tier":1,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":30000},{"ID":89,"descriptionPreEarned":"Score 50,000 points \'No Save Me\'\\nin One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":50000},{"ID":90,"descriptionPreEarned":"Score 70,000 points \'No Save Me\'\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":70000},{"ID":91,"descriptionPreEarned":"Score 90,000 points \'No Save Me\'\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":90000},{"ID":92,"descriptionPreEarned":"Score 30,000 points\\nWithout Stumbling in One Run","tier":1,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":30000},{"ID":93,"descriptionPreEarned":"Score 50,000 points\\nWithout Stumbling in One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":50000},{"ID":94,"descriptionPreEarned":"Score 70,000 points\\nWithout Stumbling in One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":70000},{"ID":95,"descriptionPreEarned":"Score 90,000 points\\nWithout Stumbling in One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":90000},{"ID":96,"descriptionPreEarned":"Score 160,000 points\\nWithout Stumbling in One Run","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":160000},{"ID":97,"descriptionPreEarned":"Score 180,000 points\\nWithout Stumbling in One Run","tier":4,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":180000},{"ID":98,"descriptionPreEarned":"Score 200,000 points\\nWithout Stumbling in One Run","tier":4,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":200000},{"ID":99,"descriptionPreEarned":"Score 250,000 points\\nWithout Stumbling in One Run","tier":5,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":250000},{"ID":100,"descriptionPreEarned":"Use a \'Save Me\'","tier":1,"objectiveType":5,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1},{"ID":101,"descriptionPreEarned":"Use a \'Save Me\' 3 Times","tier":2,"objectiveType":5,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":102,"descriptionPreEarned":"Use a \'Save Me\' 2 Times\\nin One Run","tier":3,"objectiveType":5,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2},{"ID":103,"descriptionPreEarned":"Complete 3 Runs","tier":1,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":104,"descriptionPreEarned":"Complete 5 Runs","tier":21,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":105,"descriptionPreEarned":"Complete 8 Runs","tier":3,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":8},{"ID":106,"descriptionPreEarned":"Complete 10 Runs","tier":4,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10},{"ID":107,"descriptionPreEarned":"Collect 5 PowerUps","tier":2,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":108,"descriptionPreEarned":"Collect 10 PowerUps","tier":2,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10},{"ID":109,"descriptionPreEarned":"Collect 15 PowerUps","tier":3,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":15},{"ID":110,"descriptionPreEarned":"Collect 25 PowerUps","tier":4,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":25},{"ID":111,"descriptionPreEarned":"Collect 30 PowerUps","tier":5,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":30},{"ID":112,"descriptionPreEarned":"Use PowerMeter 3 Times\\nin one run","tier":3,"objectiveType":6,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":3},{"ID":113,"descriptionPreEarned":"Use PowerMeter 5 Times\\nin one run","tier":4,"objectiveType":6,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":5},{"ID":114,"descriptionPreEarned":"Use PowerMeter 3 Times ","tier":2,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":115,"descriptionPreEarned":"Use PowerMeter 5 Times ","tier":3,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":116,"descriptionPreEarned":"Use PowerMeter 7 Times ","tier":4,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":7},{"ID":117,"descriptionPreEarned":"Use PowerMeter 10 Times ","tier":5,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10},{"ID":118,"descriptionPreEarned":"Survive the WaterSlide ","tier":1,"objectiveType":7,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1},{"ID":119,"descriptionPreEarned":"Survive riding the MineCart ","tier":1,"objectiveType":8,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1},{"ID":120,"descriptionPreEarned":"Survive the WaterSlide 3 times ","tier":2,"objectiveType":7,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":121,"descriptionPreEarned":"Survive riding the MineCart 3 times ","tier":2,"objectiveType":8,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":122,"descriptionPreEarned":"Survive the WaterSlide 5 Times ","tier":3,"objectiveType":7,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":123,"descriptionPreEarned":"Survive riding the MineCart 5 Times ","tier":3,"objectiveType":8,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5}]}'
);
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.ShadersController = t.EType = void 0);
const i = n(40),
r = n(29);
var o;
!(function (e) {
(e[(e.MINE_EXPOSURE = 0)] = "MINE_EXPOSURE"), (e[(e.TRACK_PIECE = 1)] = "TRACK_PIECE");
})((o = t.EType || (t.EType = {})));
t.ShadersController = class {
constructor(e) {
(this.shaders = new Map()), (this.scene = e);
}
addShader(e, t) {
this.shaders.set(e, t);
}
initialize() {
r.EventHandler.instance.addListener(r.EventID.OnPlayGame, () => {
this.shaders.get(o.TRACK_PIECE).setInt("vertexFogEnabled", 1);
}),
r.EventHandler.instance.addListener(r.EventID.OnPlayerDeath, () => {
this.shaders.get(o.TRACK_PIECE).setInt("vertexFogEnabled", 0);
}),
r.EventHandler.instance.addListener(r.EventID.OnContinueGame, () => {
this.shaders.get(o.TRACK_PIECE).setInt("vertexFogEnabled", 1);
});
}
preUpdate() {
this.shaders.forEach((e, t) => {
switch (t) {
case o.MINE_EXPOSURE:
const t = i.GameController.instance.camera.camera.position;
e.setVector3("playerPosition", t);
}
});
}
postUpdate() {}
pause() {}
resume() {}
reset() {}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CoinsMaterialProvider = void 0);
const i = n(62);
t.CoinsMaterialProvider = class {
constructor(e) {
this._scene = e;
}
get defaultCoinMaterial() {
const e = new i.Texture("assets/objects/coins/coin_default.jpg", this._scene),
t = new i.StandardMaterial("DefaultCoinMaterial", this._scene);
return (t.diffuseTexture = e), (t.backFaceCulling = !0), (t.emissiveColor = new i.Color3(1, 1, 1)), t;
}
get defaultPickupMaterial() {
const e = new i.Texture("assets/objects/pickups/PickUps01.jpg", this._scene),
t = new i.StandardMaterial("DefaultPickupMaterial", this._scene);
return (t.diffuseTexture = e), (t.backFaceCulling = !0), (t.emissiveColor = new i.Color3(1, 1, 1)), t;
}
update() {}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), n(211), n(292);
const r = n(62),
o = n(40),
a = n(215),
s = n(29),
c = n(48);
t.default = class {
constructor(e) {
(this._debugRenderCount = 0), (this._canvas = e), (this._divFps = document.getElementById("fps_value")), (this._divTrackPiece = document.getElementById("track_piece_name"));
const t = new r.Engine(e, !0);
(t.enableOfflineSupport = !1), (this._scene = new r.Scene(t)), this._initializeAsync();
const n = new r.SceneOptimizerOptions();
n.addOptimization(new r.HardwareScalingOptimization(0, 1));
new r.SceneOptimizer(this._scene, n).start(),
(a.GLTFValidation.Configuration = void 0),
(r.DracoCompression.Configuration = {
decoder: { wasmUrl: "assets/babylonjs/draco_wasm_wrapper_gltf.js", wasmBinaryUrl: "assets/babylonjs/draco_decoder_gltf.wasm", fallbackUrl: "assets/babylonjs/draco_decoder_gltf.js" },
});
}
_initializeAsync() {
return i(this, void 0, void 0, function* () {
const e = this._scene.getEngine();
(r.SceneLoader.ShowLoadingScreen = !1),
this._checkProgress(),
o.GameController.instance.initialize(this._canvas, this._scene),
yield this._scene.whenReadyAsync(),
s.EventHandler.instance.fireEvent(s.EventID.OnLoadingUpdate, 99),
clearInterval(this._progressTimer),
e.runRenderLoop(() => {
this._scene.render(),
c.GameConfig.showDebugInfo &&
this._debugRenderCount++ > 10 &&
((this._divFps.innerHTML = e.getFps().toFixed() + " fps"),
o.GameController.instance.character.params.currentTrackPiece
? (this._divTrackPiece.innerHTML = o.GameController.instance.character.params.currentTrackPiece.assetInfo.name)
: (this._divTrackPiece.innerHTML = "-"),
(this._debugRenderCount = 0));
}),
setTimeout(() => {
this.resize(), s.EventHandler.instance.fireEvent(s.EventID.OnLoadingUpdate, 100), s.EventHandler.instance.fireEvent(s.EventID.OnGameLoaded);
}, 500);
});
}
_checkProgress() {
let e = 0,
t = 0,
n = 0;
this._progressTimer = setInterval(() => {
0 == e && (e = this._scene.getWaitingItemsCount());
const i = 100 - (this._scene.getWaitingItemsCount() / e) * 100;
(n += (i - t) / 10), n >= i && ((n = i), (t = i)), n < 0 && (n = 0), n < 99 ? s.EventHandler.instance.fireEvent(s.EventID.OnLoadingUpdate, n) : clearInterval(this._progressTimer);
}, 100);
}
resize() {
this._scene.getEngine().resize();
}
};
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "ecb75761cc5768501b9345d4417c76f7.png");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "379241e29c75c9e274f9190a2e0874bb.jpg");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "52d79153235ad2a88f8b1ff2ffdbe067.jpg");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "079dea52d8f43464bedd59bc35cc7999.jpg");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "f56ee7e8556446da578df0b7c3ffceaf.webp");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "cfba04ff0ae4c4249eb648d48bf08d37.png");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "e27e9516fb177e6a09bedd53cf084336.webp");
},
function (e, t, n) {
"use strict";
n.r(t), (t.default = n.p + "35f3ce4bf67811c36a2976dae509d4d1.png");
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterController = void 0);
const r = n(62),
o = n(40),
a = n(156),
s = n(250),
c = n(251),
l = n(139),
u = n(231),
h = n(133),
d = n(268),
p = n(29),
f = n(52),
m = n(48);
t.CharacterController = class {
constructor(e) {
(this._stopCalcNextPosition = !1),
(this._params = new a.CharacterParams()),
(this._isInitialized = !1),
(this._queueSlide = !1),
(this._queueJump = !1),
(this._isInNarrow = !1),
(this.PLAYER_COLLIDER_SLIDESCALE = new r.Vector3(2.2, 0.6, 2.2)),
(this.PLAYER_COLLIDER_WATERSLIDESCALE = new r.Vector3(2.2, 0.1, 2.2)),
(this.PLAYER_COLLIDER_MINECARTDUCKSCALE = new r.Vector3(2.2, 0.001, 2.2)),
(this.PLAYER_COLLIDER_MINECARTSCALE = new r.Vector3(2.2, 1.35, 2.2)),
(this.PLAYER_COLLIDER_DEFAULT_POSITION = new r.Vector3(0, 1.5, 0)),
(this.PLAYER_COLLIDER_MINECART_POSITION = new r.Vector3(0, 2.45, 0)),
(this.PLAYER_COLLIDER_SLIDE_POSITION = new r.Vector3(0, -0.2, 0)),
(this.SHAKEMAGNITUDE_SMALL = 0.05),
(this.SHAKEMAGNITUDE_BIG = 0.1),
(this.SHAKEDURATION_SMALL = 0.5),
(this.PLAYER_DEFAULT_SPEED = 0.013),
(this.PLAYER_MAX_SPEED = 0.026),
(this.PLAYER_SPEED_BOOST = this.PLAYER_DEFAULT_SPEED + 0.013),
(this.PLAYER_SPEED_BOOST_SLOW = 0.003),
(this.PLAYER_DEFAULT_JUMP_SPEED = 0.015),
(this.PLAYER_MAX_JUMP_SPEED = 0.028),
(this.GOD_MODE_DURATION = 3),
(this.GOD_MODE_RELAX_START = 1),
(this._distanceDeltaSum = 0),
(this._canAllowInput = !1),
(this.GOD_MODE_DISABLED = 0),
(this.GOD_MODE_ENABLED = 1),
(this.GOD_MODE_EXHAUSTED = 2),
(this._godModeState = this.GOD_MODE_DISABLED),
(this._godModeTime = this.GOD_MODE_DURATION),
(this._collisionStateObstacle = 0),
(this._scene = e);
}
initialize() {
return i(this, void 0, void 0, function* () {
p.EventHandler.instance.addListener(p.EventID.OnTrackRootInit, (e) => {
this._isInitialized && ((this._params.currentTrackPiece = e), (this._params.currentVelocity = this._runSpeed));
}),
p.EventHandler.instance.addListener(p.EventID.OnCameraIntroEnd, () => {
this._canAllowInput = !0;
}),
(this._character = new d.Character()),
yield this._character.loadAssetAsync(this._scene),
(this._shadow = this._character.playerShadow),
(this._runSpeed = this.PLAYER_DEFAULT_SPEED),
(this._jumpSpeed = this.PLAYER_DEFAULT_JUMP_SPEED),
this._setupAnimator(),
this._setupMover(),
o.GameController.instance.camera.setTarget(this._character.playerTransform),
this._setState(a.MovementState.Idle),
this._setupEvents(),
(this._isInitialized = !0),
null == this._params.currentTrackPiece &&
null != o.GameController.instance.track.initialTrackPiece &&
((this._params.currentTrackPiece = o.GameController.instance.track.initialTrackPiece), (this._params.currentVelocity = this._runSpeed));
});
}
getBoostSlowSpeed() {
return this._runSpeed + this.PLAYER_SPEED_BOOST_SLOW;
}
isInGodMode() {
return this._godModeState != this.GOD_MODE_DISABLED;
}
setToResurrectionState() {
let e = this.params.currentTrackPiece,
t = !1,
n = 5;
for (; null != e; ) {
const n = e.SelectedDefinition;
if (!n.isObstacle() && !n.isTurn()) {
(t = !0), (this.params.currentTrackPiece = e);
break;
}
e = e.NextTrackPieces[0];
}
if (!t)
for (n = 3; null != e && n > 0; ) {
const i = e.SelectedDefinition;
if (!i.isObstacle() && !i.isTurn()) {
(t = !0), (this.params.currentTrackPiece = e);
break;
}
(e = e.PreviousTrackPiece), n--;
}
t || (e = this.params.currentTrackPiece),
(this.params.currentSegment = 0),
(this.params.distanceFromPieceStart = 0),
(this.params.currentPosition = this.params.currentTrackPiece.assetInfo.rootMesh.position),
this._shadow.setEnabled(!0),
this.player.detachFromBone(),
(this.player.position = this.params.currentPosition);
let i = this.params.currentTrackPiece.getStartDirection().clone();
(i = i.normalize()),
this.player.lookAt(this.player.position.subtract(i)),
(this._runSpeed = this.PLAYER_DEFAULT_SPEED),
e.SelectedDefinition.IsWaterSlide
? (this._character.startWaterTrail(), this._shadow.setEnabled(!1), this._setState(a.MovementState.WaterSliding))
: e.SelectedDefinition.IsMine
? (this._shadow.setEnabled(!1), this._setState(a.MovementState.CartRiding))
: this._setState(a.MovementState.Running),
this._playerAnimator._setAnimationToFirstFrame(),
(this._playerMover.TurnState = a.TurnState.None),
o.GameController.instance.camera.updateForResurrection(this.player),
(this._godModeState = this.GOD_MODE_ENABLED),
(this._godModeTime = this.GOD_MODE_DURATION),
p.EventHandler.instance.fireEvent(p.EventID.OnGodModeEnabled),
p.EventHandler.instance.fireEvent(p.EventID.OnRessurect),
(this._runSpeed = 0.5 * this._resurrectRunSpeed),
(this._jumpSpeed = 0.5 * this._resurrectJumpSpeed),
this._updateSpeed(),
this.pause(),
(this._collisionStateObstacle = 0),
(o.GameController.instance.track.stopRemovalOnDeath = !1),
(this._stopCalcNextPosition = !1);
}
updateShadow() {
(this._shadow.position = this.player.position.clone()),
(this._shadow.position.y = 0.05 + this.params.currentPosition.y),
(this._shadow.rotation = this.player.rotation.clone()),
this._shadow.rotate(r.Axis.X, r.Tools.ToRadians(90), r.Space.LOCAL);
}
_godModeUpdate() {
const e = this._scene.getEngine().getDeltaTime() / 1e3;
(this._godModeTime -= e),
this._godModeTime < 0
? ((this._godModeState = this.GOD_MODE_DISABLED), p.EventHandler.instance.fireEvent(p.EventID.OnGodModeDisabled))
: this._godModeTime < this.GOD_MODE_RELAX_START && this._godModeState == this.GOD_MODE_ENABLED && ((this._godModeState = this.GOD_MODE_EXHAUSTED), p.EventHandler.instance.fireEvent(p.EventID.OnGodModeExhausted));
}
preUpdate() {
this._shadow.isEnabled() && this.updateShadow(),
o.GameController.instance.isGameRunning &&
this._isInitialized &&
((this._godModeState != this.GOD_MODE_ENABLED && this._godModeState != this.GOD_MODE_EXHAUSTED) || this._godModeUpdate(),
null != this._params.currentTrackPiece &&
(this.isPlayerDead ||
this._stopCalcNextPosition ||
((this._params = u.TrackHelper.calcPointAlongTrack(this._params, this._scene)),
this._distanceDeltaSum >= 1 && (f.gameState.updateDistance(this._movementState, this._distanceDeltaSum), (this._distanceDeltaSum = 0)),
(this._distanceDeltaSum += this._params.deltaDistance),
o.GameController.instance.tutorial.isEnabled && o.GameController.instance.tutorial.processScoreToRollback())),
this._queueSlide && ((this._queueSlide = !1), this._processSlideInput()),
this._queueJump && ((this._queueJump = !1), this._processJumpInput()),
this.isPlayerDead || null == this._params.currentTrackPiece || (o.GameController.instance.tutorial.isEnabled || this.increaseSpeed(), this._checkCollission()),
this._playerMover.update(this._movementState, this._params));
}
postUpdate() {
if (null == this.params.currentTrackPiece) return;
let e = !1;
const t = new r.Color3(0.2, 0.2, 0.2),
n = this.params.currentTrackPiece.assetInfo.shadowMeshes;
for (let t = 0; t < n.length; t++) {
const i = n[t];
if (this._character.playerCollider.intersectsMesh(i, !0, !0)) {
e = !0;
break;
}
}
this._character.material.albedoColor = e ? t : r.Color3.White();
}
pause() {
this._playerAnimator.pause();
}
resume() {
this._playerAnimator.resume();
}
reset() {
var e, t;
this._shadow.setEnabled(!0),
this.player.detachFromBone(),
(this.player.rotationQuaternion = r.Quaternion.Identity()),
(this._stopCalcNextPosition = !1),
(this._isInNarrow = !1),
(this._runSpeed = this.PLAYER_DEFAULT_SPEED),
(this._jumpSpeed = this.PLAYER_DEFAULT_JUMP_SPEED),
this._updateSpeed(),
this._setState(a.MovementState.Idle),
(this._params = new a.CharacterParams()),
this._playerMover.reset(),
this._character.setPlayerColliderToDefault(),
(this._character.playerCollider.position = this.PLAYER_COLLIDER_DEFAULT_POSITION),
this._character.playerTransform.setEnabled(!1),
null === (e = this._character.dustFx) || void 0 === e || e.stop(),
null === (t = this._character.waterSplashFx) || void 0 === t || t.stop(),
this._character.stopWaterTrail(),
(this._canAllowInput = !1),
(this._queueJump = !1),
(this._queueSlide = !1),
this._character.setPlayerCartVisibility(!1),
this._playerAnimator.setTrigger(a.AnimationState.Idle),
o.GameController.instance.tutorial.shouldRestartTutorial &&
((this._params.currentPosition = new r.Vector3(0, 0, 0)),
(this._runSpeed = 0.5 * this._resurrectRunSpeed),
(this._jumpSpeed = 0.5 * this._resurrectJumpSpeed),
this._updateSpeed(),
o.GameController.instance.camera.updateForResurrection(this.player),
(this._canAllowInput = !0)),
(this._resurrectRunSpeed = 0),
(this._resurrectJumpSpeed = 0),
(this._collisionStateObstacle = 0);
}
increaseSpeed() {
(this._runSpeed += (this._scene.deltaTime / 1e3) * 5e-5), (this._jumpSpeed += (this._scene.deltaTime / 1e3) * 45e-6), this._updateSpeed();
}
_updateSpeed() {
this._runSpeed >= this.PLAYER_MAX_SPEED && (this._runSpeed = this.PLAYER_MAX_SPEED),
this._jumpSpeed >= this.PLAYER_MAX_JUMP_SPEED && (this._jumpSpeed = this.PLAYER_MAX_JUMP_SPEED),
this._runSpeed <= this.PLAYER_DEFAULT_SPEED && (this._runSpeed = this.PLAYER_DEFAULT_SPEED),
this._jumpSpeed <= this.PLAYER_DEFAULT_JUMP_SPEED && (this._jumpSpeed = this.PLAYER_DEFAULT_JUMP_SPEED),
this._playerMover.updateSpeedVars(this._runSpeed, this._jumpSpeed);
}
_setupEvents() {
p.EventHandler.instance.addListener(p.EventID.OnKeyPress, (e) => {
o.GameController.instance.isGameRunning && this._canAllowInput && ("Slide" == e ? this._processSlideInput() : "Jump" == e ? this._processJumpInput() : ("Left" == e || "Right" == e) && this._playerMover.tiltOrTurn(e));
}),
p.EventHandler.instance.addListener(p.EventID.OnPlayGame, () => {
this._shadow.setEnabled(!0),
this._character.playerTransform.setEnabled(!0),
o.GameController.instance.tutorial.isEnabled
? "waterslide" == o.GameController.instance.tutorial.currentTutorialZone
? this._setState(a.MovementState.WaterSliding)
: "mine" == o.GameController.instance.tutorial.currentTutorialZone
? (this._setState(a.MovementState.CartRiding), this._character.setPlayerCartVisibility(!0))
: this._setState(a.MovementState.Running)
: this._setState(a.MovementState.Running);
}),
p.EventHandler.instance.addListener(p.EventID.OnDebugFeatureChange, () => {
m.GameConfig.showPlayerCollider ? (this._character.playerCollider.visibility = 0.5) : (this._character.playerCollider.visibility = 0);
});
}
_processSlideInput() {
switch (this._movementState) {
case a.MovementState.Running:
if (this._playerAnimator.CurrentAnimationState == a.AnimationState.Jump || this._playerAnimator.CurrentAnimationState == a.AnimationState.Slide) return void (this._queueSlide = !0);
this._playerAnimator.setTrigger(a.AnimationState.SlideEnter),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Slide),
(this._character.playerCollider.scaling = this.PLAYER_COLLIDER_SLIDESCALE),
(this._character.playerCollider.position = this.PLAYER_COLLIDER_SLIDE_POSITION);
break;
case a.MovementState.WaterSliding:
(this._character.playerCollider.scaling = this.PLAYER_COLLIDER_WATERSLIDESCALE), this._character.waterDuckFx.start(), this._playerMover.performWaterDuck();
break;
case a.MovementState.CartRiding:
this._playerAnimator.setTrigger(a.AnimationState.MineCartDuck), (this._character.playerCollider.scaling = this.PLAYER_COLLIDER_MINECARTDUCKSCALE);
}
}
_processJumpInput() {
if (this._movementState == a.MovementState.Running) {
if (this._playerAnimator.CurrentAnimationState == a.AnimationState.Jump) return void (this._queueJump = !0);
(this._params.currentVelocity = this._jumpSpeed),
this._character.setPlayerColliderToDefault(),
this._playerAnimator.setTrigger(a.AnimationState.Jump),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.GruntJump);
}
}
_setState(e) {
if (this._movementState != e) {
(e != a.MovementState.WaterSliding && e != a.MovementState.CartRiding && e != a.MovementState.Ziplining) || p.EventHandler.instance.fireEvent(p.EventID.OnPlayerEnteringNewZone), (this._movementState = e);
const t = a.MovementAnimations.get(this._movementState);
null != t && this._playerAnimator.setTrigger(t);
}
}
_setupAnimator() {
(this._playerAnimator = new s.CharacterAnimator(this._character.animationGroups)),
this._playerAnimator.onRunStumbleAnimationEnd.add(() => {
(this._runSpeed = 0.85 * this._runSpeed), (this._jumpSpeed = 0.85 * this._jumpSpeed), this._character.setPlayerColliderToDefault(), this._playerAnimator.setTrigger(a.AnimationState.Run);
}),
this._playerAnimator.onJumpAnimationEnd.add(() => {
this._character.setPlayerColliderToDefault(),
this._playerMover.resetJumpTimer(),
this._movementState != a.MovementState.Death &&
this._movementState != a.MovementState.Ziplining &&
(this._playerAnimator.setTrigger(a.AnimationState.Run), this._character.dustFx.start(), (this._character.dustFx.targetStopDuration = 1), (this._params.currentVelocity = this._runSpeed)),
(this._params.currentVelocity = this._runSpeed),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.GruntJumpLand);
}),
this._playerAnimator.onSlideEnterAnimationEnd.add(() => {
this._playerAnimator.CurrentAnimationState != a.AnimationState.Jump &&
(this._character.dustFx.start(), (this._character.dustFx.targetStopDuration = 1), this._movementState != a.MovementState.Death && this._playerAnimator.setTrigger(a.AnimationState.Slide));
}),
this._playerAnimator.onSlideAnimationEnd.add(() => {
this._playerAnimator.CurrentAnimationState != a.AnimationState.Jump &&
(this._character.setPlayerColliderToDefault(), this._movementState != a.MovementState.Death && this._playerAnimator.setTrigger(a.AnimationState.Run));
}),
this._playerAnimator.onWaterSlideEnterAnimationEnd.add(() => {
this._character.waterSplashFx.start(), this._playerAnimator.setTrigger(a.AnimationState.WaterSlide);
}),
this._playerAnimator.onMineCartDuckAnimationEnd.add(() => {
this.isPlayerDead || ((this._character.playerCollider.scaling = this.PLAYER_COLLIDER_MINECARTSCALE), this._playerAnimator.setTrigger(a.AnimationState.MineCart));
}),
this._playerAnimator.onMineCartEnterAnimationEnd.add(() => {
this._playerAnimator.setTrigger(a.AnimationState.MineCart), p.EventHandler.instance.fireEvent(p.EventID.PlaySFXLoop, l.SoundID.MineCartLoop);
}),
this._playerAnimator.onMineCartExitAnimationEnd.add(() => {
this._playerAnimator.setTrigger(a.AnimationState.Run),
this._setState(a.MovementState.Running),
p.EventHandler.instance.fireEvent(p.EventID.StopSFX, l.SoundID.MineCartLoop),
p.EventHandler.instance.fireEvent(p.EventID.OnMineCartSurvived);
}),
this._playerAnimator.onDeathHitAnimationEnd.add((e) => {
this._notifyPlayerDeath(e);
});
}
_setupMover() {
(this._playerMover = new c.CharacterMover(this._scene, this._character.playerTransform, this._playerAnimator)),
this._playerMover.onZiplineFallEnds.add(() => {
this._character.dustFx.start(),
(this._character.dustFx.targetStopDuration = 1),
this._playerAnimator.setTrigger(a.AnimationState.Run),
this._setState(a.MovementState.Running),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.GruntJumpLand);
}),
this._playerMover.onDeathMovementEnd.add(() => {
this._notifyPlayerDeath(void 0);
}),
this._playerMover.onWaterDuckEnd.add(() => {
this._character.setPlayerColliderToDefault();
}),
this._playerMover.onMineLedgeDeath.add(() => {
this._death(a.DeathType.DeathByFall, "Mine Any Ledge");
}),
this._updateSpeed();
}
_checkCollission() {
var e;
this._checkDistanceBasedTrigger();
let t = !1;
const n = !o.GameController.instance.powerup.isBoost && !this.isInGodMode(),
i = !o.GameController.instance.powerup.isShield,
r = null === (e = this._params.currentTrackPiece.trackInfo.CollisionInfo) || void 0 === e ? void 0 : e.Trigger;
this._processNarrowCollision(n),
this._params.currentTrackPiece.assetInfo.collisionMeshes.forEach((e) => {
this._character.playerCollider.intersectsMesh(e, !0, !0) &&
(n && r == h.TrackTrigger.Stumble
? ((t = !0), i && this._processStumbleCollision())
: e.name.includes("zipline")
? this._processZiplineCollision(e, !n)
: n && r == h.TrackTrigger.Obstacle
? ((t = !0), (i || e.name.includes("Collider_forest_turn") || e.name.includes("Collider_mine_junction") || e.name.includes("Collider_waterslide_junction")) && this._processObstacleCollision())
: !n || (r != h.TrackTrigger.MissedTurn && r != h.TrackTrigger.FallSaver)
? n && r == h.TrackTrigger.Water
? this._death(a.DeathType.DeathByWater, "Waterslide Death By Water")
: r == h.TrackTrigger.WaterSlideZoneStart
? (this._character.startWaterTrail(),
this._shadow.setEnabled(!1),
this._setState(a.MovementState.WaterSliding),
this._playerAnimator.setTrigger(a.AnimationState.WaterSlideEnter),
o.GameController.instance.tutorial.enableForZoneIfRequired("waterslide"))
: r == h.TrackTrigger.MineCartZoneStart
? (this._shadow.setEnabled(!1),
this._setState(a.MovementState.CartRiding),
this._playerAnimator.setTrigger(a.AnimationState.MineCartEnter),
this._character.setPlayerCartVisibility(!0),
(this._character.playerCollider.scaling = this.PLAYER_COLLIDER_MINECARTSCALE),
(this._character.playerCollider.position = this.PLAYER_COLLIDER_MINECART_POSITION),
o.GameController.instance.tutorial.enableForZoneIfRequired("mine"))
: r == h.TrackTrigger.WaterSlideZoneStop
? (this._shadow.setEnabled(!0),
this._character.stopWaterTrail(),
this._movementState == a.MovementState.WaterSliding && p.EventHandler.instance.fireEvent(p.EventID.OnWaterSlideSurvived),
this._setState(a.MovementState.Running),
this._playerAnimator.setTrigger(a.AnimationState.Run),
this._character.waterSplashFx.stop(),
this._character.setPlayerColliderToDefault())
: r == h.TrackTrigger.MineCartZoneStop
? (this._shadow.setEnabled(!0), this._character.setPlayerCartVisibility(!1), this._playerAnimator.setTrigger(a.AnimationState.MineCartExit), this._character.setPlayerColliderToDefault())
: r == h.TrackTrigger.NarrowZoneStart
? (this._isInNarrow = !0)
: r == h.TrackTrigger.NarrowZoneStop && (this._isInNarrow = !1)
: this._death(a.DeathType.DeathByFall, "Missed Turn"));
}),
i || (t ? (this._collisionStateObstacle = 1) : ((this._collisionStateObstacle = 1 == this._collisionStateObstacle ? 2 : 0), 2 == this._collisionStateObstacle && o.GameController.instance.powerup.removeShield())),
o.GameController.instance.coins.checkCoinCollision(this._params.currentTrackPiece, this._character.playerCollider, this._character.playerTransform, o.GameController.instance.powerup.isMagnet),
o.GameController.instance.bonus.checkBonusItemCollision(this._params.currentTrackPiece, this._character.playerCollider);
}
_checkDistanceBasedTrigger() {
const e = o.GameController.instance.track.statueAnimationInfos;
e.forEach((t, n) => {
const i = this.player.position.subtract(t.rootMesh.position),
o = i.length(),
a = i.multiplyByFloats(1 / o, 1 / o, 1 / o),
s = this._runSpeed / this.PLAYER_MAX_SPEED;
r.Vector3.Dot(this.player.forward, a) > 0.5 &&
o < 35 &&
(t.animationGroups.forEach((e) => {
(e.speedRatio = (this.params.boostVelocity > 0 ? 3.5 : 2) * s), e.stop(), e.play();
}),
t.particleSystems.forEach((e) => {
e.start();
}),
e.splice(n, 1));
});
}
_processNarrowCollision(e) {
const t = this._params.currentTrackPiece.SelectedDefinition;
if (this._isInNarrow || t.IsNarrow) {
this._isInNarrow = !0;
!(t.CategoryType == h.TrackPieceCategory.ZoneEntranceTransition || t.CategoryType == h.TrackPieceCategory.ZoneExitTransition) &&
e &&
(this._playerMover.currentTiltAmount > 0.5 || this._playerMover.currentTiltAmount < -0.5) &&
this._death(a.DeathType.DeathByFall, "Narrow Left/Right Ledge");
} else this._isInNarrow = !1;
}
_processStumbleCollision() {
if (
(this._playerAnimator.setTrigger(a.AnimationState.RunStumble),
o.GameController.instance.camera.shake(this.SHAKEMAGNITUDE_SMALL, this.SHAKEDURATION_SMALL),
this._params.currentTrackPiece.assetInfo.name.startsWith("narrow_stumble"))
)
for (const e of this._params.currentTrackPiece.assetInfo.animationGroups) e.play(!1);
}
_processZiplineCollision(e, t) {
e.name.includes("start") && this._movementState != a.MovementState.Ziplining
? (this._shadow.setEnabled(!1),
t
? ((this._params.currentVelocity = this._runSpeed), this._setState(a.MovementState.Ziplining), this._playerMover.resetTilt())
: this._playerAnimator.CurrentAnimationState == a.AnimationState.Jump
? ((this._params.currentVelocity = this._runSpeed), this._setState(a.MovementState.Ziplining), this._playerMover.resetJumpTimer(), this._playerMover.resetTilt())
: setTimeout(() => {
this._death(a.DeathType.DeathByFall, "Zipline Fall");
}, 500))
: e.name.includes("end") &&
this._movementState == a.MovementState.Ziplining &&
(this._shadow.setEnabled(!0), this._playerAnimator.setTrigger(a.AnimationState.DeathByFall), (this._params.currentVelocity = this._runSpeed), this._playerMover.startZiplineFallSimulation());
}
_checkForFireCollision() {
const e = this.params.currentTrackPiece.assetInfo.particleSystems;
return !(0 == e.length || !e[0].name.includes("fire"));
}
_processObstacleCollision() {
o.GameController.instance.camera.shake(this.SHAKEMAGNITUDE_BIG, this.SHAKEDURATION_SMALL);
const e = this._checkForFireCollision();
this._movementState == a.MovementState.Running
? this._death(e ? a.DeathType.Fire : a.DeathType.DeathByHit, e ? "Obstacle Death By Fire" : "Obstacle Death By Hit")
: this._movementState == a.MovementState.CartRiding
? this._death(a.DeathType.DeathByCart, "Obstacle Cart Hit")
: this._movementState == a.MovementState.WaterSliding && this._death(a.DeathType.DeathByHit, "Obstacle Water Hit");
}
_notifyPlayerDeath(e) {
o.GameController.instance.isGameRunning && (p.EventHandler.instance.fireEvent(p.EventID.OnPlayerDeath, e), o.GameController.instance.tutorial.isEnabled && o.GameController.instance.tutorial.resurrectOnDeath());
}
_death(e, t) {
if (this._movementState == a.MovementState.Death) return;
p.EventHandler.instance.fireEvent(p.EventID.PlayerDeathTypeUpdate, a.getMessageKeyForDeath(e)),
m.GameConfig.showDeathInfo &&
p.EventHandler.instance.fireEvent(
p.EventID.PlayerDeathDebugInfo,
`Piece : ${this.params.currentTrackPiece.assetInfo.name}, Death : ${a.getMessageKeyForDeath(e).messageKey} - ${t}\nMover : ` + this._playerMover.debugTurnInfo()
),
this._character.stopWaterTrail(),
this._shadow.setEnabled(!1);
const n = this._movementState;
this._setState(a.MovementState.Death), (this._resurrectRunSpeed = this._runSpeed), (this._resurrectJumpSpeed = this._jumpSpeed);
const i = this._params.currentTrackPiece;
switch ((i.SelectedDefinition.IsMine && p.EventHandler.instance.fireEvent(p.EventID.StopSFX, l.SoundID.MineCartLoop), (o.GameController.instance.track.stopRemovalOnDeath = !0), (this._stopCalcNextPosition = !0), e)) {
case a.DeathType.DeathByFall:
(this._playerMover.playerDeathMoveDirection = r.Vector3.Down()),
i.SelectedDefinition.IsLedgeLeft
? (this._playerMover.playerRotationInDeath = 90)
: i.SelectedDefinition.IsLedgeRight
? (this._playerMover.playerRotationInDeath = -90)
: (this._playerMover.playerRotationInDeath = 0),
this._playerAnimator.setTrigger(a.AnimationState.DeathByFall),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Scream);
break;
case a.DeathType.DeathByCart:
this._playerAnimator.setTrigger(a.AnimationState.DeathByMineHit), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Splat);
break;
case a.DeathType.DeathByHit:
case a.DeathType.Fire:
this._playerAnimator.setTrigger(a.AnimationState.DeathByHit),
this._character.waterSplashFx.stop(),
e == a.DeathType.Fire &&
(this._character.playerTransform.setEnabled(!1),
(this._character.fireCollisionSmokeFX.emitter = this._character.playerTransform.position.add(new r.Vector3(0, 0, 0))),
this._character.fireCollisionSmokeFX.start(0)),
n == a.MovementState.Running ? p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Splat) : n == a.MovementState.WaterSliding && p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Splash);
break;
case a.DeathType.DeathByWater:
(this._playerMover.playerDeathMoveDirection = this.player.getDirection(r.Vector3.Right()).add(r.Vector3.Down())),
(this._playerMover.playerRotationInDeath = 90),
this._playerAnimator.setTrigger(a.AnimationState.DeathByFall),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Scream);
break;
case a.DeathType.Eaten:
(this._playerMover.playerDeathMoveDirection = r.Vector3.Zero()),
this._playerAnimator.setTrigger(a.AnimationState.Idle),
p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Scream),
this._notifyPlayerDeath(e);
}
}
get isOnZipline() {
return this._movementState == a.MovementState.Ziplining;
}
get CurrentMovementState() {
return this._movementState;
}
get currentPosition() {
return this._params.currentPosition;
}
get isPlayerDead() {
return this._movementState == a.MovementState.Death;
}
get player() {
return this._character.playerTransform;
}
get material() {
return this._character.material;
}
deathByMonkey() {
this._death(a.DeathType.Eaten, "Eaten By Monkey");
}
get params() {
return this._params;
}
};
},
function (e) {
e.exports = JSON.parse(
'{"Fall":["You fell to your death.","Aaaaaaaah!","But I\'m scared of heights!","End of the road…","Mind the gap.","Missed it by *that* much."],"Eaten":["You made a tasty snack.","I eat explorers like you for breakfast.","Nom nom... leathery!"],"Fire":["Mmmm, crispy explorer.","Smells like toast."],"MineDuck":["Ow, my head!","Who put that there?!","Should have ducked."],"MineLedge":["You fell to your death.","Aaaaaaaah!","But I\'m scared of the dark!","End of the road..."],"Mine":["Harder than it looks...","Good thing I have a hard head!","Wish I had a helmet..."],"Wheel":["Who put that here?","Really? Wheels with spikes?!","Ground into a fine pulp."],"DeathThrow":["Who put that here?","Really? Wheels with spikes?!","Ground into a fine pulp."],"WaterLeft":["Weeee, sliding time!","Bubble, bubble, bubble...","If only I brought my barrel."],"WaterRight":["Weeee, sliding time!","Bubble, bubble, bubble...","If only I brought my barrel."],"Ledge":["Missed it by *that* much.","You fell to your death.","Aaaaaaaah!","Watch your step...","Temple slippery when wet."],"SceneryTree":["Tree Hugger!","Trees hurt.","Who left this tree here?"],"SceneryRock":["Harder than it looks...","Good thing I have a hard head!","Wish I had a helmet..."],"None":[""]}'
);
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterAnimator = void 0);
const i = n(62),
r = n(156),
o = n(29);
t.CharacterAnimator = class {
constructor(e) {
(this.onRunStumbleAnimationEnd = new i.Observable()),
(this.onJumpAnimationEnd = new i.Observable()),
(this.onSlideAnimationEnd = new i.Observable()),
(this.onSlideEnterAnimationEnd = new i.Observable()),
(this.onWaterSlideEnterAnimationEnd = new i.Observable()),
(this.onMineCartEnterAnimationEnd = new i.Observable()),
(this.onMineCartExitAnimationEnd = new i.Observable()),
(this.onMineCartDuckAnimationEnd = new i.Observable()),
(this.onDeathHitAnimationEnd = new i.Observable()),
(this._animationGroups = e),
(this._idleAnimation = this._animationGroups.find((e) => "Idle01" === e.name)),
(this._runAnimation = this._animationGroups.find((e) => "Run01" === e.name)),
(this._runAnimation.loopAnimation = !0),
(this._runStumbleAnimation = this._animationGroups.find((e) => "RunStumble01" === e.name)),
this._runStumbleAnimation.onAnimationGroupEndObservable.add(() => {
this.onRunStumbleAnimationEnd.notifyObservers();
}),
this._runStumbleAnimation.onAnimationGroupPlayObservable.add(() => {
o.EventHandler.instance.fireEvent(o.EventID.OnStumble);
}),
(this._jumpAnimation = this._animationGroups.find((e) => "Jump01" === e.name)),
this._jumpAnimation.onAnimationGroupEndObservable.add(() => {
this.onJumpAnimationEnd.notifyObservers();
}),
(this._slideAnimation = this._animationGroups.find((e) => "Slide01" === e.name)),
this._slideAnimation.onAnimationGroupEndObservable.add(() => {
this.onSlideAnimationEnd.notifyObservers();
}),
(this._slideEnterAnimation = this._animationGroups.find((e) => "SlideEnter01" === e.name)),
this._slideEnterAnimation.onAnimationGroupEndObservable.add(() => {
this.onSlideEnterAnimationEnd.notifyObservers();
}),
(this._waterSlideEnterAnimation = this._animationGroups.find((e) => "WaterSlideEnter01" === e.name)),
this._waterSlideEnterAnimation.onAnimationGroupEndObservable.add(() => {
this.onWaterSlideEnterAnimationEnd.notifyObservers();
}),
(this._waterSlideIdleAnimation = this._animationGroups.find((e) => "WaterSlide01" === e.name)),
(this._mineCartIdleAnimation = this._animationGroups.find((e) => "MineCartIdle01" === e.name)),
(this._mineCartEnterAnimation = this._animationGroups.find((e) => "MineCartEnter01" === e.name)),
this._mineCartEnterAnimation.onAnimationGroupEndObservable.add(() => {
this.onMineCartEnterAnimationEnd.notifyObservers();
}),
(this._mineCartExitAnimation = this._animationGroups.find((e) => "MineCartExit01" === e.name)),
this._mineCartExitAnimation.onAnimationGroupEndObservable.add(() => {
this.onMineCartExitAnimationEnd.notifyObservers();
}),
(this._mineCartDuckAnimation = this._animationGroups.find((e) => "MineCartDuck01" === e.name)),
this._mineCartDuckAnimation.onAnimationGroupEndObservable.add(() => {
this.onMineCartDuckAnimationEnd.notifyObservers();
}),
(this._ziplineIdleAnimation = this._animationGroups.find((e) => "ZiplineIdle01" == e.name)),
(this._deathAnimation = this._animationGroups.find((e) => "Death01" === e.name)),
this._deathAnimation.onAnimationGroupEndObservable.add(() => {
this.onDeathHitAnimationEnd.notifyObservers(r.DeathType.DeathByHit);
}),
(this._deathCartHeadAnimation = this._animationGroups.find((e) => "DeathCartHead01" === e.name)),
this._deathCartHeadAnimation.onAnimationGroupEndObservable.add(() => {
this.onDeathHitAnimationEnd.notifyObservers(r.DeathType.DeathByCart);
}),
(this._deathFallingAnimation = this._animationGroups.find((e) => "DeathFalling01" === e.name)),
(this._deathWaterfallAnimation = this._animationGroups.find((e) => "DeathWaterfall01" === e.name));
}
get JumpAnimLength() {
return this._jumpAnimation.to;
}
get CurrentAnimationState() {
return this._animState;
}
GetAnimation(e) {
switch (e) {
case r.AnimationState.Idle:
return this._idleAnimation;
case r.AnimationState.Run:
return this._runAnimation;
case r.AnimationState.RunStumble:
return this._runStumbleAnimation;
case r.AnimationState.Jump:
return this._jumpAnimation;
case r.AnimationState.SlideEnter:
return this._slideEnterAnimation;
case r.AnimationState.Slide:
return this._slideAnimation;
case r.AnimationState.Zipline:
return this._ziplineIdleAnimation;
case r.AnimationState.WaterSlideEnter:
return this._waterSlideEnterAnimation;
case r.AnimationState.WaterSlide:
return this._waterSlideIdleAnimation;
case r.AnimationState.MineCart:
return this._mineCartIdleAnimation;
case r.AnimationState.MineCartDuck:
return this._mineCartDuckAnimation;
case r.AnimationState.MineCartEnter:
return this._mineCartEnterAnimation;
case r.AnimationState.MineCartExit:
return this._mineCartExitAnimation;
case r.AnimationState.DeathByHit:
return this._deathAnimation;
case r.AnimationState.DeathByFall:
return this._deathFallingAnimation;
case r.AnimationState.DeathByMineHit:
return this._deathCartHeadAnimation;
case r.AnimationState.DeathByWaterFall:
return this._deathWaterfallAnimation;
}
}
_setAnimationToFirstFrame() {
this._currentAnimation.goToFrame(1);
}
_playAnimation() {
let e = !1;
null != this._previousAnimation && (this._previousAnimation.setWeightForAllAnimatables(0), this._previousAnimation.stop()),
(this._animState != r.AnimationState.Run &&
this._animState != r.AnimationState.Zipline &&
this._animState != r.AnimationState.WaterSlide &&
this._animState != r.AnimationState.MineCart &&
this._animState != r.AnimationState.DeathByFall &&
this._animState != r.AnimationState.DeathByWaterFall) ||
(e = !0),
this._currentAnimation.setWeightForAllAnimatables(1),
this._currentAnimation.start(e);
}
setTrigger(e) {
(this._animState = e),
(this._previousAnimation = this._currentAnimation),
(this._currentAnimation = this.GetAnimation(e)),
this._currentAnimation != this._previousAnimation &&
(e == r.AnimationState.Jump && o.EventHandler.instance.fireEvent(o.EventID.OnPlayerJumpState), e == r.AnimationState.Run && o.EventHandler.instance.fireEvent(o.EventID.OnPlayerRunState), this._playAnimation());
}
pause() {
var e;
null === (e = this._currentAnimation) || void 0 === e || e.pause();
}
resume() {
var e;
null === (e = this._currentAnimation) || void 0 === e || e.play(this._currentAnimation.loopAnimation);
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterMover = void 0);
const i = n(62),
r = n(156),
o = n(40),
a = n(150);
t.CharacterMover = class {
constructor(e, t, n) {
(this.DEFAULT_PLAYER_POSITION = new i.Vector3(0, 0, 0)),
(this._currentPostion = i.Vector3.Zero()),
(this._currentDirection = new i.Vector3(0, 0, -1)),
(this._distanceFromPieceStart = 0),
(this._simulateZiplineFall = !1),
(this._ziplineFallHeight = 2),
(this._ziplineMovementOffset = 2),
(this._currentTilt = r.TiltState.None),
(this._currentTiltAmount = 0),
(this._tiltSpeed = 5),
(this._currentTurnState = r.TurnState.None),
(this._currentTurnDir = r.Turn.None),
(this._jumpTimer = 0),
(this._jumpHeight = 2),
(this._isJumpStart = !1),
(this.WATER_SLIDE_DUCKTIME = 1),
(this._waterDuckTimer = 0),
(this._IsWaterDucking = !1),
(this._waterSlideDuckDepth = 0.5),
(this._playerDeathMoveDirection = i.Vector3.Zero()),
(this._deathTimer = 0),
(this._playerToRotation = 0),
(this._params = new r.CharacterParams()),
(this._autoTurnedForPowerup = !1),
(this._waterslideHackDistanceVar = 0),
(this._previousWaterslidePieceId = -1),
(this._scene = e),
(this._player = t),
(this._animator = n),
(this.onZiplineFallEnds = new i.Observable()),
(this.onDeathMovementEnd = new i.Observable()),
(this.onWaterDuckEnd = new i.Observable()),
(this.onMineLedgeDeath = new i.Observable()),
this._player.setEnabled(!1);
}
set playerDeathMoveDirection(e) {
this._playerDeathMoveDirection = e;
}
set playerRotationInDeath(e) {
this._playerToRotation = e;
}
get currentTiltAmount() {
return this._currentTiltAmount;
}
resetTilt() {
(this._currentTiltAmount = 0), (this._currentTilt = r.TiltState.None);
}
set TurnState(e) {
this._currentTurnState = e;
}
performWaterDuck() {
this._IsWaterDucking = !0;
}
debugTurnInfo() {
return `Turn - ${this._currentTurnState}, Dirn - ${this._currentTurnDir}, Tilt - ${this._currentTilt}`;
}
updateSpeedVars(e, t) {
(this._moveSpeed = e), (this._jumpSpeed = t);
}
resetJumpTimer() {
(this._jumpTimer = 0), (this._isJumpStart = !1), (this._jumpStartYPos = 0);
}
reset() {
(this._jumpTimer = 0),
(this._isJumpStart = !1),
(this._jumpStartYPos = 0),
(this._deathTimer = 0),
(this._player.position = this.DEFAULT_PLAYER_POSITION),
this._player.setDirection(new i.Vector3(0, 0, 1)),
(this._currentTurnState = r.TurnState.None),
(this._currentTilt = r.TiltState.None),
(this._currentTiltAmount = 0),
this._player.setEnabled(!1);
}
update(e, t) {
(this._movementState = e),
(this._animator.CurrentAnimationState != r.AnimationState.DeathByFall && this._animator.CurrentAnimationState != r.AnimationState.DeathByWaterFall) || e == r.MovementState.Ziplining
? e != r.MovementState.Death &&
((this._params = t),
(this._currentTrackPiece = this._params.currentTrackPiece),
null != this._params.currentTrackPiece &&
((this._currentPostion = this._params.currentPosition),
(this._currentDirection = this._params.currentDirection),
(this._distanceFromPieceStart = this._params.distanceFromPieceStart),
this._checkAutoTurnForPowerup(),
e == r.MovementState.Ziplining ? this._zipLineMove() : e == r.MovementState.CartRiding ? this._cartRidingMove() : e == r.MovementState.WaterSliding ? this._waterSlidingMove() : this._move()),
this._player.isEnabled() || this._player.setEnabled(!0))
: this._updateDeathMovement();
}
_move() {
this._applyPendingTurn();
const e = this._getDirectionAndPosition();
let t = e[1];
const n = e[0];
if (this._animator.CurrentAnimationState == r.AnimationState.Jump) {
let e;
this._isJumpStart || ((this._isJumpStart = !0), (this._jumpStartYPos = this._player.position.y)),
(this._jumpTimer += this._scene.deltaTime / 1e3 / this._animator.JumpAnimLength),
(this._jumpTimer >= 0 && this._jumpTimer <= 0.5) || (this._jumpTimer >= 0.5 && this._jumpTimer <= 1)
? ((e = Math.sin(Math.PI * this._jumpTimer) * this._jumpHeight), (t = new i.Vector3(t.x, t.y + e, t.z)))
: (this._isJumpStart = !1),
this._jumpTimer > 1 && (this._jumpTimer = 1);
}
(this.prevYRot = this.currentYRot), this._player.setDirection(n), (this.currentYRot = this._player.rotation.y), (this._player.position = t);
}
_waterSlidingMove() {
this._applyPendingTurnWaterSlideAndMine();
const e = this._getDirectionAndPosition();
let t = e[1];
const n = e[0];
if (this._IsWaterDucking) {
this._waterDuckTimer += this._scene.deltaTime / 1e3;
const e = Math.sin(Math.PI * this._waterDuckTimer) * this._waterSlideDuckDepth;
(t = new i.Vector3(t.x, t.y - e, t.z)),
this._waterDuckTimer >= this.WATER_SLIDE_DUCKTIME && ((this._waterDuckTimer = 0), (this._IsWaterDucking = !1), null != this.onWaterDuckEnd && this.onWaterDuckEnd.notifyObservers());
}
this._player.setDirection(n), (this._player.position = t);
}
_cartRidingMove() {
this._applyPendingTurnWaterSlideAndMine();
const e = this._getDirectionAndPosition(),
t = e[1],
n = e[0];
this._player.setDirection(n, 0, 0, this._currentTiltAmount * (-Math.PI / 9));
let o = 0,
a = i.Vector3.Zero();
0 == this._currentTiltAmount
? (o = 0)
: this._currentTurnState != r.TurnState.Failed && ((o = 0.45 * this._currentTiltAmount), (a = this._player.getDirection(i.Vector3.Right())), (a = a.normalize()), (a = a.multiplyByFloats(o, o, o))),
(this._player.position = new i.Vector3(t.x, t.y, t.z).add(a));
}
startZiplineFallSimulation() {
this._simulateZiplineFall = !0;
}
_zipLineMove() {
if ((this._getDirectionAndPosition(), this._simulateZiplineFall))
if (((this._ziplineFallHeight -= (this._scene.deltaTime / 1e3) * 6), this._ziplineFallHeight >= 0.5)) {
const e = new i.Vector3(this._currentPostion.x, this._currentPostion.y + this._ziplineFallHeight, this._currentPostion.z);
this._player.setDirection(this._currentDirection.multiply(new i.Vector3(-1, 0, -1))), (this._player.position = e);
} else (this._simulateZiplineFall = !1), (this._currentTilt = r.TiltState.None), (this._currentTiltAmount = 0), (this._ziplineFallHeight = 2), null != this.onZiplineFallEnds && this.onZiplineFallEnds.notifyObservers();
else {
this._player.setDirection(this._currentDirection.multiply(new i.Vector3(-1, 0, -1)), 0, 2 * Math.PI - Math.PI / 8, this._currentTiltAmount * (Math.PI / 4));
let e = 0,
t = i.Vector3.Zero();
0 == this._currentTiltAmount
? (e = 0)
: this._currentTurnState != r.TurnState.Failed && ((e = 0.18 * this._currentTiltAmount), (t = this._player.getDirection(i.Vector3.Right())), (t = t.normalize()), (t = t.multiplyByFloats(e, e, e)));
const n = new i.Vector3(this._currentPostion.x, this._currentPostion.y + this._ziplineMovementOffset, this._currentPostion.z).add(t);
this._player.position = n;
}
}
_getDirectionAndPosition() {
let e, t;
if (
(this._currentTurnState != r.TurnState.Pending && this._currentTurnState != r.TurnState.Done && this._params.currentTrackPiece.SelectedDefinition.isTurn() && (this._currentTurnState = r.TurnState.Failed),
this._movementState == r.MovementState.Running &&
(this._params.currentTrackPiece.SelectedDefinition.isTurn() || this._currentTurnState != r.TurnState.Done || (this._currentTurnState = r.TurnState.None),
Math.abs(this.currentYRot - this.prevYRot) > 75 && (this._currentTurnState = r.TurnState.None)),
this._currentTurnState == r.TurnState.Failed || this._currentTurnState == r.TurnState.Pending)
) {
(e = this._player.getDirection(i.Vector3.Forward()).clone()), (e = e.normalize());
let n = this._params.boostVelocity > 0 ? this._params.boostVelocity : 0;
(n = this._animator.CurrentAnimationState == r.AnimationState.Jump ? this._jumpSpeed * this._scene.deltaTime : this._params.currentVelocity * this._scene.deltaTime),
(t = this._player.position.clone().add(e.multiplyByFloats(-n, 0, -n))),
(t = new i.Vector3(t.x, this._currentPostion.y, t.z));
} else (e = this._currentDirection.multiply(new i.Vector3(-1, 0, -1))), (t = this._getTiltedPosition(this._currentPostion));
return [e, t];
}
_getTiltedPosition(e) {
if (0 == this._currentTiltAmount && this._currentTilt == r.TiltState.None) return e;
let t,
n = (this._scene.deltaTime / 1e3) * this._tiltSpeed,
o = !1,
a = !1;
this._currentTilt == r.TiltState.Right
? ((t = -0.8), (n = -n))
: this._currentTilt == r.TiltState.Left
? (t = 0.8)
: ((t = 0), this._currentTiltAmount < t ? (o = !0) : this._currentTiltAmount > t ? ((n = -n), (a = !0)) : ((n = 0), (this._currentTiltAmount = 0))),
(this._currentTiltAmount += n),
(-0.8 == t && this._currentTiltAmount < t) || (0.8 == t && this._currentTiltAmount > t)
? (this._currentTiltAmount = t)
: 0 == t && ((o && this._currentTiltAmount > 0) || (a && this._currentTiltAmount < 0)) && (this._currentTiltAmount = 0);
const s = this._player.getDirection(i.Vector3.Right());
s.normalize();
const c = s.multiplyByFloats(this._currentTiltAmount, this._currentTiltAmount, this._currentTiltAmount),
l = this._getWaterslideHackElevation();
return this._movementState != r.MovementState.CartRiding ? new i.Vector3(e.x + c.x, e.y + l, e.z + c.z) : e;
}
_getWaterslideHackElevation() {
let e = 0;
if (3 == this._params.currentTrackPiece.SelectedDefinition.ID.ZoneID) {
const t = this._params.currentTrackPiece.SelectedDefinition.ID.PieceID;
if (
(this._previousWaterslidePieceId != t && ((this._waterslideHackDistanceVar = 0), (this._previousWaterslidePieceId = t)),
((3 == t || 12 == t) && this._currentTilt == r.TiltState.Right) || ((4 == t || 13 == t) && this._currentTilt == r.TiltState.Left))
) {
this._waterslideHackDistanceVar += this._params.deltaDistance;
const t = this._params.currentTrackPiece.getEstimatedLength(),
n = t / 2;
let i;
i = this._waterslideHackDistanceVar < n ? this._waterslideHackDistanceVar / n : (t - this._waterslideHackDistanceVar) / n;
const r = 0.8;
e = Math.abs(this._currentTiltAmount) * i * r;
} else this._waterslideHackDistanceVar = 0;
} else this._waterslideHackDistanceVar = 0;
return e;
}
_checkAutoTurnForPowerup() {
(o.GameController.instance.powerup.isBoost || o.GameController.instance.character.isInGodMode()) && this._currentTrackPiece.SelectedDefinition.isTurn() && this._currentTurnState != r.TurnState.Done
? this._autoTurnedForPowerup ||
((this._currentTrackPiece.selectedPathId = this._currentTrackPiece.getNextTrackPiecesLength() > 1 ? a.Utils.random(0, 2) : 0), (this._currentTurnState = r.TurnState.Done), (this._autoTurnedForPowerup = !0))
: (this._autoTurnedForPowerup = !1);
}
_applyPendingTurn() {
this._currentTurnState == r.TurnState.Pending &&
(this._currentTrackPiece.SelectedDefinition.isAnyJunction()
? this._currentTurnDir == r.Turn.Right
? ((this._currentTrackPiece.selectedPathId = 1), (this._currentTurnState = r.TurnState.Done))
: this._currentTurnDir == r.Turn.Left && ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done))
: this._currentTrackPiece.SelectedDefinition.isLeftOrRightTurn() &&
((this._currentTrackPiece.SelectedDefinition.IsTurnRight && this._currentTurnDir == r.Turn.Right) || (this._currentTrackPiece.SelectedDefinition.IsTurnLeft && this._currentTurnDir == r.Turn.Left)) &&
((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done)));
}
_applyPendingTurnWaterSlideAndMine() {
let e = 999;
if (
((e = this._currentTrackPiece.getEstimatedLength() / 2 - this._distanceFromPieceStart),
(e -= 1),
this._movementState == r.MovementState.WaterSliding &&
(this._currentTrackPiece.SelectedDefinition.IsYJunction
? this._currentTilt != r.TiltState.None
? ((this._currentTrackPiece.selectedPathId = this._currentTilt == r.TiltState.Left ? 0 : 1), (this._currentTurnState = r.TurnState.Done))
: e < 0 && (this._currentTurnState = r.TurnState.Failed)
: (this._currentTurnState = r.TurnState.None)),
this._movementState == r.MovementState.CartRiding)
)
if (this._currentTrackPiece.SelectedDefinition.IsYJunction)
this._currentTilt != r.TiltState.None
? ((this._currentTrackPiece.selectedPathId = this._currentTilt == r.TiltState.Left ? 0 : 1), (this._currentTurnState = r.TurnState.Done))
: e < 0 && (this._currentTurnState = r.TurnState.Failed);
else if (this._currentTrackPiece.SelectedDefinition.IsTurnRight)
this._currentTilt == r.TiltState.Right ? ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done)) : e < 0 && (this._currentTurnState = r.TurnState.Failed);
else if (this._currentTrackPiece.SelectedDefinition.IsTurnLeft)
this._currentTilt == r.TiltState.Left ? ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done)) : e < 0 && (this._currentTurnState = r.TurnState.Failed);
else {
if (((this._currentTurnState = r.TurnState.None), o.GameController.instance.powerup.isBoost || o.GameController.instance.character.isInGodMode())) return;
((this._currentTrackPiece.SelectedDefinition.IsLedgeLeft && this._currentTilt != r.TiltState.Left) || (this._currentTrackPiece.SelectedDefinition.IsLedgeRight && this._currentTilt != r.TiltState.Right)) &&
null != this.onMineLedgeDeath &&
this.onMineLedgeDeath.notifyObservers();
}
}
_shouldUserTurn() {
let e = 999;
this._currentTrackPiece.SelectedDefinition.isTurn() && (e = this._currentTrackPiece.getEstimatedLength() / 2 - this._distanceFromPieceStart);
const t = this._currentTrackPiece.NextTrackPieces[0];
null != t && t.SelectedDefinition.isTurn() && (e = this._currentTrackPiece.getEstimatedLength() - this._distanceFromPieceStart + t.getEstimatedLength() / 2);
e < 0 ? (this._currentTurnState = r.TurnState.Failed) : e > 0 && e <= 7 ? (this._currentTurnState = r.TurnState.Pending) : this._currentTrackPiece.SelectedDefinition.isTurn() || (this._currentTurnState = r.TurnState.None);
}
tiltOrTurn(e) {
this._currentTurnState != r.TurnState.Pending && this._currentTurnState != r.TurnState.Done && this._currentTurnState != r.TurnState.CanTilt && this._movementState == r.MovementState.Running && this._shouldUserTurn(),
this._currentTurnState == r.TurnState.None
? "Left" == e
? this._currentTilt == r.TiltState.None
? (this._currentTilt = r.TiltState.Left)
: this._currentTilt == r.TiltState.Right && (this._currentTilt = r.TiltState.None)
: "Right" == e && (this._currentTilt == r.TiltState.None ? (this._currentTilt = r.TiltState.Right) : this._currentTilt == r.TiltState.Left && (this._currentTilt = r.TiltState.None))
: (this._currentTurnDir = "Left" == e ? r.Turn.Left : r.Turn.Right);
}
_updateDeathMovement() {
let e = 0;
if (this._deathTimer < 1) {
this._deathTimer += this._scene.deltaTime / 1e3;
const t = this._player.position.add(this._playerDeathMoveDirection.multiply(new i.Vector3(0.1, 0.1, 0.1)));
0 != this._playerToRotation && ((e = this._playerToRotation > 0 ? 1 : -1), this._player.rotate(i.Vector3.Forward(), (e * Math.PI) / 90)), (this._player.position = t);
} else (this._player.rotation = new i.Vector3(0, this._player.rotation.y, 0)), null != this.onDeathMovementEnd && (this.onDeathMovementEnd.notifyObservers(), (this._deathTimer = 0));
}
};
},
function (e, t) {
var n,
i,
r = (e.exports = {});
function o() {
throw new Error("setTimeout has not been defined");
}
function a() {
throw new Error("clearTimeout has not been defined");
}
function s(e) {
if (n === setTimeout) return setTimeout(e, 0);
if ((n === o || !n) && setTimeout) return (n = setTimeout), setTimeout(e, 0);
try {
return n(e, 0);
} catch (t) {
try {
return n.call(null, e, 0);
} catch (t) {
return n.call(this, e, 0);
}
}
}
!(function () {
try {
n = "function" == typeof setTimeout ? setTimeout : o;
} catch (e) {
n = o;
}
try {
i = "function" == typeof clearTimeout ? clearTimeout : a;
} catch (e) {
i = a;
}
})();
var c,
l = [],
u = !1,
h = -1;
function d() {
u && c && ((u = !1), c.length ? (l = c.concat(l)) : (h = -1), l.length && p());
}
function p() {
if (!u) {
var e = s(d);
u = !0;
for (var t = l.length; t; ) {
for (c = l, l = []; ++h < t; ) c && c[h].run();
(h = -1), (t = l.length);
}
(c = null),
(u = !1),
(function (e) {
if (i === clearTimeout) return clearTimeout(e);
if ((i === a || !i) && clearTimeout) return (i = clearTimeout), clearTimeout(e);
try {
i(e);
} catch (t) {
try {
return i.call(null, e);
} catch (t) {
return i.call(this, e);
}
}
})(e);
}
}
function f(e, t) {
(this.fun = e), (this.array = t);
}
function m() {}
(r.nextTick = function (e) {
var t = new Array(arguments.length - 1);
if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
l.push(new f(e, t)), 1 !== l.length || u || s(p);
}),
(f.prototype.run = function () {
this.fun.apply(null, this.array);
}),
(r.title = "browser"),
(r.browser = !0),
(r.env = {}),
(r.argv = []),
(r.version = ""),
(r.versions = {}),
(r.on = m),
(r.addListener = m),
(r.once = m),
(r.off = m),
(r.removeListener = m),
(r.removeAllListeners = m),
(r.emit = m),
(r.prependListener = m),
(r.prependOnceListener = m),
(r.listeners = function (e) {
return [];
}),
(r.binding = function (e) {
throw new Error("process.binding is not supported");
}),
(r.cwd = function () {
return "/";
}),
(r.chdir = function (e) {
throw new Error("process.chdir is not supported");
}),
(r.umask = function () {
return 0;
});
},
function (e, t, n) {
var i = { "./Machu/MachuRegion.json": 254 };
function r(e) {
var t = o(e);
return n(t);
}
function o(e) {
if (!n.o(i, e)) {
var t = new Error("Cannot find module '" + e + "'");
throw ((t.code = "MODULE_NOT_FOUND"), t);
}
return i[e];
}
(r.keys = function () {
return Object.keys(i);
}),
(r.resolve = o),
(e.exports = r),
(r.id = 253);
},
function (e) {
e.exports = JSON.parse(
'{"Name":"Machu","ID":0,"DisplayName":"Sky Summit","GrowDistance":80,"CullDistance":60,"StartingSection":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"DefaultPacingPath":"assets/tracks/Machu/MachuDefaultPacing.json","SkyboxConfig":"","ChaserConfig":""}'
);
},
function (e) {
e.exports = JSON.parse(
'{"StartingSection":{"Pieces":[]},"RegionID":0,"MinDistanceBetweenBaseZoneChange":350,"Milestones":[{"Distance":0,"MaxTrackPieceDifficulty":1,"AllowCoins":1,"MinDistanceBetweenCoinRuns":80,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":25,"MaxDistanceBetweenTurns":50,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":1000,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":20,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0},{"Distance":250,"MaxTrackPieceDifficulty":1,"AllowCoins":1,"MinDistanceBetweenCoinRuns":70,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":25,"MaxDistanceBetweenTurns":50,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":1000,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":20,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0},{"Distance":500,"MaxTrackPieceDifficulty":2,"AllowCoins":1,"MinDistanceBetweenCoinRuns":60,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":20,"MaxDistanceBetweenTurns":45,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":1000,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":15,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.0500000007},{"Distance":1000,"MaxTrackPieceDifficulty":3,"AllowCoins":1,"MinDistanceBetweenCoinRuns":60,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":25,"MaxDistanceBetweenTurns":45,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":10,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.0500000007},{"Distance":1500,"MaxTrackPieceDifficulty":4,"AllowCoins":1,"MinDistanceBetweenCoinRuns":50,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":15,"MaxDistanceBetweenTurns":40,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":7.5,"MaxDistanceBetweenObstacles":10,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.100000001},{"Distance":2000,"MaxTrackPieceDifficulty":5,"AllowCoins":1,"MinDistanceBetweenCoinRuns":50,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":15,"MaxDistanceBetweenTurns":40,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":5,"MaxDistanceBetweenObstacles":5,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.150000006},{"Distance":3250,"MaxTrackPieceDifficulty":6,"AllowCoins":1,"MinDistanceBetweenCoinRuns":40,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":10,"MaxDistanceBetweenTurns":30,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":5,"MaxDistanceBetweenObstacles":5,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.174999997},{"Distance":4500,"MaxTrackPieceDifficulty":7,"AllowCoins":1,"MinDistanceBetweenCoinRuns":40,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":5,"MaxDistanceBetweenTurns":25,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":750,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":0,"MaxDistanceBetweenObstacles":2.5,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.200000003}],"ZonePacing":[{"RegionID":0,"ZoneID":0,"MinLength":450,"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":1},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":2},"Difficulty":0,"SelectionChance":0.100000001},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Difficulty":0,"SelectionChance":0},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"Difficulty":2,"SelectionChance":0.5},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":15},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":17},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":18},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":19},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":21},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":22},"Difficulty":3,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":23},"Difficulty":0,"SelectionChance":0.300000012},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":24},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":25},"Difficulty":0,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":4,"MinLength":280,"Pieces":[{"ID":{"RegionID":0,"ZoneID":4,"PieceID":0},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":1},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":5},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":6},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":7},"Difficulty":1,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":8},"Difficulty":0,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":1,"MinLength":320,"Pieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":1},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":5},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":7},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"Difficulty":0,"SelectionChance":0.200000003},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":9},"Difficulty":0,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":10},"Difficulty":0,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":11},"Difficulty":0,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":13},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":14},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":15},"Difficulty":0,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":2,"MinLength":200,"Pieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":0},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":1},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":5},"Difficulty":1,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":6},"Difficulty":0,"SelectionChance":0.100000001},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":7},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":8},"Difficulty":1,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":9},"Difficulty":1,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":3,"MinLength":200,"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":0},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":1},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"Difficulty":1,"SelectionChance":0.5},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":6},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":7},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":8},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":9},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":10},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":11},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":12},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":13},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":14},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":16},"Difficulty":1,"SelectionChance":0.75}],"Milestones":[{"Distance":0,"MaxTrackPieceDifficulty":-1,"AllowCoins":1,"MinDistanceBetweenCoinRuns":25,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":-1,"MaxDistanceBetweenTurns":-1,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":-1,"DistanceToFastTurnSection":-1,"MaxDistanceForFastTurnSection":-1,"AllowObstacles":1,"MinDistanceBetweenObstacles":-1,"MaxDistanceBetweenObstacles":-1,"MaxBackToBackObstacles":-1,"DoubleObstaclePercent":-1}]}],"RunnerSpeed":[{"PercentageOfMaxSpeed":0.5,"ForceToAdd":30},{"PercentageOfMaxSpeed":0.649999976,"ForceToAdd":10},{"PercentageOfMaxSpeed":0.850000024,"ForceToAdd":1.5},{"PercentageOfMaxSpeed":1,"ForceToAdd":0.5}],"RunnerSpeedAfterResurrect":[{"PercentageOfMaxSpeed":0.5,"ForceToAdd":30},{"PercentageOfMaxSpeed":0.649999976,"ForceToAdd":10},{"PercentageOfMaxSpeed":0.850000024,"ForceToAdd":10},{"PercentageOfMaxSpeed":1,"ForceToAdd":5}]}'
);
},
function (e, t, n) {
var i = {
"./Machu/Base/MachuBaseZone.json": 257,
"./Machu/Forest/MachuForestZone.json": 258,
"./Machu/MineCart/MachuMineCartZone.json": 259,
"./Machu/Narrows/MachuNarrowsZone.json": 260,
"./Machu/WaterSlide/MachuWaterSlideZone.json": 261,
};
function r(e) {
var t = o(e);
return n(t);
}
function o(e) {
if (!n.o(i, e)) {
var t = new Error("Cannot find module '" + e + "'");
throw ((t.code = "MODULE_NOT_FOUND"), t);
}
return i[e];
}
(r.keys = function () {
return Object.keys(i);
}),
(r.resolve = o),
(e.exports = r),
(r.id = 256);
},
function (e) {
e.exports = JSON.parse(
'{"Name":"Base","ID":0,"Definitions":[{"DisplayName":"Machu Base Straight Flat","Name":"Straight Flat","ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"straight_a","Prefab":{"fileID":100880,"guid":"e26733bdc8c0842269c84677f827afa7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_b","Prefab":{"fileID":188046,"guid":"ca7028d4b309645c49099368c88c4f09","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_d","Prefab":{"fileID":198582,"guid":"a997bdc237b2f4679922eee73ffbbe58","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_organic_c","Prefab":{"fileID":153530,"guid":"d302c1f9725834b5d9b141a3ea033c03","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":0,"PieceID":1},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":1,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"junction_a","Prefab":{"fileID":168078,"guid":"eed93a757c2764e7885025900b44407f","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"junction_b","Prefab":{"fileID":137950,"guid":"4885a5d6bed864b2c8007a71c7ffdc33","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Bridge","Name":"Bridge","ID":{"RegionID":0,"ZoneID":0,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"bridge_a","Prefab":{"fileID":180572,"guid":"be031fe014a4a41ae88a406d79b84b81","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Jump Over","Name":"Jump Over","ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"gap_small_a","Prefab":{"fileID":170904,"guid":"2601b527d323546b0915433d56322cc2","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"jump_over_a","Prefab":{"fileID":196860,"guid":"a3a2870e5df074041bf6120289eee543","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"bridge_gap_a","Prefab":{"fileID":176006,"guid":"28feb4432339541838f3775bda554201","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"curve_water_a","Prefab":{"fileID":178170,"guid":"5a9b885a29e674c3a8e1eec15469977e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Straight Intro","Name":"Straight Intro","ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"straight_a","Prefab":{"fileID":100880,"guid":"e26733bdc8c0842269c84677f827afa7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_c","Prefab":{"fileID":112208,"guid":"01476053933904776bdb2cffbca792b1","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_e","Prefab":{"fileID":110666,"guid":"f64fdcf6398de4405852309a2258f0f7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_f","Prefab":{"fileID":123656,"guid":"0b14e1791e0d6450dad9c1c2129b4168","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"straight_organic_a","Prefab":{"fileID":151250,"guid":"25e45cc4e58484113b5d2981f71ba5d1","type":2},"PoolPreloadAmount":0,"Frequency":35,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_organic_b","Prefab":{"fileID":133912,"guid":"be260fa310ba34a3da289e5ee1a646d3","type":2},"PoolPreloadAmount":0,"Frequency":35,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"hill_a","Prefab":{"fileID":173654,"guid":"b0677b342df604bba9bd6def5e7965f9","type":2},"PoolPreloadAmount":0,"Frequency":15,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"hill_b","Prefab":{"fileID":161882,"guid":"a66377f9bbce44466916bfa3782040ba","type":2},"PoolPreloadAmount":0,"Frequency":15,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"turn_left_a","Prefab":{"fileID":162404,"guid":"e3d23302fcdf74e78a96b28cc23fc0e7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"turn_right_a","Prefab":{"fileID":100522,"guid":"f7ce3f9446f0647a883f11d291d60fc2","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Temple Start","Name":"Temple Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"SpecialType":1,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"temple_opening","Prefab":{"fileID":164392,"guid":"b14460f68d3754fd2a5e8c78179b868e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base ZipLine","Name":"ZipLine","ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":1,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":0.5,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"zipline_a","Prefab":{"fileID":129878,"guid":"9efe2e88653314089abaffcde5d61613","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"zipline_b","Prefab":{"fileID":152926,"guid":"57fc33f4f45fa452895594031d49931a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"zipline_c","Prefab":{"fileID":137766,"guid":"6902b0198761843369a26354244956c1","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Right Start","Name":"Ledge Right Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"SpecialType":0,"CategoryType":1,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":0,"PieceID":11},"CompoundPieceEndType":{"RegionID":0,"ZoneID":0,"PieceID":12},"Variations":[{"PieceName":"ledge_start_right_a","Prefab":{"fileID":177118,"guid":"5592e2da5b6c44a42abf690ac829f7a9","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":10},{"DisplayName":"Machu Base Ledge Right Middle","Name":"Ledge Right Middle","ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"SpecialType":0,"CategoryType":2,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_right_a","Prefab":{"fileID":167106,"guid":"06e791414a3e04d598fc96f16edd6bf3","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"ledge_right_b","Prefab":{"fileID":185352,"guid":"5b8ddee85bee74e08bcb5d9acadb6129","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Right End","Name":"Ledge Right End","ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"SpecialType":0,"CategoryType":3,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_end_right_a","Prefab":{"fileID":195712,"guid":"b1413b2d8e91749e0a0b87473c696f8a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Curve Left","Name":"Curve Left","ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":1,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"curve_a","Prefab":{"fileID":194384,"guid":"3eae573f8e9434d75838fb7ba400155b","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"curve_c","Prefab":{"fileID":134470,"guid":"5f9d1b7a9238f4532a995144a9bf4f25","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Curve Right","Name":"Curve Right","ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":1,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"curve_b","Prefab":{"fileID":103874,"guid":"729a9ea95da354c6997fe6e1efa1a7e0","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"curve_d","Prefab":{"fileID":110186,"guid":"3dd03fcd9a5ea49ef955e362058d3dc1","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Left Start","Name":"Ledge Left Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":15},"SpecialType":0,"CategoryType":1,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":0,"PieceID":16},"CompoundPieceEndType":{"RegionID":0,"ZoneID":0,"PieceID":17},"Variations":[{"PieceName":"ledge_start_left_a","Prefab":{"fileID":158140,"guid":"cf645e08cfcbc4a6c94a3b1dbf31ee9f","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":10},{"DisplayName":"Machu Base Ledge Left Middle","Name":"Ledge Left Middle","ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"SpecialType":0,"CategoryType":2,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_left_a","Prefab":{"fileID":132382,"guid":"8c1895160e4ca466d9217988fe9c50b6","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"ledge_left_b","Prefab":{"fileID":109884,"guid":"128240bf5421d4a72acc1afbd232eef4","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Left End","Name":"Ledge Left End","ID":{"RegionID":0,"ZoneID":0,"PieceID":17},"SpecialType":0,"CategoryType":3,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_end_left_a","Prefab":{"fileID":181448,"guid":"8b1635035569e460a8268585ade0dc19","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Stumble","Name":"Stumble","ID":{"RegionID":0,"ZoneID":0,"PieceID":18},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":1,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"stumble_a","Prefab":{"fileID":100572,"guid":"6b2b80fcaa431405997718d0d605a967","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"stumble_b","Prefab":{"fileID":105746,"guid":"d2daff925fbd44feb9819c4d784989e7","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Jump or Slide","Name":"Jump or Slide","ID":{"RegionID":0,"ZoneID":0,"PieceID":19},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"jump_or_slide_a","Prefab":{"fileID":130622,"guid":"963fa996378724017b060f9c97af6e9e","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Slide Under","Name":"Slide Under","ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"slide_under_a","Prefab":{"fileID":102080,"guid":"b8e5a5ab8551f4e08bb5199c05558d89","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Jump Over Long","Name":"Jump Over Long","ID":{"RegionID":0,"ZoneID":0,"PieceID":21},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":0,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"jump_over_b","Prefab":{"fileID":158012,"guid":"6e5fa50f887b642b1970740537eb5af1","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"gap_large_a","Prefab":{"fileID":197052,"guid":"4c1e184ca8d2d42d59970d46a48d847a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Run Between","Name":"Run Between","ID":{"RegionID":0,"ZoneID":0,"PieceID":22},"SpecialType":0,"CategoryType":0,"DeathType":11,"DeathShakeCamera":1,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"run_between_a","Prefab":{"fileID":109824,"guid":"6a40c3852d62b4c5ea6a0d3fa5dfdd5a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":1,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Stairs Up Start","Name":"Stairs Up Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":23},"SpecialType":0,"CategoryType":1,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":1,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.3,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":0,"PieceID":24},"CompoundPieceEndType":{"RegionID":0,"ZoneID":0,"PieceID":25},"Variations":[{"PieceName":"stairs_up_start_a","Prefab":{"fileID":105570,"guid":"1e6b669e5cbba4f2bbc9f92769bddd92","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":3},{"DisplayName":"Machu Base Stairs Up Middle","Name":"Stairs Up Middle","ID":{"RegionID":0,"ZoneID":0,"PieceID":24},"SpecialType":0,"CategoryType":2,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":1,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"stairs_up_middle_a","Prefab":{"fileID":176256,"guid":"1b6cff0a137fe4d36b64409f3bd956f9","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"stairs_up_middle_b","Prefab":{"fileID":155670,"guid":"c328d3b8612f847f6ab2bafc09f9393f","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Stairs Up End","Name":"Stairs Up End","ID":{"RegionID":0,"ZoneID":0,"PieceID":25},"SpecialType":0,"CategoryType":3,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":1,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"stairs_up_end_a","Prefab":{"fileID":119082,"guid":"1d4bfe0f503e44650a61e5f21c26264b","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":1,"Gameplay":0,"UseTiltForTurn":0,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.1,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":0,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{"StartingSection":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"TutorialStartAnalyticsEventName":"TutorialStartMain","TutorialMilestones":[{"TutorialMilestoneName":"Tutorial Jump","TutorialStep":0,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":1,"DisplayMessageText":"Swipe To Jump","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":5,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":5,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":5,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainA"},{"TutorialMilestoneName":"Tutorial Turn","TutorialStep":1,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":3,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":8,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":8,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":7,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":7,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainB"},{"TutorialMilestoneName":"Tutorial Slide","TutorialStep":2,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":2,"DisplayMessageText":"Swipe To Slide","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":19},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainC"},{"TutorialMilestoneName":"Tutorial Tilt","TutorialStep":3,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":4,"DisplayMessageText":"Tilt To Collect Coins","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":15},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":17},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainD"},{"TutorialMilestoneName":"Tutorial Meter","TutorialStep":4,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":19,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":1,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":1,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":1,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":11,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":1,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":13,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainE"}],"SaveAndRestorePlayerSpeedOnStartEnd":0,"ResetPlayerSpeedToMinOnTutorialStart":0,"MarkTutorialCompleteWhenPacingRemoved":1}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"Name":"Forest","ID":4,"Definitions":[{"DisplayName":"Machu Forest Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":4,"PieceID":0},"SpecialType":0,"CategoryType":6,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_entrance_a","Prefab":{"fileID":146680,"guid":"3fea3c551ce014fd58f97c527ec9c996","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":4,"PieceID":1},"SpecialType":0,"CategoryType":7,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_exit_a","Prefab":{"fileID":143426,"guid":"9f49108458e8e40e69e354bb05845133","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_straight_a","Prefab":{"fileID":191488,"guid":"ad640ff7947d546b8976aebd32efb1b3","type":2},"PoolPreloadAmount":1,"Frequency":40,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"forest_straight_b","Prefab":{"fileID":189634,"guid":"104f432c0db7b42f4a15aa1a70b879c1","type":2},"PoolPreloadAmount":1,"Frequency":40,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"forest_hill_a","Prefab":{"fileID":179542,"guid":"e60388c395dff474aa4350077f46ab0a","type":2},"PoolPreloadAmount":1,"Frequency":20,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":4,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_turn_left_a","Prefab":{"fileID":108568,"guid":"10ec709c0abe2404aa0c639e3e582050","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":4,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_turn_right_a","Prefab":{"fileID":128776,"guid":"f9897a657ef5743e3a89c2576cac6d87","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":4,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":1,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_junction_a","Prefab":{"fileID":107456,"guid":"b05bfbc215c40460385e5bf3c3da271d","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"forest_junction_b","Prefab":{"fileID":109678,"guid":"b78f4e58025684ca1ae79c71795bd5c6","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Slide Under","Name":"Slide Under","ID":{"RegionID":0,"ZoneID":4,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_slide_under_a","Prefab":{"fileID":191460,"guid":"a12882d3a156743049be32e219548fea","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Jump Over","Name":"Jump Over","ID":{"RegionID":0,"ZoneID":4,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":12,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":0,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_jump_over_a","Prefab":{"fileID":112274,"guid":"690facb371ff44ad39a74a7961543be1","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"forest_jump_over_b","Prefab":{"fileID":120832,"guid":"28705f683d0f04ecbbfbb52d8549894b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"forest_river_a","Prefab":{"fileID":163104,"guid":"961f8963b740a4253909179047cb72b7","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Stumble","Name":"Stumble","ID":{"RegionID":0,"ZoneID":4,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":1,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":1,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_stumble_a","Prefab":{"fileID":186448,"guid":"4403651617aa941a691250ac99d8bf6b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"forest_stumble_b","Prefab":{"fileID":187778,"guid":"760bce868454842679621e6eaa876bf8","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":0,"Gameplay":0,"UseTiltForTurn":0,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.1,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":0,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"Name":"MineCart","ID":1,"Definitions":[{"DisplayName":"Machu MineCart Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_straight_a","Prefab":{"fileID":191766,"guid":"33a512219db3342ccaf28c835846017a","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"mine_straight_b","Prefab":{"fileID":128108,"guid":"6a8c434388971473594c3a674c852cd6","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":1,"PieceID":1},"SpecialType":0,"CategoryType":6,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_entrance_a","Prefab":{"fileID":194912,"guid":"558dc3c1fc6a74685ba2d6ec3269a70e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":1,"PieceID":2},"SpecialType":0,"CategoryType":7,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_exit_a","Prefab":{"fileID":112884,"guid":"1ac33785e06b849d181bb3677b67dd24","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Left Start","Name":"Ledge Left Start","ID":{"RegionID":0,"ZoneID":1,"PieceID":3},"SpecialType":0,"CategoryType":1,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":1,"PieceID":4},"CompoundPieceEndType":{"RegionID":0,"ZoneID":1,"PieceID":5},"Variations":[{"PieceName":"mine_ledge_left_start_a","Prefab":{"fileID":113720,"guid":"e8f7889206b4f409cb697338a1a34626","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":12},{"DisplayName":"Machu MineCart Ledge Left Middle","Name":"Ledge Left Middle","ID":{"RegionID":0,"ZoneID":1,"PieceID":4},"SpecialType":0,"CategoryType":2,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_left_a","Prefab":{"fileID":190610,"guid":"8ca8ba14bc2ac49fe9e43a0241dcc983","type":2},"PoolPreloadAmount":1,"Frequency":65,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"mine_ledge_left_b","Prefab":{"fileID":153376,"guid":"8d6b9636da79444ea82d9c8cb363d281","type":2},"PoolPreloadAmount":1,"Frequency":45,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Left End","Name":"Ledge Left End","ID":{"RegionID":0,"ZoneID":1,"PieceID":5},"SpecialType":0,"CategoryType":3,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_left_end_a","Prefab":{"fileID":130366,"guid":"ce4a19be9cdac4380a32a6195b5e7312","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_junction_b","Prefab":{"fileID":167622,"guid":"619934b70136e4042ae52e55a0982a69","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":1,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_junction_c","Prefab":{"fileID":118348,"guid":"52c2691a586884a32b798a885e112c57","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Curve Right Long","Name":"Curve Right Long","ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":1,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.2,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_curve_a","Prefab":{"fileID":173686,"guid":"846082c61ec9b43049b602fe0ed944bc","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Curve Left","Name":"Curve Left","ID":{"RegionID":0,"ZoneID":1,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":1,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_curve_d","Prefab":{"fileID":148582,"guid":"6a46b6b7b31514eefbc497abda29e694","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Curve Right","Name":"Curve Right","ID":{"RegionID":0,"ZoneID":1,"PieceID":10},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":1,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_curve_c","Prefab":{"fileID":181700,"guid":"c4370397c651344e182fbb56f8a8cbcd","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":1,"PieceID":11},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":0,"IsYJunction":1,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_junction_a","Prefab":{"fileID":126656,"guid":"4059a295dddd7437092530ab54f5f568","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Duck","Name":"Duck","ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"SpecialType":0,"CategoryType":0,"DeathType":3,"DeathShakeCamera":1,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_duck_a","Prefab":{"fileID":132860,"guid":"c907ca4537ddc4cfeb7c249d459f39b5","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0},{"PieceName":"mine_duck_b","Prefab":{"fileID":195016,"guid":"952b3aafe7f23410ba3417e5820aefe2","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Right Start","Name":"Ledge Right Start","ID":{"RegionID":0,"ZoneID":1,"PieceID":13},"SpecialType":0,"CategoryType":1,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":1,"PieceID":14},"CompoundPieceEndType":{"RegionID":0,"ZoneID":1,"PieceID":15},"Variations":[{"PieceName":"mine_ledge_right_start_a","Prefab":{"fileID":171916,"guid":"42f2f53a0177e4776a116dcc26e855a2","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":12},{"DisplayName":"Machu MineCart Ledge Right Middle","Name":"Ledge Right Middle","ID":{"RegionID":0,"ZoneID":1,"PieceID":14},"SpecialType":0,"CategoryType":2,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_right_a","Prefab":{"fileID":170186,"guid":"e9fe73f4402f145f3839fa86953c1bc4","type":2},"PoolPreloadAmount":1,"Frequency":65,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"mine_ledge_right_b","Prefab":{"fileID":112712,"guid":"dc2eb971fb37b4f49aa2351f583c6374","type":2},"PoolPreloadAmount":1,"Frequency":35,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Right End","Name":"Ledge Right End","ID":{"RegionID":0,"ZoneID":1,"PieceID":15},"SpecialType":0,"CategoryType":3,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_right_end_a","Prefab":{"fileID":115654,"guid":"820263a843b2a46e3b0b89c5605c5b08","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":0,"Gameplay":1,"UseTiltForTurn":1,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.4,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":1,"MaxHorizontalOffset":0.85,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":0,"TutorialPacing":{"StartingSection":{"Pieces":[],"TrackLoop":0},"TutorialStartAnalyticsEventName":"TutorialStartMineCart","TutorialMilestones":[{"TutorialMilestoneName":"Tutorial Mine Turn","TutorialStep":0,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":1},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":9},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":4,"DisplayMessageText":"Tilt To Live!","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":9,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":10,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":7},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":9,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMinecartA"},{"TutorialMilestoneName":"Tutorial Mine Duck","TutorialStep":1,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":2,"DisplayMessageText":"Swipe To Duck","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":13,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMinecartB"}],"SaveAndRestorePlayerSpeedOnStartEnd":1,"ResetPlayerSpeedToMinOnTutorialStart":1,"MarkTutorialCompleteWhenPacingRemoved":1}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"Name":"Narrows","ID":2,"Definitions":[{"DisplayName":"Machu Narrows Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":2,"PieceID":0},"SpecialType":0,"CategoryType":6,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_start_a","Prefab":{"fileID":108856,"guid":"980c4dc67cfa84efcada18dee6ab6b1c","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":2,"PieceID":1},"SpecialType":0,"CategoryType":7,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_end_a","Prefab":{"fileID":112380,"guid":"6de617a73735248f5af923c6b4382d4d","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_straight_a","Prefab":{"fileID":198916,"guid":"0efe31ab0969c4b5fadf3e0b8e4a7298","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"narrow_straight_b","Prefab":{"fileID":174522,"guid":"796215173bde545ce939994eb10721f4","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":2,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_turn_left_a","Prefab":{"fileID":170448,"guid":"b20a6d81e9d3548908cb5ceaeb72245f","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":2,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_turn_right_a","Prefab":{"fileID":159922,"guid":"d6719ed0a12ac4ec095d9c4c6745b14e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Jump Or Slide","Name":"Jump Or Slide","ID":{"RegionID":0,"ZoneID":2,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_jump_or_slide_a","Prefab":{"fileID":100000,"guid":"44e2a9060c7df473a83b7beeeddbf3c8","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Straight Rare","Name":"Straight Rare","ID":{"RegionID":0,"ZoneID":2,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_straight_c","Prefab":{"fileID":148728,"guid":"a77df69986f96464daa82fe9c543c33b","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"narrow_straight_d","Prefab":{"fileID":194970,"guid":"a4b955ccccfe941529890a9919be7c91","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"narrow_straight_e","Prefab":{"fileID":164742,"guid":"9496b1df260d94b48a0a45b60fc312db","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":2,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":1,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_junction_a","Prefab":{"fileID":195132,"guid":"fb3ac1359535c49c8a6845a7a7edad0c","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Stumble","Name":"Stumble","ID":{"RegionID":0,"ZoneID":2,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":1,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":1,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_stumble_a","Prefab":{"fileID":174996,"guid":"543a5f50e88774913a12ab2fd8adcb93","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Jump","Name":"Jump","ID":{"RegionID":0,"ZoneID":2,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_jump_over_a","Prefab":{"fileID":171504,"guid":"48f102f9e81f747239ff755e6893448d","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"narrow_jump_over_b","Prefab":{"fileID":118402,"guid":"c0d313fdb01c24b1cb1615ccbca26c7e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":1,"TransitionToZoneSupported":0,"Gameplay":0,"UseTiltForTurn":0,"IsLedgeZone":0,"TiltRatePercentModifier":0.85,"LedgeLeftRightMinTolerance":0,"LedgeLeftRightMaxTolerance":0.8,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":0,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"Name":"WaterSlide","ID":3,"Definitions":[{"DisplayName":"Machu WaterSlide Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":3,"PieceID":0},"SpecialType":0,"CategoryType":6,"DeathType":12,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_start_a","Prefab":{"fileID":142972,"guid":"bbf83e217123e4b109fcce7ebb395c17","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":3,"PieceID":1},"SpecialType":0,"CategoryType":7,"DeathType":12,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_end_a","Prefab":{"fileID":138986,"guid":"3759be77208ce4f5da27d6da8becca42","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_straight_a","Prefab":{"fileID":170628,"guid":"cd9f72178227d4ea9bb2044b40ec200b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"waterslide_straight_b","Prefab":{"fileID":133912,"guid":"a44f9d958ae48490e9a5e3cb16b49e60","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveLeft45","Name":"CurveLeft45","ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":7,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_45_b","Prefab":{"fileID":170040,"guid":"461a530d9f0624dce8ba2d8ebd252e3d","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":0,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveRight45","Name":"CurveRight45","ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":7,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_45_a","Prefab":{"fileID":158748,"guid":"36cbe8ccc90424f6bbf33e08ea990cd5","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":2,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck","Name":"Duck","ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.5,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_b","Prefab":{"fileID":134922,"guid":"c7f2f573d0c9843e4994401189b8cf01","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Left","Name":"Duck Left","ID":{"RegionID":0,"ZoneID":3,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_blocked_right","Prefab":{"fileID":102752,"guid":"d35ddfcb4d30043d392d5de8485e8478","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Right","Name":"Duck Right","ID":{"RegionID":0,"ZoneID":3,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_blocked_left","Prefab":{"fileID":159486,"guid":"7d10459e9f1814ce58d8f1f4788a7fdd","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Center","Name":"Duck Center","ID":{"RegionID":0,"ZoneID":3,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":6,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_center_blocked_sides","Prefab":{"fileID":170140,"guid":"288329cd584b945ffa9f76a23ca2db14","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Side","Name":"Duck Side","ID":{"RegionID":0,"ZoneID":3,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_blocked_center","Prefab":{"fileID":105240,"guid":"4c6c2a590fdf64ef686cab5eb098746c","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Tilt Right","Name":"Tilt Right","ID":{"RegionID":0,"ZoneID":3,"PieceID":10},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_left_tilt_right","Prefab":{"fileID":135018,"guid":"3fc6186df8bf049a98866bea61895b10","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":2,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Tilt Left","Name":"Tilt Left","ID":{"RegionID":0,"ZoneID":3,"PieceID":11},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_right_tilt_left","Prefab":{"fileID":147108,"guid":"81d7bb36382d545d288ae9ecffa59540","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":0,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveLeft90","Name":"CurveLeft90","ID":{"RegionID":0,"ZoneID":3,"PieceID":12},"SpecialType":0,"CategoryType":0,"DeathType":7,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_90_b","Prefab":{"fileID":124298,"guid":"a96a580c702d54d2da7783a06bf1aca3","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":0,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveRight90","Name":"CurveRight90","ID":{"RegionID":0,"ZoneID":3,"PieceID":13},"SpecialType":0,"CategoryType":0,"DeathType":13,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_90_a","Prefab":{"fileID":173738,"guid":"8a07dd86671a24426a6f7d2fa6e0ed6c","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":2,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Rock","Name":"Rock","ID":{"RegionID":0,"ZoneID":3,"PieceID":14},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_straight_c","Prefab":{"fileID":101528,"guid":"9b0c23b86c56c499bbd89417fa80be88","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":5,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Tilt Tutorial","Name":"Tilt Tutorial","ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_straight_a","Prefab":{"fileID":170628,"guid":"cd9f72178227d4ea9bb2044b40ec200b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":5,"CanSpawnPowerup":0},{"PieceName":"waterslide_straight_b","Prefab":{"fileID":133912,"guid":"a44f9d958ae48490e9a5e3cb16b49e60","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":5,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":3,"PieceID":16},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":0,"IsYJunction":1,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_junction_a","Prefab":{"fileID":109730,"guid":"f16bf614670dc47a1b8a9895487bca3c","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":0,"Gameplay":2,"UseTiltForTurn":1,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.1,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":1,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":1.1,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{"StartingSection":{"Pieces":[],"TrackLoop":0},"TutorialStartAnalyticsEventName":"TutorialStartWaterslide","TutorialMilestones":[{"TutorialMilestoneName":"Tutorial Water Slide Tilt","TutorialStep":0,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":4,"DisplayMessageText":"Tilt To Dodge!","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideA"},{"TutorialMilestoneName":"Tutorial Water Slide Tilt Left","TutorialStep":1,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":9,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideB"},{"TutorialMilestoneName":"Tutorial Water Slide Tilt Right","TutorialStep":2,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":10,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":10},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideC"},{"TutorialMilestoneName":"Tutorial Water Slide Duck","TutorialStep":3,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":2,"DisplayMessageText":"Swipe To Dunk","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":13,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideD"}],"SaveAndRestorePlayerSpeedOnStartEnd":1,"ResetPlayerSpeedToMinOnTutorialStart":1,"MarkTutorialCompleteWhenPacingRemoved":1}}'
);
},
function (e, t, n) {
var i = {
"./Machu/Base/MachuBasePieces.json": 263,
"./Machu/Forest/MachuForestPieces.json": 264,
"./Machu/MineCart/MachuMineCartPieces.json": 265,
"./Machu/Narrows/MachuNarrowsPieces.json": 266,
"./Machu/WaterSlide/MachuWaterSlidePieces.json": 267,
};
function r(e) {
var t = o(e);
return n(t);
}
function o(e) {
if (!n.o(i, e)) {
var t = new Error("Cannot find module '" + e + "'");
throw ((t.code = "MODULE_NOT_FOUND"), t);
}
return i[e];
}
(r.keys = function () {
return Object.keys(i);
}),
(r.resolve = o),
(e.exports = r),
(r.id = 262);
},
function (e) {
e.exports = JSON.parse(
'{"bridge_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9234317e-7,"y":0.15999925,"z":-6.400001},{"x":9.193606e-7,"y":-0.16000101,"z":-8.320001},{"x":8.076157e-7,"y":-0.64000136,"z":-10.880001},{"x":6.959441e-7,"y":-0.9600017,"z":-13.4400015},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":4.7251046e-7,"y":-0.9600023,"z":-18.560001},{"x":3.605887e-7,"y":-0.64000255,"z":-21.12},{"x":2.4844172e-7,"y":-0.16000283,"z":-23.680002},{"x":-0.0000011813692,"y":0.15999696,"z":-25.600002},{"x":-0.0000014439192,"y":-0.0000024175642,"z":-32.000004}],"EstimatedPathLength":32.188538,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.6483148e-7,"y":0.05925905,"z":-1.8251855},{"x":-3.7325663e-7,"y":0.1362958,"z":-4.361482},{"x":-3.9234314e-7,"y":0.15999925,"z":-6.4000015},{"x":-2.861384e-8,"y":0.09481393,"z":-7.3481493},{"x":5.24454e-7,"y":-0.023704678,"z":-7.798519},{"x":9.1936073e-7,"y":-0.16000108,"z":-8.320001},{"x":9.875503e-7,"y":-0.3140753,"z":-9.125927},{"x":8.9757896e-7,"y":-0.4859272,"z":-10.002965},{"x":8.076157e-7,"y":-0.6400014,"z":-10.880001},{"x":7.703942e-7,"y":-0.7674089,"z":-11.733335},{"x":7.331808e-7,"y":-0.87703866,"z":-12.586669},{"x":6.9594404e-7,"y":-0.96000177,"z":-13.440002},{"x":6.586534e-7,"y":-1.0103722,"z":-14.293336},{"x":6.213393e-7,"y":-1.0340759,"z":-15.146669},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":5.4686734e-7,"y":-1.0340762,"z":-16.853336},{"x":5.097094e-7,"y":-1.0103725,"z":-17.70667},{"x":4.7251044e-7,"y":-0.96000224,"z":-18.560001},{"x":4.3523892e-7,"y":-0.87703925,"z":-19.413336},{"x":3.9792633e-7,"y":-0.76740974,"z":-20.266668},{"x":3.6058864e-7,"y":-0.64000237,"z":-21.120003},{"x":3.7202545e-7,"y":-0.48592848,"z":-21.997038},{"x":3.8343705e-7,"y":-0.3140766,"z":-22.874077},{"x":2.4844118e-7,"y":-0.16000254,"z":-23.680004},{"x":-1.7378969e-7,"y":-0.023706496,"z":-24.201485},{"x":-7.424281e-7,"y":0.094811976,"z":-24.651857},{"x":-0.0000011813695,"y":0.15999699,"z":-25.600004},{"x":-0.0000013650739,"y":0.13629329,"z":-27.638525},{"x":-0.0000014190827,"y":0.059256554,"z":-30.174818},{"x":-0.0000014439194,"y":-0.0000024586916,"z":-31.999996}],"GeneratedEstimatedPathLength":32.208782,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"bridge_gap_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9234317e-7,"y":0.15999925,"z":-6.400001},{"x":9.193606e-7,"y":-0.16000101,"z":-8.320001},{"x":8.076157e-7,"y":-0.64000136,"z":-10.880001},{"x":6.959441e-7,"y":-0.9600017,"z":-13.4400015},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":4.7251046e-7,"y":-0.9600023,"z":-18.560001},{"x":3.605887e-7,"y":-0.64000255,"z":-21.12},{"x":2.4844172e-7,"y":-0.16000283,"z":-23.680002},{"x":-0.0000011813692,"y":0.15999696,"z":-25.600002},{"x":-0.0000014439192,"y":-0.0000024175642,"z":-32.000004}],"EstimatedPathLength":32.188538,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.6483148e-7,"y":0.05925905,"z":-1.8251855},{"x":-3.7325663e-7,"y":0.1362958,"z":-4.361482},{"x":-3.9234314e-7,"y":0.15999925,"z":-6.4000015},{"x":-2.861384e-8,"y":0.09481393,"z":-7.3481493},{"x":5.24454e-7,"y":-0.023704678,"z":-7.798519},{"x":9.1936073e-7,"y":-0.16000108,"z":-8.320001},{"x":9.875503e-7,"y":-0.3140753,"z":-9.125927},{"x":8.9757896e-7,"y":-0.4859272,"z":-10.002965},{"x":8.076157e-7,"y":-0.6400014,"z":-10.880001},{"x":7.703942e-7,"y":-0.7674089,"z":-11.733335},{"x":7.331808e-7,"y":-0.87703866,"z":-12.586669},{"x":6.9594404e-7,"y":-0.96000177,"z":-13.440002},{"x":6.586534e-7,"y":-1.0103722,"z":-14.293336},{"x":6.213393e-7,"y":-1.0340759,"z":-15.146669},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":5.4686734e-7,"y":-1.0340762,"z":-16.853336},{"x":5.097094e-7,"y":-1.0103725,"z":-17.70667},{"x":4.7251044e-7,"y":-0.96000224,"z":-18.560001},{"x":4.3523892e-7,"y":-0.87703925,"z":-19.413336},{"x":3.9792633e-7,"y":-0.76740974,"z":-20.266668},{"x":3.6058864e-7,"y":-0.64000237,"z":-21.120003},{"x":3.7202545e-7,"y":-0.48592848,"z":-21.997038},{"x":3.8343705e-7,"y":-0.3140766,"z":-22.874077},{"x":2.4844118e-7,"y":-0.16000254,"z":-23.680004},{"x":-1.7378969e-7,"y":-0.023706496,"z":-24.201485},{"x":-7.424281e-7,"y":0.094811976,"z":-24.651857},{"x":-0.0000011813695,"y":0.15999699,"z":-25.600004},{"x":-0.0000013650739,"y":0.13629329,"z":-27.638525},{"x":-0.0000014190827,"y":0.059256554,"z":-30.174818},{"x":-0.0000014439194,"y":-0.0000024586916,"z":-31.999996}],"GeneratedEstimatedPathLength":32.208782,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"curve_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.13288085,"y":0.17367247,"z":-5.359034},{"x":0.64437985,"y":0.35665524,"z":-10.626655},{"x":1.483833,"y":0.5110622,"z":-15.792166},{"x":2.6405225,"y":0.63999754,"z":-20.84488}],"EstimatedPathLength":21.079628,"SourceLastYRot":345.28,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.004214975,"y":0.0065159206,"z":-0.20184807},{"x":0.008146799,"y":0.014388118,"z":-0.44689345},{"x":0.012013907,"y":0.023470491,"z":-0.7302913},{"x":0.016034728,"y":0.033616945,"z":-1.0471967},{"x":0.020427698,"y":0.04468137,"z":-1.3927649},{"x":0.025411252,"y":0.056517676,"z":-1.7621512},{"x":0.031203818,"y":0.068979755,"z":-2.1505103},{"x":0.03802383,"y":0.08192152,"z":-2.552998},{"x":0.04608973,"y":0.09519686,"z":-2.9647684},{"x":0.05561994,"y":0.10865968,"z":-3.380978},{"x":0.0668329,"y":0.12216388,"z":-3.796781},{"x":0.07994704,"y":0.13556336,"z":-4.2073336},{"x":0.0951808,"y":0.14871201,"z":-4.607789},{"x":0.1127526,"y":0.16146374,"z":-4.9933043},{"x":0.13288085,"y":0.17367247,"z":-5.359034},{"x":0.15530665,"y":0.18566026,"z":-5.713075},{"x":0.17959535,"y":0.19782412,"z":-6.066748},{"x":0.20570184,"y":0.21013038,"z":-6.4200425},{"x":0.23358122,"y":0.2225454,"z":-6.7729506},{"x":0.2631883,"y":0.23503545,"z":-7.125461},{"x":0.29447818,"y":0.2475669,"z":-7.477566},{"x":0.32740575,"y":0.26010603,"z":-7.829254},{"x":0.36192602,"y":0.2726192,"z":-8.180518},{"x":0.39799398,"y":0.28507274,"z":-8.531347},{"x":0.43556446,"y":0.2974329,"z":-8.881731},{"x":0.47459257,"y":0.3096661,"z":-9.231662},{"x":0.5150331,"y":0.3217386,"z":-9.581129},{"x":0.5568413,"y":0.33361676,"z":-9.930124},{"x":0.59997183,"y":0.34526688,"z":-10.278635},{"x":0.64437985,"y":0.35665524,"z":-10.626655},{"x":0.6901627,"y":0.36783165,"z":-10.974222},{"x":0.7374411,"y":0.37886998,"z":-11.321372},{"x":0.78620565,"y":0.38977304,"z":-11.668097},{"x":0.836447,"y":0.4005436,"z":-12.014388},{"x":0.8881553,"y":0.41118437,"z":-12.360234},{"x":0.94132113,"y":0.42169815,"z":-12.705626},{"x":0.995935,"y":0.43208766,"z":-13.050554},{"x":1.0519876,"y":0.44235575,"z":-13.395011},{"x":1.1094689,"y":0.45250505,"z":-13.738985},{"x":1.1683699,"y":0.4625384,"z":-14.082466},{"x":1.2286808,"y":0.47245854,"z":-14.425447},{"x":1.2903922,"y":0.48226824,"z":-14.767918},{"x":1.3534942,"y":0.49197024,"z":-15.109867},{"x":1.4179776,"y":0.5015673,"z":-15.451286},{"x":1.4838332,"y":0.51106226,"z":-15.792167},{"x":1.5541332,"y":0.520665,"z":-16.142769},{"x":1.6310838,"y":0.53052235,"z":-16.510435},{"x":1.7133751,"y":0.5405425,"z":-16.890772},{"x":1.7996963,"y":0.55063325,"z":-17.27939},{"x":1.8887377,"y":0.56070286,"z":-17.671898},{"x":1.9791889,"y":0.5706592,"z":-18.063904},{"x":2.0697403,"y":0.5804104,"z":-18.451017},{"x":2.159081,"y":0.5898645,"z":-18.828848},{"x":2.245901,"y":0.5989294,"z":-19.193005},{"x":2.3288906,"y":0.6075133,"z":-19.539093},{"x":2.4067395,"y":0.6155241,"z":-19.862728},{"x":2.478137,"y":0.6228699,"z":-20.159515},{"x":2.5417736,"y":0.6294587,"z":-20.425062},{"x":2.596339,"y":0.63519865,"z":-20.654982},{"x":2.6405225,"y":0.6399976,"z":-20.844877}],"GeneratedEstimatedPathLength":21.082336,"GeneratedLastYRot":345.28,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"curve_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.13288085,"y":-6.388455e-7,"z":-5.3590255},{"x":-0.64438474,"y":-0.0000012667944,"z":-10.626642},{"x":-1.4838378,"y":-0.0000018825714,"z":-15.792155},{"x":-2.6405175,"y":-0.0000024849012,"z":-20.844864}],"EstimatedPathLength":21.069756,"SourceLastYRot":14.72,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0042149653,"y":-2.406209e-8,"z":-0.20184775},{"x":-0.008146762,"y":-5.3273723e-8,"z":-0.4468927},{"x":-0.012013828,"y":-8.7057316e-8,"z":-0.7302901},{"x":-0.0160346,"y":-1.2483531e-7,"z":-1.047195},{"x":-0.020427518,"y":-1.6603016e-7,"z":-1.3927625},{"x":-0.025411017,"y":-2.1006436e-7,"z":-1.7621483},{"x":-0.031203534,"y":-2.5636032e-7,"z":-2.1505067},{"x":-0.03802351,"y":-3.043405e-7,"z":-2.5529935},{"x":-0.046089374,"y":-3.5342728e-7,"z":-2.9647636},{"x":-0.055619575,"y":-4.0304323e-7,"z":-3.3809724},{"x":-0.06683254,"y":-4.526107e-7,"z":-3.7967749},{"x":-0.079946734,"y":-5.015523e-7,"z":-4.207327},{"x":-0.095180556,"y":-5.492903e-7,"z":-4.6077824},{"x":-0.11275245,"y":-5.952472e-7,"z":-4.9932966},{"x":-0.13288085,"y":-6.388455e-7,"z":-5.3590255},{"x":-0.15530685,"y":-6.8105044e-7,"z":-5.713066},{"x":-0.1795958,"y":-7.232115e-7,"z":-6.0667386},{"x":-0.20570259,"y":-7.6532746e-7,"z":-6.420033},{"x":-0.23358229,"y":-8.073973e-7,"z":-6.7729406},{"x":-0.26318973,"y":-8.494198e-7,"z":-7.1254506},{"x":-0.29448003,"y":-8.9139394e-7,"z":-7.4775553},{"x":-0.327408,"y":-9.3331846e-7,"z":-7.829243},{"x":-0.3619287,"y":-9.751923e-7,"z":-8.180507},{"x":-0.39799702,"y":-0.0000010170143,"z":-8.531336},{"x":-0.43556786,"y":-0.0000010587833,"z":-8.881719},{"x":-0.47459638,"y":-0.0000011004983,"z":-9.231649},{"x":-0.5150373,"y":-0.000001142158,"z":-9.581116},{"x":-0.5568457,"y":-0.0000011837614,"z":-9.930111},{"x":-0.59997654,"y":-0.0000012253072,"z":-10.278622},{"x":-0.64438474,"y":-0.0000012667944,"z":-10.626642},{"x":-0.6901678,"y":-0.0000013082276,"z":-10.97421},{"x":-0.7374463,"y":-0.0000013496111,"z":-11.32136},{"x":-0.786211,"y":-0.0000013909439,"z":-11.668085},{"x":-0.8364525,"y":-0.0000014322251,"z":-12.014376},{"x":-0.8881609,"y":-0.0000014734532,"z":-12.360222},{"x":-0.94132686,"y":-0.000001514627,"z":-12.705614},{"x":-0.9959408,"y":-0.0000015557457,"z":-13.050543},{"x":-1.0519935,"y":-0.0000015968083,"z":-13.395},{"x":-1.1094749,"y":-0.000001637813,"z":-13.738975},{"x":-1.1683757,"y":-0.0000016787593,"z":-14.082457},{"x":-1.2286866,"y":-0.0000017196459,"z":-14.425438},{"x":-1.2903976,"y":-0.0000017604714,"z":-14.767908},{"x":-1.3534997,"y":-0.0000018012349,"z":-15.109858},{"x":-1.4179829,"y":-0.0000018419353,"z":-15.451277},{"x":-1.4838381,"y":-0.0000018825715,"z":-15.792156},{"x":-1.5541377,"y":-0.0000019243666,"z":-16.14276},{"x":-1.6310878,"y":-0.0000019681956,"z":-16.510424},{"x":-1.7133785,"y":-0.0000020135353,"z":-16.890762},{"x":-1.7996991,"y":-0.0000020598623,"z":-17.279379},{"x":-1.8887396,"y":-0.0000021066526,"z":-17.671886},{"x":-1.9791901,"y":-0.0000021533833,"z":-18.06389},{"x":-2.0697408,"y":-0.000002199531,"z":-18.451006},{"x":-2.1590805,"y":-0.0000022445718,"z":-18.828835},{"x":-2.2458997,"y":-0.0000022879826,"z":-19.192991},{"x":-2.3288884,"y":-0.0000023292396,"z":-19.539082},{"x":-2.4067364,"y":-0.00000236782,"z":-19.862715},{"x":-2.4781334,"y":-0.0000024031995,"z":-20.1595},{"x":-2.5417693,"y":-0.0000024348553,"z":-20.425049},{"x":-2.596334,"y":-0.0000024622636,"z":-20.654968},{"x":-2.6405172,"y":-0.0000024849012,"z":-20.844864}],"GeneratedEstimatedPathLength":21.072454,"GeneratedLastYRot":14.72,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"curve_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":-3.0517577e-7},{"x":0.13288085,"y":0.17773588,"z":-5.359034},{"x":0.64437985,"y":0.34707394,"z":-10.626655},{"x":1.483833,"y":0.48889223,"z":-15.792166},{"x":2.6405225,"y":0.63999754,"z":-20.84488}],"EstimatedPathLength":21.079552,"SourceLastYRot":345.28,"GeneratedPath":[{"x":0,"y":0,"z":-3.0517577e-7},{"x":0.004214975,"y":0.0067055537,"z":-0.20184836},{"x":0.008146799,"y":0.014862854,"z":-0.44689375},{"x":0.012013907,"y":0.024306446,"z":-0.73029155},{"x":0.016034728,"y":0.03487088,"z":-1.0471971},{"x":0.020427698,"y":0.046390705,"z":-1.3927652},{"x":0.025411252,"y":0.05870047,"z":-1.7621514},{"x":0.031203818,"y":0.07163471,"z":-2.1505105},{"x":0.03802383,"y":0.08502799,"z":-2.552998},{"x":0.04608973,"y":0.09871485,"z":-2.9647686},{"x":0.05561994,"y":0.112529844,"z":-3.380978},{"x":0.0668329,"y":0.1263075,"z":-3.796781},{"x":0.07994704,"y":0.13988239,"z":-4.207334},{"x":0.0951808,"y":0.15308905,"z":-4.6077895},{"x":0.1127526,"y":0.16576204,"z":-4.9933047},{"x":0.13288085,"y":0.17773588,"z":-5.359034},{"x":0.15530665,"y":0.18932602,"z":-5.713075},{"x":0.17959535,"y":0.20094682,"z":-6.066748},{"x":0.20570184,"y":0.21258128,"z":-6.4200425},{"x":0.23358122,"y":0.22421242,"z":-6.7729506},{"x":0.2631883,"y":0.23582321,"z":-7.125461},{"x":0.29447818,"y":0.24739671,"z":-7.477566},{"x":0.32740575,"y":0.25891587,"z":-7.829254},{"x":0.36192602,"y":0.27036372,"z":-8.180518},{"x":0.39799398,"y":0.28172326,"z":-8.531347},{"x":0.43556446,"y":0.29297745,"z":-8.881731},{"x":0.47459257,"y":0.3041094,"z":-9.231662},{"x":0.5150331,"y":0.31510198,"z":-9.581129},{"x":0.5568413,"y":0.32593828,"z":-9.930124},{"x":0.59997183,"y":0.33660126,"z":-10.278635},{"x":0.64437985,"y":0.34707394,"z":-10.626655},{"x":0.6901627,"y":0.35730836,"z":-10.974222},{"x":0.7374411,"y":0.36728954,"z":-11.321372},{"x":0.78620565,"y":0.37705028,"z":-11.668097},{"x":0.836447,"y":0.3866233,"z":-12.014388},{"x":0.8881553,"y":0.39604127,"z":-12.360234},{"x":0.94132113,"y":0.40533692,"z":-12.705626},{"x":0.995935,"y":0.41454297,"z":-13.050554},{"x":1.0519876,"y":0.4236922,"z":-13.395011},{"x":1.1094689,"y":0.43281722,"z":-13.738985},{"x":1.1683699,"y":0.4419508,"z":-14.082466},{"x":1.2286808,"y":0.45112568,"z":-14.425447},{"x":1.2903922,"y":0.46037453,"z":-14.767918},{"x":1.3534942,"y":0.46973008,"z":-15.109867},{"x":1.4179776,"y":0.4792251,"z":-15.451286},{"x":1.4838332,"y":0.48889226,"z":-15.792167},{"x":1.5541332,"y":0.49900967,"z":-16.142769},{"x":1.6310838,"y":0.5097386,"z":-16.510435},{"x":1.7133751,"y":0.52093667,"z":-16.890772},{"x":1.7996963,"y":0.53246105,"z":-17.27939},{"x":1.8887377,"y":0.54416925,"z":-17.671898},{"x":1.9791889,"y":0.55591875,"z":-18.063904},{"x":2.0697403,"y":0.567567,"z":-18.451017},{"x":2.159081,"y":0.5789713,"z":-18.828848},{"x":2.245901,"y":0.58998924,"z":-19.193005},{"x":2.3288906,"y":0.6004781,"z":-19.539093},{"x":2.4067395,"y":0.6102955,"z":-19.862728},{"x":2.478137,"y":0.61929864,"z":-20.159515},{"x":2.5417736,"y":0.6273451,"z":-20.425062},{"x":2.596339,"y":0.63429224,"z":-20.654982},{"x":2.6405225,"y":0.63999754,"z":-20.844877}],"GeneratedEstimatedPathLength":21.082253,"GeneratedLastYRot":345.28,"GeneratedSmoothing":5}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"curve_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.13288085,"y":-0.3173505,"z":-5.3590255},{"x":-0.64438474,"y":-0.6384681,"z":-10.626642},{"x":-1.4838378,"y":-0.9479207,"z":-15.792155},{"x":-2.6399999,"y":-1.2800026,"z":-20.880001}],"EstimatedPathLength":21.142717,"SourceLastYRot":15.000001,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0042149653,"y":-0.01193397,"z":-0.20184775},{"x":-0.008146762,"y":-0.02639335,"z":-0.4468927},{"x":-0.012013828,"y":-0.043099403,"z":-0.7302901},{"x":-0.0160346,"y":-0.06177338,"z":-1.047195},{"x":-0.020427518,"y":-0.08213654,"z":-1.3927625},{"x":-0.025411017,"y":-0.10391016,"z":-1.7621483},{"x":-0.031203534,"y":-0.12681548,"z":-2.1505067},{"x":-0.03802351,"y":-0.15057376,"z":-2.5529935},{"x":-0.046089374,"y":-0.17490625,"z":-2.9647636},{"x":-0.055619575,"y":-0.19953425,"z":-3.3809724},{"x":-0.06683254,"y":-0.22417897,"z":-3.7967749},{"x":-0.079946734,"y":-0.24856173,"z":-4.207327},{"x":-0.095180556,"y":-0.27240372,"z":-4.6077824},{"x":-0.11275245,"y":-0.29542625,"z":-4.9932966},{"x":-0.13288085,"y":-0.3173505,"z":-5.3590255},{"x":-0.15530685,"y":-0.33867317,"z":-5.713066},{"x":-0.1795958,"y":-0.36006746,"z":-6.0667386},{"x":-0.20570259,"y":-0.3815196,"z":-6.420033},{"x":-0.23358229,"y":-0.40301594,"z":-6.7729406},{"x":-0.26318973,"y":-0.4245427,"z":-7.1254506},{"x":-0.29448003,"y":-0.44608626,"z":-7.4775553},{"x":-0.327408,"y":-0.46763277,"z":-7.829243},{"x":-0.3619287,"y":-0.48916867,"z":-8.180507},{"x":-0.39799702,"y":-0.51068014,"z":-8.531336},{"x":-0.43556786,"y":-0.5321535,"z":-8.881719},{"x":-0.47459638,"y":-0.553575,"z":-9.231649},{"x":-0.5150373,"y":-0.57493085,"z":-9.581116},{"x":-0.5568457,"y":-0.5962075,"z":-9.930111},{"x":-0.59997654,"y":-0.6173911,"z":-10.278622},{"x":-0.64438474,"y":-0.6384681,"z":-10.626642},{"x":-0.69016886,"y":-0.6593901,"z":-10.974136},{"x":-0.7374503,"y":-0.68013823,"z":-11.321089},{"x":-0.7862193,"y":-0.70074314,"z":-11.667522},{"x":-0.836466,"y":-0.7212352,"z":-12.01346},{"x":-0.8881801,"y":-0.741645,"z":-12.358921},{"x":-0.94135165,"y":-0.7620028,"z":-12.703928},{"x":-0.99597085,"y":-0.78233933,"z":-13.048503},{"x":-1.0520278,"y":-0.8026851,"z":-13.392669},{"x":-1.1095121,"y":-0.8230703,"z":-13.736444},{"x":-1.168414,"y":-0.84352565,"z":-14.079853},{"x":-1.2287238,"y":-0.8640817,"z":-14.422918},{"x":-1.2904308,"y":-0.88476866,"z":-14.765659},{"x":-1.3535256,"y":-0.9056172,"z":-15.108098},{"x":-1.417998,"y":-0.92665774,"z":-15.450256},{"x":-1.4838381,"y":-0.94792074,"z":-15.792156},{"x":-1.5541172,"y":-0.9700912,"z":-16.144154},{"x":-1.6310407,"y":-0.99362344,"z":-16.51362},{"x":-1.7132999,"y":-1.0182022,"z":-16.896103},{"x":-1.7995846,"y":-1.0435121,"z":-17.287146},{"x":-1.8885863,"y":-1.0692378,"z":-17.682297},{"x":-1.9789956,"y":-1.095064,"z":-18.077103},{"x":-2.0695033,"y":-1.1206758,"z":-18.467112},{"x":-2.1588001,"y":-1.1457573,"z":-18.847866},{"x":-2.2455769,"y":-1.1699935,"z":-19.214916},{"x":-2.328524,"y":-1.1930691,"z":-19.563807},{"x":-2.4063334,"y":-1.2146689,"z":-19.890085},{"x":-2.4776945,"y":-1.2344773,"z":-20.189297},{"x":-2.5412989,"y":-1.2521793,"z":-20.45699},{"x":-2.595837,"y":-1.2674594,"z":-20.68871},{"x":-2.6399996,"y":-1.2800025,"z":-20.880001}],"GeneratedEstimatedPathLength":21.145382,"GeneratedLastYRot":15.000001,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"curve_water_a":{"DeathType":7,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.11676727,"y":0.2952315,"z":-4.0220995},{"x":-0.47006163,"y":0.4086942,"z":-7.8479505},{"x":-0.74709046,"y":0.6051087,"z":-10.555865},{"x":-0.97448075,"y":0.7310288,"z":-13.157182},{"x":-1.8582312,"y":1.1779256,"z":-17.220062},{"x":-2.6405199,"y":1.2799976,"z":-20.84488}],"EstimatedPathLength":21.11332,"SourceLastYRot":15.000001,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0039033347,"y":0.011486454,"z":-0.15175717},{"x":-0.007899823,"y":0.02598105,"z":-0.3363889},{"x":-0.012095917,"y":0.04305979,"z":-0.5501456},{"x":-0.01659807,"y":0.062298663,"z":-0.78927755},{"x":-0.021512736,"y":0.08327368,"z":-1.0500351},{"x":-0.02694637,"y":0.10556084,"z":-1.3286688},{"x":-0.03300542,"y":0.12873614,"z":-1.6214287},{"x":-0.03979634,"y":0.15237558,"z":-1.9245654},{"x":-0.047425587,"y":0.17605513,"z":-2.2343287},{"x":-0.055999614,"y":0.19935086,"z":-2.5469704},{"x":-0.06562488,"y":0.22183868,"z":-2.858739},{"x":-0.07640783,"y":0.24309468,"z":-3.1658864},{"x":-0.088454895,"y":0.2626948,"z":-3.4646616},{"x":-0.10187258,"y":0.28021508,"z":-3.7513163},{"x":-0.11676728,"y":0.2952315,"z":-4.0220995},{"x":-0.13361037,"y":0.30790165,"z":-4.2851734},{"x":-0.15261684,"y":0.3188227,"z":-4.5506525},{"x":-0.17350866,"y":0.32823002,"z":-4.8177166},{"x":-0.19600779,"y":0.33635882,"z":-5.0855474},{"x":-0.21983618,"y":0.34344447,"z":-5.353325},{"x":-0.24471581,"y":0.34972227,"z":-5.6202307},{"x":-0.27036864,"y":0.35542747,"z":-5.8854446},{"x":-0.29651666,"y":0.36079547,"z":-6.1481485},{"x":-0.32288173,"y":0.3660615,"z":-6.4075217},{"x":-0.34918588,"y":0.37146094,"z":-6.6627455},{"x":-0.3751511,"y":0.37722903,"z":-6.913001},{"x":-0.40049928,"y":0.3836011,"z":-7.157469},{"x":-0.4249525,"y":0.39081246,"z":-7.3953285},{"x":-0.4482326,"y":0.3990984,"z":-7.625763},{"x":-0.47006166,"y":0.4086942,"z":-7.8479505},{"x":-0.4908477,"y":0.41952604,"z":-8.061161},{"x":-0.51120013,"y":0.43127215,"z":-8.265807},{"x":-0.5311426,"y":0.4437961,"z":-8.462787},{"x":-0.55069876,"y":0.45696154,"z":-8.653001},{"x":-0.56989235,"y":0.47063202,"z":-8.837347},{"x":-0.5887469,"y":0.4846712,"z":-9.016725},{"x":-0.6072862,"y":0.49894264,"z":-9.192033},{"x":-0.62553394,"y":0.51330996,"z":-9.36417},{"x":-0.6435136,"y":0.52763677,"z":-9.534035},{"x":-0.66124904,"y":0.5417867,"z":-9.702528},{"x":-0.67876387,"y":0.5556233,"z":-9.870547},{"x":-0.69608176,"y":0.56901014,"z":-10.038991},{"x":-0.7132263,"y":0.58181095,"z":-10.208759},{"x":-0.7302214,"y":0.59388924,"z":-10.380751},{"x":-0.74709046,"y":0.6051087,"z":-10.555865},{"x":-0.7623299,"y":0.6148846,"z":-10.729351},{"x":-0.7748384,"y":0.62295526,"z":-10.896786},{"x":-0.78524363,"y":0.6296687,"z":-11.0595665},{"x":-0.7941732,"y":0.6353729,"z":-11.219084},{"x":-0.80225456,"y":0.64041585,"z":-11.376736},{"x":-0.8101153,"y":0.6451454,"z":-11.533912},{"x":-0.818383,"y":0.6499097,"z":-11.692009},{"x":-0.8276851,"y":0.6550566,"z":-11.85242},{"x":-0.8386494,"y":0.66093415,"z":-12.016539},{"x":-0.8519032,"y":0.6678902,"z":-12.18576},{"x":-0.86807424,"y":0.6762729,"z":-12.361477},{"x":-0.88778985,"y":0.6864301,"z":-12.545083},{"x":-0.9116779,"y":0.69870985,"z":-12.737973},{"x":-0.9403656,"y":0.71345997,"z":-12.941541},{"x":-0.9744808,"y":0.73102885,"z":-13.157182},{"x":-1.0145491,"y":0.7522169,"z":-13.386509},{"x":-1.0602292,"y":0.7771989,"z":-13.629087},{"x":-1.1108471,"y":0.8053828,"z":-13.883226},{"x":-1.1657296,"y":0.8361771,"z":-14.14724},{"x":-1.2242031,"y":0.86898977,"z":-14.419437},{"x":-1.2855933,"y":0.9032288,"z":-14.698129},{"x":-1.3492273,"y":0.93830276,"z":-14.981629},{"x":-1.414431,"y":0.9736195,"z":-15.268248},{"x":-1.4805312,"y":1.0085875,"z":-15.556296},{"x":-1.5468538,"y":1.0426146,"z":-15.844086},{"x":-1.6127257,"y":1.0751092,"z":-16.12993},{"x":-1.677473,"y":1.1054794,"z":-16.412136},{"x":-1.7404222,"y":1.1331334,"z":-16.689022},{"x":-1.8008994,"y":1.1574794,"z":-16.958893},{"x":-1.8582314,"y":1.1779257,"z":-17.220062},{"x":-1.9149525,"y":1.1949548,"z":-17.481955},{"x":-1.9736437,"y":1.2095883,"z":-17.753233},{"x":-2.033699,"y":1.222042,"z":-18.03106},{"x":-2.0945144,"y":1.2325314,"z":-18.312605},{"x":-2.1554835,"y":1.2412726,"z":-18.595036},{"x":-2.216002,"y":1.2484813,"z":-18.875523},{"x":-2.275464,"y":1.2543731,"z":-19.151226},{"x":-2.333265,"y":1.259164,"z":-19.41932},{"x":-2.3887994,"y":1.2630695,"z":-19.676966},{"x":-2.4414623,"y":1.2663058,"z":-19.921337},{"x":-2.4906483,"y":1.2690883,"z":-20.149595},{"x":-2.5357523,"y":1.271633,"z":-20.358913},{"x":-2.5761688,"y":1.2741556,"z":-20.546453},{"x":-2.6112933,"y":1.2768718,"z":-20.709387},{"x":-2.64052,"y":1.2799976,"z":-20.84488}],"GeneratedEstimatedPathLength":21.117401,"GeneratedLastYRot":15.000001,"GeneratedSmoothing":5}],"CollisionInfo":{"Trigger":2,"DeathType":7,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"gap_large_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002},{"x":-0.0000015557662,"y":-9.619341e-7,"z":-10.880001},{"x":-0.0000015557662,"y":-0.0000012671098,"z":-13.4400015}],"EstimatedPathLength":13.4400015,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-5.4066696e-8,"y":4.558964e-8,"z":-0.4503704},{"x":-1.4536262e-7,"y":9.450005e-8,"z":-1.1851853},{"x":-3.3506302e-7,"y":2.988726e-8,"z":-2.5600004},{"x":-7.2157235e-7,"y":-2.5046907e-7,"z":-5.120001},{"x":-0.0000012064862,"y":-6.443487e-7,"z":-8.320002},{"x":-0.0000015557662,"y":-9.619341e-7,"z":-10.880001},{"x":-0.0000016461886,"y":-0.0000011258248,"z":-12.254816},{"x":-0.0000016009775,"y":-0.0000012134215,"z":-12.989631},{"x":-0.0000015557664,"y":-0.0000012671096,"z":-13.4400015}],"GeneratedEstimatedPathLength":13.4400015,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"gap_small_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002},{"x":-3.35063e-7,"y":-5.041704e-7,"z":-7.0400014},{"x":-3.35063e-7,"y":-8.093461e-7,"z":-9.6}],"EstimatedPathLength":9.6,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-9.9277926e-8,"y":2.8635426e-8,"z":-0.5925926},{"x":-2.3578508e-7,"y":6.059162e-8,"z":-1.4696298},{"x":-3.35063e-7,"y":2.9887268e-8,"z":-2.5600002},{"x":-3.5988248e-7,"y":-1.1483536e-7,"z":-3.982223},{"x":-3.4747274e-7,"y":-3.222186e-7,"z":-5.6177793},{"x":-3.35063e-7,"y":-5.041704e-7,"z":-7.0400014},{"x":-3.35063e-7,"y":-6.341527e-7,"z":-8.130372},{"x":-3.35063e-7,"y":-7.387036e-7,"z":-9.007408},{"x":-3.35063e-7,"y":-8.093461e-7,"z":-9.6}],"GeneratedEstimatedPathLength":9.6,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":6,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"hill_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.026258452,"y":0.3246748,"z":-3.255033},{"x":0.035417903,"y":1.3145912,"z":-6.3675466},{"x":0.16867359,"y":2.8281555,"z":-9.269829},{"x":0.35836384,"y":3.660394,"z":-12.421686},{"x":0.6832246,"y":3.8387115,"z":-15.673509},{"x":1.2691972,"y":3.579331,"z":-18.882788},{"x":2.0457506,"y":2.6381323,"z":-21.910143},{"x":2.9494693,"y":1.1780084,"z":-24.700035},{"x":3.984855,"y":0.29238075,"z":-27.672049},{"x":5.139073,"y":-0.0000034229959,"z":-30.720003}],"EstimatedPathLength":32.70658,"SourceLastYRot":340.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.010064592,"y":0.059536368,"z":-0.849176},{"x":-0.02304679,"y":0.15514772,"z":-2.0600224},{"x":-0.02625845,"y":0.32467484,"z":-3.2550333},{"x":-0.014864438,"y":0.5859754,"z":-4.310881},{"x":0.0063001085,"y":0.92119175,"z":-5.350893},{"x":0.03541792,"y":1.3145914,"z":-6.367547},{"x":0.07244414,"y":1.8055584,"z":-7.341304},{"x":0.117423624,"y":2.3547084,"z":-8.291701},{"x":0.1686736,"y":2.8281558,"z":-9.269829},{"x":0.22271703,"y":3.1802564,"z":-10.298259},{"x":0.283031,"y":3.456654,"z":-11.354419},{"x":0.35836393,"y":3.6603942,"z":-12.421687},{"x":0.44696742,"y":3.784483,"z":-13.499799},{"x":0.55058986,"y":3.835914,"z":-14.589019},{"x":0.6832246,"y":3.8387115,"z":-15.673509},{"x":0.8521488,"y":3.8099258,"z":-16.753159},{"x":1.0500854,"y":3.7325068,"z":-17.828081},{"x":1.2691973,"y":3.5793307,"z":-18.882788},{"x":1.5092218,"y":3.3353221,"z":-19.914179},{"x":1.7704214,"y":3.0155566,"z":-20.925352},{"x":2.045751,"y":2.6381319,"z":-21.910145},{"x":2.332694,"y":2.1685855,"z":-22.850952},{"x":2.6337671,"y":1.6413801,"z":-23.765377},{"x":2.94947,"y":1.1780076,"z":-24.700037},{"x":3.280444,"y":0.8182715,"z":-25.674404},{"x":3.626048,"y":0.5223678,"z":-26.66901},{"x":3.9848554,"y":0.29238054,"z":-27.67205},{"x":4.4035416,"y":0.14014614,"z":-28.795298},{"x":4.8354306,"y":0.053827807,"z":-29.92698},{"x":5.139073,"y":-0.0000034868717,"z":-30.720001}],"GeneratedEstimatedPathLength":32.74007,"GeneratedLastYRot":340.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"hill_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.28488812,"y":0.28196338,"z":-2.9014976},{"x":-1.0187148,"y":1.1275271,"z":-5.613802},{"x":-2.0078952,"y":2.3123934,"z":-8.116951},{"x":-2.98852,"y":3.360237,"z":-10.680255},{"x":-3.84,"y":3.8399987,"z":-13.4400015},{"x":-4.494441,"y":3.8399985,"z":-15.88241}],"EstimatedPathLength":17.198086,"SourceLastYRot":15.000001,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.057232533,"y":0.052227527,"z":-0.7592473},{"x":-0.1461193,"y":0.13578433,"z":-1.8408833},{"x":-0.28488815,"y":0.2819634,"z":-2.9014976},{"x":-0.48678476,"y":0.509503,"z":-3.82736},{"x":-0.73856354,"y":0.7996651,"z":-4.7322006},{"x":-1.0187148,"y":1.1275272,"z":-5.613802},{"x":-1.3298434,"y":1.502424,"z":-6.46145},{"x":-1.6693447,"y":1.915021,"z":-7.2858586},{"x":-2.0078952,"y":2.3123934,"z":-8.116951},{"x":-2.340187,"y":2.6928647,"z":-8.959655},{"x":-2.671528,"y":3.058111,"z":-9.809041},{"x":-2.98852,"y":3.360237,"z":-10.680255},{"x":-3.2892106,"y":3.5800066,"z":-11.597372},{"x":-3.575552,"y":3.7366562,"z":-12.536317},{"x":-3.84,"y":3.8399987,"z":-13.4400015},{"x":-4.096981,"y":3.8755367,"z":-14.368104},{"x":-4.332069,"y":3.8577678,"z":-15.260947},{"x":-4.494441,"y":3.839999,"z":-15.88241}],"GeneratedEstimatedPathLength":17.212423,"GeneratedLastYRot":15.000001,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"jump_or_slide_a":{"DeathType":2,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":2,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"jump_over_a":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"EstimatedPathLength":8.320001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"GeneratedEstimatedPathLength":8.320001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"jump_over_b":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":6,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":-7.121442e-8,"y":0,"z":-7.121441e-8},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":2.5599995,"y":0,"z":-2.56}],"EstimatedPathLength":5.12,"SourceLastYRot":270.00003,"GeneratedPath":[{"x":-7.121442e-8,"y":0,"z":-7.121441e-8},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":2.5599995,"y":0,"z":-2.56}],"GeneratedEstimatedPathLength":5.12,"GeneratedLastYRot":270.00003,"GeneratedSmoothing":1},{"SourcePath":[{"x":-7.121441e-8,"y":0,"z":0},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":-2.56,"y":0,"z":-2.5599995}],"EstimatedPathLength":5.119999,"SourceLastYRot":90.00003,"GeneratedPath":[{"x":-7.121441e-8,"y":0,"z":0},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":-2.56,"y":0,"z":-2.5599995}],"GeneratedEstimatedPathLength":5.119999,"GeneratedLastYRot":90.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"junction_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":2.56,"y":-3.0517577e-7,"z":-2.5600002}],"EstimatedPathLength":5.12,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":2.56,"y":-3.0517577e-7,"z":-2.5600002}],"GeneratedEstimatedPathLength":5.12,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":8.48942e-15,"z":7.121442e-8},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":-2.56,"y":-3.0517577e-7,"z":-2.5600002}],"EstimatedPathLength":5.12,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":8.48942e-15,"z":7.121442e-8},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":-2.56,"y":-3.0517577e-7,"z":-2.5600002}],"GeneratedEstimatedPathLength":5.12,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"ledge_end_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-3.0517577e-7,"z":-2.5600004}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-3.0517577e-7,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_end_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0893518,"y":-2.9423802e-7,"z":-5.118961}],"EstimatedPathLength":5.1197405,"SourceLastYRot":2,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0893518,"y":-2.9423802e-7,"z":-5.118961}],"GeneratedEstimatedPathLength":5.1197405,"GeneratedLastYRot":2,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_left_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.08935188,"y":-2.751645e-7,"z":-5.1189604}],"EstimatedPathLength":5.11974,"SourceLastYRot":2,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.08935188,"y":-2.751645e-7,"z":-5.1189604}],"GeneratedEstimatedPathLength":5.11974,"GeneratedLastYRot":2,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935139,"y":-2.7516455e-7,"z":-5.118961}],"EstimatedPathLength":5.1197405,"SourceLastYRot":358.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935139,"y":-2.7516455e-7,"z":-5.118961}],"GeneratedEstimatedPathLength":5.1197405,"GeneratedLastYRot":358.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_right_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935132,"y":-3.5145854e-7,"z":-5.1189613}],"EstimatedPathLength":5.119741,"SourceLastYRot":358.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935132,"y":-3.5145854e-7,"z":-5.1189613}],"GeneratedEstimatedPathLength":5.119741,"GeneratedLastYRot":358.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_start_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_start_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"run_between_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"EstimatedPathLength":8.320001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"GeneratedEstimatedPathLength":8.320001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":11,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"slide_under_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"stairs_twist_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":-1.3921845e-8},{"x":-0.09798241,"y":0.15999982,"z":-1.5664097},{"x":-0.6859201,"y":1.5953863,"z":-4.39603}],"EstimatedPathLength":4.8044863,"SourceLastYRot":14.994832,"GeneratedPath":[{"x":0,"y":0,"z":-1.3921845e-8},{"x":-0.0072563533,"y":-0.005755108,"z":-0.35932064},{"x":-0.02539964,"y":0.00626754,"z":-0.89268684},{"x":-0.09798241,"y":0.15999982,"z":-1.5664097},{"x":-0.27944416,"y":0.5971514,"z":-2.5208461},{"x":-0.5153454,"y":1.1760126,"z":-3.6156392},{"x":-0.6859202,"y":1.5953864,"z":-4.3960304}],"GeneratedEstimatedPathLength":4.816329,"GeneratedLastYRot":14.994832,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_end_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":0.63999987,"z":-1.2800002},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600002}],"EstimatedPathLength":2.7110837,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-9.720692e-8,"y":0.18962961,"z":-0.33185193},{"x":-2.3164306e-7,"y":0.4503703,"z":-0.8059261},{"x":-3.35063e-7,"y":0.63999987,"z":-1.2800002},{"x":-3.7645054e-7,"y":0.68740726,"z":-1.7540743},{"x":-3.868219e-7,"y":0.6637035,"z":-2.2281485},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.7176538,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_middle_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"EstimatedPathLength":2.8621674,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.8621674,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_middle_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"EstimatedPathLength":2.8621674,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.8621674,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_start_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":1.8247518e-7,"z":-1.2800001},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600002}],"EstimatedPathLength":2.7110834,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-9.720692e-8,"y":-0.023703635,"z":-0.3318519},{"x":-2.3164306e-7,"y":-0.047407247,"z":-0.805926},{"x":-3.35063e-7,"y":1.8247518e-7,"z":-1.2800001},{"x":-3.7645054e-7,"y":0.18962972,"z":-1.7540742},{"x":-3.868219e-7,"y":0.4503703,"z":-2.2281485},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.7176533,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_e":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_f":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_organic_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.055394217,"y":-0.030083584,"z":-3.8400004},{"x":0.36443958,"y":-0.09259369,"z":-7.6800013},{"x":0.280519,"y":-0.17153561,"z":-11.505611},{"x":0.057076167,"y":-0.27674162,"z":-14.780917},{"x":-0.24506778,"y":-0.31609866,"z":-17.67814},{"x":-0.64,"y":-0.32000247,"z":-20.480001}],"EstimatedPathLength":20.548151,"SourceLastYRot":10.000003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0049669775,"y":-0.006598465,"z":-0.9955557},{"x":0.01608887,"y":-0.016539551,"z":-2.417778},{"x":0.05539422,"y":-0.030083586,"z":-3.8400004},{"x":0.15417466,"y":-0.047909737,"z":-5.1205335},{"x":0.2811386,"y":-0.06933884,"z":-6.401067},{"x":0.36443958,"y":-0.0925937,"z":-7.6800013},{"x":0.37074214,"y":-0.116717756,"z":-8.976652},{"x":0.3333818,"y":-0.14266756,"z":-10.271705},{"x":0.280519,"y":-0.17153561,"z":-11.505611},{"x":0.21928787,"y":-0.20709766,"z":-12.652147},{"x":0.14255433,"y":-0.2455779,"z":-13.737537},{"x":0.057076138,"y":-0.27674162,"z":-14.780917},{"x":-0.034372147,"y":-0.2960514,"z":-15.778196},{"x":-0.1345651,"y":-0.30804467,"z":-16.733465},{"x":-0.24506773,"y":-0.31609866,"z":-17.67814},{"x":-0.38446575,"y":-0.32017067,"z":-18.72293},{"x":-0.5341736,"y":-0.32030344,"z":-19.757126},{"x":-0.64,"y":-0.32000244,"z":-20.480005}],"GeneratedEstimatedPathLength":20.549984,"GeneratedLastYRot":10.000003,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"straight_organic_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0049774167,"y":-6.012149e-7,"z":-3.7633564},{"x":-0.06799194,"y":-0.0000010604064,"z":-7.6153345},{"x":-0.027456664,"y":-0.0000016847189,"z":-11.572447},{"x":0.38723174,"y":-0.000001972629,"z":-15.267613},{"x":0.82532775,"y":-0.0000025680818,"z":-18.982634},{"x":1.4716306,"y":-0.0000027019564,"z":-22.665655},{"x":1.92,"y":-0.0000029754638,"z":-24.960003}],"EstimatedPathLength":25.109346,"SourceLastYRot":350.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.00085908134,"y":-1.6113061e-7,"z":-0.9724028},{"x":0.0011651163,"y":-3.8906293e-7,"z":-2.3629563},{"x":-0.004977418,"y":-6.012149e-7,"z":-3.7633567},{"x":-0.025518391,"y":-7.5868337e-7,"z":-5.036891},{"x":-0.052507933,"y":-9.0037145e-7,"z":-6.320272},{"x":-0.06799194,"y":-0.0000010604064,"z":-7.615335},{"x":-0.07600807,"y":-0.0000012687387,"z":-8.936286},{"x":-0.07251865,"y":-0.0000014954179,"z":-10.26892},{"x":-0.027456656,"y":-0.0000016847189,"z":-11.572447},{"x":0.08219082,"y":-0.0000017942172,"z":-12.822837},{"x":0.23341092,"y":-0.0000018663374,"z":-14.044122},{"x":0.38723183,"y":-0.000001972629,"z":-15.267614},{"x":0.52381855,"y":-0.000002165428,"z":-16.505669},{"x":0.6630062,"y":-0.0000023923983,"z":-17.74593},{"x":0.8253278,"y":-0.0000025680818,"z":-18.982634},{"x":1.0326703,"y":-0.000002641726,"z":-20.26411},{"x":1.2631466,"y":-0.0000026640837,"z":-21.54203},{"x":1.4716306,"y":-0.0000027019564,"z":-22.665655},{"x":1.6523551,"y":-0.0000027929123,"z":-23.618279},{"x":1.8110869,"y":-0.0000028993832,"z":-24.416605},{"x":1.9199998,"y":-0.0000029754642,"z":-24.960003}],"GeneratedEstimatedPathLength":25.110912,"GeneratedLastYRot":350.00003,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"straight_organic_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-3.35063e-7,"y":-0.0000011908157,"z":-12.800001}],"EstimatedPathLength":12.800001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-3.35063e-7,"y":-0.0000011908157,"z":-12.800001}],"GeneratedEstimatedPathLength":12.800001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stumble_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":5,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"stumble_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":5,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"temple_opening":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":2.2411346e-7,"z":5.12},{"x":-3.35063e-7,"y":-5.1175064e-8,"z":-4.7683716e-7}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":2.2411346e-7,"z":5.12},{"x":-3.35063e-7,"y":-5.1175064e-8,"z":-4.7683716e-7}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"turn_left_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":270,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"turn_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004},{"x":-5.12,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004},{"x":-5.12,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"zipline_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9575778e-7,"y":-4.892264e-7,"z":-6.4800014},{"x":8.8181594e-7,"y":-2.1773553,"z":-9.18841},{"x":4.7757834e-7,"y":-4.25224,"z":-11.976054},{"x":6.135008e-8,"y":-6.212002,"z":-14.845748},{"x":-3.671661e-7,"y":-8.042545,"z":-17.799486},{"x":-8.0811446e-7,"y":-9.728151,"z":-20.838205},{"x":-0.0000012614053,"y":-11.251753,"z":-23.961226},{"x":-0.0000017266545,"y":-12.595091,"z":-27.165842},{"x":-0.0000022030883,"y":-13.739566,"z":-30.446657},{"x":-0.0000026894977,"y":-14.666738,"z":-33.795303},{"x":-0.0000016761157,"y":-15.360006,"z":-37.200005},{"x":-0.0000014480023,"y":-15.360005,"z":-43.600002}],"EstimatedPathLength":47.628643,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.6457912e-7,"y":0.08064263,"z":-1.819689},{"x":-3.731313e-7,"y":0.1612852,"z":-4.3593783},{"x":-3.9575778e-7,"y":-5.2167155e-7,"z":-6.4800014},{"x":-3.156103e-8,"y":-0.5682951,"z":-7.6592464},{"x":5.185615e-7,"y":-1.3785181,"z":-8.419426},{"x":8.8181594e-7,"y":-2.1773555,"z":-9.18841},{"x":8.7209276e-7,"y":-2.880838,"z":-10.108717},{"x":6.755016e-7,"y":-3.5729349,"z":-11.0378275},{"x":4.7757834e-7,"y":-4.25224,"z":-11.976054},{"x":3.4017881e-7,"y":-4.918808,"z":-12.923429},{"x":2.0144714e-7,"y":-5.572583,"z":-13.879919},{"x":6.135003e-8,"y":-6.212002,"z":-14.845748},{"x":-8.011796e-8,"y":-6.8371224,"z":-15.820954},{"x":-2.229514e-7,"y":-7.4478865,"z":-16.8055},{"x":-3.6716605e-7,"y":-8.042545,"z":-17.799486},{"x":-5.127709e-7,"y":-8.62115,"z":-18.802975},{"x":-6.5975706e-7,"y":-9.183651,"z":-19.815908},{"x":-8.0811446e-7,"y":-9.728151,"z":-20.838205},{"x":-9.578544e-7,"y":-10.254696,"z":-21.869946},{"x":-0.0000011089655,"y":-10.76324,"z":-22.911053},{"x":-0.0000012614051,"y":-11.251753,"z":-23.961226},{"x":-0.0000014151883,"y":-11.72025,"z":-25.020565},{"x":-0.0000015703001,"y":-12.168718,"z":-26.08897},{"x":-0.0000017266547,"y":-12.595091,"z":-27.165842},{"x":-0.000001884268,"y":-12.999362,"z":-28.251291},{"x":-0.0000020431237,"y":-13.381536,"z":-29.345205},{"x":-0.0000022030883,"y":-13.739566,"z":-30.446657},{"x":-0.0000024200338,"y":-14.073382,"z":-31.555773},{"x":-0.0000026380876,"y":-14.383055,"z":-32.672424},{"x":-0.0000026894977,"y":-14.666738,"z":-33.795303},{"x":-0.0000024337155,"y":-14.94083,"z":-34.815113},{"x":-0.0000020112893,"y":-15.188934,"z":-35.841152},{"x":-0.0000016761156,"y":-15.360006,"z":-37.200005},{"x":-0.0000015334612,"y":-15.411359,"z":-39.348503},{"x":-0.0000014780587,"y":-15.385681,"z":-41.829803},{"x":-0.0000014480022,"y":-15.3600025,"z":-43.6}],"GeneratedEstimatedPathLength":47.70211,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":1,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":2.24,"z":0},"CameraFollowDistance":6,"CameraFocusDistance":3.2,"CameraPitchHeight":0.96,"CameraChangeRate":0.25,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"zipline_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-2.7975287e-7,"y":-4.831865e-7,"z":-6.400001},{"x":9.1850217e-7,"y":-3.0445836,"z":-9.896114},{"x":4.3808492e-7,"y":-5.866698,"z":-13.563462},{"x":-4.9161542e-8,"y":-8.490771,"z":-17.390146},{"x":-5.415404e-7,"y":-10.905275,"z":-21.361977},{"x":-0.0000010373557,"y":-13.125407,"z":-25.463531},{"x":-0.000001534971,"y":-15.096857,"z":-29.67855},{"x":-0.0000020328748,"y":-16.769758,"z":-33.99083},{"x":-0.00000252972,"y":-18.237179,"z":-38.384697},{"x":-0.0000030243434,"y":-19.547335,"z":-42.84555},{"x":-0.000002007882,"y":-20.480007,"z":-47.36},{"x":-0.0000020709672,"y":-20.480007,"z":-53.760002}],"EstimatedPathLength":59.18564,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.2726957e-7,"y":0.112762205,"z":-1.7668109},{"x":-2.8562278e-7,"y":0.22552435,"z":-4.2447333},{"x":-2.7975287e-7,"y":-5.285543e-7,"z":-6.400001},{"x":7.235647e-8,"y":-0.7975765,"z":-7.7741327},{"x":5.88689e-7,"y":-1.9334396,"z":-8.825611},{"x":9.1850217e-7,"y":-3.0445838,"z":-9.896114},{"x":8.829621e-7,"y":-4.0091023,"z":-11.099978},{"x":6.6090297e-7,"y":-4.948902,"z":-12.322868},{"x":4.3808492e-7,"y":-5.866698,"z":-13.563462},{"x":2.763653e-7,"y":-6.763821,"z":-14.821846},{"x":1.138871e-7,"y":-7.638939,"z":-16.09793},{"x":-4.91616e-8,"y":-8.490771,"z":-17.390146},{"x":-2.1278032e-7,"y":-9.318328,"z":-18.698534},{"x":-3.769695e-7,"y":-10.1226,"z":-20.023048},{"x":-5.415403e-7,"y":-10.905275,"z":-21.361977},{"x":-7.0649094e-7,"y":-11.668928,"z":-22.715351},{"x":-8.718233e-7,"y":-12.410985,"z":-24.08314},{"x":-0.0000010373557,"y":-13.125407,"z":-25.463531},{"x":-0.0000012030836,"y":-13.812036,"z":-26.856531},{"x":-0.0000013690114,"y":-14.471032,"z":-28.262138},{"x":-0.0000015349709,"y":-15.096857,"z":-29.678549},{"x":-0.0000017009568,"y":-15.6842165,"z":-31.10575},{"x":-0.0000018669747,"y":-16.238403,"z":-32.543755},{"x":-0.000002032875,"y":-16.769758,"z":-33.99083},{"x":-0.0000021986507,"y":-17.279943,"z":-35.44693},{"x":-0.0000023643086,"y":-17.767298,"z":-36.91209},{"x":-0.00000252972,"y":-18.237179,"z":-38.384697},{"x":-0.0000027507253,"y":-18.699528,"z":-39.8647},{"x":-0.0000029714838,"y":-19.144402,"z":-41.35215},{"x":-0.0000030243434,"y":-19.547335,"z":-42.84555},{"x":-0.000002757472,"y":-19.92073,"z":-44.27656},{"x":-0.000002322702,"y":-20.252186,"z":-45.713528},{"x":-0.000002007882,"y":-20.480007,"z":-47.36},{"x":-0.0000019512804,"y":-20.549093,"z":-49.590706},{"x":-0.0000020146283,"y":-20.51455,"z":-52.030907},{"x":-0.000002070967,"y":-20.480003,"z":-53.760006}],"GeneratedEstimatedPathLength":59.259087,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":10,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"zipline_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-2.7975287e-7,"y":-4.831865e-7,"z":-6.400001},{"x":-0.08971373,"y":-4.539918,"z":-14.362608},{"x":-0.8198828,"y":-9.821624,"z":-23.992931},{"x":-2.3304808,"y":-14.880877,"z":-33.673416},{"x":-4.740659,"y":-19.626894,"z":-43.36834},{"x":-8.187323,"y":-23.972643,"z":-52.977356},{"x":-12.785022,"y":-27.793566,"z":-62.36753},{"x":-18.59504,"y":-30.971836,"z":-71.36427},{"x":-25.588451,"y":-33.391224,"z":-79.7575},{"x":-33.63022,"y":-35.0057,"z":-87.37157},{"x":-42.757427,"y":-35.840015,"z":-94.24911},{"x":-48,"y":-35.840015,"z":-97.920006}],"EstimatedPathLength":122.29889,"SourceLastYRot":54.999996,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0033226376,"y":0.16814499,"z":-1.6013854},{"x":0.0066452445,"y":0.3362899,"z":-3.9138818},{"x":-2.810897e-7,"y":-5.5083655e-7,"z":-6.400001},{"x":0.00046123622,"y":-1.1495426,"z":-8.876688},{"x":-0.009045387,"y":-2.8035202,"z":-11.5269985},{"x":-0.08971375,"y":-4.5399184,"z":-14.362609},{"x":-0.25675753,"y":-6.2537785,"z":-17.447323},{"x":-0.49496302,"y":-8.05006,"z":-20.71734},{"x":-0.8198828,"y":-9.821624,"z":-23.992931},{"x":-1.2322884,"y":-11.536121,"z":-27.215511},{"x":-1.7314076,"y":-13.225901,"z":-30.443659},{"x":-2.330481,"y":-14.8808775,"z":-33.673416},{"x":-3.0288496,"y":-16.50091,"z":-36.90717},{"x":-3.8271723,"y":-18.08614,"z":-40.14253},{"x":-4.7406588,"y":-19.626894,"z":-43.36834},{"x":-5.7701397,"y":-21.124565,"z":-46.585815},{"x":-6.9147854,"y":-22.577763,"z":-49.793743},{"x":-8.187323,"y":-23.972643,"z":-52.977356},{"x":-9.589727,"y":-25.308964,"z":-56.1382},{"x":-11.120025,"y":-26.58697,"z":-59.274723},{"x":-12.785021,"y":-27.793566,"z":-62.367527},{"x":-14.588063,"y":-28.9287,"z":-65.41794},{"x":-16.525806,"y":-29.992426,"z":-68.42464},{"x":-18.595041,"y":-30.971836,"z":-71.36427},{"x":-20.799692,"y":-31.864325,"z":-74.23558},{"x":-23.135828,"y":-32.672493,"z":-77.039825},{"x":-25.588451,"y":-33.391224,"z":-79.7575},{"x":-28.151184,"y":-34.017902,"z":-82.380516},{"x":-30.830399,"y":-34.555145,"z":-84.91696},{"x":-33.630215,"y":-35.0057,"z":-87.37157},{"x":-36.73609,"y":-35.372494,"z":-89.8374},{"x":-39.962574,"y":-35.652603,"z":-92.2214},{"x":-42.757427,"y":-35.840015,"z":-94.24911},{"x":-44.986874,"y":-35.901817,"z":-95.84623},{"x":-46.784687,"y":-35.87092,"z":-97.08705},{"x":-47.999996,"y":-35.84002,"z":-97.92}],"GeneratedEstimatedPathLength":122.39681,"GeneratedLastYRot":54.999996,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":1,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":2.24,"z":0},"CameraFollowDistance":6,"CameraFocusDistance":3.2,"CameraPitchHeight":0.96,"CameraChangeRate":0.25,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"forest_entrance_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.015082931,"y":-3.12552e-7,"z":-2.6218767},{"x":-0.12380798,"y":-6.1251643e-7,"z":-5.138161},{"x":-0.20913406,"y":-9.2271597e-7,"z":-7.740304},{"x":0.08,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.260457,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.00044216285,"y":-8.1498186e-8,"z":-0.6836567},{"x":-0.002560208,"y":-1.977244e-7,"z":-1.658633},{"x":-0.015082931,"y":-3.12552e-7,"z":-2.6218767},{"x":-0.045254797,"y":-4.130935e-7,"z":-3.46528},{"x":-0.08583134,"y":-5.122364e-7,"z":-4.296951},{"x":-0.12380798,"y":-6.1251643e-7,"z":-5.138161},{"x":-0.16785218,"y":-7.156105e-7,"z":-6.002977},{"x":-0.20929646,"y":-8.198417e-7,"z":-6.8773317},{"x":-0.20913406,"y":-9.2271597e-7,"z":-7.740304},{"x":-0.1297851,"y":-0.0000010339862,"z":-8.673707},{"x":-0.008829549,"y":-0.0000011438996,"z":-9.595726},{"x":0.07999997,"y":-0.0000012207032,"z":-10.240002}],"GeneratedEstimatedPathLength":10.261935,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":14,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_exit_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.013495331,"y":-0.016208997,"z":-2.5908947},{"x":0.22796433,"y":-0.11344156,"z":-5.121109},{"x":0.4949115,"y":-0.23930138,"z":-7.6913843},{"x":0.8283406,"y":-0.32000124,"z":-10.208006}],"EstimatedPathLength":10.261609,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.012941567,"y":-0.0012014599,"z":-0.6739609},{"x":-0.027382616,"y":-0.0042039203,"z":-1.635799},{"x":-0.013495331,"y":-0.016208997,"z":-2.5908947},{"x":0.047161695,"y":-0.04155784,"z":-3.4373107},{"x":0.13614705,"y":-0.0759093,"z":-4.276984},{"x":0.22796433,"y":-0.11344156,"z":-5.121109},{"x":0.3125965,"y":-0.15494691,"z":-5.9768877},{"x":0.40006053,"y":-0.19963303,"z":-6.8371162},{"x":0.4949115,"y":-0.23930138,"z":-7.6913843},{"x":0.61347926,"y":-0.2725354,"z":-8.627441},{"x":0.73943377,"y":-0.30075166,"z":-9.557536},{"x":0.8283406,"y":-0.32000124,"z":-10.208007}],"GeneratedEstimatedPathLength":10.262416,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":15,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_hill_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.049860872,"y":0.34993845,"z":-3.2718496},{"x":-0.16271706,"y":1.304214,"z":-6.414514},{"x":-0.3278528,"y":2.7218099,"z":-9.383132},{"x":-0.53108454,"y":3.5085342,"z":-12.571036},{"x":-0.7870781,"y":3.8330336,"z":-15.837468},{"x":-1.1952221,"y":3.6239479,"z":-19.09566},{"x":-1.7154187,"y":2.8683534,"z":-22.25651},{"x":-2.3002365,"y":1.4638574,"z":-25.176424},{"x":-3.0017464,"y":0.39953008,"z":-28.204197},{"x":-3.84,"y":-0.0000035095213,"z":-31.360003}],"EstimatedPathLength":32.902184,"SourceLastYRot":15.8898535,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.010593733,"y":0.06834193,"z":-0.853042},{"x":-0.026727563,"y":0.17556591,"z":-2.0696228},{"x":-0.04986088,"y":0.3499385,"z":-3.2718499},{"x":-0.080877006,"y":0.6061046,"z":-4.33542},{"x":-0.118892625,"y":0.92941934,"z":-5.3846364},{"x":-0.16271709,"y":1.3042142,"z":-6.4145145},{"x":-0.2124788,"y":1.7657918,"z":-7.4088244},{"x":-0.26804936,"y":2.2788491,"z":-8.383796},{"x":-0.32785282,"y":2.72181,"z":-9.383132},{"x":-0.39082065,"y":3.047902,"z":-10.426615},{"x":-0.4580214,"y":3.3038974,"z":-11.494463},{"x":-0.5310846,"y":3.5085344,"z":-12.571037},{"x":-0.6068723,"y":3.670702,"z":-13.654336},{"x":-0.68852246,"y":3.7815113,"z":-14.746359},{"x":-0.7870781,"y":3.8330336,"z":-15.837468},{"x":-0.9077057,"y":3.8231041,"z":-16.927748},{"x":-1.045239,"y":3.7538874,"z":-18.017113},{"x":-1.1952223,"y":3.6239479,"z":-19.09566},{"x":-1.3579277,"y":3.4365983,"z":-20.165411},{"x":-1.5330832,"y":3.1885257,"z":-21.224346},{"x":-1.7154189,"y":2.868353,"z":-22.256512},{"x":-1.9012494,"y":2.4356558,"z":-23.243668},{"x":-2.0942602,"y":1.9308579,"z":-24.204054},{"x":-2.300237,"y":1.4638566,"z":-25.176426},{"x":-2.520365,"y":1.0592616,"z":-26.17295},{"x":-2.753459,"y":0.6924623,"z":-27.181463},{"x":-3.0017467,"y":0.3995298,"z":-28.204199},{"x":-3.302082,"y":0.20231041,"z":-29.363533},{"x":-3.617611,"y":0.07895723,"z":-30.53709},{"x":-3.8400004,"y":-0.0000034868717,"z":-31.360004}],"GeneratedEstimatedPathLength":32.929432,"GeneratedLastYRot":15.8898535,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_jump_over_a":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":6,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_jump_over_b":{"DeathType":2,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":4.2688688e-7,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":4.2688688e-7,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":2,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_junction_b":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_river_a":{"DeathType":13,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-9.155273e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-9.155273e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":6,"DeathType":13,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_slide_under_a":{"DeathType":9,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":4.2688688e-7,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":4.2688688e-7,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":9,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.14732192,"y":-0.10806658,"z":-5.191009},{"x":-0.64,"y":-0.32000124,"z":-10.240001}],"EstimatedPathLength":10.271621,"SourceLastYRot":4.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.025403606,"y":-0.024170296,"z":-1.3510772},{"x":-0.06717632,"y":-0.060347993,"z":-3.2789333},{"x":-0.14732192,"y":-0.10806658,"z":-5.191009},{"x":-0.30421335,"y":-0.17886698,"z":-7.071526},{"x":-0.49947768,"y":-0.26120827,"z":-8.936263},{"x":-0.6399999,"y":-0.32000124,"z":-10.240001}],"GeneratedEstimatedPathLength":10.272253,"GeneratedLastYRot":4.999999,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.17142333,"y":-0.75691676,"z":-5.191009},{"x":0,"y":-1.2800013,"z":-10.240001}],"EstimatedPathLength":10.327612,"SourceLastYRot":4.2688688e-7,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.057141114,"y":-0.20489815,"z":-1.3510772},{"x":-0.13332927,"y":-0.49389815,"z":-3.2789333},{"x":-0.17142333,"y":-0.75691676,"z":-5.191009},{"x":-0.13332926,"y":-0.9679727,"z":-7.071526},{"x":-0.057141103,"y":-1.1530473,"z":-8.936263},{"x":-1.4901161e-8,"y":-1.2800012,"z":-10.240001}],"GeneratedEstimatedPathLength":10.328366,"GeneratedLastYRot":4.2688688e-7,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_stumble_a":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.12,"y":0.23999973,"z":-2.5600002}],"EstimatedPathLength":2.5740242,"SourceLastYRot":4.999997,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.12,"y":0.23999973,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5740242,"GeneratedLastYRot":4.999997,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":5,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_stumble_b":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.12,"y":0.23999973,"z":-2.5600002}],"EstimatedPathLength":2.5740242,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.12,"y":0.23999973,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5740242,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":5,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_turn_left_a":{"DeathType":9,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0.12874725,"y":0.51999897,"z":-8.779377},{"x":8.4618435,"y":-0.0000012021578,"z":-10.084432}],"EstimatedPathLength":17.246391,"SourceLastYRot":280,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0.12874725,"y":0.51999897,"z":-8.779377},{"x":8.4618435,"y":-0.0000012021578,"z":-10.084432}],"GeneratedEstimatedPathLength":17.246391,"GeneratedLastYRot":280,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":9,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_turn_right_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-0.14897,"y":0.51332265,"z":-8.653961},{"x":-8.46184,"y":-0.0000012021578,"z":-10.084432}],"EstimatedPathLength":17.121105,"SourceLastYRot":80,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-0.14897,"y":0.51332265,"z":-8.653961},{"x":-8.46184,"y":-0.0000012021578,"z":-10.084432}],"GeneratedEstimatedPathLength":17.121105,"GeneratedLastYRot":80,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"mine_curve_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.4039378,"y":-0.06550694,"z":-2.853208},{"x":-1.4866382,"y":-0.29973924,"z":-5.3089437},{"x":-3.157085,"y":-0.6579641,"z":-7.3947473},{"x":-5.327983,"y":-1.0430484,"z":-8.98481},{"x":-7.8147044,"y":-1.2440195,"z":-9.954295},{"x":-10.24,"y":-1.2800013,"z":-10.240001}],"EstimatedPathLength":16.10984,"SourceLastYRot":90,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.013792226,"y":-0.0021150534,"z":-0.10818955},{"x":-0.028402576,"y":-0.0041542496,"z":-0.240618},{"x":-0.04407534,"y":-0.006209339,"z":-0.3943959},{"x":-0.061054803,"y":-0.008372071,"z":-0.56663364},{"x":-0.07958526,"y":-0.010734194,"z":-0.75444186},{"x":-0.099911,"y":-0.013387461,"z":-0.954931},{"x":-0.1222763,"y":-0.01642362,"z":-1.1652116},{"x":-0.14692545,"y":-0.019934418,"z":-1.3823941},{"x":-0.17410275,"y":-0.024011606,"z":-1.6035888},{"x":-0.20405251,"y":-0.028746936,"z":-1.8259069},{"x":-0.23701896,"y":-0.034232162,"z":-2.0464582},{"x":-0.27324647,"y":-0.040559027,"z":-2.2623537},{"x":-0.31297922,"y":-0.04781927,"z":-2.4707031},{"x":-0.35646158,"y":-0.056104667,"z":-2.6686182},{"x":-0.40393782,"y":-0.06550695,"z":-2.853208},{"x":-0.45518956,"y":-0.07596598,"z":-3.0292325},{"x":-0.5097816,"y":-0.08733395,"z":-3.2033925},{"x":-0.56763315,"y":-0.0995711,"z":-3.3757124},{"x":-0.6286632,"y":-0.11263767,"z":-3.546217},{"x":-0.69279087,"y":-0.12649389,"z":-3.71493},{"x":-0.75993526,"y":-0.14109999,"z":-3.881877},{"x":-0.8300154,"y":-0.15641624,"z":-4.047082},{"x":-0.90295064,"y":-0.17240286,"z":-4.2105694},{"x":-0.97865975,"y":-0.18902007,"z":-4.372363},{"x":-1.057062,"y":-0.2062281,"z":-4.532489},{"x":-1.1380765,"y":-0.22398725,"z":-4.6909704},{"x":-1.2216222,"y":-0.24225768,"z":-4.8478317},{"x":-1.3076184,"y":-0.26099968,"z":-5.003098},{"x":-1.395984,"y":-0.28017345,"z":-5.156794},{"x":-1.4866383,"y":-0.29973927,"z":-5.3089437},{"x":-1.579897,"y":-0.31996483,"z":-5.4597673},{"x":-1.6760783,"y":-0.34108683,"z":-5.609394},{"x":-1.7751046,"y":-0.36301896,"z":-5.757712},{"x":-1.8768983,"y":-0.38567483,"z":-5.9046097},{"x":-1.9813819,"y":-0.40896812,"z":-6.049975},{"x":-2.0884776,"y":-0.43281248,"z":-6.193696},{"x":-2.198108,"y":-0.45712158,"z":-6.335661},{"x":-2.3101952,"y":-0.48180908,"z":-6.4757586},{"x":-2.424662,"y":-0.5067887,"z":-6.613876},{"x":-2.5414305,"y":-0.53197396,"z":-6.7499022},{"x":-2.6604235,"y":-0.5572786,"z":-6.883725},{"x":-2.781563,"y":-0.58261627,"z":-7.015233},{"x":-2.9047716,"y":-0.6079006,"z":-7.144314},{"x":-3.0299716,"y":-0.6330454,"z":-7.270856},{"x":-3.157085,"y":-0.6579641,"z":-7.3947473},{"x":-3.2866251,"y":-0.6832384,"z":-7.5164337},{"x":-3.4190454,"y":-0.70938206,"z":-7.63636},{"x":-3.5541828,"y":-0.73620784,"z":-7.754417},{"x":-3.6918721,"y":-0.76352787,"z":-7.8704915},{"x":-3.8319502,"y":-0.791155,"z":-7.984474},{"x":-3.974252,"y":-0.81890136,"z":-8.096253},{"x":-4.1186147,"y":-0.8465797,"z":-8.205719},{"x":-4.2648726,"y":-0.87400216,"z":-8.312758},{"x":-4.412863,"y":-0.9009816,"z":-8.417262},{"x":-4.5624204,"y":-0.92733014,"z":-8.519118},{"x":-4.7133822,"y":-0.95286053,"z":-8.618217},{"x":-4.865583,"y":-0.977385,"z":-8.714446},{"x":-5.01886,"y":-1.0007162,"z":-8.807695},{"x":-5.173047,"y":-1.0226665,"z":-8.897854},{"x":-5.3279834,"y":-1.0430484,"z":-8.98481},{"x":-5.484721,"y":-1.0621347,"z":-9.06888},{"x":-5.6442046,"y":-1.0803349,"z":-9.150417},{"x":-5.806097,"y":-1.0976657,"z":-9.229364},{"x":-5.9700646,"y":-1.1141442,"z":-9.305666},{"x":-6.1357718,"y":-1.1297876,"z":-9.379266},{"x":-6.302881,"y":-1.1446126,"z":-9.450107},{"x":-6.47106,"y":-1.1586362,"z":-9.518134},{"x":-6.6399703,"y":-1.1718756,"z":-9.583291},{"x":-6.8092794,"y":-1.1843477,"z":-9.645521},{"x":-6.9786506,"y":-1.1960696,"z":-9.704768},{"x":-7.147749,"y":-1.2070582,"z":-9.760977},{"x":-7.3162384,"y":-1.2173305,"z":-9.814089},{"x":-7.4837856,"y":-1.2269034,"z":-9.864051},{"x":-7.650052,"y":-1.2357941,"z":-9.910805},{"x":-7.814705,"y":-1.2440195,"z":-9.954295},{"x":-7.983205,"y":-1.2512838,"z":-9.99379},{"x":-8.159838,"y":-1.2573559,"z":-10.02883},{"x":-8.3425,"y":-1.2623509,"z":-10.05977},{"x":-8.529093,"y":-1.2663832,"z":-10.086963},{"x":-8.717512,"y":-1.2695675,"z":-10.110763},{"x":-8.905661,"y":-1.2720186,"z":-10.131523},{"x":-9.091433,"y":-1.273851,"z":-10.149599},{"x":-9.272731,"y":-1.2751795,"z":-10.165343},{"x":-9.447452,"y":-1.2761188,"z":-10.179111},{"x":-9.613495,"y":-1.2767833,"z":-10.191254},{"x":-9.768759,"y":-1.2772881,"z":-10.202127},{"x":-9.911143,"y":-1.2777475,"z":-10.212085},{"x":-10.038546,"y":-1.2782764,"z":-10.22148},{"x":-10.148865,"y":-1.2789894,"z":-10.230667},{"x":-10.240001,"y":-1.2800012,"z":-10.24}],"GeneratedEstimatedPathLength":16.14699,"GeneratedLastYRot":90,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_curve_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.35956573,"y":-0.06550692,"z":-2.6739085},{"x":1.4924482,"y":-0.29973924,"z":-5.32092},{"x":3.1985364,"y":-0.6579641,"z":-7.4292774},{"x":5.13277,"y":-0.9714654,"z":-8.869418},{"x":7.610147,"y":-1.1722332,"z":-9.898325},{"x":10.24,"y":-1.2800013,"z":-10.240001}],"EstimatedPathLength":16.099237,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.01192641,"y":-0.0021150522,"z":-0.10067398},{"x":0.023979776,"y":-0.004154247,"z":-0.22283487},{"x":0.036527876,"y":-0.0062093353,"z":-0.36408195},{"x":0.04993849,"y":-0.008372065,"z":-0.5220145},{"x":0.06457939,"y":-0.0107341865,"z":-0.69423175},{"x":0.08081837,"y":-0.013387452,"z":-0.8783331},{"x":0.09902319,"y":-0.016423607,"z":-1.0719178},{"x":0.11956164,"y":-0.019934405,"z":-1.272585},{"x":0.1428015,"y":-0.024011591,"z":-1.4779341},{"x":0.16911054,"y":-0.028746922,"z":-1.6855644},{"x":0.19885653,"y":-0.03423214,"z":-1.893075},{"x":0.2324073,"y":-0.04055901,"z":-2.0980659},{"x":0.27013054,"y":-0.047819253,"z":-2.298135},{"x":0.31239414,"y":-0.05610465,"z":-2.4908829},{"x":0.35956576,"y":-0.06550693,"z":-2.6739085},{"x":0.41144755,"y":-0.075965956,"z":-2.8522742},{"x":0.46747783,"y":-0.08733393,"z":-3.0323398},{"x":0.5274787,"y":-0.09957108,"z":-3.2136507},{"x":0.59127223,"y":-0.11263765,"z":-3.3957517},{"x":0.6586807,"y":-0.12649387,"z":-3.5781882},{"x":0.72952604,"y":-0.14109997,"z":-3.7605052},{"x":0.80363053,"y":-0.15641621,"z":-3.9422476},{"x":0.88081634,"y":-0.17240284,"z":-4.122961},{"x":0.9609053,"y":-0.18902005,"z":-4.30219},{"x":1.0437198,"y":-0.20622809,"z":-4.47948},{"x":1.1290818,"y":-0.22398722,"z":-4.654375},{"x":1.2168136,"y":-0.24225765,"z":-4.826422},{"x":1.3067372,"y":-0.26099965,"z":-4.9951653},{"x":1.3986747,"y":-0.28017342,"z":-5.1601496},{"x":1.4924483,"y":-0.29973927,"z":-5.32092},{"x":1.5890701,"y":-0.3201133,"z":-5.478504},{"x":1.6894664,"y":-0.3416383,"z":-5.634155},{"x":1.7933304,"y":-0.3641643,"z":-5.787757},{"x":1.9003555,"y":-0.3875413,"z":-5.9391956},{"x":2.0102348,"y":-0.41161934,"z":-6.088355},{"x":2.1226618,"y":-0.43624848,"z":-6.235121},{"x":2.2373295,"y":-0.46127868,"z":-6.3793774},{"x":2.3539314,"y":-0.4865601,"z":-6.521009},{"x":2.4721608,"y":-0.5119426,"z":-6.6599016},{"x":2.5917106,"y":-0.5372764,"z":-6.7959394},{"x":2.7122746,"y":-0.5624113,"z":-6.9290075},{"x":2.8335462,"y":-0.58719754,"z":-7.0589905},{"x":2.9552178,"y":-0.6114851,"z":-7.1857734},{"x":3.0769835,"y":-0.6351239,"z":-7.309241},{"x":3.1985364,"y":-0.6579641,"z":-7.4292774},{"x":3.3197343,"y":-0.68039674,"z":-7.545543},{"x":3.440826,"y":-0.7028722,"z":-7.6579247},{"x":3.5620918,"y":-0.7253305,"z":-7.7666516},{"x":3.6838112,"y":-0.7477107,"z":-7.871951},{"x":3.806265,"y":-0.7699528,"z":-7.974053},{"x":3.9297326,"y":-0.7919959,"z":-8.073185},{"x":4.0544944,"y":-0.81377995,"z":-8.169576},{"x":4.18083,"y":-0.8352442,"z":-8.263453},{"x":4.30902,"y":-0.8563284,"z":-8.355045},{"x":4.439343,"y":-0.87697196,"z":-8.444582},{"x":4.572081,"y":-0.8971146,"z":-8.532291},{"x":4.7075124,"y":-0.9166956,"z":-8.618401},{"x":4.845918,"y":-0.93565476,"z":-8.70314},{"x":4.9875774,"y":-0.95393145,"z":-8.7867365},{"x":5.1327705,"y":-0.97146547,"z":-8.869418},{"x":5.281841,"y":-0.98831624,"z":-8.951378},{"x":5.4347153,"y":-1.004596,"z":-9.032493},{"x":5.5910444,"y":-1.0203218,"z":-9.1125145},{"x":5.750483,"y":-1.0355119,"z":-9.191199},{"x":5.912683,"y":-1.0501832,"z":-9.268302},{"x":6.077296,"y":-1.0643533,"z":-9.343576},{"x":6.2439766,"y":-1.0780401,"z":-9.416779},{"x":6.4123755,"y":-1.0912609,"z":-9.487662},{"x":6.5821476,"y":-1.1040334,"z":-9.555983},{"x":6.752944,"y":-1.1163749,"z":-9.621492},{"x":6.924419,"y":-1.128303,"z":-9.683949},{"x":7.0962234,"y":-1.1398354,"z":-9.743106},{"x":7.268012,"y":-1.1509895,"z":-9.7987175},{"x":7.439435,"y":-1.161783,"z":-9.850538},{"x":7.6101475,"y":-1.1722332,"z":-9.898325},{"x":7.7864976,"y":-1.1823417,"z":-9.941767},{"x":7.973419,"y":-1.1920894,"z":-9.9809265},{"x":8.168437,"y":-1.2014631,"z":-10.016109},{"x":8.36908,"y":-1.2104498,"z":-10.047625},{"x":8.572872,"y":-1.2190362,"z":-10.075778},{"x":8.777344,"y":-1.2272093,"z":-10.100877},{"x":8.980019,"y":-1.2349559,"z":-10.123228},{"x":9.178425,"y":-1.2422631,"z":-10.14314},{"x":9.37009,"y":-1.2491174,"z":-10.160919},{"x":9.55254,"y":-1.2555059,"z":-10.176872},{"x":9.7233,"y":-1.2614154,"z":-10.191306},{"x":9.8799,"y":-1.2668328,"z":-10.20453},{"x":10.019865,"y":-1.2717451,"z":-10.216848},{"x":10.140723,"y":-1.2761389,"z":-10.228571},{"x":10.24,"y":-1.2800013,"z":-10.240003}],"GeneratedEstimatedPathLength":16.135641,"GeneratedLastYRot":270,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_curve_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.34469134,"y":-3.3673822e-7,"z":-2.8247654},{"x":-1.2800009,"y":-6.107062e-7,"z":-5.122976}],"EstimatedPathLength":5.326963,"SourceLastYRot":29.999994,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.011745621,"y":-1.28014905e-8,"z":-0.107387},{"x":-0.024148798,"y":-2.8520107e-8,"z":-0.23924431},{"x":-0.037428133,"y":-4.6800697e-8,"z":-0.39259303},{"x":-0.05180222,"y":-6.7288134e-8,"z":-0.5644541},{"x":-0.06748967,"y":-8.962731e-8,"z":-0.7518487},{"x":-0.084709086,"y":-1.13463095e-7,"z":-0.95179784},{"x":-0.10367906,"y":-1.3844037e-7,"z":-1.1613224},{"x":-0.1246182,"y":-1.6420402e-7,"z":-1.3774437},{"x":-0.1477451,"y":-1.9039895e-7,"z":-1.5971825},{"x":-0.17327838,"y":-2.1667e-7,"z":-1.8175602},{"x":-0.20143661,"y":-2.4266208e-7,"z":-2.0355973},{"x":-0.23243845,"y":-2.6802007e-7,"z":-2.2483158},{"x":-0.26650244,"y":-2.9238885e-7,"z":-2.4527357},{"x":-0.3038472,"y":-3.1541327e-7,"z":-2.6458788},{"x":-0.34469134,"y":-3.3673822e-7,"z":-2.8247654},{"x":-0.39183545,"y":-3.5739367e-7,"z":-2.998036},{"x":-0.44703007,"y":-3.7852107e-7,"z":-3.1752653},{"x":-0.5089187,"y":-3.9993262e-7,"z":-3.3548784},{"x":-0.5761452,"y":-4.214407e-7,"z":-3.5353014},{"x":-0.6473528,"y":-4.428575e-7,"z":-3.7149587},{"x":-0.7211856,"y":-4.6399535e-7,"z":-3.8922758},{"x":-0.7962869,"y":-4.846665e-7,"z":-4.0656776},{"x":-0.87130046,"y":-5.0468316e-7,"z":-4.23359},{"x":-0.9448699,"y":-5.238577e-7,"z":-4.394438},{"x":-1.0156386,"y":-5.420023e-7,"z":-4.546646},{"x":-1.0822506,"y":-5.589293e-7,"z":-4.6886396},{"x":-1.143349,"y":-5.7445084e-7,"z":-4.818845},{"x":-1.197578,"y":-5.883794e-7,"z":-4.935685},{"x":-1.2435806,"y":-6.00527e-7,"z":-5.0375876},{"x":-1.2800009,"y":-6.1070614e-7,"z":-5.1229763}],"GeneratedEstimatedPathLength":5.332934,"GeneratedLastYRot":29.999994,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_curve_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.40394,"y":-3.4012885e-7,"z":-2.853208},{"x":1.2800001,"y":-6.107062e-7,"z":-5.122976}],"EstimatedPathLength":5.3146267,"SourceLastYRot":330,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.014220901,"y":-1.2943143e-8,"z":-0.10857526},{"x":0.029994672,"y":-2.8854648e-8,"z":-0.24205065},{"x":0.047381923,"y":-4.7370325e-8,"z":-0.39737138},{"x":0.06644325,"y":-6.812599e-8,"z":-0.5714826},{"x":0.08723926,"y":-9.075752e-8,"z":-0.76132953},{"x":0.109830566,"y":-1.1490072e-7,"z":-0.9638575},{"x":0.13427776,"y":-1.4019143e-7,"z":-1.1760116},{"x":0.16064145,"y":-1.6626552e-7,"z":-1.3947368},{"x":0.18898223,"y":-1.9275882e-7,"z":-1.6169786},{"x":0.21936074,"y":-2.1930715e-7,"z":-1.8396822},{"x":0.25183755,"y":-2.4554637e-7,"z":-2.0597925},{"x":0.2864733,"y":-2.7111233e-7,"z":-2.2742558},{"x":0.32332855,"y":-2.956408e-7,"z":-2.4800153},{"x":0.3624639,"y":-3.1876772e-7,"z":-2.6740181},{"x":0.40394,"y":-3.4012885e-7,"z":-2.853208},{"x":0.4504521,"y":-3.6074812e-7,"z":-3.026175},{"x":0.503856,"y":-3.8177305e-7,"z":-3.202545},{"x":0.56295335,"y":-4.0302487e-7,"z":-3.3808181},{"x":0.6265458,"y":-4.2432498e-7,"z":-3.5594966},{"x":0.69343483,"y":-4.4549466e-7,"z":-3.7370806},{"x":0.7624223,"y":-4.6635523e-7,"z":-3.912072},{"x":0.83230966,"y":-4.8672797e-7,"z":-4.0829706},{"x":0.9018986,"y":-5.064343e-7,"z":-4.248279},{"x":0.96999073,"y":-5.252953e-7,"z":-4.4064975},{"x":1.0353875,"y":-5.431325e-7,"z":-4.5561266},{"x":1.0968908,"y":-5.5976716e-7,"z":-4.695668},{"x":1.1533021,"y":-5.7502047e-7,"z":-4.8236227},{"x":1.203423,"y":-5.8871393e-7,"z":-4.938491},{"x":1.2460551,"y":-6.006687e-7,"z":-5.0387754},{"x":1.2800002,"y":-6.1070614e-7,"z":-5.1229753}],"GeneratedEstimatedPathLength":5.3190746,"GeneratedLastYRot":330,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_duck_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0.0000016485794,"y":-2.7528853e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0.0000016485794,"y":-2.7528853e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":3,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_duck_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"EstimatedPathLength":5.1299906,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1299906,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":3,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_entrance_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":12,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_exit_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":13,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"mine_junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":330,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":330,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13885999,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.56,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":29.999994,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13885999,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.56,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":29.999994,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":5,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_junction_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":330,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":330,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":5,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"mine_junction_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13886,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.5599997,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":29.999994,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13886,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.5599997,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":29.999994,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":5,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"mine_ledge_left_a":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-1.5184492e-7,"z":-1.273768},{"x":-0.08917214,"y":3.0138636e-8,"z":-2.5578916}],"EstimatedPathLength":2.5609841,"SourceLastYRot":3.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.003302672,"y":-5.1731195e-8,"z":-0.3298526},{"x":0.006605343,"y":-1.2033408e-7,"z":-0.80123496},{"x":0,"y":-1.5184492e-7,"z":-1.273768},{"x":-0.02642138,"y":-1.0917164e-7,"z":-1.7486023},{"x":-0.06275077,"y":-2.9406294e-8,"z":-2.2245872},{"x":-0.08917214,"y":3.0138608e-8,"z":-2.5578918}],"GeneratedEstimatedPathLength":2.5611305,"GeneratedLastYRot":3.999999,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_left_b":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-1.5488715e-7,"z":-1.299288},{"x":-0.08917214,"y":3.0138636e-8,"z":-2.5578916}],"EstimatedPathLength":2.5610466,"SourceLastYRot":3.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.003302672,"y":-5.274527e-8,"z":-0.3383593},{"x":0.006605343,"y":-1.2270026e-7,"z":-0.8210839},{"x":0,"y":-1.5488715e-7,"z":-1.299288},{"x":-0.02642138,"y":-1.11537815e-7,"z":-1.7684512},{"x":-0.06275077,"y":-3.0420367e-8,"z":-2.233094},{"x":-0.08917214,"y":3.0138636e-8,"z":-2.5578918}],"GeneratedEstimatedPathLength":2.5611992,"GeneratedLastYRot":3.999999,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_left_end_a":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":-9.155273e-7,"y":3.6379787e-14,"z":3.051758e-7},{"x":8.093461e-7,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":-9.155273e-7,"y":3.6379787e-14,"z":3.051758e-7},{"x":8.093461e-7,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_left_start_a":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0,"y":-1.5245288e-7,"z":-1.2788676},{"x":0.089175306,"y":3.0138693e-8,"z":-2.557891}],"EstimatedPathLength":2.560996,"SourceLastYRot":356,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-0.0033027893,"y":-5.1933856e-8,"z":-0.33155233},{"x":-0.0066055777,"y":-1.2080696e-7,"z":-0.80520135},{"x":0,"y":-1.5245288e-7,"z":-1.2788676},{"x":0.026422318,"y":-1.09644475e-7,"z":-1.7525685},{"x":0.06275301,"y":-2.9608884e-8,"z":-2.2262866},{"x":0.08917531,"y":3.013872e-8,"z":-2.557891}],"GeneratedEstimatedPathLength":2.5611436,"GeneratedLastYRot":356,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0,"y":-1.5685391e-7,"z":-1.3157861},{"x":0.089175306,"y":3.0138693e-8,"z":-2.557891}],"EstimatedPathLength":2.561088,"SourceLastYRot":356,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-0.0033027893,"y":-5.340086e-8,"z":-0.34385848},{"x":-0.0066055777,"y":-1.2422997e-7,"z":-0.83391577},{"x":0,"y":-1.5685391e-7,"z":-1.3157861},{"x":0.026422318,"y":-1.130675e-7,"z":-1.7812829},{"x":0.06275301,"y":-3.1075913e-8,"z":-2.2385926},{"x":0.08917531,"y":3.013868e-8,"z":-2.557891}],"GeneratedEstimatedPathLength":2.561245,"GeneratedLastYRot":356,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_end_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_start_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"EstimatedPathLength":5.1299906,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1299906,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"EstimatedPathLength":5.1299906,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1299906,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"narrow_end_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":17,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"narrow_jump_or_slide_a":{"DeathType":2,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":2,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"narrow_jump_over_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_jump_over_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"narrow_junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":2.7890367e-14,"z":-7.121439e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":5.1200004,"y":-6.1035166e-7,"z":-5.120002}],"EstimatedPathLength":10.240001,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":2.7890367e-14,"z":-7.121439e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":5.1200004,"y":-6.1035166e-7,"z":-5.120002}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":4.4869205e-14,"z":7.121446e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":-5.1200004,"y":-6.1035144e-7,"z":-5.12}],"EstimatedPathLength":10.240001,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":4.4869205e-14,"z":7.121446e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":-5.1200004,"y":-6.1035144e-7,"z":-5.12}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_start_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":16,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.63999945,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.63999945,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"EstimatedPathLength":5.209223,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.209223,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_e":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"EstimatedPathLength":5.209223,"SourceLastYRot":4.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.209223,"GeneratedLastYRot":4.999999,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_stumble_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":5,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_turn_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":270,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_turn_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":-5.12,"y":-6.1035155e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":90,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":-5.12,"y":-6.1035155e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":90,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"waterslide_curve_45_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0023899924,"y":-0.6398104,"z":-5.253956},{"x":-1.081701,"y":-1.079964,"z":-10.387234},{"x":-3.9350924,"y":-1.9062048,"z":-14.734301},{"x":-7.637469,"y":-2.5600023,"z":-18.43848}],"EstimatedPathLength":21.09972,"SourceLastYRot":45,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0021436797,"y":-0.024489932,"z":-0.19795471},{"x":0.008097293,"y":-0.054808237,"z":-0.43837017},{"x":0.016905699,"y":-0.090208724,"z":-0.71646893},{"x":0.027613763,"y":-0.12994519,"z":-1.0274734},{"x":0.03926634,"y":-0.17327146,"z":-1.3666062},{"x":0.050908297,"y":-0.21944135,"z":-1.7290902},{"x":0.06158449,"y":-0.26770863,"z":-2.1101475},{"x":0.070339784,"y":-0.3173271,"z":-2.5050008},{"x":0.07621904,"y":-0.3675506,"z":-2.9088726},{"x":0.07826711,"y":-0.41763294,"z":-3.3169856},{"x":0.07552885,"y":-0.46682793,"z":-3.724562},{"x":0.067049176,"y":-0.5143894,"z":-4.1268253},{"x":0.051872846,"y":-0.559571,"z":-4.5189967},{"x":0.02904486,"y":-0.60162675,"z":-4.8962994},{"x":-0.0023899924,"y":-0.6398104,"z":-5.253956},{"x":-0.039393924,"y":-0.67415065,"z":-5.6013093},{"x":-0.07870538,"y":-0.7055209,"z":-5.950493},{"x":-0.12094399,"y":-0.73444176,"z":-6.3009143},{"x":-0.16672961,"y":-0.761434,"z":-6.6519833},{"x":-0.21668176,"y":-0.7870182,"z":-7.0031066},{"x":-0.27142033,"y":-0.811715,"z":-7.3536944},{"x":-0.3315648,"y":-0.8360451,"z":-7.7031536},{"x":-0.3977351,"y":-0.8605292,"z":-8.050894},{"x":-0.4705508,"y":-0.88568795,"z":-8.396323},{"x":-0.55063146,"y":-0.9120419,"z":-8.738849},{"x":-0.6385971,"y":-0.9401118,"z":-9.077881},{"x":-0.735067,"y":-0.97041833,"z":-9.412827},{"x":-0.84066135,"y":-1.0034822,"z":-9.743095},{"x":-0.95599943,"y":-1.0398239,"z":-10.068094},{"x":-1.081701,"y":-1.079964,"z":-10.387234},{"x":-1.2186526,"y":-1.1241937,"z":-10.701201},{"x":-1.3667777,"y":-1.1721251,"z":-11.011165},{"x":-1.5252545,"y":-1.2232617,"z":-11.317251},{"x":-1.6932614,"y":-1.2771075,"z":-11.61959},{"x":-1.8699747,"y":-1.3331654,"z":-11.918305},{"x":-2.0545728,"y":-1.3909395,"z":-12.213527},{"x":-2.2462335,"y":-1.4499328,"z":-12.505381},{"x":-2.4441347,"y":-1.5096494,"z":-12.793997},{"x":-2.6474535,"y":-1.5695922,"z":-13.0795},{"x":-2.8553677,"y":-1.6292653,"z":-13.362019},{"x":-3.067056,"y":-1.688172,"z":-13.641681},{"x":-3.2816944,"y":-1.7458156,"z":-13.918612},{"x":-3.4984615,"y":-1.8016999,"z":-14.19294},{"x":-3.7165349,"y":-1.8553284,"z":-14.464794},{"x":-3.9350932,"y":-1.9062049,"z":-14.734302},{"x":-4.164945,"y":-1.9561547,"z":-15.007597},{"x":-4.414753,"y":-2.0070496,"z":-15.288919},{"x":-4.680472,"y":-2.0584617,"z":-15.575549},{"x":-4.9580545,"y":-2.109963,"z":-15.864763},{"x":-5.243456,"y":-2.1611257,"z":-16.153841},{"x":-5.5326304,"y":-2.211522,"z":-16.440062},{"x":-5.821534,"y":-2.2607243,"z":-16.720705},{"x":-6.106118,"y":-2.3083043,"z":-16.993048},{"x":-6.3823385,"y":-2.3538342,"z":-17.25437},{"x":-6.6461496,"y":-2.396886,"z":-17.50195},{"x":-6.8935065,"y":-2.4370327,"z":-17.733067},{"x":-7.1203623,"y":-2.473845,"z":-17.945},{"x":-7.3226714,"y":-2.5068963,"z":-18.135027},{"x":-7.4963894,"y":-2.535758,"z":-18.300428},{"x":-7.6374683,"y":-2.5600026,"z":-18.438482}],"GeneratedEstimatedPathLength":21.14456,"GeneratedLastYRot":45,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_curve_45_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0023791504,"y":-0.63980687,"z":-5.2539573},{"x":1.0816895,"y":-1.0799574,"z":-10.387236},{"x":3.935082,"y":-1.9062021,"z":-14.734307},{"x":7.637468,"y":-2.5600038,"z":-18.43848}],"EstimatedPathLength":21.09973,"SourceLastYRot":315,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.002144109,"y":-0.024489798,"z":-0.19795477},{"x":-0.008098274,"y":-0.054807942,"z":-0.4383703},{"x":-0.016907338,"y":-0.09020825,"z":-0.7164691},{"x":-0.02761614,"y":-0.1299445,"z":-1.0274737},{"x":-0.039269526,"y":-0.17327055,"z":-1.3666067},{"x":-0.050912343,"y":-0.21944018,"z":-1.7290907},{"x":-0.06158942,"y":-0.2677072,"z":-2.1101482},{"x":-0.07034561,"y":-0.3173254,"z":-2.5050015},{"x":-0.07622574,"y":-0.36754867,"z":-2.9088736},{"x":-0.07827469,"y":-0.41763073,"z":-3.3169866},{"x":-0.075537264,"y":-0.46682543,"z":-3.7245631},{"x":-0.06705834,"y":-0.51438665,"z":-4.1268263},{"x":-0.0518827,"y":-0.55956805,"z":-4.518998},{"x":-0.029055253,"y":-0.60162354,"z":-4.8963013},{"x":0.0023791504,"y":-0.63980687,"z":-5.2539573},{"x":0.039382737,"y":-0.6741469,"z":-5.6013107},{"x":0.07869393,"y":-0.70551693,"z":-5.950495},{"x":0.12093234,"y":-0.73443747,"z":-6.3009157},{"x":0.1667178,"y":-0.7614294,"z":-6.6519847},{"x":0.21666986,"y":-0.7870133,"z":-7.003108},{"x":0.27140838,"y":-0.8117099,"z":-7.353696},{"x":0.33155283,"y":-0.83603966,"z":-7.703155},{"x":0.39772317,"y":-0.8605235,"z":-8.050896},{"x":0.47053888,"y":-0.885682,"z":-8.396324},{"x":0.55061966,"y":-0.9120357,"z":-8.738851},{"x":0.6385854,"y":-0.9401055,"z":-9.077883},{"x":0.73505545,"y":-0.97041184,"z":-9.412828},{"x":0.84064984,"y":-1.0034755,"z":-9.743097},{"x":0.95598793,"y":-1.0398172,"z":-10.068096},{"x":1.0816895,"y":-1.0799574,"z":-10.387236},{"x":1.218641,"y":-1.1241871,"z":-10.701203},{"x":1.3667662,"y":-1.1721185,"z":-11.011167},{"x":1.5252429,"y":-1.2232554,"z":-11.317254},{"x":1.6932497,"y":-1.2771014,"z":-11.619593},{"x":1.869963,"y":-1.3331596,"z":-11.918309},{"x":2.0545611,"y":-1.3909338,"z":-12.213531},{"x":2.2462218,"y":-1.4499274,"z":-12.505385},{"x":2.4441233,"y":-1.5096444,"z":-12.794003},{"x":2.6474419,"y":-1.5695877,"z":-13.079506},{"x":2.8553562,"y":-1.629261,"z":-13.362024},{"x":3.0670447,"y":-1.688168,"z":-13.641686},{"x":3.281683,"y":-1.745812,"z":-13.918618},{"x":3.4984503,"y":-1.8016968,"z":-14.192947},{"x":3.7165241,"y":-1.8553255,"z":-14.4648},{"x":3.9350827,"y":-1.9062022,"z":-14.734308},{"x":4.164935,"y":-1.9561522,"z":-15.007604},{"x":4.4147434,"y":-2.0070474,"z":-15.288926},{"x":4.680463,"y":-2.0584598,"z":-15.575556},{"x":4.958046,"y":-2.1099615,"z":-15.864769},{"x":5.2434483,"y":-2.1611245,"z":-16.153847},{"x":5.532624,"y":-2.2115211,"z":-16.440065},{"x":5.821528,"y":-2.2607238,"z":-16.720709},{"x":6.1061134,"y":-2.3083038,"z":-16.99305},{"x":6.3823347,"y":-2.3538342,"z":-17.254372},{"x":6.646147,"y":-2.3968863,"z":-17.50195},{"x":6.893504,"y":-2.437033,"z":-17.733067},{"x":7.1203604,"y":-2.473846,"z":-17.945},{"x":7.3226705,"y":-2.5068972,"z":-18.135027},{"x":7.4963894,"y":-2.535759,"z":-18.300428},{"x":7.637469,"y":-2.5600035,"z":-18.43848}],"GeneratedEstimatedPathLength":21.144575,"GeneratedLastYRot":315,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_curve_90_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.039224,"y":-1.0764616,"z":-8.314708},{"x":-4.187643,"y":-1.8079796,"z":-16.071527},{"x":-10.068355,"y":-2.8118565,"z":-21.928253},{"x":-17.768435,"y":-4.1072164,"z":-25.03823},{"x":-26.075945,"y":-5.1200013,"z":-26.07595}],"EstimatedPathLength":42.049656,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.034730993,"y":-0.04122229,"z":-0.3140365},{"x":-0.07027642,"y":-0.092282735,"z":-0.6965743},{"x":-0.107587345,"y":-0.15191786,"z":-1.1397264},{"x":-0.1476149,"y":-0.21886423,"z":-1.6356066},{"x":-0.19131012,"y":-0.29185832,"z":-2.1763277},{"x":-0.23962411,"y":-0.36963665,"z":-2.7540026},{"x":-0.293508,"y":-0.45093584,"z":-3.3607454},{"x":-0.35391283,"y":-0.5344924,"z":-3.9886694},{"x":-0.42178965,"y":-0.61904275,"z":-4.6298866},{"x":-0.4980896,"y":-0.7033235,"z":-5.2765117},{"x":-0.5837638,"y":-0.78607106,"z":-5.920657},{"x":-0.6797631,"y":-0.8660222,"z":-6.5544357},{"x":-0.78703904,"y":-0.94191337,"z":-7.169962},{"x":-0.9065423,"y":-1.0124809,"z":-7.759348},{"x":-1.039224,"y":-1.0764616,"z":-8.314708},{"x":-1.182207,"y":-1.1346807,"z":-8.85197},{"x":-1.3323486,"y":-1.1891719,"z":-9.391524},{"x":-1.4902028,"y":-1.2404838,"z":-9.9321785},{"x":-1.6563232,"y":-1.2891653,"z":-10.472738},{"x":-1.8312645,"y":-1.3357649,"z":-11.012013},{"x":-2.0155797,"y":-1.3808315,"z":-11.548808},{"x":-2.2098231,"y":-1.4249136,"z":-12.081931},{"x":-2.414548,"y":-1.4685602,"z":-12.610188},{"x":-2.6303089,"y":-1.5123198,"z":-13.132384},{"x":-2.8576598,"y":-1.5567412,"z":-13.647331},{"x":-3.0971537,"y":-1.602373,"z":-14.1538315},{"x":-3.3493457,"y":-1.6497641,"z":-14.650696},{"x":-3.614788,"y":-1.699463,"z":-15.136726},{"x":-3.8940363,"y":-1.7520186,"z":-15.610735},{"x":-4.187643,"y":-1.8079796,"z":-16.071527},{"x":-4.4965796,"y":-1.8663918,"z":-16.522846},{"x":-4.820905,"y":-1.9259462,"z":-16.96873},{"x":-5.1598086,"y":-1.9866602,"z":-17.408426},{"x":-5.5124793,"y":-2.0485508,"z":-17.841185},{"x":-5.878104,"y":-2.1116347,"z":-18.266249},{"x":-6.2558737,"y":-2.1759293,"z":-18.682869},{"x":-6.6449738,"y":-2.2414513,"z":-19.090292},{"x":-7.044595,"y":-2.3082178,"z":-19.487764},{"x":-7.453927,"y":-2.376246,"z":-19.874535},{"x":-7.872154,"y":-2.4455523,"z":-20.24985},{"x":-8.298468,"y":-2.516154,"z":-20.612957},{"x":-8.732056,"y":-2.5880685,"z":-20.963104},{"x":-9.172108,"y":-2.661312,"z":-21.299538},{"x":-9.617812,"y":-2.7359028,"z":-21.621506},{"x":-10.068356,"y":-2.8118567,"z":-21.928253},{"x":-10.527605,"y":-2.8903363,"z":-22.21964},{"x":-10.999249,"y":-2.9721522,"z":-22.496422},{"x":-11.482212,"y":-3.0567946,"z":-22.759197},{"x":-11.975416,"y":-3.1437535,"z":-23.008566},{"x":-12.477783,"y":-3.2325177,"z":-23.245125},{"x":-12.988235,"y":-3.3225775,"z":-23.469479},{"x":-13.505697,"y":-3.413422,"z":-23.682222},{"x":-14.029092,"y":-3.5045424,"z":-23.883959},{"x":-14.557339,"y":-3.5954268,"z":-24.075287},{"x":-15.089362,"y":-3.6855657,"z":-24.256804},{"x":-15.624086,"y":-3.7744486,"z":-24.42911},{"x":-16.16043,"y":-3.8615654,"z":-24.592808},{"x":-16.697325,"y":-3.9464061,"z":-24.748493},{"x":-17.233685,"y":-4.0284595,"z":-24.896767},{"x":-17.768435,"y":-4.1072164,"z":-25.03823},{"x":-18.321861,"y":-4.185041,"z":-25.169737},{"x":-18.909687,"y":-4.2642064,"z":-25.288355},{"x":-19.523983,"y":-4.344063,"z":-25.395002},{"x":-20.156828,"y":-4.4239616,"z":-25.490602},{"x":-20.800297,"y":-4.5032535,"z":-25.576073},{"x":-21.446465,"y":-4.5812893,"z":-25.652332},{"x":-22.08741,"y":-4.6574206,"z":-25.7203},{"x":-22.715206,"y":-4.7309976,"z":-25.7809},{"x":-23.321926,"y":-4.8013716,"z":-25.835047},{"x":-23.89965,"y":-4.867893,"z":-25.883663},{"x":-24.440453,"y":-4.929914,"z":-25.927666},{"x":-24.936407,"y":-4.986784,"z":-25.967978},{"x":-25.379591,"y":-5.0378547,"z":-26.005514},{"x":-25.762077,"y":-5.0824766,"z":-26.041199},{"x":-26.075947,"y":-5.1200013,"z":-26.07595}],"GeneratedEstimatedPathLength":42.195683,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_curve_90_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.86726636,"y":-1.039943,"z":-8.34879},{"x":4.067121,"y":-1.7248831,"z":-16.104267},{"x":10.039133,"y":-2.807496,"z":-21.906828},{"x":17.750814,"y":-4.1047482,"z":-25.034552},{"x":26.075947,"y":-5.1200023,"z":-26.075949}],"EstimatedPathLength":42.145836,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.027796952,"y":-0.039868973,"z":-0.31539246},{"x":0.05423839,"y":-0.08931973,"z":-0.69968486},{"x":0.0806268,"y":-0.14711228,"z":-1.1449285},{"x":0.108264744,"y":-0.21200676,"z":-1.6431751},{"x":0.13845468,"y":-0.28276312,"z":-2.1864758},{"x":0.1724991,"y":-0.35814142,"z":-2.766882},{"x":0.21170062,"y":-0.4369018,"z":-3.3764458},{"x":0.25736165,"y":-0.51780427,"z":-4.0072184},{"x":0.3107847,"y":-0.5996088,"z":-4.651251},{"x":0.3732723,"y":-0.68107545,"z":-5.300595},{"x":0.446127,"y":-0.76096433,"z":-5.9473014},{"x":0.5306511,"y":-0.83803546,"z":-6.5834227},{"x":0.6281475,"y":-0.911049,"z":-7.2010107},{"x":0.7399184,"y":-0.9787648,"z":-7.7921157},{"x":0.8672664,"y":-1.039943,"z":-8.34879},{"x":1.0071089,"y":-1.0950891,"z":-8.8871},{"x":1.1557556,"y":-1.1459812,"z":-9.4276085},{"x":1.3135972,"y":-1.1932884,"z":-9.969105},{"x":1.4810243,"y":-1.2376797,"z":-10.510381},{"x":1.658428,"y":-1.2798243,"z":-11.050229},{"x":1.8461983,"y":-1.3203909,"z":-11.58744},{"x":2.0447268,"y":-1.360049,"z":-12.120806},{"x":2.2544036,"y":-1.3994672,"z":-12.6491165},{"x":2.4756196,"y":-1.4393147,"z":-13.171165},{"x":2.708766,"y":-1.4802608,"z":-13.685744},{"x":2.9542325,"y":-1.5229743,"z":-14.191642},{"x":3.212411,"y":-1.5681242,"z":-14.687653},{"x":3.483691,"y":-1.6163795,"z":-15.172565},{"x":3.7684646,"y":-1.6684096,"z":-15.645174},{"x":4.067121,"y":-1.7248831,"z":-16.104267},{"x":4.381152,"y":-1.7850649,"z":-16.55336},{"x":4.7111745,"y":-1.847665,"z":-16.996338},{"x":5.0562706,"y":-1.9125204,"z":-17.432564},{"x":5.4155235,"y":-1.9794688,"z":-17.861393},{"x":5.7880144,"y":-2.0483472,"z":-18.282183},{"x":6.172827,"y":-2.1189933,"z":-18.694294},{"x":6.5690413,"y":-2.191244,"z":-19.097084},{"x":6.975741,"y":-2.2649364,"z":-19.48991},{"x":7.3920097,"y":-2.3399088,"z":-19.872133},{"x":7.816926,"y":-2.4159975,"z":-20.243109},{"x":8.249575,"y":-2.49304,"z":-20.602196},{"x":8.689037,"y":-2.5708737,"z":-20.948753},{"x":9.134396,"y":-2.6493363,"z":-21.282139},{"x":9.584736,"y":-2.7282648,"z":-21.601713},{"x":10.039134,"y":-2.8074963,"z":-21.906828},{"x":10.501458,"y":-2.8883321,"z":-22.19734},{"x":10.975519,"y":-2.9718876,"z":-22.47387},{"x":11.460315,"y":-3.0577214,"z":-22.736942},{"x":11.954847,"y":-3.1453927,"z":-22.987083},{"x":12.45811,"y":-3.2344587,"z":-23.22481},{"x":12.969105,"y":-3.3244789,"z":-23.45065},{"x":13.48683,"y":-3.4150114,"z":-23.665123},{"x":14.010287,"y":-3.5056155,"z":-23.868757},{"x":14.538471,"y":-3.5958486,"z":-24.062069},{"x":15.070382,"y":-3.68527,"z":-24.245588},{"x":15.6050205,"y":-3.773438,"z":-24.419832},{"x":16.141384,"y":-3.8599114,"z":-24.58533},{"x":16.678474,"y":-3.9442487,"z":-24.7426},{"x":17.215284,"y":-4.026008,"z":-24.892164},{"x":17.750814,"y":-4.1047482,"z":-25.034552},{"x":18.305277,"y":-4.182726,"z":-25.16672},{"x":18.89425,"y":-4.262058,"z":-25.285898},{"x":19.509783,"y":-4.342091,"z":-25.393019},{"x":20.143934,"y":-4.422175,"z":-25.489008},{"x":20.788755,"y":-4.501657,"z":-25.574797},{"x":21.436304,"y":-4.579886,"z":-25.651314},{"x":22.078636,"y":-4.65621,"z":-25.719486},{"x":22.707802,"y":-4.7299767,"z":-25.780243},{"x":23.315857,"y":-4.800535,"z":-25.834515},{"x":23.894857,"y":-4.867233,"z":-25.883228},{"x":24.43686,"y":-4.9294186,"z":-25.927315},{"x":24.933912,"y":-4.98644,"z":-25.967701},{"x":25.378075,"y":-5.037646,"z":-26.005316},{"x":25.761398,"y":-5.082384,"z":-26.041088},{"x":26.075943,"y":-5.1200027,"z":-26.075949}],"GeneratedEstimatedPathLength":42.295406,"GeneratedLastYRot":270,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_b":{"DeathType":9,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":9,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_duck_blocked_center":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_duck_blocked_left":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0004159069,"y":-0.30619767,"z":-2.5685883},{"x":-0.2232602,"y":-0.64000064,"z":-5.1135054}],"EstimatedPathLength":5.1631455,"SourceLastYRot":4.9999986,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.008130261,"y":-0.07836217,"z":-0.66680706},{"x":0.01621431,"y":-0.19074629,"z":-1.6190128},{"x":-0.0004159069,"y":-0.30619767,"z":-2.5685883},{"x":-0.06647466,"y":-0.42778358,"z":-3.5129037},{"x":-0.15724766,"y":-0.55243677,"z":-4.454589},{"x":-0.22326015,"y":-0.64000064,"z":-5.1135054}],"GeneratedEstimatedPathLength":5.1636124,"GeneratedLastYRot":4.9999986,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_blocked_right":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.11162654,"y":-0.38161045,"z":-2.5567527},{"x":0.44567108,"y":-0.64000064,"z":-5.094046}],"EstimatedPathLength":5.159683,"SourceLastYRot":350.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.020702511,"y":-0.10349976,"z":-0.66358256},{"x":0.053807974,"y":-0.24940068,"z":-1.6112487},{"x":0.11162654,"y":-0.38161045,"z":-2.5567527},{"x":0.21887136,"y":-0.48643798,"z":-3.4979324},{"x":0.3508293,"y":-0.5775744,"z":-4.4369497},{"x":0.4456711,"y":-0.6400007,"z":-5.0940456}],"GeneratedEstimatedPathLength":5.160279,"GeneratedLastYRot":350.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_center_blocked_sides":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":6,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_left_tilt_right":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_duck_right_tilt_left":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_end_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":-6.1035155e-7},{"x":-0.1393691,"y":-0.79539645,"z":-4.290733},{"x":-0.54644746,"y":-1.9032613,"z":-8.483154},{"x":-1.1987846,"y":-3.365799,"z":-12.533608},{"x":-2.067387,"y":-5.16327,"z":-16.40486},{"x":-3.118355,"y":-7.2759657,"z":-20.066158},{"x":-3.7006795,"y":-7.3068075,"z":-21.800455},{"x":-4.679308,"y":-7.1325974,"z":-24.023975}],"EstimatedPathLength":26.053791,"SourceLastYRot":25,"GeneratedPath":[{"x":0,"y":0,"z":-6.1035155e-7},{"x":-0.026217572,"y":-0.194641,"z":-1.1160539},{"x":-0.0679206,"y":-0.47765937,"z":-2.7088554},{"x":-0.13936912,"y":-0.7953965,"z":-4.290733},{"x":-0.24614793,"y":-1.128403,"z":-5.700747},{"x":-0.3826722,"y":-1.4961281,"z":-7.0998373},{"x":-0.5464475,"y":-1.9032614,"z":-8.483154},{"x":-0.7377161,"y":-2.352097,"z":-9.850459},{"x":-0.9562356,"y":-2.8403406,"z":-11.20199},{"x":-1.1987846,"y":-3.365799,"z":-12.533608},{"x":-1.4655448,"y":-3.928471,"z":-13.845076},{"x":-1.7563347,"y":-4.5283585,"z":-15.136633},{"x":-2.0673873,"y":-5.1632705,"z":-16.40486},{"x":-2.4215586,"y":-5.921258,"z":-17.712215},{"x":-2.7959926,"y":-6.7142706,"z":-18.996243},{"x":-3.118355,"y":-7.2759657,"z":-20.066158},{"x":-3.3324997,"y":-7.4480524,"z":-20.768879},{"x":-3.4945729,"y":-7.3888216,"z":-21.257488},{"x":-3.7006795,"y":-7.3068075,"z":-21.800455},{"x":-4.0337787,"y":-7.2574744,"z":-22.587742},{"x":-4.4109116,"y":-7.185357,"z":-23.429388},{"x":-4.679308,"y":-7.132596,"z":-24.023975}],"GeneratedEstimatedPathLength":26.09085,"GeneratedLastYRot":25,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":9,"DeathType":11,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":2.24,"z":0},"CameraFollowDistance":6,"CameraFocusDistance":3.2,"CameraPitchHeight":0.96,"CameraChangeRate":0.1,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":2}}},"waterslide_junction_a":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":0.04791809,"y":-0.43113866,"z":-3.0756624},{"x":0.34882933,"y":-0.60540485,"z":-4.584389},{"x":0.84734696,"y":-0.79161984,"z":-6.039201},{"x":1.4821026,"y":-0.9843688,"z":-7.439471},{"x":3.4438202,"y":-1.4793875,"z":-10.740855},{"x":5.7281003,"y":-1.920002,"z":-13.82886}],"EstimatedPathLength":15.492506,"SourceLastYRot":315,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":0.04791809,"y":-0.43113866,"z":-3.0756624},{"x":0.34882933,"y":-0.60540485,"z":-4.584389},{"x":0.84734696,"y":-0.79161984,"z":-6.039201},{"x":1.4821026,"y":-0.9843688,"z":-7.439471},{"x":3.4438202,"y":-1.4793875,"z":-10.740855},{"x":5.7281003,"y":-1.920002,"z":-13.82886}],"GeneratedEstimatedPathLength":15.492506,"GeneratedLastYRot":315,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":-0.048018187,"y":-0.4311383,"z":-3.075659},{"x":-0.34888306,"y":-0.6054052,"z":-4.584392},{"x":-0.847373,"y":-0.79162097,"z":-6.0392084},{"x":-1.4821118,"y":-0.9843706,"z":-7.439483},{"x":-3.4438174,"y":-1.4793895,"z":-10.740868},{"x":-5.7281003,"y":-1.920002,"z":-13.82886}],"EstimatedPathLength":15.492478,"SourceLastYRot":44.999992,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":-0.048018187,"y":-0.4311383,"z":-3.075659},{"x":-0.34888306,"y":-0.6054052,"z":-4.584392},{"x":-0.847373,"y":-0.79162097,"z":-6.0392084},{"x":-1.4821118,"y":-0.9843706,"z":-7.439483},{"x":-3.4438174,"y":-1.4793895,"z":-10.740868},{"x":-5.7281003,"y":-1.920002,"z":-13.82886}],"GeneratedEstimatedPathLength":15.492478,"GeneratedLastYRot":44.999992,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_start_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-0.08000062,"z":-5.1200004},{"x":1.5258789e-7,"y":-0.5556987,"z":-10.240001}],"EstimatedPathLength":10.262676,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.1733907e-7,"y":-0.006085438,"z":-1.3274076},{"x":-2.7190737e-7,"y":-0.021059833,"z":-3.223704},{"x":-3.35063e-7,"y":-0.08000062,"z":-5.1200004},{"x":-2.153933e-7,"y":-0.22687417,"z":-7.016297},{"x":-4.3109765e-9,"y":-0.41771415,"z":-8.912594},{"x":1.5258783e-7,"y":-0.5556987,"z":-10.240001}],"GeneratedEstimatedPathLength":10.2634,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":8,"DeathType":11,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_straight_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_straight_b":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.2269018e-9,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.2269018e-9,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_straight_c":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.06063593,"y":-0.38061893,"z":-2.559139},{"x":0.2232602,"y":-0.64000064,"z":-5.1135054}],"EstimatedPathLength":5.1606464,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.011943081,"y":-0.103169255,"z":-0.6636573},{"x":0.030623488,"y":-0.24862951,"z":-1.6116633},{"x":0.06063593,"y":-0.38061893,"z":-2.559139},{"x":0.11331245,"y":-0.48566678,"z":-3.5055542},{"x":0.17732102,"y":-0.5772438,"z":-4.451439},{"x":0.2232602,"y":-0.6400006,"z":-5.1135054}],"GeneratedEstimatedPathLength":5.1608753,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}'
);
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.Character = void 0);
const r = n(62),
o = n(40),
a = n(19),
s = n(48);
t.Character = class {
constructor() {
(this._characterMeshFileURL = "assets/characters/guy_dangerous/guy_dangerous.glb"),
(this._mineCartMeshFileURL = "assets/tracks/Machu/MineCart/mine_cart_a_prefab.glb"),
(this.skeletons = []),
(this.animationGroups = []),
(this.animationGroupsCart = []);
}
loadAssetAsync(e) {
return i(this, void 0, void 0, function* () {
const t = r.MeshBuilder.CreateBox("playerRoot", { size: 0.5 });
t.isVisible = !1;
const n = yield this._loadPlayer(t, e);
this._createCollider(n), yield this._loadMineCart(e);
const i = this.playerTransform.position.clone();
(i.y += 1.5), this.playerTransform.setPivotPoint(i, r.Space.LOCAL);
});
}
_createShadow(e) {
(this.playerShadow = r.MeshBuilder.CreatePlane("playerShadow", { width: 0.8, height: 1.3 }, e)),
this.playerShadow.rotate(r.Axis.X, r.Tools.ToRadians(90), r.Space.LOCAL),
(this.playerShadow.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES),
(this.playerShadow.checkCollisions = !1),
(this.playerShadow.physicsImpostor = null),
(this.playerShadow.alwaysSelectAsActiveMesh = !0),
this.playerShadow.setEnabled(!1);
const t = new r.Texture("assets/textures/BlobShadow." + a.WebUtils.textureExtension, e, !1, !1),
n = new r.StandardMaterial("playerShadowMat", e);
(n.disableLighting = !0),
(n.emissiveTexture = t),
(n.emissiveTexture.hasAlpha = !0),
(n.diffuseTexture = t),
(n.diffuseTexture.hasAlpha = !0),
(n.useAlphaFromDiffuseTexture = !0),
(n.alpha = 0.7),
(this.playerShadow.material = n);
}
_createWaterTrailLeft(e) {
(this.waterTrailLeft = new r.ParticleSystem("waterTrailLeft", 200, e)),
this.waterTrailLeft.createPointEmitter(new r.Vector3(0.1, 0.5, -3), new r.Vector3(0.1, 0.5, -3)),
(this.waterTrailLeft.isBillboardBased = !0),
(this.waterTrailLeft.isLocal = !0),
(this.waterTrailLeft.emitRate = 5),
(this.waterTrailLeft.particleTexture = new r.Texture("assets/effects/effects_transparent." + a.WebUtils.textureExtension, e, !1, !0, r.Texture.LINEAR_LINEAR)),
(this.waterTrailLeft.gravity = r.Vector3.Zero()),
(this.waterTrailLeft.updateSpeed = 2),
(this.waterTrailLeft.minLifeTime = 60),
(this.waterTrailLeft.maxLifeTime = 65),
(this.waterTrailLeft.blendMode = r.ParticleSystem.BLENDMODE_STANDARD),
(this.waterTrailLeft.minSize = 0.01),
(this.waterTrailLeft.maxSize = 0.01),
this.waterTrailLeft.addSizeGradient(0, 0.005),
this.waterTrailLeft.addSizeGradient(0.3, 0.15),
this.waterTrailLeft.addSizeGradient(1, 0.4),
this.waterTrailLeft.addColorGradient(0, new r.Color4(1, 1, 1, 0.3)),
this.waterTrailLeft.addColorGradient(0.5, new r.Color4(1, 1, 1, 0.2)),
this.waterTrailLeft.addColorGradient(1, new r.Color4(1, 1, 1, 0)),
(this.waterTrailLeft.minInitialRotation = 0),
(this.waterTrailLeft.maxInitialRotation = Math.PI),
(this.waterTrailLeft.startSpriteCellID = 3),
(this.waterTrailLeft.endSpriteCellID = 3),
(this.waterTrailLeft.spriteCellHeight = 128),
(this.waterTrailLeft.spriteCellWidth = 128),
(this.waterTrailLeft.spriteCellChangeSpeed = 0),
(this.waterTrailLeft.isAnimationSheetEnabled = !0),
(this.waterTrailLeft.renderingGroupId = o.ETR2RenderingGroup.PARTICLES),
this.waterTrailLeft.start();
}
_loadPlayer(e, t) {
return i(this, void 0, void 0, function* () {
const n = yield r.SceneLoader.ImportMeshAsync(null, this._characterMeshFileURL, void 0, t),
i = n.meshes[0];
n.meshes.forEach((e) => (e.alwaysSelectAsActiveMesh = !0)),
n.meshes.forEach((e) => (e.alphaIndex = 2)),
i.setDirection(new r.Vector3(0, 0, 1)),
i.scaling.scaleInPlace(0.45),
(i.isVisible = !1),
i.setParent(e),
(this.playerTransform = e),
this._createShadow(t),
(this.skeletons = n.skeletons),
(this.animationGroups = n.animationGroups);
const a = n.meshes[1];
(a.renderingGroupId = o.ETR2RenderingGroup.CHARACTER),
(this.material = a.material),
(this.material.unlit = !0),
(this.leftHandBone = n.skeletons[0].bones.find((e) => "BoneFBXASC032LFBXASC032Hand" == e.name)),
(this.rightHandBone = n.skeletons[0].bones.find((e) => "BoneFBXASC032RFBXASC032Hand" == e.name));
const s = n.meshes[2],
c = n.meshes[3],
l = n.meshes[4],
u = n.meshes[5];
return (
(s.isVisible = !1),
(u.isVisible = !1),
(c.isVisible = !1),
(l.isVisible = !1),
(this.waterSplashFx = o.GameController.instance.particle.waterSplashTrailParticle),
(this.waterSplashFx.emitter = u),
(this.dustFx = o.GameController.instance.particle.dustTrailParticle),
(this.dustFx.emitter = i),
(this.fireCollisionSmokeFX = o.GameController.instance.particle.fireCrashSmokePartile),
(this.waterDuckFx = o.GameController.instance.particle.playerDuckWaterSplashParticle),
(this.waterDuckFx.emitter = l),
this._createWaterTrailLeft(t),
(this.waterTrailLeft.emitter = s),
(this.waterTrailRight = this.waterTrailLeft.clone("waterTrailRight", s)),
(this.waterTrailRight.direction1.x *= -1),
(this.waterTrailRight.direction2.x *= -1),
this.waterTrailLeft.stop(),
this.waterTrailRight.stop(),
i
);
});
}
startWaterTrail() {
this.waterTrailRight.start(), this.waterTrailLeft.start();
}
stopWaterTrail() {
this.waterTrailRight.stop(), this.waterTrailLeft.stop();
}
_loadMineCart(e) {
return i(this, void 0, void 0, function* () {
const t = yield r.SceneLoader.ImportMeshAsync(null, this._mineCartMeshFileURL, void 0, e),
n = t.meshes[0];
for (const e of t.meshes) e instanceof r.Mesh && ((e.material = o.GameController.instance.track.trackMaterial), (e.renderingGroupId = o.ETR2RenderingGroup.CHARACTER), e.name.includes("Collider") && (e.isVisible = !1));
(this.playerMineCartTransform = n),
(this.playerMineCartTransform.isVisible = !1),
this.playerMineCartTransform.setDirection(new r.Vector3(0, 0, 1)),
this.playerMineCartTransform.setParent(this.playerTransform),
this.playerMineCartTransform.setEnabled(!0),
this.setPlayerCartVisibility(!1),
(this.animationGroupsCart = t.animationGroups);
});
}
_createCollider(e) {
(this.playerCollider = r.MeshBuilder.CreateCylinder("playerSphere", { height: 1.5, diameter: 0.7 })),
this.playerCollider.setParent(e),
(this.playerCollider.position.y += 1.5),
(this.playerCollider.renderingGroupId = o.ETR2RenderingGroup.CHARACTER),
(this.playerCollider.visibility = s.GameConfig.showPlayerCollider ? 0.5 : 0),
(this.playerColliderDefaulScale = this.playerCollider.scaling),
(this.playerColliderDefaultPosition = this.playerCollider.position);
}
setPlayerCartVisibility(e) {
for (const t of this.playerMineCartTransform.getChildMeshes()) t instanceof r.Mesh && !t.name.includes("Collider") && (t.isVisible = e);
}
setPlayerColliderToDefault() {
(this.playerCollider.scaling = this.playerColliderDefaulScale), (this.playerCollider.position = this.playerColliderDefaultPosition);
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.parseToMap = t.parseFromMap = t.LocalStore = void 0);
(t.LocalStore = new (class {
isLocalStorageSupported() {
let e = !1;
try {
window.localStorage, (e = !0);
} catch (t) {
e = !1;
}
return e;
}
createCookie(e, t, n) {
let i = "";
if (n) {
const e = new Date();
e.setTime(e.getTime() + 24 * n * 60 * 60 * 1e3), (i = "; expires=" + e.toUTCString());
}
document.cookie = e + "=" + t + i + "; path=/";
}
readCookie(e) {
const t = e + "=",
n = document.cookie.split(";");
for (let e = 0; e < n.length; e++) {
let i = n[e];
for (; " " == i.charAt(0); ) i = i.substring(1, i.length);
if (0 == i.indexOf(t)) return i.substring(t.length, i.length);
}
return null;
}
setItem(e, t) {
this.isLocalStorageSupported() ? window.localStorage.setItem(e, t) : this.createCookie(e, t);
}
getItem(e) {
return this.isLocalStorageSupported() ? window.localStorage.getItem(e) : this.readCookie(e);
}
})()),
(t.parseFromMap = (e) => {
const t = {};
for (const [n, i] of e) t[n] = i;
return t;
}),
(t.parseToMap = (e) => {
const t = new Map();
for (const n in e) t.set(+n, e[n]);
return t;
});
},
function (e) {
e.exports = JSON.parse(
'{"Sections":[{"Group":"Founders","People":["Natalia Luckyanova","Keith Shepherd"]},{"Group":"Chief Executive Officer","People":["Walter Devins"]},{"Group":"Product Owner","People":["Eve Chang"]},{"Group":"Production","People":["Cody Bradley","--","Jeremy Albert","Brian Glass","Ross LeMere","Bryan Walker"]},{"Group":"Art Director","People":["Marika Orehek"]},{"Group":"Art Project Lead","People":["Lillian Matuszek"]},{"Group":"Art","People":["Danika Bird","Dennis Bruber","Xi Chen","Helen Lee","Riley Ribatto","Ula Wigierska","--","Diego Agasso","Jon Bass","Jason Flack","Fred Lang","Robert Rose","Kiril Tchangov","Justine Warburton Hamer","Jeremiah Washburn","Robert Zamber"]},{"Group":"Design Project Lead","People":["Jeff Shepherd"]},{"Group":"Design Team","People":["Baqir Shah","Josh Sweeney","Josiah Wallace","--","Jason Stone"]},{"Group":"Engineering Technical Director","People":["Tal Arrowood"]},{"Group":"Engineering Project Lead","People":["Josh Wilson"]},{"Group":"Engineering","People":["Ryan George","Joshua Good","Justin Hair","Ian Jensen","Ben Johnson","Bryan Kisby","--","Jessica Agee","Nic Allen","Shayne Guiliano","Brian Lhota","Rob McLaughlin","Jay Nakai","Richard Sandham","Scott Sherman"]},{"Group":"Quality Assurance Manager","People":["Michael Ruegg"]},{"Group":"Quality Assurance","People":["Tony Halstead","Mark Smith","Jake Flint","Lauren Renaux","Kale Keriazes","--","Joshua Taylor"]},{"Group":"Social Media Manager","People":["Brittany Watson"]},{"Group":"Customer Service","People":["Javonda Hunt"]},{"Group":"Lead Data Scientist","People":["Clay Heaton","--","Paul Ruddle II"]},{"Group":"Director of Finance and Human Resources","People":["Cindy Vice"]},{"Group":"HR Manager","People":["Anna Zimmerman"]},{"Group":"Interns","People":["DJ Schilens","--","Chris Collins"]},{"Group":"Music","People":["Cris Velasco","Guy Whitmore"]},{"Group":"Writing","People":["Matt King"]},{"Group":"Special Thanks","People":["Leandro Basallo","Anthony Pecorella"]},{"Group":"Fan Contributions","People":["Sonny Lee Leko","Stevie Ray Ramsey"]},{"Group":"Xansr Team","People":["Simon Banerjee","Nitu Chiring","Shiraz Imam","Vaibhav Kataria","Ankit Kushwah","Pralay Mistri","Swapnil Tamgadge"]}],"Additional":[["Officially Licensed Product of","National Football League Players Inc.","Copyright 2014"]]}'
);
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.MonkeyController = void 0);
const r = n(62),
o = n(40),
a = n(156),
s = n(29),
c = n(139);
t.MonkeyController = class {
constructor(e) {
(this._monkeyState = a.MonkeyState.None),
(this._characterMeshFileURL = "assets/characters/demon_monkey/demon_monkey_chaser.glb"),
(this.MONKEY_DEFAULT_POSITION = new r.Vector3(0, 0, 20)),
(this.DISAPPEAR_FINAL_OFFSET = 6),
(this._disappearTime = 2),
(this._chaseOffset = 3),
(this._tauntOffset = 1),
(this._idleOffset = 10),
(this._maxStumbleForDeath = 2),
(this._chaseDuration = 8),
(this._disappearTimeLeft = this._disappearTime),
(this._chaseTime = 4),
(this._stumbleCounts = 0),
(this._isInitialized = !1),
(this._enemyOffset = 10),
(this._isPowerUpActive = !1),
(this._scene = e),
(this._monkeyState = a.MonkeyState.None);
}
goIdle() {
this._setState(a.MonkeyState.Idle);
}
initialize() {
this._initMonkey(),
s.EventHandler.instance.addListener(s.EventID.OnPowerupStart, () => {
(this._isPowerUpActive = !0), this._setState(a.MonkeyState.Idle);
}),
s.EventHandler.instance.addListener(s.EventID.OnPowerupComplete, () => {
this._isPowerUpActive = !1;
}),
s.EventHandler.instance.addListener(s.EventID.OnPlayerDeath, (e) => {
if (this._monkeyState == a.MonkeyState.Chase) {
e == a.DeathType.DeathByFall ? this._setState(a.MonkeyState.Idle) : this._setState(a.MonkeyState.Taunt);
}
}),
s.EventHandler.instance.addListener(s.EventID.OnPlayerJumpState, () => {
const e = o.GameController.instance.character.params.currentTrackPiece;
this.checkForObstacle(e) && a.MonkeyState.Chase == this._monkeyState && this._setState(a.MonkeyState.Jump);
}),
s.EventHandler.instance.addListener(s.EventID.OnPlayerRunState, () => {
this._monkeyState == a.MonkeyState.Jump && this._setState(a.MonkeyState.Chase);
}),
s.EventHandler.instance.addListener(s.EventID.OnPlayGame, (e) => {
e || (s.EventHandler.instance.fireEvent(s.EventID.PlaySFX, c.SoundID.MonkeyRoar), this._setState(a.MonkeyState.Chase));
}),
s.EventHandler.instance.addListener(s.EventID.OnPlayerEnteringNewZone, () => {
this._setState(a.MonkeyState.Idle);
}),
s.EventHandler.instance.addListener(s.EventID.OnStumble, () => {
if (!o.GameController.instance.tutorial.isEnabled)
if ((this._stumbleCounts++, this._stumbleCounts >= this._maxStumbleForDeath)) {
this._setState(a.MonkeyState.Taunt);
const e = o.GameController.instance.character.player;
e.attachToBone(this._handBone, this._monkey), (e.position = r.Vector3.Zero()), (e.position.y -= 1), o.GameController.instance.character.deathByMonkey();
} else this._stumbleCounts > 0 && (s.EventHandler.instance.fireEvent(s.EventID.PlaySFX, c.SoundID.MonkeyRoar), this._setState(a.MonkeyState.Chase));
});
}
checkForObstacle(e) {
if (e.SelectedDefinition.IsJumpOver || e.SelectedDefinition.IsGenericObstacle || e.SelectedDefinition.IsStumble || e.SelectedDefinition.isObstacle()) return !0;
const t = Math.min(1, e.NextTrackPieces.length);
for (let n = 0; n < t; n++) {
const t = e.NextTrackPieces[n].SelectedDefinition;
if (t.IsStumble || t.IsGenericObstacle) return !0;
}
return !1;
}
preUpdate() {
this._isInitialized && o.GameController.instance.isGameRunning && this._updateForState();
}
_updateForState() {
const e = this._scene.getEngine().getDeltaTime() / 1e3;
switch (this._monkeyState) {
case a.MonkeyState.Chase:
this._monkey.isEnabled() || this._monkey.setEnabled(!0),
(this._chaseTime -= e),
this._chaseTime < 0 && ((this._chaseTime = this._chaseDuration), this._setState(a.MonkeyState.Disappearing, !1)),
this._updatePosition();
break;
case a.MonkeyState.Jump:
this._updatePosition();
break;
case a.MonkeyState.Disappearing:
if (((this._disappearTimeLeft -= e), this._disappearTimeLeft < 0)) this._setState(a.MonkeyState.Idle);
else {
const e = this._disappearTimeLeft / this._disappearTime;
(this._enemyOffset = this.DISAPPEAR_FINAL_OFFSET * Math.abs(1 - e) + e * this._chaseOffset), this._updatePosition();
}
}
}
postUpdate() {}
pause() {
this._currentAnimation.pause();
}
resume() {
this._currentAnimation.play();
}
reset() {
this._monkey.setEnabled(!1), (this._enemyOffset = 2), (this._chaseTime = 4), (this._stumbleCounts = 0);
const e = this._playerPosition();
this._monkey.lookAt(e), (this._monkey.position = this.MONKEY_DEFAULT_POSITION), this._setState(a.MonkeyState.Idle);
}
_updatePosition() {
const e = this._playerPosition().clone();
this._monkeyState != a.MonkeyState.Jump && (e.y = o.GameController.instance.character.params.currentPosition.y);
const t = this._playerForward(),
n = new r.Vector3(this._enemyOffset, 0, this._enemyOffset);
(this._monkey.position = e.add(t.multiply(n))), this._monkey.lookAt(e);
}
_playerForward() {
if (null != o.GameController.instance.character.player) {
let e = o.GameController.instance.character.player.forward;
return null == e && (e = new r.Vector3(0, 0, 0)), e;
}
return new r.Vector3(0, 0, 0);
}
_playerPosition() {
if (null != o.GameController.instance.character.player) {
let e = o.GameController.instance.character.player.position;
return null == e && (e = new r.Vector3(0, 0, 0)), e;
}
return new r.Vector3(0, 0, 0);
}
_setState(e, t = !0) {
switch (((this._previousAnimation = this._currentAnimation), (this._monkeyState = e), this._monkeyState)) {
case a.MonkeyState.Disappearing:
this._disappearTimeLeft = this._disappearTime;
break;
case a.MonkeyState.Idle:
this._monkey.setEnabled(!1), (this._stumbleCounts = 0), (this._enemyOffset = this._idleOffset), (this._currentAnimation = this._idleAnimation);
break;
case a.MonkeyState.Jump:
this._monkey.setEnabled(!0), (this._currentAnimation = this._jumpAnimation);
break;
case a.MonkeyState.Chase:
this._monkey.setEnabled(!0), (this._currentAnimation = this._runAnimation), (this._enemyOffset = this._chaseOffset);
break;
case a.MonkeyState.Taunt:
this._monkey.setEnabled(!0), (this._enemyOffset = this._tauntOffset), (this._currentAnimation = this._tauntAnimation), this._updatePosition();
}
t && this._playAnimation();
}
_playAnimation() {
let e = !1;
null != this._previousAnimation && (this._previousAnimation.setWeightForAllAnimatables(0), this._previousAnimation.stop()),
this._currentAnimation.setWeightForAllAnimatables(1),
this._monkeyState == a.MonkeyState.Chase && (e = !0),
this._currentAnimation.start(e);
}
_initMonkey() {
return i(this, void 0, void 0, function* () {
const e = yield r.SceneLoader.ImportMeshAsync(null, this._characterMeshFileURL, void 0, this._scene);
e.meshes.forEach((e) => (e.cullingStrategy = r.AbstractMesh.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY));
const t = e.meshes[0];
(t.position = this.MONKEY_DEFAULT_POSITION), t.setDirection(new r.Vector3(0, 0, 1)), (t.scaling.x = 0.9), (t.scaling.y = 0.9), (t.scaling.z = 0.9);
const n = e.meshes[1];
n.renderingGroupId = o.ETR2RenderingGroup.CHARACTER;
(n.material.unlit = !0),
(this._handBone = e.skeletons[0].bones.find((e) => "Bone_L_Hand" == e.name)),
(this._monkey = t),
this._monkey.setEnabled(!1),
this._setupAnimations(e.animationGroups),
(this._isInitialized = !0),
this._setState(a.MonkeyState.Idle);
});
}
_setupAnimations(e) {
(this._animationGroups = e),
(this._idleAnimation = this._animationGroups.find((e) => "Idle01" === e.name)),
(this._runAnimation = this._animationGroups.find((e) => "Run01" === e.name)),
(this._tauntAnimation = this._animationGroups.find((e) => "Taunt01" === e.name)),
(this._jumpAnimation = this._animationGroups.find((e) => "Jump01" === e.name));
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.GameInputContoller = void 0);
const i = n(62),
r = n(29),
o = n(48);
t.GameInputContoller = class {
constructor(e) {
(this._minimumSwipeDistance = 50),
(this._minimumSwipeVelocity = 100),
(this._minimumAngle = 40),
(this._inputsActive = !0),
(this.onFirstClick = () => {
r.EventHandler.instance.fireEvent(r.EventID.OnFirstUserInput), window.removeEventListener("click", this.onFirstClick);
}),
(this._scene = e);
}
initialize() {
this._scene.actionManager || (this._scene.actionManager = new i.ActionManager(this._scene)), (this._keydownMap = {}), (this._keyupMap = {});
const e = this;
this._scene.actionManager.registerAction(
new i.ExecuteCodeAction(i.ActionManager.OnKeyDownTrigger, function (t) {
t.sourceEvent.repeat || 0 == this._inputsActive || (e._keydownMap[t.sourceEvent.key] = "keydown" == t.sourceEvent.type);
})
),
this._scene.actionManager.registerAction(
new i.ExecuteCodeAction(i.ActionManager.OnKeyUpTrigger, function (t) {
t.sourceEvent.repeat || 0 == this._inputsActive || (e._keyupMap[t.sourceEvent.key] = "keyup" == t.sourceEvent.type);
})
),
this._scene.onPointerObservable.add(this._updateFromMouse.bind(this)),
this._attachWindowEvents(),
r.EventHandler.instance.addListener(r.EventID.OnStopInputs, () => {
this._inputsActive = !1;
}),
r.EventHandler.instance.addListener(r.EventID.OnStartInputs, () => {
this._inputsActive = !0;
});
}
_attachWindowEvents() {
window.addEventListener(
"keydown",
(e) => {
e.preventDefault(),
o.GameConfig.canShowInspector &&
e.shiftKey &&
e.ctrlKey &&
e.altKey &&
(this._scene.debugLayer.isVisible()
? this._scene.debugLayer.hide()
: (this._scene.debugLayer.show(), (document.getElementById("scene-explorer-host").style.zIndex = "10"), (document.getElementById("inspector-host").style.zIndex = "10")));
},
{ passive: !1 }
),
window.addEventListener("click", this.onFirstClick);
}
preUpdate() {
this._updateFromKeyboard(), this._validTouch && (this._startTime += this._scene.deltaTime);
}
postUpdate() {}
pause() {
this._inputsActive = !1;
}
resume() {
this._inputsActive = !0;
}
reset() {}
_updateFromKeyboard() {
(this._keydownMap.ArrowUp || this._keydownMap.w || this._keydownMap.W) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Jump"),
(this._keydownMap.ArrowDown || this._keydownMap.s || this._keydownMap.S) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Slide"),
(this._keydownMap.ArrowLeft || this._keydownMap.a || this._keydownMap.A) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Left"),
(this._keydownMap.ArrowRight || this._keydownMap.d || this._keydownMap.D) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Right"),
(this._keydownMap[" "] || this._keydownMap.Space) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Space"),
(this._keydownMap.G || this._keydownMap.g) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "SwitchCamera"),
this._keydownMap.Escape && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Escape"),
(this._keydownMap = {}),
(this._keyupMap = {});
}
_updateFromMouse(e) {
switch (e.type) {
case i.PointerEventTypes.POINTERDOWN:
this._validTouch || ((this._startPointerVector = new i.Vector2(e.event.x, e.event.y)), (this._startTime = 0), (this._validTouch = !0));
break;
case i.PointerEventTypes.POINTERUP:
if (this._validTouch) {
this._endPointerVector = new i.Vector2(e.event.x, e.event.y);
const t = this._endPointerVector.subtract(this._startPointerVector),
n = Math.sqrt(t.x * t.x + t.y * t.y);
if (n / (this._startTime / 1e3) > this._minimumSwipeVelocity && n > this._minimumSwipeDistance) {
t.normalize();
let e = i.Vector2.Dot(t, new i.Vector2(1, 0));
if (((e = (360 * Math.acos(e)) / (2 * Math.PI)), e < this._minimumAngle)) r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Right");
else if (180 - e < this._minimumAngle) r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Left");
else {
let e = i.Vector2.Dot(t, new i.Vector2(0, 1));
(e = (360 * Math.acos(e)) / (2 * Math.PI)),
e < this._minimumAngle ? r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Slide") : 180 - e < this._minimumAngle && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Jump");
}
}
this._validTouch = !1;
}
break;
case i.PointerEventTypes.POINTERMOVE:
break;
case i.PointerEventTypes.POINTERDOUBLETAP:
r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Space");
}
}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackController = void 0);
const r = n(62),
o = n(133),
a = n(40),
s = n(231),
c = n(29),
l = n(274),
u = n(178),
h = n(150),
d = n(48),
p = n(276);
t.TrackController = class {
constructor(e) {
(this._xCounts = 0),
(this._maxPiecesToAddPerUpdate = 2),
(this._growDistance = 60),
(this._canExtendTrack = !0),
(this._tempTrackPieceList = []),
(this._toRemoveTrackPieces = []),
(this._enabledZones = []),
(this._stopRemovalOnDeath = !1),
(this.statueAnimationInfos = new Array()),
(this._scene = e),
(this._trackMaterialProvider = new l.TrackMaterialProvider(e)),
(this._trackAssetPool = new p.TrackAssetsPoolManager());
}
getFillMeshMaterial() {
return this._trackMaterialProvider.waterBridgeMaterial;
}
set stopRemovalOnDeath(e) {
this._stopRemovalOnDeath = e;
}
initialize() {
return i(this, void 0, void 0, function* () {
([this._regionInfo, this._regionPacing, this._regionZoneInfos, this._regionZonePeices] = s.TrackHelper.loadConfigs()),
yield this._trackAssetPool.initialize(this._scene, this._regionZoneInfos, this._regionZonePeices, this._trackMaterialProvider),
this._loadInitialTrack();
});
}
preUpdate() {
this._trackMaterialProvider.update(), this._trackAssetPool.update();
}
postUpdate() {}
pause() {}
resume() {}
reset() {
this._trackAssetPool.resetPool(), (this._tempTrackPieceList = []), (this._toRemoveTrackPieces = []), (this._canExtendTrack = !1), (this._stopRemovalOnDeath = !1), this._loadInitialTrack();
}
_loadInitialTrack() {
let e;
if (
("done" != a.GameController.instance.gameState.flagsData.tutorialPhaseState && (e = a.GameController.instance.tutorial.enableAndGetSection(this._regionZoneInfos)),
null == e && a.GameController.instance.tutorial.needZoneTutorial && a.GameController.instance.tutorial.shouldRestartTutorial)
) {
const t = a.GameController.instance.tutorial.enableAndGetSectionZone(void 0);
e = null != t ? t.Queue : void 0;
}
null == e && ((e = this._regionInfo.StartingSection), a.GameController.instance.tutorial.checkZoneTutorials()), this._loadInitialTrackFromSection(e);
}
_loadInitialTrackFromSection(e) {
this._regionPacing.initialize(this._regionZoneInfos),
(this._rootTrackPiece = this._createStartingTrackPiece(e.Pieces[0].ID)),
this._rootTrackPiece.Queue.Pieces.push(...e.Pieces),
this._rootTrackPiece.Queue.Pieces.shift(),
(this._toRemoveRootTrackPiece = this._rootTrackPiece),
(this._initialTrackPiece = this._rootTrackPiece),
s.TrackHelper.createWorldSpline(this._rootTrackPiece, r.Vector3.Zero(), 0, this._scene);
d.GameConfig.IS_DEBUG &&
d.GameConfig.DEFAULT_ZONES.length != d.GameConfig.DEBUG_SELECTED_ZONES.length &&
d.GameConfig.MAX_START_PIECES > 0 &&
d.GameConfig.MAX_START_PIECES < this._rootTrackPiece.Queue.Pieces.length &&
this._rootTrackPiece.Queue.Pieces.splice(d.GameConfig.MAX_START_PIECES, this._rootTrackPiece.Queue.Pieces.length - d.GameConfig.MAX_START_PIECES),
this._attachPiecesOverDistance(this._rootTrackPiece, this._growDistance),
c.EventHandler.instance.fireEvent(c.EventID.OnTrackRootInit, this._initialTrackPiece);
}
get initialTrackPiece() {
return this._initialTrackPiece;
}
_findPieceDefinition(e) {
let t;
for (const [, n] of this._regionZoneInfos) {
for (const i of n.Definitions)
if (i.ID.isEquals(e)) {
t = i;
break;
}
if (null != t) break;
}
return t;
}
_createStartingTrackPiece(e) {
const t = new o.TrackPiece(),
n = this._findPieceDefinition(e),
i = n.Variations[0];
return (
(t.trackInfo = this._regionZonePeices.get(e.ZoneID).get(i.PieceName)),
(t.assetInfo = this._trackAssetPool.getTrackPiece(e.ZoneID, i.PieceName)),
t.assetInfo.rootMesh.setEnabled(!0),
(t.assetInfo.rootMesh.position = r.Vector3.Zero()),
(t.SelectedDefinition = n),
(t.SelectedVariationDefinition = i),
d.GameConfig.showPathPoints && s.TrackHelper.drawDebugPathSplines(t, this._scene),
this._startTrackPieceOptions(t),
t
);
}
_createTrackPiece(e, t) {
const n = new o.TrackPiece(),
i = this._findPieceDefinition(e);
let a = void 0;
if (null != t && t.length > 0) for (const e of i.Variations) e.PieceName == t && (a = e);
return (
null == a && (a = i.getVariation()),
(n.trackInfo = this._regionZonePeices.get(e.ZoneID).get(a.PieceName)),
(n.assetInfo = this._trackAssetPool.getTrackPiece(e.ZoneID, a.PieceName)),
n.assetInfo.rootMesh.setEnabled(!0),
(n.assetInfo.rootMesh.position = r.Vector3.Zero()),
(n.SelectedDefinition = i),
(n.SelectedVariationDefinition = a),
(n.CurrCoinPlacement = a.CoinPlacement),
(n.CurrCanSpawnPowerup = !!a.CanSpawnPowerup),
(n.EnterPiece = n.trackInfo.EnterPiece),
d.GameConfig.showPathPoints && s.TrackHelper.drawDebugPathSplines(n, this._scene),
n
);
}
getAllZones() {
return this._regionZoneInfos;
}
getZoneInfo(e) {
for (const [, t] of this._regionZoneInfos) if (t.ID == e) return t;
}
get enabledZones() {
return this._enabledZones;
}
_attachPiecesOverDistance(e, t, n = 0, i = 0) {
let r,
c = e;
for (; t > 0; ) {
let e,
l = new o.NewTrackPieceInfo(),
u = !1,
h = !1;
if (null != c.Queue && c.Queue.Pieces.length > 0) {
const i = c,
a = c.Queue.Pieces.shift();
if (((e = this._findPieceDefinition(a.ID)), 0 == e.isAnyJunction())) {
switch (a.Attach) {
case o.TrackPieceAttachType.Normal:
let s = 0;
([c, s, r] = this._attachComplexPiece(i, e, a.Variation, n)), (t -= s);
break;
case o.TrackPieceAttachType.Basic:
(c = this._attachPiece(i, e, a.Variation, n)), (t -= c.getEstimatedLength(n)), (r = c);
}
(c.Queue = i.Queue), (c.Pacing = i.Pacing), null != r && (r.EnterPiece = a.EnterPiece), (h = !0);
} else {
this._tempTrackPieceList = [];
let o = 0;
[c, o, r, this._tempTrackPieceList] = this._attachJunction(i, e, a.Variation, n);
for (let e = 0; e < this._tempTrackPieceList.length; ++e) {
const t = this._tempTrackPieceList[e];
0 == e ? (t.Queue = i.Queue) : t.Queue.Pieces.push(...i.Queue.Pieces), (t.Pacing = i.Pacing);
}
(t -= o), (h = !0);
}
} else
null != c.Pacing &&
(a.GameController.instance.tutorial.isEnabled
? (l = a.GameController.instance.tutorial.selectTrackPiece(c, l))
: ((l = s.TrackHelper.selectPieceComplex(this, c.Pacing, c, l)), a.GameController.instance.tutorial.canStartZoneTutorial(l.Definition) && (l = a.GameController.instance.tutorial.enableAndGetSectionZone(l))),
(u = 1 != l.areAllMembersNull()),
(h = !1));
if (
(0 == h &&
0 == u &&
(a.GameController.instance.tutorial.isEnabled
? (l = a.GameController.instance.tutorial.selectTrackPiece(c, l))
: ((l = s.TrackHelper.selectPieceComplex(this, this._regionPacing, c, l)),
a.GameController.instance.tutorial.canStartZoneTutorial(l.Definition) && (l = a.GameController.instance.tutorial.enableAndGetSectionZone(l)))),
null == l)
)
break;
if (0 == h && null != l.Piece && null == l.Definition && ((e = this._findPieceDefinition(l.Piece.ID)), null != e && 0 == e.isAnyJunction())) {
const i = c;
(c = this._attachPiece(i, e, l.Piece.Variation, n)), (c.Queue = l.Queue), (c.Pacing = l.Pacing), (c.EnterPiece = l.Piece.EnterPiece), (t -= c.getEstimatedLength(n)), (h = !0);
}
if (0 == h && null != l.Definition) {
if (((e = l.Definition), e.isAnyJunction())) {
this._tempTrackPieceList = [];
let a = 0;
if ((([c, a, r, this._tempTrackPieceList] = this._attachJunction(c, e, void 0, n)), (t -= a) > 0 && (this._maxPiecesToAddPerUpdate, 1))) {
for (let e = 0; e < this._tempTrackPieceList.length; ++e) {
const n = this._attachPiecesOverDistance(this._tempTrackPieceList[e], t, o.TrackPieceDefinition.MainPathID, i);
e == o.TrackPieceDefinition.MainPathID && (c = n);
}
t = 0;
}
} else {
const i = e.isAnyJunction() ? n : o.TrackPieceDefinition.MainPathID;
let a = 0;
([c, a, r] = this._attachComplexPiece(c, e, void 0, i)), (t -= a);
}
(h = !0), null == c.Pacing && null != l.Pacing && (c.Pacing = l.Pacing), (i += e.PrePieces.length + 1 + e.PostPieces.length), this._maxPiecesToAddPerUpdate;
} else if (0 == h) break;
}
return c;
}
_attachComplexPiece(e, t, n, i = 0) {
let r,
a = 0,
s = e;
if (t.isAnyJunction()) {
this._tempTrackPieceList = [];
let e = 0;
([s, e, r, this._tempTrackPieceList] = this._attachJunction(s, t, n, i)), (a += e);
} else {
if (null != t.PrePieces)
for (const e of t.PrePieces) {
const t = this._findPieceDefinition(e.ID);
(s = this._attachPiece(s, t, e.VariationName, i, e)), (a += s.getEstimatedLength(i));
}
if (((s = this._attachPiece(s, t, n, i)), (r = s), (a += s.getEstimatedLength(i)), 1 == t.isCompoundStart())) {
const e = h.Utils.random(t.CompoundPieceMinMiddleCount, t.CompoundPieceMaxMiddleCount + 1);
for (let n = 0; n < e; ++n) {
const e = this._findPieceDefinition(t.CompoundPieceMiddleType);
(s = this._attachPiece(s, e, void 0, o.TrackPieceDefinition.MainPathID)), (a += s.getEstimatedLength(i));
}
const n = this._findPieceDefinition(t.CompoundPieceEndType);
(s = this._attachPiece(s, n, void 0, o.TrackPieceDefinition.MainPathID)), (a += s.getEstimatedLength(i));
}
if (null != t.PostPieces)
for (const e of t.PostPieces) {
const t = this._findPieceDefinition(e.ID);
(s = this._attachPiece(s, t, e.VariationName, i, e)), (a += s.getEstimatedLength(i));
}
}
return [s, a, r];
}
_attachJunction(e, t, n, i = 0) {
let r = e,
a = e,
s = 0,
c = 0,
l = 0;
const u = [];
if (null != t.PrePieces)
for (const e of t.PrePieces) {
const t = this._findPieceDefinition(e.ID);
(r = this._attachPiece(r, t, e.VariationName)), (l += r.getEstimatedLength(i));
}
(r = this._attachPiece(r, t, n)), (a = r);
const h = r,
d = r;
s = r.getEstimatedLength(i);
const p = r.getNumPaths();
let f = !1;
for (let e = 0; e < p; ++e) {
r = d;
const n = !1;
if (0 == n) {
let n;
null != t.JunctionPostPieces && t.JunctionPostPieces.length > 0
? (n = e < t.JunctionPostPieces.length ? t.JunctionPostPieces[e].PathPostPieces : t.JunctionPostPieces[0].PathPostPieces)
: null != t.PostPieces && (n = t.PostPieces);
let a = 0;
if (null != n)
for (let t = 0; t < n.length; ++t) {
const s = n[t],
c = this._findPieceDefinition(s.ID),
l = 0 == t ? e : o.TrackPieceDefinition.MainPathID;
(r = this._attachPiece(r, c, s.VariationName, l, s)), (a += r.getEstimatedLength(i));
}
c = c <= 0 ? a : Math.min(c, a);
} else {
const n = this.getZoneInfo(t.ID.ZoneID).getEndPiece(),
i = e;
if (null != n) r = this._attachPiece(r, n, void 0, i);
else if (null != t.PostPieces && t.PostPieces.length > 0) {
const e = t.PostPieces[0],
n = this._findPieceDefinition(e.ID);
(r = this._attachPiece(r, n, e.VariationName, i, e)), (r.IsDeadEnd = !0);
}
}
0 == f && 0 == n && ((a = r), (f = !0)), null != h && u.push(r);
}
return [a, l + s + c, h, u];
}
_attachPiece(e, t, n, i = 0, c = o.ExtraPieceDefinition.default) {
const l = this._createTrackPiece(t.ID, n);
(l.DistanceFromRoot = e.DistanceFromRoot + e.getEstimatedLength(i)),
e.setNextTrackPiece(i, l),
c.OverrideCoinPlacement && (l.CurrCoinPlacement = c.CoinPlacement),
c.OverrideCanSpawnPowerup && (l.CurrCanSpawnPowerup = !!c.CanSpawnPowerup);
const h = e.lastPointFromPath(i),
d = e.WorldRotationY + e.getSourceLastRotY(i),
p = r.Vector3.TransformCoordinates(h, r.Matrix.RotationAxis(r.Axis.Y, (e.WorldRotationY * Math.PI) / 180)),
f = e.assetInfo.rootMesh.position.add(p),
m = f.subtract(e.assetInfo.rootMesh.position).normalize();
f.subtractInPlace(m.multiplyByFloats(0.01, 0, 0.01)), l.assetInfo.rootMesh.position.addInPlace(f), l.assetInfo.rootMesh.rotateAround(f, r.Axis.Y, (d * Math.PI) / 180), (l.WorldRotationY += d);
const g = l.WorldRotationY;
(l.WorldRotationY = g > 360 ? g - 360 : g),
l.updateStats(e),
a.GameController.instance.tutorial.isEnabled && (l.tutorialMilestoneIndex = a.GameController.instance.tutorial.currentMilestoneIndex),
s.TrackHelper.createWorldSpline(l, f, d, this._scene);
const b = e.PreviousTrackPiece;
if (null != b && i == o.TrackPieceDefinition.MainPathID) {
b.updateItemDistanceStats();
const t = a.GameController.instance.bonus.addBonusItems(b),
n = a.GameController.instance.coins.addCoinsToTrackPiece(b, u.BonusItemProtoData.DefaultCoinMaxHorizOffset);
for (let e = 0; e < 5; e++) a.GameController.instance.coins.addCoinToHistory(o.CoinPlacement.None);
const i = u.BonusItemProtoData.MaxCoinsPerRun;
e.updateCoinStats(n, i), b.updateStatsAfterItemsAdded(t, n, u.BonusItemProtoData.DefaultCoinPlacementHeight);
}
return this._startTrackPieceOptions(l), l;
}
_startTrackPieceOptions(e) {
const t = e.assetInfo;
if (
(null != e.assetInfo.sound &&
r.Engine.audioEngine.unlocked &&
((e.assetInfo.sound.loop = !0),
(e.assetInfo.sound.spatialSound = !0),
(e.assetInfo.sound.distanceModel = "linear"),
(e.assetInfo.sound.maxDistance = 40),
e.assetInfo.sound.setPosition(e.assetInfo.rootMesh.position),
e.assetInfo.sound.updateOptions({ spatialSound: !0, distanceModel: "linear", maxDistance: 40 }),
e.assetInfo.sound.play(0, e.assetInfo.soundOffset, e.assetInfo.soundLength)),
!t.name.includes("narrow_jump_over") && !t.name.includes("narrow_stumble"))
) {
for (const e of t.particleSystems) e.start();
if (t.animationGroups.length > 0) for (const e of t.animationGroups) e.play(!0);
}
if (t.name.includes("narrow_jump_over"))
t.animationGroups.forEach((e) => {
e.play(), e.goToFrame(0), e.pause();
}),
this.statueAnimationInfos.push(t);
else if (t.name.startsWith("narrow_stumble")) for (const e of t.animationGroups) e.play(), e.goToFrame(0), e.pause();
}
_assignTrackPieceAnimation(e) {
if (e.assetInfo.animationGroups.length > 0) {
let t = 0;
if (null != e.PreviousTrackPiece) {
let n = new o.TrackPiece();
for (n = e.PreviousTrackPiece; t < e.trackInfo.TriggerDistance && ((t += n.getEstimatedLength()), null != n.PreviousTrackPiece); ) n = n.PreviousTrackPiece;
const i = t - e.trackInfo.TriggerDistance;
n.triggerAnimations.set(i, e.assetInfo);
}
}
}
advanceToNextPieceAndBuild(e) {
let t = e.NextTrackPieces[e.selectedPathId];
null == t && (t = e);
const n = this._growDistance + e.getEstimatedLength();
this._extendTrack(t, n);
const i = e.PreviousTrackPiece;
if ((null != i && i != this._toRemoveRootTrackPiece && (this._collectOldTrackPieces(this._toRemoveRootTrackPiece, i), (this._toRemoveRootTrackPiece = i)), this._toRemoveTrackPieces.length > 6 && !this._stopRemovalOnDeath)) {
for (const e of this._toRemoveTrackPieces) {
const t = this.statueAnimationInfos.indexOf(e.assetInfo, 0);
t > -1 && this.statueAnimationInfos.splice(t, 1), a.GameController.instance.coins.removeCoinsFromTrackPiece(e), this._trackAssetPool.removeTrackPiece(e.SelectedDefinition.ID.ZoneID, e.assetInfo), e.dispose();
}
this._toRemoveTrackPieces = [];
}
return (this._rootTrackPiece = t), t;
}
_extendTrack(e, t) {
const n = e.getNextTrackPiecesLength();
if (n < 1) t > 0 && this._attachPiecesOverDistance(e, t, o.TrackPieceDefinition.MainPathID);
else {
e.SelectedDefinition.IsZipLine ? (t -= e.getEstimatedLength() / 4) : (t -= e.getEstimatedLength());
for (let i = 0; i < n; ++i) {
const n = e.NextTrackPieces[i];
this._extendTrack(n, t);
}
}
}
_collectOldTrackPieces(e, t) {
if (null == e) return;
if (((e.PreviousTrackPiece = void 0), e == t)) return;
this._toRemoveTrackPieces.push(e);
const n = e.getNextTrackPiecesLength();
for (let i = 0; i < n; ++i) this._collectOldTrackPieces(e.NextTrackPieces[i], t), (e.NextTrackPieces[i] = void 0);
}
updatePacingDistance(e) {
if (((this._regionPacing.DistanceTraveled += e), this._regionPacing.NextMilestoneIndex >= this._regionPacing.Milestones.length)) return;
const t = this._regionPacing.Milestones[this._regionPacing.NextMilestoneIndex];
t && this._regionPacing.DistanceTraveled > t.Distance && (this._regionPacing.selectNextMilestone(), a.GameController.instance.tutorial.isEnabled);
}
get trackMaterial() {
return this._trackMaterialProvider.trackMaterial;
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackMaterialProvider = void 0);
const i = n(62),
r = n(40),
o = n(237),
a = n(275),
s = n(19),
c = { vertexSource: a.lightmap_opaque_vertex, fragmentSource: a.lightmap_opaque_fragment };
t.TrackMaterialProvider = class {
constructor(e) {
this._scene = e;
}
get colliderMaterial() {
return (
null != this._colliderMaterial ||
((this._colliderMaterial = new i.StandardMaterial("colliderMat", this._scene)),
(this._colliderMaterial.emissiveColor = i.Color3.Magenta()),
(this._colliderMaterial.diffuseColor = i.Color3.Magenta()),
(this._colliderMaterial.backFaceCulling = !0),
(this._colliderMaterial.forceDepthWrite = !0),
(this._colliderMaterial.alpha = 0.5),
(this._colliderMaterial.disableLighting = !0),
this._colliderMaterial.freeze()),
this._colliderMaterial
);
}
get trackMaterial() {
if (null != this._trackMaterial) return this._trackMaterial;
this._trackMaterial = new i.ShaderMaterial("lightmap", this._scene, c, {
attributes: ["position", "normal", "uv", "uv2"],
uniforms: ["world", "worldView", "worldViewProjection", "view", "projection", "lightmap", "albedo"],
needAlphaBlending: !0,
needAlphaTesting: !1,
});
const e = new i.Texture("assets/textures/machu_lightmaps.jpg", this._scene);
e.coordinatesIndex = 1;
const t = new i.Texture("assets/textures/machu_master_a.jpg", this._scene);
return (
this._trackMaterial.setTexture("lightmap", e),
this._trackMaterial.setTexture("albedo", t),
this._trackMaterial.setInt("vertexFogEnabled", 0),
(this._trackMaterial.backFaceCulling = !0),
(this._trackMaterial.forceDepthWrite = !0),
r.GameController.instance.shader.addShader(o.EType.TRACK_PIECE, this._trackMaterial),
this._trackMaterial
);
}
get godRayMaterial() {
if (null != this._godRayMaterial) return this._godRayMaterial;
this._godRayMaterial = new i.StandardMaterial("god_ray", this._scene);
const e = new i.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !1);
return (
(this._godRayMaterial.diffuseTexture = e),
(this._godRayMaterial.diffuseTexture.hasAlpha = !0),
(this._godRayMaterial.diffuseColor = new i.Color3(0.01, 0.01, 0.1)),
(this._godRayMaterial.emissiveTexture = e),
(this._godRayMaterial.emissiveTexture.hasAlpha = !0),
(this._godRayMaterial.emissiveColor = new i.Color3(0.01, 0.01, 0)),
(this._godRayMaterial.backFaceCulling = !1),
(this._godRayMaterial.alpha = 0.9999),
(this._godRayMaterial.alphaMode = i.Engine.ALPHA_ADD),
(this._godRayMaterial.disableLighting = !0),
this._godRayMaterial
);
}
get waterPanMaterial() {
return (
null != this._curveWaterPanMat ||
((this._curveWaterPanMatTex1 = new i.Texture("assets/textures/pan_water_b." + s.WebUtils.textureExtension, this._scene)),
(this._curveWaterPanMatTex2 = new i.Texture("assets/textures/pan_water_b." + s.WebUtils.textureExtension, this._scene)),
(this._curveWaterPanMat = new i.PBRMaterial("water_pan_mat", this._scene)),
(this._curveWaterPanMat.albedoTexture = this._curveWaterPanMatTex1),
(this._curveWaterPanMat.albedoColor = new i.Color3(0.9, 0.9, 0.9)),
(this._curveWaterPanMat.ambientColor = i.Color3.Black()),
(this._curveWaterPanMat.emissiveTexture = this._curveWaterPanMatTex2),
(this._curveWaterPanMat.emissiveColor = new i.Color3(0.3, 0.3, 0.3)),
(this._curveWaterPanMat.unlit = !0)),
this._curveWaterPanMat
);
}
get folliageMaterial() {
return (
null != this._foliageMat ||
((this._foliageTex = new i.Texture("assets/textures/foliage_transparent." + s.WebUtils.textureExtension, this._scene)),
(this._foliageMat = new i.StandardMaterial("foliage_mat", this._scene)),
(this._foliageMat.disableLighting = !0),
(this._foliageMat.emissiveTexture = this._foliageTex),
(this._foliageMat.emissiveColor = i.Color3.White()),
(this._foliageMat.emissiveTexture.hasAlpha = !0),
(this._foliageMat.diffuseTexture = this._foliageTex),
(this._foliageMat.diffuseColor = i.Color3.Gray()),
(this._foliageMat.diffuseTexture.hasAlpha = !0)),
this._foliageMat
);
}
get mineExposureShader() {
return (
null != this._mineExposureMaterial ||
((this._mineExposureMaterial = new i.ShaderMaterial("mineExposure", this._scene, "./assets/shaders/mine_exposure", {
attributes: ["position"],
uniforms: ["world", "worldView", "worldViewProjection", "view", "projection", "playerPosition"],
needAlphaBlending: !0,
})),
this._mineExposureMaterial.setVector3("color", new i.Vector3(0, 0, 0)),
(this._mineExposureMaterial.backFaceCulling = !1),
r.GameController.instance.shader.addShader(o.EType.MINE_EXPOSURE, this._mineExposureMaterial)),
this._mineExposureMaterial
);
}
get waterBridgeMaterial() {
return (
null != this._curveWaterBridgeMat ||
((this._curveWaterBridgeMatTex = new i.Texture("assets/effects/effects_transparent." + s.WebUtils.textureExtension, this._scene)),
(this._curveWaterBridgeMat = new i.StandardMaterial("water_pan_bridge_mat", this._scene)),
(this._curveWaterBridgeMat.diffuseTexture = this._curveWaterBridgeMatTex),
(this._curveWaterBridgeMat.opacityTexture = this._curveWaterBridgeMatTex),
(this._curveWaterBridgeMat.emissiveColor = i.Color3.White()),
(this._curveWaterBridgeMat.alpha = 0),
(this._curveWaterBridgeMat.alphaMode = i.Engine.ALPHA_COMBINE),
(this._curveWaterBridgeMat.disableLighting = !0),
(this._curveWaterBridgeMat.forceDepthWrite = !0)),
this._curveWaterBridgeMat
);
}
update() {
null != this._curveWaterPanMat && ((this._curveWaterPanMatTex1.vOffset += 0.002 * this._scene.deltaTime), (this._curveWaterPanMatTex2.vOffset += 9e-4 * this._scene.deltaTime));
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }),
(t.mine_exposure_fragment = t.mine_exposure_vertex = t.lightmap_opaque_fragment = t.lightmap_opaque_vertex = void 0),
(t.lightmap_opaque_vertex =
"\n precision highp float;\n attribute vec3 position;\n attribute vec2 uv;\n attribute vec2 uv2;\n\n uniform mat4 worldViewProjection;\n uniform mat4 worldView;\n uniform bool vertexFogEnabled;\n\n varying vec2 vUV0;\n varying vec2 vUV1;\n varying float fogFactor;\n\n void main(void) {\n if(vertexFogEnabled){\n float start = 47.0;\n float end = 50.0;\n float vDistance = length(worldView * vec4(position,1.0));\n fogFactor = clamp((vDistance - start) / (end - start), 0.0, 1.0);\n }\n vUV0 = uv;\n vUV1 = uv2;\n gl_Position = worldViewProjection * vec4(position, 1.0);\n }\n"),
(t.lightmap_opaque_fragment =
"\n precision highp float;\n varying vec2 vUV0;\n varying vec2 vUV1;\n varying float fogFactor;\n\n uniform sampler2D lightmap;\n uniform sampler2D albedo;\n uniform bool vertexFogEnabled;\n\n void main(void) {\n float intensity = 1.2;\n vec4 color = texture2D(albedo,vUV0) * intensity;\n color.rgb *= texture2D(lightmap,vUV1).rgb;\n if(vertexFogEnabled)\n color = mix(color, vec4(1.0,1.0,1.0,0.0), fogFactor);\n gl_FragColor = color;\n }\n"),
(t.mine_exposure_vertex =
"\n precision highp float;\n\n attribute vec3 position;\n \n uniform mat4 world;\n uniform mat4 worldViewProjection;\n \n varying vec3 vPosition;\n \n void main(void) {\n vPosition = vec3(world * vec4(position,1.0));\n gl_Position = worldViewProjection * vec4(position, 1.0);\n }\n"),
(t.mine_exposure_fragment =
"\n precision highp float;\n\n varying vec3 vPosition;\n\n uniform vec3 playerPosition;\n const float MAX_EXPOSURE_DISTANCE = 15.0;\n\n uniform vec3 color;\n\n void main(void) {\n float alpha = 1.0;\n float d = distance(vPosition,playerPosition);\n if(d <= MAX_EXPOSURE_DISTANCE)\n alpha = d / MAX_EXPOSURE_DISTANCE;\n else \n alpha = 1.0;\n\n gl_FragColor = vec4(0.0,0.0,0.0,alpha);\n }\n");
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackAssetsPoolManager = t.TrackPiecePool = t.TrackPiecePack = void 0);
const r = n(62),
o = n(232),
a = n(48),
s = n(40),
c = n(29);
class l {}
t.TrackPiecePack = l;
class u {
constructor() {
(this.ready = new Map()), (this.used = new Map());
}
addNewToReady() {
const e = this.asset.clone();
e.rootMesh.setEnabled(!1), this.ready.set(e.id, e), s.GameController.instance.sound.addSoundsToTrackPiece(e), s.GameController.instance.particle.addEffectsToTrackPiece(e);
}
}
t.TrackPiecePool = u;
class h {
constructor() {
(this._zoneTrackPiecePacks = new Map()),
(this._zoneTrackPiecePool = new Map()),
(this._hasPending = !1),
(this._isLoadingPending = !1),
(this._diffuseCounter = 0),
(this._pendingIds = []),
(this._pendingPieceNames = new Map()),
(this._shouldLoadSinglePieces = !0),
(this._shouldLoadProgressively = !0);
}
initialize(e, t, n, r) {
return i(this, void 0, void 0, function* () {
(this._scene = e),
(this._trackMaterialProvider = r),
(this._trackMaterial = this._trackMaterialProvider.trackMaterial),
(this._waterPanMaterial = this._trackMaterialProvider.waterPanMaterial),
(this._waterBridgeMaterial = this._trackMaterialProvider.waterBridgeMaterial),
(this._foliageMaterial = r.folliageMaterial),
(this._godrayMaterial = r.godRayMaterial),
a.GameConfig.IS_DEBUG && (this._colliderMaterial = r.colliderMaterial),
(this._regionZoneInfos = t),
(this._regionZonePeices = n);
for (const [e, n] of t)
0 == e || 0 == this._shouldLoadProgressively ? yield this._loadTrackAssetPack(a.GameConfig.DEFAULT_REGION, n, !1) : (yield this._loadTrackAssetPack(a.GameConfig.DEFAULT_REGION, n, !0), this._pendingIds.push(e));
c.EventHandler.instance.addListener(c.EventID.OnGameLoaded, () => {
this._hasPending = !0;
}),
c.EventHandler.instance.addListener(c.EventID.OnDebugFeatureChange, () => {
a.GameConfig.showColliders ? (this._colliderMaterial.alpha = 0.5) : (this._colliderMaterial.alpha = 0);
});
});
}
update() {
0 == this._hasPending || this._isLoadingPending || this._diffuseCounter++ < 10 || (this._pendingIds.length > 0 ? ((this._isLoadingPending = !0), this._updateAssets()) : (this._hasPending = !1), (this._diffuseCounter = 0));
}
_updateAssets() {
return i(this, void 0, void 0, function* () {
const e = this._regionZoneInfos.get(this._pendingIds[0]);
let t = !1;
try {
t = 0 == this._shouldLoadSinglePieces ? yield this._loadTrackAssetPack(a.GameConfig.DEFAULT_REGION, e, !0) : yield this._loadSingleTrackAsset(a.GameConfig.DEFAULT_REGION, e);
} catch (e) {}
t && this._pendingIds.shift(), (this._isLoadingPending = !1);
});
}
_loadTrackAssetPack(e, t, n) {
return i(this, void 0, void 0, function* () {
let i, r;
if (this._zoneTrackPiecePacks.has(t.ID)) i = this._zoneTrackPiecePacks.get(t.ID);
else {
(i = new l()), (i.id = t.ID), (i.name = t.Name.toLowerCase() + "_pack");
const r = `assets/tracks/${e}/${t.Name}/${i.name}.glb`;
if (((0 != n && 0 != this._shouldLoadSinglePieces) || ((i.asset = yield o.AssetUtils.loadAssetAsync("" + i.name, r, this._scene)), this._zoneTrackPiecePacks.set(t.ID, i)), this._shouldLoadSinglePieces)) {
const e = this._regionZonePeices.get(t.ID);
this._pendingPieceNames.set(t.ID, [...e.keys()]);
}
if (n) return !1;
}
this._zoneTrackPiecePool.has(t.ID) ? (r = this._zoneTrackPiecePool.get(t.ID)) : ((r = new Map()), this._zoneTrackPiecePool.set(t.ID, r));
const a = this._cloneTrackAssetPack(i, r, n);
return a && s.GameController.instance.track.enabledZones.push(t.Name), a;
});
}
_loadSingleTrackAsset(e, t) {
return i(this, void 0, void 0, function* () {
const n = this._pendingPieceNames.get(t.ID);
let i;
if ((this._zoneTrackPiecePool.has(t.ID) ? (i = this._zoneTrackPiecePool.get(t.ID)) : ((i = new Map()), this._zoneTrackPiecePool.set(t.ID, i)), null != this._pendingPieceName)) {
const e = i.get(this._pendingPieceName);
if (null != e && e.ready.size < h.MAX_INITIAL_CLONES) return e.addNewToReady(), !1;
this._pendingPieceName = void 0;
}
if (n.length > 0) {
const a = n[0],
s = `assets/tracks/${e}/${t.Name}/${a}.glb`,
c = yield o.AssetUtils.loadAssetAsync("" + a, s, this._scene);
c.container.removeAllFromScene(), (c.axisScaling = new r.Vector3(-1, 1, -1));
const l = c.meshes[0];
l.setParent(null), l.setEnabled(!1);
for (const e of l.getChildMeshes(!1, (e) => e instanceof r.AbstractMesh)) this._addMaterialsToTrackPiece(e);
let h;
return i.has(a) ? (h = i.get(a)) : ((h = new u()), (h.id = a)), (h.asset = c), i.set(a, h), (this._pendingPieceName = a), n.shift(), !1;
}
return (this._pendingPieceName = void 0), s.GameController.instance.track.enabledZones.push(t.Name), !0;
});
}
_cloneTrackAssetPack(e, t, n) {
const i = e.asset.container;
let r = !1;
if (n) {
if (null == e.toCloneNodes) {
const t = i.meshes[0];
t.setParent(null), t.setEnabled(!1), (e.toCloneNodes = t.getChildren()[0].getChildren()[0].getChildren());
}
const o = e.toCloneNodes[0];
let a;
t.has(o.name) ? ((a = t.get(o.name)), a.ready.size < h.MAX_INITIAL_CLONES ? a.addNewToReady() : e.toCloneNodes.shift()) : this._prepareTrackPieceMesh(o, i, t, n), e.toCloneNodes.length <= 0 && (r = !0);
} else {
const e = i.meshes[0];
e.setParent(null), e.setEnabled(!1);
for (const r of e.getChildren()[0].getChildren()[0].getChildren()) {
const e = r;
this._prepareTrackPieceMesh(e, i, t, n);
}
r = !0;
}
return !!r && (i.removeAllFromScene(), (e.toCloneNodes = void 0), !0);
}
_prepareTrackPieceMesh(e, t, n, i) {
e.setParent(null), e.setEnabled(!1);
const a = new r.AssetContainer(this._scene);
(a.meshes = [e]), (a.animationGroups = []);
for (const n of t.animationGroups) (n.name.includes(e.name) || this._isAnimationNameEquals(n.name, e.name)) && a.animationGroups.push(n);
const s = new o.AssetInfo(e.id, e.name);
(s.meshes = a.meshes), (s.animationGroups = a.animationGroups), (s.skeletons = a.skeletons), (s.container = a), (s.axisScaling = new r.Vector3(-1, -1, -1)), (s.partOfPack = !0);
for (const t of e.getChildMeshes(!1, (e) => e instanceof r.AbstractMesh)) this._addMaterialsToTrackPiece(t);
let c;
if ((n.has(e.name) ? (c = n.get(e.name)) : ((c = new u()), (c.id = e.name)), (c.asset = s), n.set(e.name, c), 0 == i)) for (let e = 0; e < h.MAX_INITIAL_CLONES; e++) c.addNewToReady();
}
_isAnimationNameEquals(e, t) {
return "narrow_stumble_crash" == e && "narrow_stumble_a" == t;
}
_addMaterialsToTrackPiece(e) {
if (e instanceof r.InstancedMesh)
if (((e.sourceMesh.renderingGroupId = s.ETR2RenderingGroup.TRACK_PIECES), e.name.includes("curve_water_a_pan") || e.name.endsWith("_water"))) e.sourceMesh.material = this._waterPanMaterial;
else if ("Effect_torch_fire_a" == e.name && a.GameConfig.showColliders) (e.sourceMesh.material = this._colliderMaterial), (e.sourceMesh.alphaIndex = 1);
else if (e.name.includes("_fill")) (e.sourceMesh.alphaIndex = 1), (e.sourceMesh.material = this._waterBridgeMaterial);
else if (e.name.startsWith("Collider") && a.GameConfig.showColliders) (e.sourceMesh.material = this._colliderMaterial), (e.sourceMesh.alphaIndex = 1);
else if (e.name.includes("foliage")) e.sourceMesh.material = this._foliageMaterial;
else if (e.name.includes("godray")) e.sourceMesh.material = this._godrayMaterial;
else if (e.name.includes("exposure")) e.sourceMesh.material = this._trackMaterialProvider.mineExposureShader;
else {
if ("Collider_Obstacle" == e.sourceMesh.name) return;
e.sourceMesh.material = this._trackMaterial;
}
else if (e.name.includes("curve_water_a_pan") || e.name.endsWith("_water")) e.material = this._waterPanMaterial;
else if (e.name.includes("_fill")) (e.alphaIndex = 1), (e.material = this._waterBridgeMaterial);
else if (e.name.startsWith("Collider") && a.GameConfig.showColliders) (e.alphaIndex = 1), (e.material = this._colliderMaterial);
else if (e.name.includes("foliage")) e.material = this._foliageMaterial;
else if (e.name.includes("godray")) e.material = this._godrayMaterial;
else if (e.name.includes("exposure")) e.material = this._trackMaterialProvider.mineExposureShader;
else {
if ("Collider_Obstacle" == e.name) return;
e.material = this._trackMaterial;
}
}
getTrackPiece(e, t) {
if (this._zoneTrackPiecePool.has(e)) {
const n = this._zoneTrackPiecePool.get(e);
if (n.has(t)) {
const e = n.get(t);
e.ready.size <= 0 && e.addNewToReady();
const i = e.ready.keys().next().value,
r = e.ready.get(i);
return e.ready.delete(i), e.used.set(i, r), r;
}
}
return null;
}
removeTrackPiece(e, t) {
if (this._zoneTrackPiecePool.has(e)) {
const n = this._zoneTrackPiecePool.get(e);
if (n.has(t.name)) {
const e = n.get(t.name);
if (e.used.has(t.id)) {
const n = e.used.get(t.id);
return this._resetTrackPiece(n), e.used.delete(t.id), e.ready.set(t.id, n), !0;
}
}
}
return !1;
}
resetPool() {
for (const [, e] of this._zoneTrackPiecePool)
for (const [, t] of e)
t.used.forEach((e, n) => {
this._resetTrackPiece(e), t.ready.set(n, e);
}),
t.used.clear();
}
_resetTrackPiece(e) {
var t;
e.rootMesh.setEnabled(!1),
(e.rootMesh.position = r.Vector3.Zero()),
(e.rootMesh.rotationQuaternion = void 0),
(e.rootMesh.rotation = r.Vector3.Zero()),
(e.axisScaling = e.partOfPack ? new r.Vector3(1, 1, -1) : e.axisScaling),
(e.rootMesh.scaling = e.axisScaling.clone()),
null != e.sound && (null === (t = e.sound) || void 0 === t || t.stop());
for (const t of e.animationGroups) t.stop(), t.reset();
for (const t of e.particleSystems) t.stop(), t.reset();
}
pausePool() {
for (const [, e] of this._zoneTrackPiecePool)
for (const [, t] of e)
t.used.forEach((e) => {
e.animationGroups.length > 0 &&
e.animationGroups.forEach((e) => {
e.pause();
});
});
}
resumePool() {
for (const [, e] of this._zoneTrackPiecePool)
for (const [, t] of e)
t.used.forEach((e) => {
e.animationGroups.length > 0 &&
e.animationGroups.forEach((e) => {
e.start(!0);
});
});
}
}
(t.TrackAssetsPoolManager = h), (h.MAX_INITIAL_CLONES = 3);
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.SkyboxController = void 0);
const r = n(62);
t.SkyboxController = class {
constructor(e) {
(this._assetPath = "assets/environments/Machu_Skybox.glb"), (this._scene = e);
}
initialize() {
this._setupEnvironment();
}
preUpdate() {}
postUpdate() {}
pause() {}
resume() {}
reset() {}
_setupEnvironment() {
return i(this, void 0, void 0, function* () {
const e = new r.StandardMaterial("skyBox", this._scene);
(e.backFaceCulling = !1), (e.disableLighting = !0), (e.specularColor = r.Color3.Black()), (e.specularPower = 0), (e.emissiveColor = r.Color3.White());
const t = yield r.SceneLoader.ImportMeshAsync(null, this._assetPath, void 0, this._scene);
(this._skyboxRoot = t.meshes[0]), (this._skyboxMesh = t.meshes[1]), (this._skyboxOriginalPos = this._skyboxMesh.position);
const n = this._skyboxMesh.material.albedoTexture;
(e.diffuseTexture = n), (this._skyboxRoot.scaling = new r.Vector3(0.1, 0.1, 0.1)), (this._skyboxRoot.renderingGroupId = 0), (this._skyboxRoot.infiniteDistance = !0), (this._skyboxMesh.material = e);
});
}
get shadowLight() {
return this._light;
}
get shadowGenerator() {
return this._shadowGenerator;
}
get skyboxRoot() {
return this._skyboxRoot;
}
get skyboxMesh() {
return this._skyboxMesh;
}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CoinsController = void 0);
const r = n(40),
o = n(62),
a = n(133),
s = n(238),
c = n(178),
l = n(150),
u = n(279);
class h {
constructor(e) {
(this._updateTimer = 0), (this._isCheckingCollision = !1), (this._currentCoinIndex = 0), (this._currentCoins = new Map()), (this._currCoinHistoryIdx = -1), (this._coinHistory = []), (this._scene = e);
}
initialize() {
return i(this, void 0, void 0, function* () {
this._coinsMaterialProvider = new s.CoinsMaterialProvider(this._scene);
const e = yield o.SceneLoader.ImportMeshAsync(null, "assets/objects/coins/default_coin_gold.glb", null, this._scene);
e.meshes.forEach((e) => {
e.setEnabled(!1);
}),
(this._defaultCoin = e.meshes[1]),
(this._defaultCoin.renderingGroupId = r.ETR2RenderingGroup.PICK_UPS),
this._defaultCoin.setParent(null),
(this._defaultCoin.material = this._coinsMaterialProvider.defaultCoinMaterial);
for (let e = 0; e < h.MAX_COINS_POOL; e++) {
const t = this._defaultCoin.createInstance("coin" + e);
t.setEnabled(!1), this._currentCoins.set(e, t), (t.alwaysSelectAsActiveMesh = !1);
}
this._coinAnimator = new u.CoinsAnimator(this._defaultCoin.clone());
});
}
preUpdate() {
if (((this._updateTimer += this._scene.deltaTime), this._updateTimer > 60)) {
this._updateTimer = 0;
for (const [, e] of this._currentCoins) e.rotate(o.Axis.Y, -Math.PI / 10);
}
this._coinAnimator.update(this._scene.getEngine().getDeltaTime() / 1e3);
}
pause() {}
resume() {}
postUpdate() {}
reset() {
for (const [, e] of this._currentCoins) e.setEnabled(!1);
(this._coinHistory = []), (this._isCheckingCollision = !1), this._coinAnimator.reset();
}
addCoinsToTrackPiece(e, t) {
const n = null != e.EnterPiece && !!e.EnterPiece.ForceCoinsPlacementOnTrackPiece,
i = c.BonusItemProtoData.AllowCoins || n;
null != e.EnterPiece && e.EnterPiece.ForceCoinsPlacementOnTrackPiece && e.EnterPiece.CoinPlacementLocation != a.CoinPlacement.Any && (e.CurrCoinPlacement = e.EnterPiece.CoinPlacementLocation);
const s = e.trackPaths[a.TrackPieceDefinition.MainPathID],
l = !!e.SelectedDefinition.IsZipLine,
u = r.GameController.instance.track.getZoneInfo(e.SelectedDefinition.ID.ZoneID),
d = 0 == (!!u.CoinSettings.UseTrackDefinitonsForAllowingCoins || !1) && (e.SelectedDefinition.isMandatoryTurn() || !!e.SelectedDefinition.IsStumble || !!e.SelectedDefinition.IsJumpOver);
if (
null == s ||
s.length < 2 ||
(e.DistanceSinceLastCoinRun < c.BonusItemProtoData.MinDistanceBetweenCoinRuns && 0 == l && 0 == n) ||
d ||
e.CurrCoinPlacement == a.CoinPlacement.None ||
e.PlacedBonusItemCategory != a.BonusItemCategory.None ||
0 == i
)
return !1;
let p = !1,
f = e.CurrCoinPlacement,
m = !1;
if ((([m, p, f] = this._chooseCoinPlacementForPiece(u, e)), 0 == m)) return !1;
e.LastCoinPlacement = f;
let g = t,
b = e.LastCoinPlacementHeight,
_ = !1;
l ? ((b = 3.2), (g = 0.8)) : (u.CoinSettings.HeightAboveGround > 0 && (b = u.CoinSettings.HeightAboveGround), u.CoinSettings.MaxHorizontalOffset > 0 && (g = u.CoinSettings.MaxHorizontalOffset)),
(e.SelectedDefinition.IsJumpOver || e.SelectedDefinition.IsStumble) && ((_ = !0), (b = c.BonusItemProtoData.ArcMaxHeight));
let v = 0,
y = s.length - 1;
if (1 == l) {
const e = 6;
(v = 8), (y = s.length - e), y < v && (y = v);
}
let C = 0,
P = 0,
x = 0.5,
T = o.Vector3.Zero(),
S = o.Vector3.Zero(),
O = new o.Vector3(0, 0, 0),
E = !0,
M = 0,
A = !1,
I = 0;
for (let t = v; t < y; t++)
if (((T = s[t + 1].subtract(s[t])), (P = T.length()), (T = new o.Vector3(T.x / P, T.y / P, T.z / P)), C + P < x)) C += P;
else {
for (S = o.Vector3.Cross(o.Vector3.Up(), T); x < C + P; ) {
let i = 0;
if (1 == p && e.PreviousTrackPiece.LastCoinPlacement != e.LastCoinPlacement)
switch (e.PreviousTrackPiece.LastCoinPlacement) {
case a.CoinPlacement.Left:
i = -0.5;
break;
case a.CoinPlacement.Right:
i = 0.5;
break;
case a.CoinPlacement.Center:
i = e.LastCoinPlacement == a.CoinPlacement.Left ? -0.5 : 0.5;
}
else
switch (f) {
case a.CoinPlacement.Left:
i = -1;
break;
case a.CoinPlacement.Right:
i = 1;
}
p = !1;
const r = x - C;
O = T.multiplyByFloats(r, r, r);
const u = i * g;
(O = O.add(S.multiplyByFloats(u, u, u))), (O = O.add(s[t])), 1 == _ ? (1 == E && ((M = O.y), (E = !1)), (O.y = M + b)) : (O.y += b);
const d = this._currentCoins.get(this._currentCoinIndex);
if (
((d.position = O),
d.rotate(o.Axis.Y, I),
d.setEnabled(!0),
(I += Math.PI / 10),
this.addCoinToHistory(f),
(x += 1),
e.coinsList.push(this._currentCoinIndex),
this._currentCoinIndex++,
this._currentCoinIndex >= h.MAX_COINS_POOL && (this._currentCoinIndex = 0),
e.CoinRunCoinCount++,
e.CoinRunCoinCount >= c.BonusItemProtoData.MaxCoinsPerRun && 0 == l && 0 == n)
)
break;
}
if (e.CoinRunCoinCount >= c.BonusItemProtoData.MaxCoinsPerRun && 0 == l && 0 == n) {
(e.DistanceSinceLastCoinRun = 0), (A = !0);
break;
}
C += P;
}
return 0 == A && l && e.CoinRunCoinCount >= c.BonusItemProtoData.MaxCoinsPerRun && (e.DistanceSinceLastCoinRun = 0), !0;
}
_chooseCoinPlacementForPiece(e, t) {
const n = !!e.CoinSettings.SmartPlacement || !1;
let i = t.CurrCoinPlacement,
r = !1;
if (1 == n)
if (t.CoinRunCoinCount > 0) {
if (t.LastCoinPlacement != i)
if (t.LastCoinPlacement == a.CoinPlacement.Left)
switch (i) {
case a.CoinPlacement.Any:
case a.CoinPlacement.LeftOrCenter:
case a.CoinPlacement.LeftOrRight:
i = a.CoinPlacement.Left;
break;
case a.CoinPlacement.Center:
case a.CoinPlacement.CenterOrRight:
(i = a.CoinPlacement.Center), (r = !0);
break;
default:
return [!1, r, i];
}
else if (t.LastCoinPlacement == a.CoinPlacement.Center)
switch (i) {
case a.CoinPlacement.Any:
case a.CoinPlacement.CenterOrRight:
case a.CoinPlacement.LeftOrCenter:
i = a.CoinPlacement.Center;
break;
case a.CoinPlacement.Left:
(i = a.CoinPlacement.Left), (r = !0);
break;
case a.CoinPlacement.Right:
(i = a.CoinPlacement.Right), (r = !0);
break;
case a.CoinPlacement.LeftOrRight:
(i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Right), (r = !0);
break;
default:
return [!1, r, i];
}
else if (t.LastCoinPlacement == a.CoinPlacement.Right)
switch (i) {
case a.CoinPlacement.Any:
case a.CoinPlacement.CenterOrRight:
case a.CoinPlacement.LeftOrRight:
i = a.CoinPlacement.Right;
break;
case a.CoinPlacement.Center:
case a.CoinPlacement.LeftOrCenter:
(i = a.CoinPlacement.Center), (r = !0);
break;
default:
return [!1, r, i];
}
if (1 == r && 0 == this._canPlaceCoinBasedOnHistory(i)) return [!1, r, i];
} else
switch (i) {
case a.CoinPlacement.Left:
case a.CoinPlacement.Center:
case a.CoinPlacement.Right:
break;
case a.CoinPlacement.LeftOrCenter:
i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Center;
break;
case a.CoinPlacement.LeftOrRight:
i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Right;
break;
case a.CoinPlacement.CenterOrRight:
i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Center : a.CoinPlacement.Right;
break;
case a.CoinPlacement.Any:
switch (l.Utils.random(0, 3)) {
case 0:
i = a.CoinPlacement.Left;
break;
case 1:
i = a.CoinPlacement.Center;
break;
case 2:
i = a.CoinPlacement.Right;
}
}
else {
if (t.CoinRunCoinCount > 0) i = t.LastCoinPlacement;
else if (t.SelectedDefinition.IsLedgeLeft) i = a.CoinPlacement.Left;
else if (t.SelectedDefinition.IsLedgeRight) i = a.CoinPlacement.Right;
else if (t.SelectedDefinition.IsLedgeCenter) i = a.CoinPlacement.Center;
else if (e.Gameplay == a.TRGameRunnerGameplay.Ride) i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Right;
else
switch (l.Utils.random(0, 3)) {
case 0:
i = a.CoinPlacement.Left;
break;
case 1:
i = a.CoinPlacement.Center;
break;
case 2:
i = a.CoinPlacement.Right;
}
if (
(t.SelectedDefinition.IsLedgeLeft && i != a.CoinPlacement.Left) ||
(t.SelectedDefinition.IsLedgeRight && i != a.CoinPlacement.Right) ||
(t.SelectedDefinition.IsLedgeCenter && i != a.CoinPlacement.Center) ||
(e.Gameplay == a.TRGameRunnerGameplay.Ride && i == a.CoinPlacement.Center)
)
return [!1, r, i];
}
return [!0, r, i];
}
_canPlaceCoinBasedOnHistory(e) {
if (this._coinHistory.length > 0) {
const t = this._currCoinHistoryIdx > 0 ? this._currCoinHistoryIdx - 1 : this._coinHistory.length - 1;
if (this._coinHistory[t] == e) return !0;
{
let n = 0,
i = t;
for (; i != this._currCoinHistoryIdx && this._coinHistory[i] != e; ) n++, (i = i > 0 ? i - 1 : this._coinHistory.length - 1);
return n >= c.BonusItemProtoData.MinCoinsToRepeatPlacement;
}
}
return !0;
}
addCoinToHistory(e) {
null != this._coinHistory &&
(this._currCoinHistoryIdx++,
this._currCoinHistoryIdx >= c.BonusItemProtoData.MaxCoinHistorySize && (this._currCoinHistoryIdx = 0),
this._currCoinHistoryIdx >= this._coinHistory.length ? this._coinHistory.push(e) : (this._coinHistory[this._currCoinHistoryIdx] = e));
}
checkCoinCollision(e, t, n, r) {
return i(this, void 0, void 0, function* () {
if (this._isCheckingCollision) return;
const i = this._scene.getEngine().getDeltaTime() / 1e3;
r ? this._coinAnimator.processMagnetCoinCollection(this._currentCoins, e, n, i) : e.coinsList.length > 0 ? this._coinAnimator.processNormalCoinCollection(this._currentCoins, e, t) : this._coinAnimator.resetSoundPitch(),
(this._isCheckingCollision = !1);
});
}
removeCoinsFromTrackPiece(e) {
e.coinsList.length > 0 &&
e.coinsList.forEach((e) => {
this._currentCoins.get(e).setEnabled(!1);
});
}
}
(t.CoinsController = h), (h.MAX_COINS_POOL = 300);
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CoinsAnimator = void 0);
const i = n(40),
r = n(62),
o = n(52);
t.CoinsAnimator = class {
constructor(e) {
(this._magnetCoins = []),
(this._poolIndex = 0),
(this.POOL_SIZE = 100),
(this._animCoins = new Array()),
(this._directions = new Array(this.POOL_SIZE)),
(this._animStates = new Array(this.POOL_SIZE)),
(this._currCoinPitchMultiplier = 1),
(this._currCoinPitch = 1),
(this._constZ = 12),
(this._barPosition = new r.Vector3(-12, 0, 0)),
(this._masterCoinMesh = e),
(this._masterCoinMesh = this._masterCoinMesh.makeGeometryUnique()),
this._masterCoinMesh.setEnabled(!1),
this._masterCoinMesh.setParent(null),
(this._masterCoinMesh.renderingGroupId = 3);
for (let e = 0; e < this.POOL_SIZE; e++) {
const t = this._masterCoinMesh.createInstance("animCoin#" + e);
this._animCoins.push(t), (this._animStates[e] = !1), t.setEnabled(!1), (t.position = this._barPosition);
}
this._speed = 10;
}
reset() {
(this._magnetCoins = []), (this._currCoinPitch = 1), (this._currCoinPitchMultiplier = 1);
}
isCoinReached(e, t) {
const n = new r.Vector2(e.position.x, e.position.y),
i = new r.Vector2(this._barPosition.x, this._barPosition.y);
return r.Vector2.DistanceSquared(n, i) < t * t;
}
_addNormalCoin(e) {
const t = i.GameController.instance.camera.camera.getViewMatrix().clone(),
n = this._animCoins[this._poolIndex];
n.setEnabled(!0),
(n.position = e.position.clone()),
(n.rotation = e.rotation.clone()),
(n.rotationQuaternion = e.rotationQuaternion.clone()),
(n.position = r.Vector3.TransformCoordinates(n.position, t)),
(n.position.z = this._constZ),
(n.parent = i.GameController.instance.camera.camera),
(this._directions[this._poolIndex] = this._barPosition.subtract(n.position)),
(this._directions[this._poolIndex].z = 0),
this._directions[this._poolIndex].normalize(),
(this._animStates[this._poolIndex] = !0),
(this._poolIndex = ++this._poolIndex % this.POOL_SIZE);
}
update(e) {
const t = this;
this._animCoins.forEach(function (n, r) {
t._animStates[r] &&
(t._moveTowardsDest(n, t._directions[r], e),
t.isCoinReached(n, 1) && (o.gameState.updateCoins(i.GameController.instance.character.CurrentMovementState), (t._animStates[r] = !1), (n.position = t._barPosition), n.setEnabled(!1)));
});
}
_moveTowardsDest(e, t, n) {
(e.position = e.position.add(t.multiplyByFloats(n, n, 0).multiplyByFloats(this._speed, this._speed, 0))), (e.position.z = this._constZ);
}
processNormalCoinCollection(e, t, n) {
const i = 1 == t.SelectedDefinition.IsMine,
r = n.getAbsolutePosition();
for (let n = t.coinsList.length - 1; n >= 0; n--) {
const o = e.get(t.coinsList[n]);
this.playerCoinCollision(r.clone(), o.position, i) && (this._addNormalCoin(o), o.setEnabled(!1), this._fireEventsForCollectAndSound(), t.coinsList.splice(n, 1));
}
}
playerCoinCollision(e, t, n) {
let i = 0.4;
const r = e.subtract(t).lengthSquared() <= i * i;
(e.y += n ? 0.4 : 0.7), (i += n ? 0.5 : 0);
const o = e.subtract(t).lengthSquared() <= i * i;
return r || o;
}
_fireEventsForCollectAndSound() {
i.GameController.instance.sound.playCoinCollectedSFX(this._currCoinPitch),
(this._currCoinPitch += 0.01 * this._currCoinPitchMultiplier),
(this._currCoinPitchMultiplier += 0.4),
this._currCoinPitch > 4 && ((this._currCoinPitch = 1), (this._currCoinPitchMultiplier = 1));
}
resetSoundPitch() {
(this._currCoinPitch = 1), (this._currCoinPitchMultiplier = 1);
}
processMagnetCoinCollection(e, t, n, i) {
const r = n.position,
o = [];
null != t.PreviousTrackPiece && t.PreviousTrackPiece.coinsList.length > 0 && o.push(t.PreviousTrackPiece),
t.coinsList.length > 0 && o.push(t),
null != t.NextTrackPieces[0] && t.NextTrackPieces[0].coinsList.length > 0 && o.push(t.NextTrackPieces[0]),
null != t.NextTrackPieces[1] && t.NextTrackPieces[1].coinsList.length > 0 && o.push(t.NextTrackPieces[1]);
for (const t of o) {
for (let n = t.coinsList.length - 1; n >= 0; n--) {
const i = e.get(t.coinsList[n]);
r.subtract(i.position).length() <= 5 && (this._magnetCoins.push(t.coinsList[n]), t.coinsList.splice(n, 1));
}
}
for (let t = this._magnetCoins.length - 1; t >= 0; t--) {
const n = e.get(this._magnetCoins[t]);
let o = r.subtract(n.position);
const a = o.length(),
s = 1 / a;
(o = o.multiplyByFloats(s, s, s)),
(n.position = n.position.add(o.multiplyByFloats(i, i, i).multiplyByFloats(this._speed, this._speed, this._speed))),
a <= 1 && (n.setEnabled(!1), this._fireEventsForCollectAndSound(), this._addNormalCoin(n), this._magnetCoins.splice(t, 1));
}
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CameraController = t.CameraShake = void 0);
const i = n(40),
r = n(62),
o = n(48),
a = n(29),
s = n(156),
c = n(133);
class l {
set(e, t) {
(this._duration = t), (this._magnitude = e), (this._damperRate = e / t);
}
reset() {
(this._duration = 0), (this._damperRate = 0), (this._magnitude = 0);
}
}
t.CameraShake = l;
t.CameraController = class {
constructor(e) {
(this._defaultCameraRotationOffset = 0),
(this._defaultCameraFollowDistance = 4),
(this._defaultHeightOffset = 3.5),
(this._defaultCameraAcceleration = 0.05),
(this._boostCameraAcceleration = 0.1),
(this._defaultMaxCameraSpeed = 20),
(this._defaultCameraFOV = 0.7),
(this._defaultCameraRotationOffsetX = 15),
(this.INIT_CAMERA_POSITION = new r.Vector3(0, 4.79, -8.48)),
(this.INIT_CAMERA_ROTATION = new r.Vector3(6.77, 0, 0)),
(this._isFlyEndOver = !1),
(this._noCameraAnims = !1),
(this._scene = e),
(this._characterController = i.GameController.instance.character);
}
initialize() {
(this._noCameraAnims = !1),
this._noCameraAnims
? ((this._characterCamera = new r.FreeCamera("New Character Camera", new r.Vector3(1, 4, -5), this._scene)), a.EventHandler.instance.fireEvent(a.EventID.OnCameraFlyEnd))
: ((this._characterCamera = new r.FreeCamera("New Character Camera", new r.Vector3(42, 54, -34), this._scene)), (this._characterCamera.rotation = this.ToRadians(new r.Vector3(41, -53, -7)))),
(this._shakeSetting = new l()),
this._setCurrentCameraSetting(),
this._shakeSetting.reset(),
(this._activeCamera = this._scene.activeCamera),
this._setupChestCamera(),
this._setupFreeCamera(),
this._setupDebugCamera(),
a.EventHandler.instance.addListener(a.EventID.OnKeyPress, this._switchCamera.bind(this)),
a.EventHandler.instance.addListener(a.EventID.OnEnablingChestUI, () => {
this._scene.activeCamera = this._chestCamera;
}),
a.EventHandler.instance.addListener(a.EventID.OnDisablingChestUI, () => {
this.reset();
}),
a.EventHandler.instance.addListener(a.EventID.OnPowerupStart, (e) => {
e == c.BonusItemType.Boost && (this._cameraAcceleration = this._boostCameraAcceleration);
}),
a.EventHandler.instance.addListener(a.EventID.OnPowerupComplete, (e) => {
e == c.BonusItemType.Boost && (this._cameraAcceleration = this._defaultCameraAcceleration);
}),
a.EventHandler.instance.addListener(a.EventID.OnPlayGame, (e) => {
(this._isFlyEndOver = !0),
this._noCameraAnims ||
i.GameController.instance.tutorial.shouldRestartTutorial ||
e ||
((this._cameraIntroAnim = this._scene.beginDirectAnimation(this._freeCamera, [this._cameraIntroPositionAnimation], 0, 199, !1, 1, () => {
this._cameraIntroAnim.stop("IntroPosition"),
(this._characterCamera.position = this._freeCamera.position),
(this._scene.activeCamera = this._characterCamera),
a.EventHandler.instance.fireEvent(a.EventID.OnCameraIntroEnd);
})),
(this._cameraIntroAnim.disposeOnEnd = !0));
}),
a.EventHandler.instance.addListener(a.EventID.OnCameraFlySkip, () => {
this._cameraFlyAnim.goToFrame(450);
});
}
_setupFreeCamera() {
(this._freeCamera = new r.FreeCamera("FreeCamera", new r.Vector3(42, 54, -34), this._scene)),
(this._freeCamera.rotation = new r.Vector3(r.Tools.ToRadians(41), r.Tools.ToRadians(-53), r.Tools.ToRadians(-7))),
(this._scene.activeCamera = this._freeCamera),
this._noCameraAnims || this._cameraAnimation();
}
_setupDebugCamera() {
(this._debugCamera = new r.FreeCamera("DebugCamera", r.Vector3.Zero(), this._scene)), this._debugCamera.attachControl(this._scene.getEngine().getRenderingCanvas(), !1);
}
_setupChestCamera() {
(this._chestCamera = new r.FreeCamera("ChestCamera", r.Vector3.Zero(), this._scene)),
(this._chestCamera.position = this.INIT_CAMERA_POSITION),
(this._chestCamera.rotation = this.ToRadians(this.INIT_CAMERA_ROTATION)),
(this._chestCamera.layerMask = 3);
}
_switchToChestCamera() {
this._scene.activeCamera = this._chestCamera;
}
_switchBackToActiveCamera() {
this._scene.activeCamera = this._activeCamera;
}
_switchCamera(e) {
o.GameConfig.canSwitchCamera &&
"SwitchCamera" == e &&
(this._activeCamera == this._characterCamera
? ((this._debugCamera.position = this._characterCamera.position.clone()),
(this._scene.activeCamera = this._debugCamera),
i.GameController.instance.isGameRunning && a.EventHandler.instance.fireEvent(a.EventID.OnPauseGame),
a.EventHandler.instance.fireEvent(a.EventID.OnDebugCameraStateChange, !0))
: ((this._scene.activeCamera = this._characterCamera), a.EventHandler.instance.fireEvent(a.EventID.OnDebugCameraStateChange, !1)),
(this._activeCamera = this._scene.activeCamera));
}
_cameraAnimation() {
this._cameraFlyInPosAnimation = new r.Animation("FlyInPosition", "position", 60, r.Animation.ANIMATIONTYPE_VECTOR3, r.Animation.ANIMATIONLOOPMODE_CYCLE);
const e = [];
e.push({ frame: 0, value: new r.Vector3(31.686, 38.022, -18.004) }),
e.push({ frame: 71, value: new r.Vector3(28.236, 34.256, -17.206) }),
e.push({ frame: 450, value: new r.Vector3(0, 4.79, -8.48) }),
this._cameraFlyInPosAnimation.setKeys(e),
this._freeCamera.animations.push(this._cameraFlyInPosAnimation),
(this._cameraFlyInRotationAnimation = new r.Animation("FlyInRotation", "rotation", 60, r.Animation.ANIMATIONTYPE_VECTOR3, r.Animation.ANIMATIONLOOPMODE_CYCLE));
const t = [];
let n = this.ToRadians(new r.Vector3(40.993, -53.712, -6.714));
t.push({ frame: 0, value: n }),
(n = this.ToRadians(new r.Vector3(39.598, -49.786, -6.341))),
t.push({ frame: 71, value: n }),
(n = this.ToRadians(new r.Vector3(6.77, 0, 0))),
t.push({ frame: 450, value: n }),
this._cameraFlyInRotationAnimation.setKeys(t),
this._freeCamera.animations.push(this._cameraFlyInRotationAnimation),
(this._cameraFlyAnim = this._scene.beginDirectAnimation(this._freeCamera, [this._cameraFlyInRotationAnimation, this._cameraFlyInPosAnimation], 0, 450, !1, 1, () => {
a.EventHandler.instance.fireEvent(a.EventID.OnCameraFlyEnd), this._cameraFlyAnim.stop("FlyInRotation");
})),
(this._cameraFlyAnim.disposeOnEnd = !0),
(this._cameraIntroPositionAnimation = new r.Animation("IntroPosition", "position", 65, r.Animation.ANIMATIONTYPE_VECTOR3, r.Animation.ANIMATIONLOOPMODE_CYCLE));
const i = [];
i.push({ frame: 0, value: new r.Vector3(0, 4.79, -8.48) }),
i.push({ frame: 40, value: new r.Vector3(1.9156, 4.9015, -7.1546) }),
i.push({ frame: 57, value: new r.Vector3(3.43, 4.9817, -6.1363) }),
i.push({ frame: 127, value: new r.Vector3(6.3913, 5.0324, -7.8316) }),
i.push({ frame: 136, value: new r.Vector3(6.1818, 4.944, -8.7518) }),
i.push({ frame: 153, value: new r.Vector3(4.7875, 4.6546, -10.936) }),
i.push({ frame: 199, value: new r.Vector3(0, 3.986, -19.5) }),
this._cameraIntroPositionAnimation.setKeys(i),
this._freeCamera.animations.push(this._cameraIntroPositionAnimation);
}
ToRadians(e) {
return new r.Vector3(r.Tools.ToRadians(e.x), r.Tools.ToRadians(e.y), r.Tools.ToRadians(e.z));
}
preUpdate() {}
postUpdate() {
this._isFlyEndOver && this._updateCamera();
}
pause() {
this._cameraIntroAnim.pause();
}
resume() {
this._cameraIntroAnim.restart();
}
reset() {
(this._isFlyEndOver = !1),
(this._scene.activeCamera = this._freeCamera),
(this._activeCamera = this._activeCamera),
(this._cameraRotationOffset = this._defaultCameraRotationOffset),
(this._cameraFollowDistance = this._defaultCameraFollowDistance),
(this._cameraHeightOffset = this._defaultHeightOffset),
(this._cameraAcceleration = this._defaultCameraAcceleration),
(this._maxCameraSpeed = this._defaultMaxCameraSpeed),
(this._currentRotationOffsetX = this._defaultCameraRotationOffsetX),
(this._isCameraShaking = !1),
this._shakeSetting.reset(),
(this._cameraShakeTimer = 0),
(this._characterCamera.maxZ = 50),
this._noCameraAnims || ((this._freeCamera.position = this.INIT_CAMERA_POSITION), (this._freeCamera.rotation = this.ToRadians(this.INIT_CAMERA_ROTATION))),
i.GameController.instance.tutorial.shouldRestartTutorial && ((this._scene.activeCamera = this._characterCamera), (this._activeCamera = this._scene.activeCamera));
}
updateForResurrection(e) {
(this._player = e), this._characterCamera.setTarget(this._player.position), (this._characterCamera.position = e.position), (this._scene.activeCamera = this._characterCamera);
}
setTarget(e) {
(this._player = e), this._setCurrentCameraSetting();
}
shake(e, t) {
t > 0 && e > 0 && (this._shakeSetting.set(e, t), (this._isCameraShaking = !0), (this._cameraShakeTimer = 0));
}
_setCurrentCameraSetting() {
(this._cameraRotationOffset = this._defaultCameraRotationOffset),
(this._cameraHeightOffset = this._defaultHeightOffset),
(this._maxCameraSpeed = this._defaultMaxCameraSpeed),
(this._cameraFollowDistance = this._defaultCameraFollowDistance),
(this._cameraAcceleration = this._defaultCameraAcceleration),
(this._characterCamera.fov = this._defaultCameraFOV),
(this._currentRotationOffsetX = this._defaultCameraRotationOffsetX),
(this._characterCamera.maxZ = 50);
}
_updateCamera() {
if (null == this._player || this._characterController.CurrentMovementState == s.MovementState.Death) return;
let e;
if (
(this._characterController.isOnZipline
? (this._cameraHeightOffset = 2.5)
: this._characterController.CurrentMovementState == s.MovementState.WaterSliding
? (this._cameraHeightOffset = 3)
: (this._cameraHeightOffset = this._defaultHeightOffset),
this._player.rotationQuaternion)
) {
const t = new r.Matrix();
this._player.rotationQuaternion.toRotationMatrix(t), (e = Math.atan2(t.m[8], t.m[10]));
} else e = this._player.rotation.y;
const t = r.Tools.ToRadians(this._cameraRotationOffset) + e,
n = this._player.getAbsolutePosition(),
i = n.x + Math.sin(t) * this._cameraFollowDistance,
o = n.z + Math.cos(t) * this._cameraFollowDistance,
a = i - this._characterCamera.position.x,
c = this._characterController.currentPosition.y + this._cameraHeightOffset - this._characterCamera.position.y,
l = o - this._characterCamera.position.z;
let u = a * this._cameraAcceleration * 2,
h = c * this._cameraAcceleration,
d = l * this._cameraAcceleration * 2;
if (
((u > this._maxCameraSpeed || u < -this._maxCameraSpeed) && (u = u < 1 ? -this._maxCameraSpeed : this._maxCameraSpeed),
(h > this._maxCameraSpeed || h < -this._maxCameraSpeed) && (h = h < 1 ? -this._maxCameraSpeed : this._maxCameraSpeed),
(d > this._maxCameraSpeed || d < -this._maxCameraSpeed) && (d = d < 1 ? -this._maxCameraSpeed : this._maxCameraSpeed),
(this._characterCamera.position = new r.Vector3(this._characterCamera.position.x + u, this._characterCamera.position.y + h, this._characterCamera.position.z + d)),
this._characterCamera.setTarget(n),
this._freeCamera.setTarget(n),
(this._characterCamera.rotation = new r.Vector3(r.Tools.ToRadians(this._currentRotationOffsetX), this._characterCamera.rotation.y, 0)),
this._isCameraShaking)
)
if (
((this._cameraShakeTimer += this._scene.deltaTime / 1e3),
(this._shakeSetting._magnitude -= (this._scene.deltaTime / 1e3) * this._shakeSetting._damperRate),
this._shakeSetting._magnitude <= 0 || this._cameraShakeTimer > this._shakeSetting._duration)
)
this._isCameraShaking = !1;
else {
const e = Math.sin(35 * this._cameraShakeTimer) * this._shakeSetting._magnitude,
t = Math.sin(55 * this._cameraShakeTimer) * this._shakeSetting._magnitude;
(this._characterCamera.position = this._characterCamera.position.add(r.Vector3.Right().multiplyByFloats(e, e, e))),
(this._characterCamera.position = this._characterCamera.position.add(r.Vector3.Up().multiplyByFloats(t, t, t)));
}
}
get camera() {
return this._characterCamera;
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.ParticleController = void 0);
const i = n(62),
r = n(282);
t.ParticleController = class {
constructor(e) {
(this._particlePool = []), (this._scene = e);
}
initialize() {
(this._crashFireSmokeParticle = r.ParticleProvider.getCrashFireSmokeParticle(this._scene)),
(this._waterSplashParticle = r.ParticleProvider.getWaterSplashParticle(this._scene)),
(this._playerDuckWaterSplashParticle = r.ParticleProvider.getPlayerDuckWaterSplashParticle(this._scene)),
(this._cauldronFireParticle = r.ParticleProvider.getCauldronFireParticle(this._scene)),
(this._torchFireParticle = r.ParticleProvider.getTourchFireParticle(this._scene)),
(this._horizontalLineFireParticle = r.ParticleProvider.getHorizontalLineFireParticle(this._scene, new i.Vector3(1, 0, 0))),
(this._horizontalRightLineFireParticle = r.ParticleProvider.getHorizontalLineFireParticle(this._scene, new i.Vector3(-1, 0, 0))),
(this._waterTrailRight = r.ParticleProvider.getWaterTrail(this._scene, !0)),
(this._waterTrailLeft = r.ParticleProvider.getWaterTrail(this._scene, !1)),
(this._verticalLineFireParticle = r.ParticleProvider.getVerticalLineFireParticle(this._scene)),
(this._dustTrailParticle = r.ParticleProvider.getDustTrailParticle(this._scene)),
(this._waterSplashTrailParticle = r.ParticleProvider.getWaterSplashTrailParticle(this._scene)),
(this._narrowsFlashParticle = r.ParticleProvider.getNarrowsExplosionFlareParticle(this._scene)),
(this._narrowsSmokeParticle = r.ParticleProvider.getNarrowsExplosionDustParticle(this._scene)),
(this._sparksParticle = r.ParticleProvider.getSparksParticle(this._scene)),
this._particlePool.push(this._waterSplashParticle),
this._particlePool.push(this._playerDuckWaterSplashParticle),
this._particlePool.push(this._cauldronFireParticle),
this._particlePool.push(this._torchFireParticle),
this._particlePool.push(this._horizontalLineFireParticle),
this._particlePool.push(this._verticalLineFireParticle),
this._particlePool.push(this._dustTrailParticle),
this._particlePool.push(this._waterSplashTrailParticle),
this._particlePool.push(this._narrowsFlashParticle),
this._particlePool.push(this._narrowsSmokeParticle),
this._particlePool.push(this._sparksParticle);
}
preUpdate() {}
postUpdate() {}
pause() {}
resume() {}
reset() {}
get horizontalLineFireParticle() {
return this._horizontalLineFireParticle;
}
get verticalLineFireParticle() {
return this._verticalLineFireParticle;
}
get cauldronFireParticle() {
return this._cauldronFireParticle;
}
get getTourchFireParticle() {
return this._cauldronFireParticle;
}
get waterSplashParticle() {
return this._waterSplashParticle;
}
get playerDuckWaterSplashParticle() {
return this._playerDuckWaterSplashParticle;
}
get fireCrashSmokePartile() {
return this._crashFireSmokeParticle;
}
get dustTrailParticle() {
return this._dustTrailParticle;
}
get waterTrailRight() {
return this._waterTrailRight;
}
get waterTrailLeft() {
return this._waterTrailLeft;
}
get waterSplashTrailParticle() {
return this._waterSplashTrailParticle;
}
get narrowsFlashParticle() {
return this.narrowsFlashParticle;
}
get narrowsSmokeParticle() {
return this._narrowsSmokeParticle;
}
get sparksParticle() {
return this._sparksParticle;
}
addEffectsToTrackPiece(e) {
e.particleSystems.length > 0 ||
e.rootMesh
.getChildMeshes(!1, (e) => e instanceof i.AbstractMesh)
.forEach((t) => {
const n = t;
if (n.name.startsWith("Effect")) {
if (n.name.includes("_waterSplash")) {
const t = this._waterSplashParticle.clone("Fx_waterSplash_" + n.name, n);
(t.emitter = n), e.particleSystems.push(t);
}
if (n.name.includes("_fire_breath_hl")) {
const t = this._horizontalLineFireParticle.clone("Fx_fire_hl_" + n.name, n);
(t.emitter = n), e.particleSystems.push(t);
}
if (n.name.includes("_fire_breath_hr")) {
const t = this._horizontalRightLineFireParticle.clone("Fx_fire_hr_" + n.name, n);
(t.minInitialRotation = Math.PI), (t.maxInitialRotation = Math.PI), (t.emitter = n), e.particleSystems.push(t);
}
if (n.name.includes("_fire_breath_v")) {
const t = this._verticalLineFireParticle.clone("Fx_fire_v_" + n.name, n);
(t.emitter = n), e.particleSystems.push(t);
}
if (n.name.includes("_fire_cauldron_left") || n.name.includes("_fire_cauldron_right")) {
const t = this._cauldronFireParticle.clone("Fx_fire_cauldron_" + n.name, n);
e.particleSystems.push(t);
}
if (n.name.includes("_torch_fire_a")) {
const t = this._torchFireParticle.clone("Fx_torchFire_" + n.name, n);
(t.emitter = n), e.particleSystems.push(t);
}
if (n.name.includes("_sparks")) {
const t = this._sparksParticle.clone("Fx_sparks_" + n.name, n);
(t.emitter = n), e.particleSystems.push(t);
}
if (n.name.includes("_column_explosion")) {
const t = this._narrowsFlashParticle.clone("Fx_column_explosion_flash_" + n.name, n);
t.stop(), e.particleSystems.push(t);
const i = this._narrowsSmokeParticle.clone("Fx_column_explosion_dust_" + n.name, n);
i.stop(), e.particleSystems.push(i);
}
n.isVisible = !1;
}
});
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.ParticleProvider = void 0);
const i = n(62),
r = n(40),
o = n(19);
t.ParticleProvider = class {
static getCrashFireSmokeParticle(e) {
const t = i.ParticleSystem.Parse(
{
name: "smokeBurst",
id: "default system",
capacity: 1e4,
emitter: [0, 0, 0],
particleEmitterType: { type: "BoxParticleEmitter", direction1: [0, 1, 0], direction2: [0, 1, 0], minEmitBox: [-0.5, -0.5, -0.5], maxEmitBox: [0.5, 0.5, 0.5] },
texture: {
tags: null,
url: "",
uOffset: 0,
vOffset: 0,
uScale: 1,
vScale: 1,
uAng: 0,
vAng: 0,
wAng: 0,
uRotationCenter: 0.5,
vRotationCenter: 0.5,
wRotationCenter: 0.5,
isBlocking: !0,
uniqueId: 8,
name: "",
hasAlpha: !1,
getAlphaFromRGB: !1,
level: 1,
coordinatesIndex: 0,
coordinatesMode: 0,
wrapU: 1,
wrapV: 1,
wrapR: 1,
anisotropicFilteringLevel: 4,
isCube: !1,
is3D: !1,
is2DArray: !1,
gammaSpace: !0,
invertZ: !1,
lodLevelInAlpha: !1,
lodGenerationOffset: 0,
lodGenerationScale: 0,
linearSpecularLOD: !1,
isRenderTarget: !1,
animations: [],
invertY: !0,
samplingMode: 3,
},
isLocal: !1,
animations: [],
beginAnimationOnStart: !1,
beginAnimationFrom: 0,
beginAnimationTo: 60,
beginAnimationLoop: !1,
startDelay: 0,
renderingGroupId: 0,
isBillboardBased: !0,
billboardMode: 7,
minAngularSpeed: 0.3,
maxAngularSpeed: 0.5,
minSize: 1,
maxSize: 1.5,
minScaleX: 2,
maxScaleX: 2,
minScaleY: 2,
maxScaleY: 2,
minEmitPower: 1,
maxEmitPower: 1,
minLifeTime: 1,
maxLifeTime: 1,
emitRate: 10,
gravity: [0, 0, 0],
noiseStrength: [1, 1, 1],
color1: [0, 0, 0, 1],
color2: [0, 0, 0, 0.6],
colorDead: [0, 0, 0, 0],
updateSpeed: 0.015,
targetStopDuration: 1,
blendMode: 2,
preWarmCycles: 0,
preWarmStepOffset: 1,
minInitialRotation: 0,
maxInitialRotation: 0,
startSpriteCellID: 0,
endSpriteCellID: 0,
spriteCellChangeSpeed: 1,
spriteCellWidth: 0,
spriteCellHeight: 0,
spriteRandomStartCell: !1,
isAnimationSheetEnabled: !1,
colorGradients: [],
textureMask: [1, 1, 1, 1],
customShader: null,
preventAutoStart: !0,
},
e,
"",
!0
);
return (
(t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.TRILINEAR_SAMPLINGMODE)),
(t.blendMode = i.ParticleSystem.BLENDMODE_STANDARD),
(t.startSpriteCellID = 2),
(t.endSpriteCellID = 2),
(t.spriteCellHeight = 128),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0),
(t.targetStopDuration = 1),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
t
);
}
static getWaterSplashParticle(e) {
const t = new i.ParticleSystem("waterfallSplash_Particles", 2e3, e),
n = i.MeshBuilder.CreateBox("fx_box", { height: 0.2, width: 1, depth: 0.5 }, e);
n.isVisible = !1;
const a = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = a),
(a.useMeshNormalsForDirection = !1),
(t.emitter = n),
(a.direction1 = new i.Vector3(0, 2, 0)),
(a.direction2 = new i.Vector3(0, 2, 0)),
(t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(t.startSpriteCellID = 3),
(t.endSpriteCellID = 3),
(t.spriteCellHeight = 128),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0),
t.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
t.addColorGradient(0.2, new i.Color4(0.2, 0.2, 0.2, 0.2)),
t.addColorGradient(0.4, new i.Color4(0.2, 0.2, 0.2, 0.4)),
t.addColorGradient(0.6, new i.Color4(0.2, 0.2, 0.2, 1)),
t.addColorGradient(0.8, new i.Color4(0.2, 0.2, 0.2, 0.6)),
t.addColorGradient(1, new i.Color4(0, 0, 0, 0)),
(t.minSize = 0.4),
(t.maxSize = 0.8),
t.addSizeGradient(0, 0.1, 0.6),
t.addSizeGradient(1, 0.6, 1),
(t.minLifeTime = 0.8),
(t.maxLifeTime = 1),
(t.emitRate = 40),
(t.blendMode = i.ParticleSystem.BLENDMODE_MULTIPLYADD),
(t.gravity = new i.Vector3(0, -8, 0)),
(t.minInitialRotation = 0),
(t.maxInitialRotation = Math.PI),
t.addAngularSpeedGradient(0, 0.2, 0.6),
t.addAngularSpeedGradient(1, 0.8, 1),
(t.minEmitPower = 2),
(t.maxEmitPower = 4),
(t.updateSpeed = 0.02),
t.addLimitVelocityGradient(0, 15),
t.addLimitVelocityGradient(1, 20),
t
);
}
static getPlayerDuckWaterSplashParticle(e) {
const t = new i.ParticleSystem("waterfallSplash_Particles", 300, e),
n = i.MeshBuilder.CreateSphere("fx_sphere", { segments: 10, diameter: 1 }, e);
n.isVisible = !1;
const a = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = a),
(a.useMeshNormalsForDirection = !0),
(t.isLocal = !0),
(t.emitter = n),
(a.direction1 = new i.Vector3(0, 0, 10)),
(a.direction2 = new i.Vector3(0, 0, 10)),
(t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(t.startSpriteCellID = 3),
(t.endSpriteCellID = 3),
(t.spriteCellHeight = 128),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0),
t.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
t.addColorGradient(0.2, new i.Color4(0.2, 0.2, 0.2, 0.2)),
t.addColorGradient(0.4, new i.Color4(0.2, 0.2, 0.2, 0.4)),
t.addColorGradient(0.6, new i.Color4(0.2, 0.2, 0.2, 1)),
t.addColorGradient(0.8, new i.Color4(0.2, 0.2, 0.2, 0.6)),
t.addColorGradient(1, new i.Color4(0, 0, 0, 0)),
(t.minSize = 0.2),
(t.maxSize = 0.4),
t.addSizeGradient(0, 0.06, 0.08),
t.addSizeGradient(1, 0.08, 1),
(t.minLifeTime = 0.2),
(t.maxLifeTime = 0.4),
(t.emitRate = 300),
(t.blendMode = i.ParticleSystem.BLENDMODE_MULTIPLYADD),
(t.minInitialRotation = 0),
(t.maxInitialRotation = Math.PI),
t.addAngularSpeedGradient(0, 0.2, 0.6),
t.addAngularSpeedGradient(1, 0.8, 1),
(t.minEmitPower = 5),
(t.maxEmitPower = 10),
(t.updateSpeed = 0.02),
t.addLimitVelocityGradient(0, 5),
t.addLimitVelocityGradient(1, 10),
(t.targetStopDuration = 0.5),
t
);
}
static getHorizontalLineFireParticle(e, t) {
const n = new i.ParticleSystem("fire_h_particles", 2e3, e),
o = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE);
o.isVisible = !1;
const a = new i.MeshParticleEmitter(o);
(n.particleEmitterType = a), (a.useMeshNormalsForDirection = !1);
(t = t.multiplyByFloats(3, 3, 3)),
(a.direction1 = t.clone()),
(a.direction2 = t.clone()),
(n.emitter = o),
n.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
n.addColorGradient(0.2, new i.Color4(0.1, 0.1, 1, 0.2)),
n.addColorGradient(0.4, new i.Color4(0, 0, 1, 0.6)),
n.addColorGradient(0.6, new i.Color4(0.3, 0.2, 1, 0.8)),
n.addColorGradient(0.8, new i.Color4(0.8, 0.8, 0.1, 1)),
n.addColorGradient(1, new i.Color4(1, 0.2, 0.3, 0)),
(n.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(n.isLocal = !0),
(n.minSize = 1),
(n.maxSize = 1.5),
(n.minLifeTime = 0.3),
(n.maxLifeTime = 1),
(n.minScaleX = 1),
(n.minScaleY = 1),
(n.maxScaleX = 6),
(n.maxScaleY = 1),
(n.emitRate = 20),
(n.minEmitPower = 5),
(n.maxEmitPower = 10),
(n.updateSpeed = 0.01),
n.addLimitVelocityGradient(0, 60),
n.addLimitVelocityGradient(0.5, 80);
const s = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.TRILINEAR_SAMPLINGMODE);
return (
(n.particleTexture = s),
(n.startSpriteCellID = 4),
(n.endSpriteCellID = 8),
(n.spriteCellHeight = 64),
(n.spriteCellWidth = 128),
(n.spriteCellChangeSpeed = 3),
(n.isAnimationSheetEnabled = !0),
(n.blendMode = i.ParticleSystem.BLENDMODE_ADD),
n
);
}
static getVerticalLineFireParticle(e) {
const t = new i.ParticleSystem("fire_v_particles", 3, e),
n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE);
n.isVisible = !1;
const o = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = o),
(o.useMeshNormalsForDirection = !1),
(o.direction1 = new i.Vector3(0, 1, 0)),
(o.direction2 = new i.Vector3(0, 1, 0)),
(t.emitter = n),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
t.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
t.addColorGradient(0.2, new i.Color4(1, 0.55, 0.25, 0.2)),
t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.6)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.8)),
t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.3)),
t.addColorGradient(1, new i.Color4(0, 0, 0, 0)),
(t.isLocal = !0),
(t.minInitialRotation = -0.5 * Math.PI),
(t.maxInitialRotation = -0.5 * Math.PI),
t.addSizeGradient(0.2, 1.2, 1.2),
t.addSizeGradient(0.5, 1.4, 1.6),
t.addSizeGradient(0.8, 1.6, 1.8),
t.addSizeGradient(1, 1, 1.2),
(t.minLifeTime = 1.6),
(t.maxLifeTime = 2),
(t.minScaleX = 2),
(t.maxScaleX = 2),
(t.minScaleY = 0.8),
(t.maxScaleY = 0.8),
(t.emitRate = 2),
(t.minEmitPower = 5),
(t.maxEmitPower = 10),
(t.updateSpeed = 0.05),
t.addLimitVelocityGradient(0, 4),
t.addLimitVelocityGradient(1, 20),
(t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.LINEAR_LINEAR)),
(t.startSpriteCellID = 4),
(t.endSpriteCellID = 11),
(t.spriteCellHeight = 64),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 2),
(t.isAnimationSheetEnabled = !0),
(t.blendMode = i.ParticleSystem.BLENDMODE_ADD),
t
);
}
static getDustTrailParticle(e) {
const t = new i.ParticleSystem("lineFire_Particles", 2e3, e),
n = i.Mesh.CreateBox("fx_box", 0.2, e, !0, i.Mesh.DOUBLESIDE);
n.isVisible = !1;
const a = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = a),
(a.useMeshNormalsForDirection = !1),
(a.direction1 = new i.Vector3(-0.1, 0.1, -0.5)),
(a.direction2 = new i.Vector3(0.1, 0.1, -1)),
(t.emitter = n),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)),
t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)),
t.addColorGradient(0.4, new i.Color4(1, 1, 1, 1)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)),
t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)),
t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)),
(t.isLocal = !0),
(t.minSize = 0.01),
(t.maxSize = 0.05),
(t.minInitialRotation = 0),
(t.maxInitialRotation = Math.PI),
t.addAngularSpeedGradient(0, 0.5, 0.8),
t.addAngularSpeedGradient(1, 3, 4),
t.addSizeGradient(0, 0.05, 0.3),
t.addSizeGradient(1, 0.05, 0.2),
(t.minLifeTime = 0.8),
(t.maxLifeTime = 1),
(t.emitRate = 30),
(t.minEmitPower = 5),
(t.maxEmitPower = 10),
(t.updateSpeed = 0.05),
(t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.TRILINEAR_SAMPLINGMODE)),
(t.startSpriteCellID = 2),
(t.endSpriteCellID = 2),
(t.spriteCellHeight = 128),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0),
(t.blendMode = i.ParticleSystem.BLENDMODE_STANDARD),
t
);
}
static getWaterSplashTrailParticle(e) {
const t = new i.ParticleSystem("waterSplash_Particles", 500, e),
n = i.Mesh.CreateBox("fx_box", 0.2, e, !0, i.Mesh.DOUBLESIDE);
n.isVisible = !1;
const r = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = r),
(r.useMeshNormalsForDirection = !0),
(r.direction1 = new i.Vector3(-1, 0.2, -1)),
(r.direction2 = new i.Vector3(1, 0.2, -1)),
(t.direction1 = new i.Vector3(-50, 1, 0)),
(t.direction2 = new i.Vector3(50, 1, 0)),
(t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)),
(t.startSpriteCellID = 3),
(t.endSpriteCellID = 3),
(t.spriteCellHeight = 128),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0),
(t.blendMode = i.ParticleSystem.BLENDMODE_ADD),
t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)),
t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)),
t.addColorGradient(0.4, new i.Color4(1, 1, 1, 0.8)),
t.addColorGradient(0.6, new i.Color4(0.5, 0.5, 0.5, 0.4)),
t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)),
t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)),
(t.minSize = 0.08),
(t.maxSize = 0.1),
t.addSizeGradient(0, 0.1, 0.2),
t.addSizeGradient(0.5, 0.2, 0.3),
t.addSizeGradient(1, 0.1, 0.2),
t.addLimitVelocityGradient(0, 4),
t.addLimitVelocityGradient(1, 6),
t.addAngularSpeedGradient(0, 0.5, 0.8),
t.addAngularSpeedGradient(1, 0.1, 0.2),
(t.minLifeTime = 0.1),
(t.maxLifeTime = 0.2),
(t.emitRate = 500),
(t.minEmitPower = 10),
(t.maxEmitPower = 20),
(t.updateSpeed = 0.006),
t
);
}
static getCauldronFireParticle(e) {
const t = new i.ParticleSystem("fire_v_particles", 12, e),
n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE);
n.isVisible = !1;
const o = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = o),
(o.useMeshNormalsForDirection = !1),
(o.direction1 = new i.Vector3(0, 1, 0)),
(o.direction2 = new i.Vector3(0, 1, 0)),
(t.emitter = n),
t.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
t.addColorGradient(0.2, new i.Color4(1, 0.55, 1, 0.2)),
t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.8)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.4)),
t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.2)),
t.addColorGradient(1, new i.Color4(0, 0, 0, 0)),
(t.isLocal = !0),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(t.minInitialRotation = -0.5 * Math.PI),
(t.maxInitialRotation = -0.5 * Math.PI),
t.addSizeGradient(0.2, 1.2, 1.2),
t.addSizeGradient(0.5, 1.4, 1.6),
t.addSizeGradient(0.8, 1.6, 1.8),
t.addSizeGradient(1, 1, 1.2),
(t.minLifeTime = 1),
(t.maxLifeTime = 1.6),
(t.minScaleX = 1),
(t.maxScaleX = 1),
(t.minScaleY = 0.6),
(t.maxScaleY = 0.6),
(t.emitRate = 6),
(t.minEmitPower = 1),
(t.maxEmitPower = 2),
(t.updateSpeed = 0.005),
t.addLimitVelocityGradient(0, 1),
t.addLimitVelocityGradient(1, 2),
(t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.LINEAR_LINEAR)),
(t.startSpriteCellID = 8),
(t.endSpriteCellID = 15),
(t.spriteCellHeight = 64),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 7),
(t.isAnimationSheetEnabled = !0),
(t.blendMode = i.ParticleSystem.BLENDMODE_ADD),
t
);
}
static getTourchFireParticle(e) {
const t = new i.ParticleSystem("torchFire_v_particles", 6, e),
n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE);
n.isVisible = !1;
const o = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = o),
(o.useMeshNormalsForDirection = !1),
(o.direction1 = new i.Vector3(0, 1, 0)),
(o.direction2 = new i.Vector3(0, 1, 0)),
(t.emitter = n),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
t.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
t.addColorGradient(0.2, new i.Color4(1, 0.55, 1, 0.2)),
t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.8)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)),
t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.2)),
t.addColorGradient(1, new i.Color4(0, 0, 0, 0)),
(t.isLocal = !0),
(t.minInitialRotation = -0.5 * Math.PI),
(t.maxInitialRotation = -0.5 * Math.PI),
t.addSizeGradient(0, 0.4, 0.6),
t.addSizeGradient(0.5, 0.6, 0.8),
t.addSizeGradient(1, 0.8, 1),
(t.minLifeTime = 1),
(t.maxLifeTime = 1.2),
(t.minScaleX = 1.2),
(t.maxScaleX = 1.2),
(t.minScaleY = 1),
(t.maxScaleY = 1),
(t.emitRate = 6),
(t.minEmitPower = 1),
(t.maxEmitPower = 2),
(t.updateSpeed = 0.009),
t.addLimitVelocityGradient(0, 1),
t.addLimitVelocityGradient(1, 2),
(t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.LINEAR_LINEAR)),
(t.startSpriteCellID = 8),
(t.endSpriteCellID = 15),
(t.spriteCellHeight = 64),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 1),
(t.isAnimationSheetEnabled = !0),
(t.blendMode = i.ParticleSystem.BLENDMODE_ADD),
t
);
}
static getNarrowsExplosionFlareParticle(e) {
const t = new i.ParticleSystem("flare_particles", 3, e),
n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE);
n.isVisible = !1;
const o = new i.MeshParticleEmitter(n);
return (
(t.isLocal = !0),
(t.particleEmitterType = o),
(o.useMeshNormalsForDirection = !0),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(t.minLifeTime = 0.09),
(t.maxLifeTime = 0.1),
(t.minInitialRotation = 0),
(t.maxInitialRotation = Math.PI),
(t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !1, !1, i.Texture.TRILINEAR_SAMPLINGMODE)),
(t.startSpriteCellID = 45),
(t.endSpriteCellID = 45),
(t.spriteCellHeight = 64),
(t.spriteCellWidth = 64),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0),
t.addColorGradient(0, new i.Color4(0, 0, 0, 0)),
t.addColorGradient(0.2, new i.Color4(1, 0.55, 0.25, 0.2)),
t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.6)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.8)),
t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.3)),
t.addColorGradient(1, new i.Color4(1, 0.2, 0.3, 0)),
t.addSizeGradient(0, 2, 4),
t.addSizeGradient(0.5, 4, 6),
t.addSizeGradient(1, 2, 4),
(t.blendMode = i.ParticleSystem.BLENDMODE_ADD),
(t.startDelay = 1800),
(t.targetStopDuration = 0.3),
t
);
}
static getNarrowsExplosionDustParticle(e) {
const t = new i.ParticleSystem("Dust_Particles", 50, e),
n = i.Mesh.CreateSphere("fx_sphere", 10, 0.5, e, !0, i.Mesh.DOUBLESIDE);
(n.isVisible = !1),
(t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.TRILINEAR_SAMPLINGMODE)),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(t.startSpriteCellID = 2),
(t.endSpriteCellID = 2),
(t.spriteCellHeight = 128),
(t.spriteCellWidth = 128),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0);
const a = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = a),
(a.useMeshNormalsForDirection = !0),
(t.emitter = n),
t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)),
t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)),
t.addColorGradient(0.4, new i.Color4(1, 1, 1, 1)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)),
t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)),
t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)),
(t.isLocal = !1),
(t.minSize = 0.5),
(t.maxSize = 2),
(t.minInitialRotation = 0.4),
(t.maxInitialRotation = Math.PI),
t.addAngularSpeedGradient(0, 0.5, 0.8),
t.addAngularSpeedGradient(1, 1, 2),
t.addSizeGradient(0, 0.6, 1),
t.addSizeGradient(1, 1.5, 1.5),
(t.minLifeTime = 1.2),
(t.maxLifeTime = 2),
(t.emitRate = 30),
(t.minEmitPower = 10),
(t.maxEmitPower = 20),
(t.updateSpeed = 0.04),
t.addLimitVelocityGradient(0, 2),
t.addLimitVelocityGradient(0.6, 0.8),
t.addLimitVelocityGradient(1, 0.1),
(t.blendMode = i.ParticleSystem.BLENDMODE_STANDARD),
(t.startDelay = 1800),
(t.targetStopDuration = 1.3),
t
);
}
static getSparksParticle(e) {
const t = new i.ParticleSystem("Sparks_Particles", 20, e),
n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE);
(n.isVisible = !1),
(t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !1, !1, i.Texture.TRILINEAR_SAMPLINGMODE)),
(t.startSpriteCellID = 45),
(t.endSpriteCellID = 45),
(t.spriteCellHeight = 64),
(t.spriteCellWidth = 64),
(t.spriteCellChangeSpeed = 0),
(t.isAnimationSheetEnabled = !0);
const o = new i.MeshParticleEmitter(n);
return (
(t.particleEmitterType = o),
(o.useMeshNormalsForDirection = !1),
(o.direction1 = new i.Vector3(-1, -0.5, -0.5)),
(o.direction2 = new i.Vector3(1, 0.5, 0.5)),
(t.emitter = n),
t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)),
t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)),
t.addColorGradient(0.4, new i.Color4(1, 1, 1, 1)),
t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)),
t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)),
t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)),
(t.isLocal = !0),
(t.minSize = 0.1),
(t.maxSize = 0.2),
(t.minInitialRotation = 0),
(t.maxInitialRotation = Math.PI),
t.addAngularSpeedGradient(0, 0.5, 0.8),
t.addAngularSpeedGradient(1, 1, 2),
t.addSizeGradient(0, 0.2, 0.3),
t.addSizeGradient(0.6, 0.1, 0.2),
t.addSizeGradient(1, 0.09, 0.1),
(t.minLifeTime = 2),
(t.maxLifeTime = 3),
(t.emitRate = 30),
(t.minEmitPower = 10),
(t.maxEmitPower = 20),
(t.updateSpeed = 0.09),
t.addLimitVelocityGradient(0, 4),
t.addLimitVelocityGradient(0.6, 6),
t.addLimitVelocityGradient(1, 9),
(t.blendMode = i.ParticleSystem.BLENDMODE_ADD),
(t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
t
);
}
static getWaterTrail(e, t) {
const n = new i.ParticleSystem("watertrail", 1e3, e);
return (
(n.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)),
(n.emitRate = 100),
(n.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(n.blendMode = i.ParticleSystem.BLENDMODE_ADD),
(n.emitter = i.Vector3.Zero()),
n.createPointEmitter(new i.Vector3(t ? 1 : -1, 0.5, -1), new i.Vector3(t ? 1 : -1, 0.5, -1)),
(n.gravity = i.Vector3.Zero()),
(n.startSpriteCellID = 3),
(n.endSpriteCellID = 3),
(n.spriteCellHeight = 128),
(n.spriteCellWidth = 128),
(n.spriteCellChangeSpeed = 0),
(n.isAnimationSheetEnabled = !0),
(n.minSize = 0.3),
(n.maxSize = 0.3),
(n.minLifeTime = 0.5),
(n.maxLifeTime = 0.5),
(n.updateSpeed = 0.07),
n
);
}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.BonusController = void 0);
const r = n(40),
o = n(133),
a = n(178),
s = n(62),
c = n(150),
l = n(238),
u = n(29),
h = n(139);
t.BonusController = class {
constructor(e) {
(this._totalProbability = 100),
(this._spawnProbability = 50),
(this._bonusLedgeLeftRightAdjust = 0.375),
(this._isCheckingCollision = !1),
(this._bonusItems = new Map([
["pickupShield", o.BonusItemType.Shield],
["pickupBoost", o.BonusItemType.Boost],
["pickupVacuum", o.BonusItemType.Vacuum],
])),
(this._scene = e),
(this._pickupMaterialProvider = new l.CoinsMaterialProvider(this._scene));
}
initialize() {
this._loadProbabilities(), this._loadBonusModels(), this._crateSparklesPS();
}
preUpdate() {}
postUpdate() {}
pause() {}
resume() {}
_crateSparklesPS() {
(this._staticSparksPS = s.ParticleSystem.Parse(
{
name: "power_up_item_shine",
id: "default system",
capacity: 100,
emitter: [0, 0, 0],
particleEmitterType: { type: "BoxParticleEmitter", direction1: [-1, -1, -1], direction2: [1, 1, 1], minEmitBox: [-0.5, -0.5, -0.5], maxEmitBox: [0.5, 0.5, 0.5] },
texture: {
tags: null,
url: "",
uOffset: 0,
vOffset: 0,
uScale: 1,
vScale: 1,
uAng: 0,
vAng: 0,
wAng: 0,
uRotationCenter: 0.5,
vRotationCenter: 0.5,
wRotationCenter: 0.5,
isBlocking: !0,
uniqueId: 8,
name: "",
hasAlpha: !1,
getAlphaFromRGB: !1,
level: 1,
coordinatesIndex: 0,
coordinatesMode: 0,
wrapU: 1,
wrapV: 1,
wrapR: 1,
anisotropicFilteringLevel: 4,
isCube: !1,
is3D: !1,
is2DArray: !1,
gammaSpace: !0,
invertZ: !1,
lodLevelInAlpha: !1,
lodGenerationOffset: 0,
lodGenerationScale: 0,
linearSpecularLOD: !1,
isRenderTarget: !1,
animations: [],
invertY: !0,
samplingMode: 3,
},
isLocal: !1,
animations: [],
beginAnimationOnStart: !1,
beginAnimationFrom: 0,
beginAnimationTo: 60,
beginAnimationLoop: !1,
startDelay: 0,
renderingGroupId: 0,
isBillboardBased: !0,
billboardMode: 7,
minAngularSpeed: 1,
maxAngularSpeed: 2,
minSize: 0.1,
maxSize: 0.1,
minScaleX: 1,
maxScaleX: 1,
minScaleY: 1,
maxScaleY: 1,
minEmitPower: 0,
maxEmitPower: 0,
minLifeTime: 0.5,
maxLifeTime: 1,
emitRate: 10,
gravity: [0, 0, 0],
noiseStrength: [10, 10, 10],
color1: [1, 1, 1, 1],
color2: [1, 1, 1, 1],
colorDead: [1, 1, 1, 0],
updateSpeed: 0.005,
targetStopDuration: 0,
blendMode: 2,
preWarmCycles: 0,
preWarmStepOffset: 1,
minInitialRotation: 10,
maxInitialRotation: 45,
startSpriteCellID: 0,
endSpriteCellID: 0,
spriteCellChangeSpeed: 1,
spriteCellWidth: 0,
spriteCellHeight: 0,
spriteRandomStartCell: !1,
isAnimationSheetEnabled: !1,
textureMask: [1, 1, 1, 1],
customShader: null,
preventAutoStart: !1,
},
this._scene,
null,
!1
)),
(this._staticSparksPS.particleTexture = new s.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, s.Texture.TRILINEAR_SAMPLINGMODE)),
(this._staticSparksPS.startSpriteCellID = 45),
(this._staticSparksPS.endSpriteCellID = 45),
(this._staticSparksPS.spriteCellHeight = 64),
(this._staticSparksPS.spriteCellWidth = 64),
(this._staticSparksPS.spriteCellChangeSpeed = 0),
(this._staticSparksPS.isAnimationSheetEnabled = !0),
this._staticSparksPS.addColorGradient(0, new s.Color4(1, 1, 1, 0.4)),
this._staticSparksPS.addColorGradient(0.5, new s.Color4(1, 1, 1, 1)),
this._staticSparksPS.addColorGradient(1, new s.Color4(1, 1, 1, 0)),
(this._staticSparksPS.minSize = 0.4),
(this._staticSparksPS.maxSize = 0.8),
(this._staticSparksPS.targetStopDuration = 10),
(this._staticSparksPS.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
this._staticSparksPS.stop();
}
reset() {
this._loadProbabilities(),
this._bonusItemPool.forEach((e) => {
const t = e[0];
(t.position = s.Vector3.Zero()), t.setEnabled(!1);
});
}
_loadProbabilities() {
(this._availableItemProbabilities = new Array()),
this._availableItemProbabilities.push(new a.BonusItemTypeProbability(o.BonusItemType.Boost, 40, 20)),
this._availableItemProbabilities.push(new a.BonusItemTypeProbability(o.BonusItemType.Shield, 30, 20)),
this._availableItemProbabilities.push(new a.BonusItemTypeProbability(o.BonusItemType.Vacuum, 30, 20));
}
_loadBonusModels() {
return i(this, void 0, void 0, function* () {
this._bonusItemPool = new Map();
const e = this._pickupMaterialProvider.defaultPickupMaterial;
for (const [t, n] of this._bonusItems) {
const i = yield s.SceneLoader.ImportMeshAsync(null, `assets/objects/pickups/${t}.glb`, void 0, this._scene),
o = i.meshes[0];
o.setEnabled(!1), (o.position = s.Vector3.Zero());
const a = s.MeshBuilder.CreateBox("pickupCollider", { size: 1 });
(a.parent = o),
(a.position = s.Vector3.Zero()),
(a.checkCollisions = !0),
(a.scaling.x = 2.5),
(a.isVisible = !1),
this._bonusItemPool.set(n, [o, a]),
i.meshes.forEach((t) => {
t instanceof s.Mesh && ((t.material = e), (t.renderingGroupId = r.ETR2RenderingGroup.PICK_UPS));
});
}
});
}
addBonusItems(e) {
if (r.GameController.instance.powerup.isPowerupActive()) return;
const t = e.trackPaths[o.TrackPieceDefinition.MainPathID],
n = r.GameController.instance.track.getZoneInfo(e.SelectedDefinition.ID.ZoneID),
i =
0 == (n.CoinSettings.UseTrackDefinitonsForAllowingBonus || (null != n && !!n.CoinSettings.UseTrackDefinitonsForAllowingBonus)) &&
(e.SelectedDefinition.IsMine || e.SelectedDefinition.isTurn() || e.SelectedDefinition.IsStairs || e.SelectedDefinition.IsWaterSlide || e.SelectedDefinition.IsSlideUnder),
c = null != e.EnterPiece && !!e.EnterPiece.ForcePickupPlacementOnTrackPiece && e.EnterPiece.PickupTypeToPlace != o.BonusItemType.None,
l = e.NextTrackPieces[0],
u = e.PreviousTrackPiece,
h = null != l && (!!l.SelectedDefinition.IsJumpOver || !!l.SelectedDefinition.IsSlideUnder),
d = null != u && (!!u.SelectedDefinition.IsJumpOver || !!u.SelectedDefinition.IsSlideUnder || !!u.SelectedDefinition.IsStairs);
if (
(null == t ||
0 == t.length ||
e.DistanceSinceLastBonusItem < a.BonusItemProtoData.MinDistanceBetweenBonusItems ||
e.DistanceSinceLastMandatoryTurn < a.BonusItemProtoData.MinDistanceAfterTurn ||
e.SelectedDefinition.IsZipLine ||
e.DistanceSinceLastZipline < a.BonusItemProtoData.MinDistanceAfterZipline ||
1 == i ||
0 == e.CurrCanSpawnPowerup ||
1 == h ||
1 == d ||
e.PlacedBonusItemCategory != o.BonusItemCategory.None ||
0 == a.BonusItemProtoData.AllowBonusItems ||
a.BonusItemProtoData.ProbabilityBonusItem <= Number.EPSILON) &&
0 == c
)
return !1;
let p = o.BonusItemType.None;
if (((p = 1 == c ? e.EnterPiece.PickupTypeToPlace : this._determinePickupItemTypeToPlace()), p == o.BonusItemType.None)) return !1;
let f = a.BonusItemProtoData.BonusItemPlacementHeight;
n.CoinSettings.BonusItemHeightAboveGround > 0 && (f = n.CoinSettings.BonusItemHeightAboveGround);
const m = Math.floor(t.length / 2),
g = t[m].clone();
g.y += f;
let b,
_ = m - 1;
if ((_ < 0 && (_ = 0), _ != m)) {
b = t[_].subtract(t[m]);
const e = b.lengthSquared(),
n = Math.sqrt(e);
if (((b.x /= n), (b.y /= n), (b.z /= n), 2 == t.length)) {
const e = 0.5 * n;
g.addInPlace(b.multiplyByFloats(e, e, e));
}
} else b = e.assetInfo.rootMesh.forward;
if (e.SelectedDefinition.IsLedgeLeft) {
const e = s.Vector3.Cross(s.Vector3.Up(), b);
g.addInPlace(e.multiplyByFloats(this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust));
} else if (1 == !!e.SelectedDefinition.IsLedgeRight) {
const e = s.Vector3.Cross(b, s.Vector3.Up());
g.addInPlace(e.multiplyByFloats(this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust));
}
const v = this._bonusItemPool.get(p)[0];
return (this._staticSparksPS.worldOffset = g), this._staticSparksPS.start(), v.setEnabled(!0), (v.position = g), v.lookAt(t[0].add(new s.Vector3(0, f, 0))), (e.bonusType = p), !0;
}
_determinePickupItemTypeToPlace() {
const e = c.Utils.random(0, this._totalProbability);
let t = o.BonusItemType.None;
if (this._totalProbability > 0 && this._availableItemProbabilities.length > 0 && e < this._spawnProbability) {
const e = this._availableItemProbabilities.length;
let n = c.Utils.random(0, this._totalProbability);
for (let i = 0; i < e; i++) {
const e = this._availableItemProbabilities[i];
if (((n -= e.ItemProbability), n < 0 && e.ItemProbability > 0)) {
t = e.ItemType;
break;
}
}
} else t = o.BonusItemType.None;
return t;
}
checkBonusItemCollision(e, t) {
return i(this, void 0, void 0, function* () {
if (!this._isCheckingCollision) {
if (null != e.bonusType) {
const n = this._bonusItemPool.get(e.bonusType)[0],
i = this._bonusItemPool.get(e.bonusType)[1];
t.intersectsMesh(i) &&
(this._staticSparksPS.stop(),
u.EventHandler.instance.fireEvent(u.EventID.OnPowerupCollect, e.bonusType),
u.EventHandler.instance.fireEvent(u.EventID.PlaySFX, h.SoundID.BonusPickup),
(e.bonusType = void 0),
n.setEnabled(!1));
}
this._isCheckingCollision = !1;
}
});
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.PowerupController = void 0);
const i = n(133),
r = n(40),
o = n(29),
a = n(139),
s = n(233);
t.PowerupController = class {
constructor(e) {
(this._isBoostActive = !1),
(this._isMagnetActive = !1),
(this._isShieldActive = !1),
(this._isMeterFull = !1),
(this._isTriggeredManually = !1),
(this.INITIAL_BOOST_DISTANCE = 250),
(this.INITIAL_SHIELD_TIME = 10),
(this.INITIAL_MAGNET_TIME = 10),
(this.SCALE_OFFSET = 1),
(this._boostMaxDistance = this.INITIAL_BOOST_DISTANCE),
(this._boostThresholdSlow = 10 * this.SCALE_OFFSET),
(this._magnetThresholdFast = this.INITIAL_MAGNET_TIME),
(this._shieldThresholdFast = this.INITIAL_SHIELD_TIME),
(this._boostDistanceLeft = 0),
(this._magnetTimeLeft = 0),
(this._shieldTimeLeft = 0),
(this._powerupVisibility = 0.2),
(this._visibilityReverse = !1),
(this._sfxEventSent = !1),
(this._scene = e);
}
setBoostValues(e) {
(this._boostThresholdSlow = 50), (this._boostMaxDistance = e);
}
upgradeBoost(e) {
const t = this.INITIAL_BOOST_DISTANCE + e * this.SCALE_OFFSET;
this.setBoostValues(t);
}
upgradeShield(e) {
this._shieldThresholdFast = this.INITIAL_SHIELD_TIME + this.INITIAL_SHIELD_TIME * (e / 100);
}
upgradeMagnet(e) {
this._magnetThresholdFast = this.INITIAL_MAGNET_TIME + this.INITIAL_MAGNET_TIME * (e / 100);
}
_setPowerUpsParams() {
const e = s.AbiltiesUpgradeModel.fromJson(n(235)),
t = r.GameController.instance.gameState.abilitiesData.abilitiesLevels,
i = t[2] - 1;
let o = 0;
(o = i > -1 ? this.INITIAL_BOOST_DISTANCE + e.data[2].rule[i].reward : this.INITIAL_BOOST_DISTANCE * this.SCALE_OFFSET), this.setBoostValues(o);
const a = t[1] - 1;
if (a > -1) {
const t = e.data[1].rule[a].reward;
this._magnetThresholdFast = this.INITIAL_MAGNET_TIME + this.INITIAL_MAGNET_TIME * (t / 100);
} else this._magnetThresholdFast = this.INITIAL_MAGNET_TIME;
const c = t[0] - 1;
if (c > -1) {
const t = e.data[0].rule[c].reward;
this._shieldThresholdFast = this.INITIAL_SHIELD_TIME + this.INITIAL_SHIELD_TIME * (t / 100);
} else this._shieldThresholdFast = this.INITIAL_SHIELD_TIME;
}
initialize() {
this._setPowerUpsParams(),
o.EventHandler.instance.addListener(o.EventID.OnTutorialStart, () => {
this.reset();
}),
o.EventHandler.instance.addListener(o.EventID.OnPlayerDeath, () => {
this.reset();
}),
o.EventHandler.instance.addListener(o.EventID.OnAbilityUpgraded, (e) => {
const t = e._id,
n = e._reward;
2 == t ? this.upgradeBoost(n) : 1 == t ? this.upgradeMagnet(n) : 0 == t && this.upgradeShield(n);
}),
o.EventHandler.instance.addListener(o.EventID.OnPowerupCollect, (e) => {
const t = e;
t == i.BonusItemType.Boost
? ((this._isBoostActive = !0), this._onBoostStart(), (this._boostDistanceLeft = this._boostMaxDistance))
: t == i.BonusItemType.Vacuum
? ((this._isMagnetActive = !0),
o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.Magnet),
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupStart, i.BonusItemType.Vacuum),
(this._magnetTimeLeft = this._magnetThresholdFast))
: t == i.BonusItemType.Shield &&
(o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.ShieldLoop),
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupStart, i.BonusItemType.Shield),
(this._isShieldActive = !0),
(this._shieldTimeLeft = this._shieldThresholdFast));
}),
o.EventHandler.instance.addListener(o.EventID.OnMeterFull, () => {
(this._isMeterFull = !0), o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.BonusMeterFull);
}),
o.EventHandler.instance.addListener(o.EventID.OnKeyPress, (e) => {
(r.GameController.instance.tutorial.needZoneTutorial && r.GameController.instance.tutorial.isEnabled) ||
("Space" == e &&
r.GameController.instance.isGameRunning &&
this._isMeterFull &&
!r.GameController.instance.character.isPlayerDead &&
((this._isTriggeredManually = !0),
(this._boostDistanceLeft = this._boostMaxDistance),
(this._isBoostActive = !0),
this._onBoostStart(),
(this._isMeterFull = !1),
o.EventHandler.instance.fireEvent(o.EventID.OnPowerMeterUsed)));
});
}
preUpdate() {
if (!r.GameController.instance.isGameRunning || r.GameController.instance.character.isPlayerDead || !this.isPowerupActive()) return;
const e = this._scene.deltaTime / 1e3;
this._createBlinkingEffect(e),
this._isBoostActive && ((this._boostDistanceLeft -= r.GameController.instance.character.params.deltaDistance), this._useBoostPower()),
this._isMagnetActive && ((this._magnetTimeLeft -= e), this._useMagnetPower()),
this._isShieldActive && ((this._shieldTimeLeft -= e), this._useShieldPower());
}
postUpdate() {}
pause() {
this._isBoostActive && o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.BoostLoop),
this._isShieldActive && o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop),
this._isMagnetActive && o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.Magnet);
}
resume() {
this._isBoostActive && o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.BoostLoop),
this._isShieldActive && o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.ShieldLoop),
this._isMagnetActive && o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.Magnet);
}
reset() {
this._isBoostActive &&
((this._isBoostActive = !1),
(this._boostDistanceLeft = 0),
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Boost),
o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.BoostLoop)),
this._isShieldActive &&
((this._isShieldActive = !1),
(this._shieldTimeLeft = 0),
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Shield),
o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop)),
this._isMagnetActive &&
((this._isMagnetActive = !1),
(this._magnetTimeLeft = 0),
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Vacuum),
o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.Magnet)),
this._isMeterFull && ((this._isMeterFull = !1), o.EventHandler.instance.fireEvent(o.EventID.OnPowerMeterUsed, !0)),
o.EventHandler.instance.fireEvent(o.EventID.OnMeterReset),
(this._powerupVisibility = 0.2),
(this._sfxEventSent = !0),
(this._isTriggeredManually = !1),
(r.GameController.instance.character.params.boostVelocity = -1);
}
_onBoostStart() {
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupStart, i.BonusItemType.Boost),
(r.GameController.instance.character.params.boostVelocity = r.GameController.instance.character.PLAYER_SPEED_BOOST),
o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.BoostLoop);
}
_resetBoost() {
(this._isBoostActive = !1), (this._boostDistanceLeft = 0), (this._isTriggeredManually = !1), (r.GameController.instance.character.params.boostVelocity = -1);
}
_resetMagnet() {
(this._isMagnetActive = !1), (this._magnetTimeLeft = 0);
}
_resetShield() {
(this._isShieldActive = !1), (this._shieldTimeLeft = 0);
}
removeShield() {
o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Shield),
o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop),
o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.ShieldPop),
(this._isShieldActive = !1),
(this._shieldTimeLeft = 0);
}
get shouldEmptyMeter() {
return !this._isMeterFull;
}
get isTriggeredManually() {
return this._isTriggeredManually;
}
get meterPowerUpType() {
return i.BonusItemType.Boost;
}
get isBoost() {
return this._isBoostActive;
}
get isShield() {
return this._isShieldActive;
}
get isMagnet() {
return this._isMagnetActive;
}
isPowerupActive() {
return this._isBoostActive || this._isShieldActive || this._isMagnetActive;
}
_createBlinkingEffect(e) {
this._visibilityReverse ? (this._powerupVisibility -= 5 * e) : (this._powerupVisibility += 5 * e),
this._powerupVisibility >= 1 ? (this._visibilityReverse = !0) : this._powerupVisibility <= 0.2 && (this._visibilityReverse = !1);
}
_useShieldPower() {
0 == this._sfxEventSent && (o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.ShieldLoop), (this._sfxEventSent = !0)),
this._shieldTimeLeft < 0 && (o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Shield), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop), this._resetShield());
}
_useBoostPower() {
this._boostDistanceLeft < 0
? (o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Boost), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.BoostLoop), this._resetBoost())
: this._boostDistanceLeft < this._boostThresholdSlow &&
r.GameController.instance.character.params.boostVelocity > 0 &&
((r.GameController.instance.character.params.boostVelocity = r.GameController.instance.character.getBoostSlowSpeed()), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupCooldown, i.BonusItemType.Boost));
}
_useMagnetPower() {
0 == this._sfxEventSent && (o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.Magnet), (this._sfxEventSent = !0)),
this._magnetTimeLeft < 0 && (o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Vacuum), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.Magnet), this._resetMagnet());
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.TutorialController = void 0);
const i = n(40),
r = n(29),
o = n(133),
a = n(178),
s = n(19),
c = n(52);
t.TutorialController = class {
constructor(e) {
(this._isEnabled = !1),
(this._distanceToStepTrigger = 0),
(this._minDistanceToStepTrigger = 15),
(this._currentMilestoneIndex = 0),
(this._needZoneTutorial = !1),
(this._shouldRestartTutorial = !1),
(this._previousMilestoneIndex = 999),
(this._distanceAtStepStart = 0),
(this._scene = e);
}
initialize() {}
preUpdate() {
this._isEnabled && i.GameController.instance.isGameRunning && !i.GameController.instance.character.isPlayerDead && (this._checkAndPerformTutorialMessage(), this._checkForTutorialStep());
}
postUpdate() {}
pause() {}
resume() {}
reset() {
(this._currentStep = void 0), (this._distanceToStepTrigger = 0);
}
get isEnabled() {
return this._isEnabled;
}
_resetSettings() {
this._shouldRestartTutorial || ((this._isEnabled = !1), (a.BonusItemProtoData.AllowCoins = !0), (a.BonusItemProtoData.AllowBonusItems = !0));
}
enableAndGetSection(e) {
let t;
this._resetSettings();
const n = i.GameController.instance.gameState.flagsData.tutorialPhaseState;
return (
this._shouldRestartTutorial
? (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue)
: "phase2" == n
? ((this._currentMilestoneIndex = 5), (this._previousMilestoneIndex = -1), (this._trackPacing = e.get(0).TutorialPacing), (t = this._trackPacing.TutorialMilestones[4].TutorialTrackQueue))
: ((this._currentMilestoneIndex = 0), (this._previousMilestoneIndex = -1), (this._trackPacing = e.get(0).TutorialPacing), (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue)),
(this._isEnabled = !0),
(a.BonusItemProtoData.AllowCoins = !1),
(a.BonusItemProtoData.AllowBonusItems = !1),
r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStart),
t
);
}
enableAndGetSectionZone(e) {
let t;
if ((this._resetSettings(), null == e)) ("waterslide" == this._currentTutorialZone || "mine" == this._currentTutorialZone) && (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue);
else if (null != e && (e.Definition.IsMine || e.Definition.IsWaterSlide)) {
(this._currentMilestoneIndex = 0), (this._previousMilestoneIndex = 999);
const n = i.GameController.instance.gameState.flagsData.tutorialZonesDone,
r = i.GameController.instance.track.getAllZones();
!n.includes("waterslide") && e.Definition.IsWaterSlide
? ((this._trackPacing = r.get(3).TutorialPacing), (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue), (this._currentTutorialZone = "waterslide"))
: !n.includes("mine") &&
e.Definition.IsMine &&
((this._trackPacing = r.get(1).TutorialPacing), (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue), (this._currentTutorialZone = "mine"));
}
if (null != t) {
let n = !1;
null == e && ((e = new o.NewTrackPieceInfo()), (n = !0)),
(e.Queue = new o.TrackSection()),
(e.Queue.Pieces = [...t.Pieces]),
(e.Queue.TrackLoop = t.TrackLoop),
n || (e.Piece = e.Queue.Pieces.shift()),
(e.Definition = void 0),
(e.Pacing = void 0),
(a.BonusItemProtoData.AllowCoins = !1),
(a.BonusItemProtoData.AllowBonusItems = !1);
}
return e;
}
enableForZoneIfRequired(e) {
this._currentTutorialZone == e && ((this._isEnabled = !0), (this._previousMilestoneIndex = -1), r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStart));
}
_disableTutorials() {
this._isEnabled = !1;
const e = i.GameController.instance.character.params;
e.currentTrackPiece.SelectedDefinition.IsWaterSlide
? r.EventHandler.instance.fireEvent(r.EventID.OnChangeTutorialState, { tutorialPhaseState: "done", zoneDone: "waterslide" })
: e.currentTrackPiece.SelectedDefinition.IsMine
? r.EventHandler.instance.fireEvent(r.EventID.OnChangeTutorialState, { tutorialPhaseState: "done", zoneDone: "mine" })
: r.EventHandler.instance.fireEvent(r.EventID.OnChangeTutorialState, { tutorialPhaseState: "done" }),
this._resetSettings(),
(this._needZoneTutorial = !1),
(this._currentTutorialZone = void 0),
setTimeout(() => {
r.EventHandler.instance.fireEvent(r.EventID.OnTutorialComplete), r.EventHandler.instance.fireEvent(r.EventID.OnPersistGameState), this.checkZoneTutorials();
}, 5e3);
}
checkZoneTutorials() {
this._resetSettings();
const e = i.GameController.instance.gameState.flagsData.tutorialZonesDone;
(e.includes("mine") && e.includes("waterslide")) || (this._needZoneTutorial = !0);
}
canStartZoneTutorial(e) {
if (0 == this._needZoneTutorial || e.CategoryType != o.TrackPieceCategory.ZoneEntranceTransition) return !1;
const t = i.GameController.instance.gameState.flagsData.tutorialZonesDone;
return !!((!t.includes("mine") && e.IsMine) || (!t.includes("waterslide") && e.IsWaterSlide));
}
resurrectOnDeath() {
(this._shouldRestartTutorial = !0),
(this._currentMilestoneIndex = i.GameController.instance.character.params.currentTrackPiece.tutorialMilestoneIndex),
(this._previousMilestoneIndex = -1),
c.gameState.forceUpdateDistance(this._distanceAtStepStart),
(this._distanceAtStepStart = 0),
r.EventHandler.instance.fireEvent(r.EventID.OnResetGame),
(this._shouldRestartTutorial = !1),
r.EventHandler.instance.fireEvent(r.EventID.OnPlayGame, !0);
}
processScoreToRollback() {
this._previousMilestoneIndex < this._currentMilestoneIndex && ((this._previousMilestoneIndex = this._currentMilestoneIndex), (this._distanceAtStepStart = i.GameController.instance.gameState.currentRunData.distance));
}
get shouldRestartTutorial() {
return this._shouldRestartTutorial;
}
get needZoneTutorial() {
return this._needZoneTutorial;
}
get currentTutorialZone() {
return this._currentTutorialZone;
}
get currentMilestoneIndex() {
return this._currentMilestoneIndex;
}
_checkForTutorialStep() {
const e = i.GameController.instance.character.params;
if (null == e.currentTrackPiece || e.currentTrackPiece.getNextTrackPiecesLength() < 0) return;
const t = e.currentTrackPiece,
n = t.NextTrackPieces[0];
if (n.getNextTrackPiecesLength() < 0) return;
const o = n.NextTrackPieces[0],
a = o.SelectedDefinition;
if (this._distanceToStepTrigger > 0)
return (
(this._distanceToStepTrigger -= e.deltaDistance),
void (
null != this._currentStep &&
"done" != this._currentStep &&
this._distanceToStepTrigger < this._minDistanceToStepTrigger &&
(r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStepStart, { arrowDirection: this._currentStep }), (this._currentStep = "done"))
)
);
null != this._currentStep && (r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStepComplete), (this._currentStep = void 0), (this._distanceToStepTrigger = 0)),
(this._distanceToStepTrigger = t.getEstimatedLength() - e.distanceFromPieceStart + n.getEstimatedLength() + o.getEstimatedLength() / 2),
a.IsTurnLeft || a.IsLedgeLeft
? (this._currentStep = "Left")
: a.IsTurnRight || a.IsLedgeRight
? (this._currentStep = "Right")
: a.IsSlideUnder
? (this._currentStep = "Down")
: a.IsZipLine
? ((this._currentStep = "Up"), (this._distanceToStepTrigger -= o.getEstimatedLength() / 2))
: a.IsJumpOver
? (this._currentStep = "Up")
: a.IsWaterSlide && a.Name.includes("Tilt Right")
? (this._currentStep = "Right")
: a.IsWaterSlide && a.Name.includes("Tilt Left")
? (this._currentStep = "Left")
: (this._currentStep = void 0),
null == this._currentStep && (this._distanceToStepTrigger = 0);
}
_checkAndPerformTutorialMessage() {
const e = i.GameController.instance.character.params;
if (null == e.currentTrackPiece || null == e.currentTrackPiece.EnterPiece || e.currentTrackPiece.tutorialStepDone) return;
let t, n, a, c, l;
switch (e.currentTrackPiece.EnterPiece.TutorialMessageType) {
case o.TutorialMessageDisplayType.SwipeToTurn:
(a = "Turn"), (n = s.WebUtils.hasTouch ? "Swipe left to turn left\nSwipe right to turn right" : 'Press "left arrow" or "A"\nto turn left\nPress "right arrow" or "D"\nto turn right');
break;
case o.TutorialMessageDisplayType.SwipeUpInstruction:
(a = "Up"), (n = s.WebUtils.hasTouch ? "Swipe up to jump" : 'Press "up arrow" or "W"\nto jump');
break;
case o.TutorialMessageDisplayType.SwipeDownInstruction:
(a = "Down"),
(l = "slide"),
e.currentTrackPiece.SelectedDefinition.IsWaterSlide ? (l = "dunk") : e.currentTrackPiece.SelectedDefinition.IsMine && (l = "duck"),
(n = s.WebUtils.hasTouch ? "Swipe down to " + l : 'Press "down arrow" or "S"\nto ' + l);
break;
case o.TutorialMessageDisplayType.TiltInstruction:
(a = "Turn"),
(l = "move"),
e.currentTrackPiece.SelectedDefinition.IsMine && (l = "tilt"),
(n = s.WebUtils.hasTouch ? `Swipe left to ${l} left\nSwipe right to ${l} right` : `Press "left arrow" or "A"\nto ${l} left\nPress "right arrow" or "D"\nto ${l} right`);
break;
case o.TutorialMessageDisplayType.NiceJobText:
t = "Nice Job !";
break;
case o.TutorialMessageDisplayType.UnlockPowerMeter:
r.EventHandler.instance.fireEvent(r.EventID.OnPauseGame, "tutorialPause"), r.EventHandler.instance.fireEvent(r.EventID.OnPowerupUnlockAnim), (c = "Good job!\nBoost Power-up Unlocked!");
break;
case o.TutorialMessageDisplayType.DoubleTapInstruction:
r.EventHandler.instance.fireEvent(r.EventID.OnMeterFull),
r.EventHandler.instance.fireEvent(r.EventID.OnUnlockPowerup),
(n = s.WebUtils.hasTouch ? "Double tap\nto activate Power-up" : 'Press "Spacebar"\nto activate Power-up');
break;
case o.TutorialMessageDisplayType.YouAreReadyText:
(t = "You are ready now!"), this._disableTutorials();
}
(null == n && null == t && null == c) ||
(r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStepStart, { messageWithDelayArrow: a, messageWithDelay: n, message: t, messageStatic: c }), (e.currentTrackPiece.tutorialStepDone = !0));
}
selectTrackPiece(e, t) {
this._currentMilestoneIndex++, this._currentMilestoneIndex >= this._trackPacing.TutorialMilestones.length && (this._currentMilestoneIndex = this._trackPacing.TutorialMilestones.length - 1);
const n = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex];
(a.BonusItemProtoData.AllowCoins = !!n.AllowCoins), (a.BonusItemProtoData.AllowBonusItems = !1);
const i = new o.TrackSection();
return (i.Pieces = [...n.TutorialTrackQueue.Pieces]), (t.Piece = i.Pieces.shift()), (t.Queue = i), (t.Definition = void 0), (t.Pacing = void 0), t;
}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterFXController = void 0);
const r = n(40),
o = n(29),
a = n(62),
s = n(287),
c = n(133),
l = n(19);
t.CharacterFXController = class {
constructor(e) {
(this._initialized = !1),
(this._isBoostExhausted = !1),
(this._isGodModeExhausted = !1),
(this._boostParticleUpdateSpeed = 0),
(this._magnetEffectUpdateSpeed = 0),
(this.powerUpActive = new s.PowerUpActiveEffect()),
(this._blinkFreq = 1.5),
(this._currentTime = 0),
(this._scene = e);
}
_onPlayerReady() {
(this._sharedFillMeshMaterial = r.GameController.instance.track.getFillMeshMaterial()),
(this._sharedFillMeshMaterial.alpha = 0),
(this._playerMaterial = r.GameController.instance.character.material),
(this._playerMaterial.alphaCutOff = 0);
const e = r.GameController.instance.character.player;
this.powerUpActive.assignParent(e), (this._shieldMesh.parent = e), (this._boostParticle.emitter = e), (this._magnetEffect.emitter = e);
}
loadMesh() {
return i(this, void 0, void 0, function* () {
return (yield a.SceneLoader.ImportMeshAsync(null, "assets/effects/power_up_fx_mesh.glb", void 0, this._scene)).meshes[1];
});
}
initialize() {
this._createBoostTrailParticle(),
this._createMagnetEffect(),
this.loadMesh().then((e) => {
null != e && (this.powerUpActive.createEffect(e.clone(), this._scene), this._createShieldEffect(e));
}),
o.EventHandler.instance.addListener(o.EventID.OnPlayGame, () => {
this._initialized || (this._onPlayerReady(), (this._initialized = !0));
}),
o.EventHandler.instance.addListener(o.EventID.OnGodModeEnabled, () => {
(this._playerMaterial.transparencyMode = 2), (this._playerMaterial.alpha = 0.6), (this._sharedFillMeshMaterial.alpha = 1);
}),
o.EventHandler.instance.addListener(o.EventID.OnGodModeDisabled, () => {
(this._playerMaterial.transparencyMode = 0), (this._playerMaterial.alpha = 1), (this._sharedFillMeshMaterial.alpha = 0), (this._isGodModeExhausted = !1);
}),
o.EventHandler.instance.addListener(o.EventID.OnGodModeExhausted, () => {
this._isGodModeExhausted = !0;
}),
o.EventHandler.instance.addListener(o.EventID.OnPowerupStart, (e) => {
this.powerUpActive.isActive || this.powerUpActive.activate(),
e == c.BonusItemType.Boost
? (this._boostParticle.start(),
(this._playerMaterial.transparencyMode = 2),
(this._playerMaterial.alpha = 0.7),
(this._playerMaterial.emissiveIntensity = 0.4),
(this._playerMaterial.emissiveColor = a.Color3.White()),
(this._sharedFillMeshMaterial.alpha = 1))
: e == c.BonusItemType.Vacuum
? this._magnetEffect.start()
: e == c.BonusItemType.Shield && this._shieldMesh.setEnabled(!0);
}),
o.EventHandler.instance.addListener(o.EventID.OnPowerupCooldown, () => {
(this._isBoostExhausted = !0), this._boostParticle.stop(), (this._playerMaterial.emissiveIntensity = 0);
}),
o.EventHandler.instance.addListener(o.EventID.OnTutorialStart, () => {
this.reset();
}),
o.EventHandler.instance.addListener(o.EventID.OnPowerupComplete, (e) => {
e == c.BonusItemType.Boost
? (this._boostParticle.stop(),
(this._playerMaterial.transparencyMode = 0),
(this._playerMaterial.alpha = 1),
(this._playerMaterial.emissiveIntensity = 0),
(this._sharedFillMeshMaterial.alpha = 0),
(this._isBoostExhausted = !1))
: e == c.BonusItemType.Vacuum
? this._magnetEffect.stop()
: e == c.BonusItemType.Shield && this._shieldMesh.setEnabled(!1);
});
}
_createBoostTrailParticle() {
return (
(this._boostParticle = a.ParticleSystem.Parse(
{
name: "boostTrail",
id: "default system",
capacity: 100,
emitter: [0, 0, 0],
particleEmitterType: { type: "BoxParticleEmitter", direction1: [0, 1, 0], direction2: [0, 1, 0], minEmitBox: [-0.2, -0.2, -0.2], maxEmitBox: [0.2, 0.2, 0.2] },
texture: {
tags: null,
url: "",
uOffset: 0,
vOffset: 0,
uScale: 1,
vScale: 1,
uAng: 0,
vAng: 0,
wAng: 0,
uRotationCenter: 0.5,
vRotationCenter: 0.5,
wRotationCenter: 0.5,
isBlocking: !0,
uniqueId: 24,
name: "",
hasAlpha: !1,
getAlphaFromRGB: !1,
level: 1,
coordinatesIndex: 0,
coordinatesMode: 0,
wrapU: 1,
wrapV: 1,
wrapR: 1,
anisotropicFilteringLevel: 4,
isCube: !1,
is3D: !1,
is2DArray: !1,
gammaSpace: !0,
invertZ: !1,
lodLevelInAlpha: !1,
lodGenerationOffset: 0,
lodGenerationScale: 0,
linearSpecularLOD: !1,
isRenderTarget: !1,
animations: [],
invertY: !0,
samplingMode: 3,
},
isLocal: !1,
animations: [],
beginAnimationOnStart: !1,
beginAnimationFrom: 0,
beginAnimationTo: 60,
beginAnimationLoop: !1,
startDelay: 0,
renderingGroupId: 0,
isBillboardBased: !0,
billboardMode: 7,
minAngularSpeed: 0,
maxAngularSpeed: 0,
minSize: 0.5,
maxSize: 1.5,
minScaleX: 1,
maxScaleX: 1,
minScaleY: 1,
maxScaleY: 1,
minEmitPower: 0,
maxEmitPower: 0,
minLifeTime: 0.5,
maxLifeTime: 1,
emitRate: 20,
gravity: [0, 0, 0],
noiseStrength: [10, 10, 10],
color1: [1, 1, 1, 1],
color2: [1, 1, 1, 1],
colorDead: [1, 1, 1, 0],
updateSpeed: 0.016666666666666666,
targetStopDuration: 0,
blendMode: 2,
preWarmCycles: 0,
preWarmStepOffset: 1,
minInitialRotation: 0,
maxInitialRotation: 0,
startSpriteCellID: 0,
endSpriteCellID: 0,
spriteCellChangeSpeed: 1,
spriteCellWidth: 0,
spriteCellHeight: 0,
spriteRandomStartCell: !1,
isAnimationSheetEnabled: !1,
emitRateGradients: [],
textureMask: [1, 1, 1, 1],
customShader: null,
preventAutoStart: !1,
},
this._scene,
"",
!0
)),
(this._boostParticle.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(this._boostParticle.particleTexture = new a.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, a.Texture.TRILINEAR_SAMPLINGMODE)),
(this._boostParticle.startSpriteCellID = 12),
(this._boostParticle.endSpriteCellID = 12),
(this._boostParticle.spriteCellHeight = 128),
(this._boostParticle.spriteCellWidth = 128),
(this._boostParticle.spriteCellChangeSpeed = 0),
(this._boostParticle.isAnimationSheetEnabled = !0),
(this._boostParticle.worldOffset = new a.Vector3(0, 0.4, 0)),
(this._boostParticleUpdateSpeed = this._boostParticle.updateSpeed),
this._boostParticle
);
}
_createMagnetEffect() {
(this._magnetEffect = new a.ParticleSystem("magnet effect", 10, this._scene)),
this._magnetEffect.createPointEmitter(a.Vector3.Zero(), a.Vector3.Zero()),
(this._magnetEffect.particleTexture = new a.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0)),
(this._magnetEffect.startSpriteCellID = 13),
(this._magnetEffect.endSpriteCellID = 13),
(this._magnetEffect.spriteCellHeight = 128),
(this._magnetEffect.spriteCellWidth = 128),
(this._magnetEffect.spriteCellChangeSpeed = 0),
(this._magnetEffect.isAnimationSheetEnabled = !0),
(this._magnetEffect.minEmitPower = 0),
(this._magnetEffect.maxEmitPower = 0),
(this._magnetEffect.emitRate = 2),
(this._magnetEffect.maxSize = 0.5),
(this._magnetEffect.minSize = 1.5),
(this._magnetEffect.updateSpeed += 0.005),
this._magnetEffect.addSizeGradient(0, 1.5),
this._magnetEffect.addSizeGradient(0.2, 1.3),
this._magnetEffect.addSizeGradient(0.5, 1),
this._magnetEffect.addSizeGradient(0.7, 0.8),
this._magnetEffect.addSizeGradient(0.9, 0.6),
this._magnetEffect.addSizeGradient(1, 0.5),
this._magnetEffect.addColorGradient(0, new a.Color4(1, 1, 1, 1)),
this._magnetEffect.addColorGradient(0.8, new a.Color4(1, 1, 1, 0.5)),
this._magnetEffect.addColorGradient(1, new a.Color4(1, 1, 1, 0)),
(this._magnetEffect.maxLifeTime = 0.5),
(this._magnetEffect.isLocal = !0),
(this._magnetEffect.renderingGroupId = r.ETR2RenderingGroup.PARTICLES),
(this._magnetEffect.worldOffset.y += 1),
(this._magnetEffectUpdateSpeed = this._magnetEffect.updateSpeed),
this._magnetEffect.stop();
}
_createShieldEffect(e) {
(this._shieldMesh = e), (this._shieldMesh.renderingGroupId = r.ETR2RenderingGroup.CHARACTER), (this._shieldMesh.position = a.Vector3.Zero()), (this._shieldMesh.scaling = new a.Vector3(0.009, 0.009, 0.009));
const t = new a.Texture("assets/effects/effects_transparent." + l.WebUtils.textureExtension, this._scene, !1, !1);
t.vOffset = -0.5;
const n = new a.StandardMaterial("shiledMeshMat", this._scene);
(n.diffuseTexture = t),
(n.diffuseColor = a.Color3.Green()),
(n.emissiveColor = a.Color3.Green()),
(n.diffuseTexture.hasAlpha = !0),
(n.useAlphaFromDiffuseTexture = !0),
(n.emissiveTexture = t),
(n.diffuseColor = a.Color3.Green()),
(n.disableLighting = !0),
(n.alpha = 1),
(n.alphaMode = a.Engine.ALPHA_ADD),
(n.backFaceCulling = !1),
(this._shieldMesh.position.y += 1),
(this._shieldMesh.material = n),
this._shieldMesh.setEnabled(!1);
}
preUpdate() {
if (((this._currentTime += 0.1), !this._initialized || !r.GameController.instance.isGameRunning)) return;
const e = this._scene.getEngine().getDeltaTime() / 1e3;
if ((this.powerUpActive.isActive && this.powerUpActive.update(e), this._shieldMesh.isEnabled() && this._shieldMesh.rotate(a.Axis.Y, 0.06, a.Space.LOCAL), this._isGodModeExhausted || this._isBoostExhausted)) {
const e = 0.3 + Math.abs(Math.sin(this._currentTime * this._blinkFreq));
(this._sharedFillMeshMaterial.alpha = e), (this._playerMaterial.alpha = e);
}
}
postUpdate() {}
pause() {
this._boostParticle.isStarted && (this._boostParticle.updateSpeed = 0), this._magnetEffect.isStarted && (this._magnetEffect.updateSpeed = 0);
}
resume() {
this._boostParticle.isStarted && (this._boostParticle.updateSpeed = this._boostParticleUpdateSpeed), this._magnetEffect.isStarted && (this._magnetEffect.updateSpeed = this._magnetEffectUpdateSpeed);
}
reset() {
this._initialized &&
((this._isBoostExhausted = !1),
(this._isGodModeExhausted = !1),
this._magnetEffect.stop(),
this._boostParticle.stop(),
this._shieldMesh.setEnabled(!1),
this.powerUpActive.reset(),
(this._playerMaterial.alpha = 1),
(this._playerMaterial.transparencyMode = 0),
(this._sharedFillMeshMaterial.alpha = 0));
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.PowerUpActiveEffect = void 0);
const i = n(62),
r = n(40);
t.PowerUpActiveEffect = class {
constructor() {
(this.meshOneScale = new i.Vector3(0.3, 0.3, 0.3)), (this.meshTwoScale = new i.Vector3(0.4, 1, 0.3)), (this.isActive = !1), (this.duration = 1.6), (this._time = 0);
}
assignParent(e) {
(this.meshOne.parent = e), (this.meshTwo.parent = e);
}
createEffect(e, t) {
(e.renderingGroupId = r.ETR2RenderingGroup.CHARACTER),
(e.scaling = e.scaling.multiplyByFloats(0.2, 0.2, 0.2)),
(this.meshOne = e.clone()),
(this.meshTwo = e.clone()),
(this.meshTwo.scaling.y += 0.003),
(this.meshOne.position.y += 0.6),
(this.meshTwo.position.y += 0.6),
e.setEnabled(!1);
const n = new i.Texture("assets/effects/effects_additive.jpg", t, !1, !1);
(this.meshOneMaterial = new i.StandardMaterial("power_up_effect_mat", t)),
(this.meshOneMaterial.diffuseTexture = n),
(this.meshOneMaterial.diffuseTexture.hasAlpha = !0),
(this.meshOneMaterial.useAlphaFromDiffuseTexture = !0),
(this.meshOneMaterial.emissiveTexture = n),
(this.meshOneMaterial.disableLighting = !0),
(this.meshOneMaterial.alpha = 0.89),
(this.meshOneMaterial.alphaMode = i.Engine.ALPHA_ADD),
(this.meshOneMaterial.backFaceCulling = !1),
(this.meshOne.material = this.meshOneMaterial),
(this.meshTwoMaterial = this.meshOneMaterial.clone("meshTwoMat")),
(this.meshTwo.material = this.meshTwoMaterial),
this.meshOne.setEnabled(!1),
this.meshTwo.setEnabled(!1);
}
activate() {
(this.isActive = !0), this.meshOne.setEnabled(!0), this.meshTwo.setEnabled(!0), (this.meshOneMaterial.alpha = 1), (this.meshTwoMaterial.alpha = 0);
}
deactivate() {
(this.isActive = !1), this.meshOne.setEnabled(!1), this.meshTwo.setEnabled(!1);
}
reset() {
this.meshOne.setEnabled(!1), this.meshTwo.setEnabled(!1), (this.isActive = !1), (this._time = 0);
}
update(e) {
if (this.isActive) {
if (((this._time += e), this._time > this.duration)) return void this.reset();
const t = 1,
n = Math.abs(Math.sin(this._time * t));
(this.meshOneMaterial.alpha = n), (this.meshTwoMaterial.alpha = 1 - n), this.meshOne.rotate(i.Vector3.Up(), 0.09, i.Space.WORLD), this.meshTwo.rotate(i.Vector3.Up(), 0.15, i.Space.WORLD);
}
}
};
},
function (e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", { value: !0 }), (t.DailyChallengesController = void 0);
const i = n(62),
r = n(40),
o = n(234),
a = n(52),
s = n(29);
t.DailyChallengesController = class {
constructor(e) {
(this._challengeUpdateCounter = 0),
(this._currentProgress = { percent: 0, text: "" }),
(this._shouldShowChestUI = !1),
(this._cloneDailyChallengeData = (e) => {
const t = new a.DailyChallengeData();
return (
(t.currentChallengeID = e.currentChallengeID),
(t.currentChallengeDate = e.currentChallengeDate),
(t.currentChallengeExpiryDate = e.currentChallengeExpiryDate),
(t.currentDayStreak = e.currentDayStreak),
(t.isChallengeCompleted = e.isChallengeCompleted),
(t.pastChallengeID = new Map(e.pastChallengeID)),
t
);
}),
(this._scene = e);
}
get currentChallengeData() {
return this._activeChallengeData;
}
get currentChallengeProgress() {
return this._currentProgress;
}
get shouldShowChest() {
return this._shouldShowChestUI;
}
initialize() {
s.EventHandler.instance.addListener(s.EventID.OnDisablingChestUI, () => {
this._shouldShowChestUI = !1;
}),
this._initDailyChallengesController(),
s.EventHandler.instance.addListener(s.EventID.OnCheckDailyChallenge, this._checkChallengeCompletion.bind(this)),
s.EventHandler.instance.addListener(s.EventID.OnForceDailyChallenge, this._debugDailyChallenge.bind(this));
}
_isCurrentChallengeValid() {
const e = new Date(this._dailyChallengesData.currentChallengeDate),
t = this.getDiffInDays(e);
return !(t >= 1) || (t > 1 && (this._dailyChallengesData.currentDayStreak = 0), !1);
}
_debugDailyChallenge(e) {
(this._activeChallengeID = e),
(this._isActiveChallengeCompleted = !1),
(this._activeChallengeData = this._challengesData.data.find((e) => e.ID == this._activeChallengeID)),
(this._activeChallengeExpiryTime = new Date(this._dailyChallengesData.currentChallengeExpiryDate)),
(this._dailyChallengesData.currentChallengeID = this._activeChallengeData.ID),
(this._dailyChallengesData.isChallengeCompleted = !1),
(this._dailyChallengesData.currentDayStreak = 0),
(this._currentProgress = { percent: 0, text: "" }),
s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)),
s.EventHandler.instance.fireEvent(s.EventID.OnResetDayStatData, !0);
}
_initDailyChallengesController() {
if (
((this._challengesData = o.DailyChallenges.fromJson(n(236))),
(this._dailyChallengesData = this._cloneDailyChallengeData(r.GameController.instance.gameState.dailyChallengeData)),
(this._activeChallengeID = this._dailyChallengesData.currentChallengeID),
(this._isActiveChallengeCompleted = this._dailyChallengesData.isChallengeCompleted),
-1 == this._activeChallengeID)
)
this._getNewChallenge(this._dailyChallengesData.currentDayStreak);
else {
this._dailyChallengesData.currentChallengeExpiryDate.split("/");
(this._activeChallengeExpiryTime = new Date(this._dailyChallengesData.currentChallengeExpiryDate)),
this._isCurrentChallengeValid()
? (this._activeChallengeData = this._challengesData.data.find((e) => e.ID == this._dailyChallengesData.currentChallengeID))
: this._getNewChallenge(this._dailyChallengesData.currentDayStreak);
}
}
_updatePastChallengeIDs() {
const e = this._dailyChallengesData.pastChallengeID;
if (e.size > 0)
for (const t of e.entries()) {
const e = t[1],
n = new Date(e);
this.getDiffInDays(n) > 10 && this._dailyChallengesData.pastChallengeID.delete(t[0]);
}
}
_fillterChallenges() {
if ((this._updatePastChallengeIDs(), this._dailyChallengesData.pastChallengeID.size > 0)) {
const e = [...this._dailyChallengesData.pastChallengeID.keys()];
return this._challengesData.data.filter((t) => 0 == e.includes(t.ID));
}
return this._challengesData.data;
}
_getNewChallenge(e) {
const t = this._fillterChallenges();
let n;
0 == e
? (n = t.filter((e) => 1 == e.tier))
: 1 == e
? (n = t.filter((e) => 1 == e.tier || 2 == e.tier))
: 2 == e
? (n = t.filter((e) => 1 == e.tier || 2 == e.tier || 3 == e.tier))
: 3 == e
? (n = t.filter((e) => 1 == e.tier || 2 == e.tier || 3 == e.tier || 4 == e.tier))
: e >= 4 && (n = t),
0 == n.length && (n = t);
const r = Math.floor(i.Scalar.RandomRange(0, n.length));
(this._activeChallengeData = n[r]),
(this._activeChallengeID = this._activeChallengeData.ID),
(this._dailyChallengesData.currentChallengeID = this._activeChallengeData.ID),
(this._dailyChallengesData.isChallengeCompleted = !1);
const o = new Date(),
a = new Date();
a.setDate(o.getDate() + 1), (this._dailyChallengesData.currentChallengeDate = o.getMonth() + 1 + "/" + o.getDate() + "/" + o.getFullYear());
const c = a.getMonth() + 1 + "/" + a.getDate() + "/" + a.getFullYear();
(this._dailyChallengesData.currentChallengeExpiryDate = c),
(this._activeChallengeExpiryTime = a),
this._dailyChallengesData.pastChallengeID.set(this._activeChallengeID, this._dailyChallengesData.currentChallengeDate),
(this._currentProgress.percent = 0),
(this._currentProgress.text = ""),
s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)),
s.EventHandler.instance.fireEvent(s.EventID.OnResetDayStatData);
}
_checkForPerRunChallengeObjectiveIsComplete(e) {
if (this._isCurrentChallengeSatisfyFillterType()) {
const t = this._activeChallengeData.statValue;
switch (this._activeChallengeData.objectiveType) {
case o.ObjectiveType.CollectCoins:
return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide
? e.coinsCollectedInWaterSlide >= t
: this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart
? e.coinsCollectedInMineCart >= t
: e.coins >= t;
case o.ObjectiveType.CollectPowerups:
return e.powerupsCollectedThisRun >= t;
case o.ObjectiveType.Distance:
return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide
? e.distanceCoveredInWaterSlide >= t
: this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart
? e.distanceCoveredInMineCart >= t
: e.distance >= t;
case o.ObjectiveType.Resurrects:
return e.resurrectsThisRun >= t;
case o.ObjectiveType.Runs:
break;
case o.ObjectiveType.Score:
return e.score >= t;
case o.ObjectiveType.UsedPowerMeter:
return e.powermeterUsedThisRun >= t;
case o.ObjectiveType.WaterZone_Exit:
return e.waterslideSurvivedThisRun >= t;
case o.ObjectiveType.MineZone_Exit:
return e.minecartSurvivedThisRun >= t;
}
}
}
_checkForPerDayChallengeData(e) {
if (this._isCurrentChallengeSatisfyFillterType()) {
const t = this._activeChallengeData.statValue;
switch (this._activeChallengeData.objectiveType) {
case o.ObjectiveType.CollectCoins:
return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide
? e.coinsCollectedInWaterSlide >= t
: this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart
? e.coinsCollectedInMineCart >= t
: e.coins >= t;
case o.ObjectiveType.CollectPowerups:
return e.powerupsCollectedToday >= t;
case o.ObjectiveType.Distance:
return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide
? e.distanceCoveredInWaterSlide >= t
: this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart
? e.distanceCoveredInMineCart >= t
: e.distance >= t;
case o.ObjectiveType.Resurrects:
return e.resurrectsToday >= t;
case o.ObjectiveType.Runs:
return e.runs >= t;
case o.ObjectiveType.Score:
return e.score >= t;
case o.ObjectiveType.UsedPowerMeter:
return e.powerMeterUsedToday >= t;
case o.ObjectiveType.WaterZone_Exit:
return e.waterSlideSurvivedToday >= t;
case o.ObjectiveType.MineZone_Exit:
return e.minecartSurviveToday >= t;
}
}
}
_isCurrentChallengeSatisfyFillterType() {
const e = this._activeChallengeData.objectiveFilterType;
return (
-1 == e ||
(e == o.ObjectiveFilterType.WithoutCoins
? 0 == r.GameController.instance.gameState.currentRunData.coins
: e == o.ObjectiveFilterType.WithoutPowerups
? 0 == r.GameController.instance.gameState.currentRunData.powerupsCollectedThisRun
: e == o.ObjectiveFilterType.WithoutSaveMe
? 0 == r.GameController.instance.gameState.currentRunData.resurrectsThisRun
: e != o.ObjectiveFilterType.WithoutStumble || 0 == r.GameController.instance.gameState.currentRunData.stumbleThisRun)
);
}
_updateCurrentChallengeRunTime() {
this._isActiveChallengeCompleted || (this._dailyChallengesData.currentDayStreak = 0),
this._getNewChallenge(this._dailyChallengesData.currentDayStreak),
(this._dailyChallengesData = this._dailyChallengesData),
(this._activeChallengeID = this._dailyChallengesData.currentChallengeID),
(this._isActiveChallengeCompleted = this._dailyChallengesData.isChallengeCompleted),
(this._activeChallengeExpiryTime = new Date(this._dailyChallengesData.currentChallengeExpiryDate)),
s.EventHandler.instance.fireEvent(s.EventID.OnResetDayStatData);
}
getRewardAmount() {
const e = this._dailyChallengesData.currentDayStreak;
return 1 == e ? 200 : 2 == e ? 300 : 3 == e ? 400 : 4 == e ? 500 : this.getChestCoinReward();
}
getChestCoinReward() {
const e = 100 * Math.random();
return e <= 60 ? 1e3 : e > 60 && e <= 90 ? 2e3 : e > 90 ? 3e3 : void 0;
}
getDiffInDays(e) {
const t = new Date();
return Math.floor(+t.getDate() - +e.getDate());
}
getChallangeExpiryTime() {
const e = this._activeChallengeExpiryTime,
t = new Date();
return Math.floor((e.getTime() - t.getTime()) / 1e3);
}
getExpiryTimeString() {
const e = this.getChallangeExpiryTime(),
t = Math.floor(e / 3600),
n = Math.floor((e % 3600) / 60),
i = Math.floor((e % 3600) % 60);
return (t > 0 ? t + (1 == t ? " hour, " : " hours, ") : "") + (n > 0 ? n + (1 == n ? " minute, " : " minutes, ") : "") + (i > 0 ? i + (1 == i ? " second" : " seconds") : "");
}
_updateProgress(e) {
const t = this._activeChallengeData.statValue;
let n = 0;
switch (this._activeChallengeData.objectiveType) {
case o.ObjectiveType.CollectCoins:
n =
this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide
? e.coinsCollectedInWaterSlide
: this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart
? e.coinsCollectedInMineCart
: e.coins;
case o.ObjectiveType.CollectPowerups:
n = e.powerupsCollectedToday;
break;
case o.ObjectiveType.Distance:
n =
this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide
? e.distanceCoveredInWaterSlide
: this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart
? e.distanceCoveredInMineCart
: e.distance;
break;
case o.ObjectiveType.Resurrects:
n = e.resurrectsToday;
break;
case o.ObjectiveType.Runs:
n = e.runs;
break;
case o.ObjectiveType.Score:
n = e.score;
break;
case o.ObjectiveType.UsedPowerMeter:
n = e.powerMeterUsedToday;
break;
case o.ObjectiveType.WaterZone_Exit:
n = e.waterSlideSurvivedToday;
break;
case o.ObjectiveType.MineZone_Exit:
n = e.minecartSurviveToday;
}
n > t && (n = t), (this._currentProgress.percent = (n / t) * 100), (this._currentProgress.text = `${Math.round(n)} / ${t}`);
}
_checkChallengeCompletion() {
this._isActiveChallengeCompleted ||
(this._activeChallengeData.objectiveTimeType == o.ObjectiveTimeType.PerRun
? this._checkForPerRunChallengeObjectiveIsComplete(r.GameController.instance.gameState.currentRunData) &&
((this._isActiveChallengeCompleted = !0),
(this._dailyChallengesData.isChallengeCompleted = this._isActiveChallengeCompleted),
(this._dailyChallengesData.currentDayStreak += 1),
(this._shouldShowChestUI = !0),
s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)),
(this._currentProgress = { percent: 0, text: "" }))
: this._activeChallengeData.objectiveTimeType == o.ObjectiveTimeType.OverTime &&
this._checkForPerDayChallengeData(r.GameController.instance.gameState.currentDayDataFinal) &&
((this._isActiveChallengeCompleted = !0),
(this._dailyChallengesData.isChallengeCompleted = this._isActiveChallengeCompleted),
(this._dailyChallengesData.currentDayStreak += 1),
(this._shouldShowChestUI = !0),
s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)),
(this._currentProgress = { percent: 0, text: "" })));
}
preUpdate() {
if (this._challengeUpdateCounter % 60 == 0) {
this.getChallangeExpiryTime() <= 0 && this._updateCurrentChallengeRunTime();
const e = this.getExpiryTimeString();
s.EventHandler.instance.fireEvent(s.EventID.NextChallengeTimerChanged, e),
this._activeChallengeData.objectiveTimeType == o.ObjectiveTimeType.OverTime && this._updateProgress(r.GameController.instance.gameState.currentDayData);
}
this._challengeUpdateCounter++;
}
postUpdate() {}
pause() {}
resume() {}
reset() {}
};
},
function (e, t, n) {
"use strict";
var i =
(this && this.__awaiter) ||
function (e, t, n, i) {
return new (n || (n = Promise))(function (r, o) {
function a(e) {
try {
c(i.next(e));
} catch (e) {
o(e);
}
}
function s(e) {
try {
c(i.throw(e));
} catch (e) {
o(e);
}
}
function c(e) {
var t;
e.done
? r(e.value)
: ((t = e.value),
t instanceof n
? t
: new n(function (e) {
e(t);
})).then(a, s);
}
c((i = i.apply(e, t || [])).next());
});
};
Object.defineProperty(t, "__esModule", { value: !0 }), (t.ChestController = t.ChestAnimation = void 0);
const r = n(40),
o = n(62),
a = n(29),
s = n(139);
var c;
!(function (e) {
(e[(e.Idle = 0)] = "Idle"), (e[(e.Open = 1)] = "Open"), (e[(e.Landing = 2)] = "Landing"), (e[(e.Spit = 3)] = "Spit"), (e[(e.OpenIdle = 4)] = "OpenIdle");
})((c = t.ChestAnimation || (t.ChestAnimation = {})));
t.ChestController = class {
constructor(e) {
(this._chestMeshFileURL = "assets/objects/chest/chest.glb"),
(this._chestTexture = "assets/objects/chest/chest.jpg"),
(this._beigeBgTexture = "assets/textures/beige_bg.jpg"),
(this._skeletons = []),
(this._animationGroups = []),
(this._scene = e);
}
initialize() {
return i(this, void 0, void 0, function* () {
this._loadBlackPanel(),
this._loadBeiegPanel(),
this._loadAssetChestAsync(this._scene),
a.EventHandler.instance.addListener(a.EventID.OnEnablingChestUI, this._enableChestUI.bind(this)),
a.EventHandler.instance.addListener(a.EventID.OnDisablingChestUI, this._disableChestUI.bind(this)),
a.EventHandler.instance.addListener(a.EventID.OnChestTap, this._chestTap.bind(this)),
(this._light = new o.HemisphericLight("HemiLight", new o.Vector3(0, 1, 0), this._scene)),
this._light.setEnabled(!1);
});
}
_enableChestUI() {
this._blackBg.setEnabled(!0),
this._chest.setEnabled(!0),
this._beigeBg.setEnabled(!0),
this._light.setEnabled(!0),
this._playAnimation(c.Landing),
this._chestClosedSparks.start(),
a.EventHandler.instance.fireEvent(a.EventID.PlaySFX, s.SoundID.ChestDropin);
}
_disableChestUI() {
this._blackBg.setEnabled(!1),
this._chest.setEnabled(!1),
this._beigeBg.setEnabled(!1),
this._light.setEnabled(!1),
this._chestClosedSparks.stop(),
this._chestOpenRaysPS.stop(),
a.EventHandler.instance.fireEvent(a.EventID.PlaySFX, s.SoundID.ChestLeave);
}
_chestTap() {
this._chestClosedSparks.stop(), this._playAnimation(c.Open);
const e = r.GameController.instance.dailyChallenges.getRewardAmount();
a.EventHandler.instance.fireEvent(a.EventID.OnChestReward, e),
this._chestOpenRaysPS.start(),
a.EventHandler.instance.fireEvent(a.EventID.PlaySFX, s.SoundID.ChestOpen),
setTimeout(() => {
this._chestOpenRaysPS.stop();
}, 2e3);
}
_createidleSparksPS() {
(this._chestClosedSparks = o.ParticleSystem.Parse(
{
name: "chestSparksClosed",
id: "default system",
capacity: 400,
emitter: [0, 0, 0],
particleEmitterType: { type: "BoxParticleEmitter", direction1: [1, 0, 1], direction2: [-1, 0, -1], minEmitBox: [-0.3, -0.01, -0.3], maxEmitBox: [0.3, 0.01, 0.3] },
texture: {
tags: null,
url: "",
uOffset: 0,
vOffset: 0,
uScale: 1,
vScale: 1,
uAng: 0,
vAng: 0,
wAng: 0,
uRotationCenter: 0.5,
vRotationCenter: 0.5,
wRotationCenter: 0.5,
isBlocking: !0,
uniqueId: 8,
name: "",
hasAlpha: !0,
getAlphaFromRGB: !1,
level: 1,
coordinatesIndex: 0,
coordinatesMode: 0,
wrapU: 1,
wrapV: 1,
wrapR: 1,
anisotropicFilteringLevel: 4,
isCube: !1,
is3D: !1,
is2DArray: !1,
gammaSpace: !0,
invertZ: !1,
lodLevelInAlpha: !1,
lodGenerationOffset: 0,
lodGenerationScale: 0,
linearSpecularLOD: !1,
isRenderTarget: !1,
animations: [],
invertY: !0,
samplingMode: 3,
},
isLocal: !1,
animations: [],
beginAnimationOnStart: !1,
beginAnimationFrom: 0,
beginAnimationTo: 60,
beginAnimationLoop: !1,
startDelay: 0,
renderingGroupId: 0,
isBillboardBased: !0,
billboardMode: 7,
minAngularSpeed: 0,
maxAngularSpeed: 0,
minSize: 0.1,
maxSize: 0.1,
minScaleX: 1,
maxScaleX: 1,
minScaleY: 1,
maxScaleY: 1,
minEmitPower: 2,
maxEmitPower: 2,
minLifeTime: 1,
maxLifeTime: 2,
emitRate: 50,
gravity: [0, 0, 0],
noiseStrength: [10, 10, 10],
color1: [1, 1, 1, 1],
color2: [1, 1, 1, 1],
colorDead: [1, 1, 1, 0],
updateSpeed: 0.016666666666666666,
targetStopDuration: 0,
blendMode: 2,
preWarmCycles: 0,
preWarmStepOffset: 1,
minInitialRotation: 0,
maxInitialRotation: 0,
startSpriteCellID: 0,
endSpriteCellID: 0,
spriteCellChangeSpeed: 1,
spriteCellWidth: 0,
spriteCellHeight: 0,
spriteRandomStartCell: !1,
isAnimationSheetEnabled: !1,
velocityGradients: [
{ gradient: 0, factor1: 0.1, factor2: 0.3 },
{ gradient: 1, factor1: 1, factor2: 0.1 },
],
limitVelocityGradients: [],
limitVelocityDamping: 0.4,
textureMask: [1, 1, 1, 1],
customShader: null,
preventAutoStart: !1,
},
this._scene,
"",
!0
)),
(this._chestClosedSparks.particleTexture = new o.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, o.Texture.TRILINEAR_SAMPLINGMODE)),
(this._chestClosedSparks.startSpriteCellID = 45),
(this._chestClosedSparks.endSpriteCellID = 45),
(this._chestClosedSparks.spriteCellHeight = 64),
(this._chestClosedSparks.spriteCellWidth = 64),
(this._chestClosedSparks.spriteCellChangeSpeed = 0),
(this._chestClosedSparks.isAnimationSheetEnabled = !0),
(this._chestClosedSparks.isLocal = !1),
(this._chestClosedSparks.minSize = 0.3),
(this._chestClosedSparks.maxSize = 0.3),
(this._chestClosedSparks.minLifeTime = 1.5),
(this._chestClosedSparks.maxLifeTime = 2),
(this._chestClosedSparks.minInitialRotation = 0),
(this._chestClosedSparks.maxInitialRotation = Math.PI),
this._chestClosedSparks.addAngularSpeedGradient(0, 0.5, 0.8),
this._chestClosedSparks.addAngularSpeedGradient(1, 1, 2),
(this._chestClosedSparks.blendMode = o.ParticleSystem.BLENDMODE_ADD);
const e = new o.Vector3(0, -0.6, 0.3);
(this._chestClosedSparks.worldOffset = this._chest.position.subtract(e)), (this._chestClosedSparks.layerMask = 3), (this._chestClosedSparks.renderingGroupId = r.ETR2RenderingGroup.UI);
}
_createRaysOnOpenPS() {
(this._chestOpenRaysPS = o.ParticleSystem.Parse(
{
name: "chestRays",
id: "default system",
capacity: 10,
emitter: [0, 0, 0],
particleEmitterType: { type: "ConeParticleEmitter", radius: 0.1, angle: 0.7853981633974483, directionRandomizer: 0, radiusRange: 1, heightRange: 1, emitFromSpawnPointOnly: !1 },
texture: {
tags: null,
url: "",
uOffset: 0,
vOffset: 0,
uScale: 1,
vScale: 1,
uAng: 0,
vAng: 0,
wAng: 0,
uRotationCenter: 0.5,
vRotationCenter: 0.5,
wRotationCenter: 0.5,
isBlocking: !0,
uniqueId: 8,
name: "",
hasAlpha: !0,
getAlphaFromRGB: !1,
level: 1,
coordinatesIndex: 0,
coordinatesMode: 0,
wrapU: 1,
wrapV: 1,
wrapR: 1,
anisotropicFilteringLevel: 4,
isCube: !1,
is3D: !1,
is2DArray: !1,
gammaSpace: !0,
invertZ: !1,
lodLevelInAlpha: !1,
lodGenerationOffset: 0,
lodGenerationScale: 0,
linearSpecularLOD: !1,
isRenderTarget: !1,
animations: [],
invertY: !0,
samplingMode: 3,
},
isLocal: !1,
animations: [],
beginAnimationOnStart: !1,
beginAnimationFrom: 0,
beginAnimationTo: 60,
beginAnimationLoop: !1,
startDelay: 0,
renderingGroupId: 0,
isBillboardBased: !0,
billboardMode: 7,
minAngularSpeed: 0,
maxAngularSpeed: 0,
minSize: 0.1,
maxSize: 0.1,
minScaleX: 5,
maxScaleX: 10,
minScaleY: 20,
maxScaleY: 20,
minEmitPower: 0,
maxEmitPower: 0,
minLifeTime: 2,
maxLifeTime: 2,
emitRate: 3,
gravity: [0, 0, 0],
noiseStrength: [10, 10, 10],
color1: [1, 1, 1, 1],
color2: [1, 1, 1, 1],
colorDead: [1, 1, 1, 0],
updateSpeed: 0.016666666666666666,
targetStopDuration: 1,
blendMode: 2,
preWarmCycles: 0,
preWarmStepOffset: 1,
minInitialRotation: 0,
maxInitialRotation: 0,
startSpriteCellID: 0,
endSpriteCellID: 0,
spriteCellChangeSpeed: 1,
spriteCellWidth: 0,
spriteCellHeight: 0,
spriteRandomStartCell: !1,
isAnimationSheetEnabled: !1,
textureMask: [1, 1, 1, 1],
customShader: null,
preventAutoStart: !0,
},
this._scene,
"",
!0
)),
(this._chestOpenRaysPS.particleTexture = new o.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, o.Texture.TRILINEAR_SAMPLINGMODE)),
(this._chestOpenRaysPS.startSpriteCellID = 21),
(this._chestOpenRaysPS.endSpriteCellID = 21),
(this._chestOpenRaysPS.spriteCellHeight = 64),
(this._chestOpenRaysPS.spriteCellWidth = 128),
(this._chestOpenRaysPS.spriteCellChangeSpeed = 0),
(this._chestOpenRaysPS.isAnimationSheetEnabled = !0),
(this._chestOpenRaysPS.blendMode = o.ParticleSystem.BLENDMODE_ADD),
(this._chestOpenRaysPS.targetStopDuration = 1),
(this._chestOpenRaysPS.minInitialRotation = Math.PI / 2),
(this._chestOpenRaysPS.maxInitialRotation = Math.PI / 2),
(this._chestOpenRaysPS.minScaleX = 20),
(this._chestOpenRaysPS.maxScaleX = 25),
(this._chestOpenRaysPS.minScaleY = 25),
(this._chestOpenRaysPS.maxScaleY = 30);
const e = new o.Vector3(0, -1, 0);
(this._chestOpenRaysPS.worldOffset = this._chest.position.subtract(e)), (this._chestOpenRaysPS.layerMask = 3), (this._chestOpenRaysPS.renderingGroupId = r.ETR2RenderingGroup.UI);
}
_initializeVFX() {
this._createidleSparksPS(), this._createRaysOnOpenPS();
}
_loadBlackPanel() {
(this._blackBg = o.Mesh.CreatePlane("ChestBG", 20, this._scene)), (this._blackBg.position.z = 1), (this._blackBg.renderingGroupId = r.ETR2RenderingGroup.UI);
const e = new o.StandardMaterial("BlackBG", this._scene);
(e.diffuseColor = o.Color3.Black()), (e.alpha = 0.5), (this._blackBg.material = e), (this._blackBg.layerMask = 3), this._blackBg.setEnabled(!1);
}
_loadBeiegPanel() {
(this._beigeBg = o.Mesh.CreatePlane("ChestBG2", 20, this._scene)), (this._beigeBg.position.z = 2), (this._beigeBg.renderingGroupId = r.ETR2RenderingGroup.UI);
const e = new o.StandardMaterial("BeiegBG", this._scene),
t = new o.Texture(this._beigeBgTexture, this._scene);
(e.diffuseTexture = t), (this._beigeBg.material = e), (this._beigeBg.layerMask = 3), this._beigeBg.setEnabled(!1);
}
_loadAssetChestAsync(e) {
return i(this, void 0, void 0, function* () {
const t = yield o.SceneLoader.ImportMeshAsync(null, this._chestMeshFileURL, void 0, e);
this._material = new o.StandardMaterial("ChestMaterial", this._scene);
const n = new o.Texture(this._chestTexture, this._scene);
(this._material.diffuseTexture = n),
(this._material.emissiveTexture = n),
(this._material.disableLighting = !0),
(t.meshes[1].material = this._material),
(t.meshes[1].renderingGroupId = r.ETR2RenderingGroup.UI),
(this._chest = t.meshes[0]),
(this._chest.renderingGroupId = r.ETR2RenderingGroup.UI),
(this._chest.scaling = new o.Vector3(2.5 * this._chest.scaling.x, 2.5 * this._chest.scaling.y, 2.5 * this._chest.scaling.z)),
(this._chest.position.y += 2),
(this._chest.rotation = o.Vector3.Zero()),
(this._animationGroups = t.animationGroups),
(this._skeletons = t.skeletons),
(this._chest.layerMask = 3),
this._setupAnimations(),
this._chest.setEnabled(!1),
this._initializeVFX(),
this._playAnimation(c.Idle);
});
}
_setupAnimations() {
(this._idleAnimation = this._animationGroups.find((e) => "idle" === e.name)),
(this._openAnimation = this._animationGroups.find((e) => "open" === e.name)),
this._openAnimation.onAnimationGroupEndObservable.add(() => {
this._playAnimation(c.OpenIdle);
}),
(this._landAnimation = this._animationGroups.find((e) => "landing" === e.name)),
(this._landAnimation.loopAnimation = !1),
this._landAnimation.onAnimationGroupEndObservable.add(() => {
this._playAnimation(c.Idle), a.EventHandler.instance.fireEvent(a.EventID.OnChestLandingDone);
}),
(this._openIdleAnimation = this._animationGroups.find((e) => "open_idle" === e.name)),
(this._spitAnimatoin = this._animationGroups.find((e) => "spit" === e.name));
}
_getAnimation(e) {
switch (e) {
case c.Idle:
return this._idleAnimation;
case c.Open:
return this._openAnimation;
case c.Landing:
return this._landAnimation;
case c.Spit:
return this._spitAnimatoin;
case c.OpenIdle:
return this._openIdleAnimation;
}
}
_playAnimation(e, t = 0) {
var n, i;
const r = this._currentAnimaton;
null == r || r.stop(), null == r || r.setWeightForAllAnimatables(0), (this._currentAnimaton = this._getAnimation(e));
let o = !1;
(e != c.Idle && e != c.OpenIdle && e != c.Spit) || (o = !0),
null === (n = this._currentAnimaton) || void 0 === n || n.setWeightForAllAnimatables(1),
0 == t
? null === (i = this._currentAnimaton) || void 0 === i || i.start(o)
: setTimeout(() => {
var e;
null === (e = this._currentAnimaton) || void 0 === e || e.start(o);
}, t);
}
preUpdate() {}
postUpdate() {}
pause() {
var e;
null === (e = this._currentAnimaton) || void 0 === e || e.stop();
}
resume() {
var e;
null === (e = this._currentAnimaton) || void 0 === e || e.play();
}
reset() {}
};
},
function (e) {
e.exports = JSON.parse(
'{"BonusMeterFull":{"start":0,"end":0.4010884353741497,"loop":false},"BonusPickup":{"start":2,"end":2.1775056689342405,"loop":false},"BoostLoop":{"start":4,"end":4.7424489795918365,"loop":false},"ButtonClick":{"start":6,"end":6.696598639455782,"loop":false},"CashRegister":{"start":8,"end":9.441950113378685,"loop":false},"ChestDropin":{"start":11,"end":11.708117913832199,"loop":false},"ChestLeave":{"start":13,"end":13.297052154195011,"loop":false},"ChestOpen":{"start":15,"end":15.77047619047619,"loop":false},"ChestScreenOpen":{"start":17,"end":17.979183673469386,"loop":false},"Coin":{"start":19,"end":19.353514739229023,"loop":false},"GruntJump":{"start":21,"end":21.170113378684807,"loop":false},"GruntJumpLand":{"start":23,"end":23.255419501133787,"loop":false},"GruntTrip":{"start":25,"end":25.276780045351472,"loop":false},"Magnet":{"start":27,"end":27.889387755102042,"loop":false},"MineCartLoop":{"start":29,"end":30.20843537414966,"loop":false},"MineCartTilt":{"start":32,"end":32.41151927437642,"loop":false},"MineCartTurn":{"start":34,"end":34.35233560090703,"loop":false},"MonkeyRoar":{"start":36,"end":38.114331065759636,"loop":false},"PillarCrash":{"start":40,"end":41.84746031746032,"loop":false},"PillarFall":{"start":43,"end":46.38650793650794,"loop":false},"Scream":{"start":48,"end":49.47736961451247,"loop":false},"ShieldLoop":{"start":51,"end":51.69668934240363,"loop":false},"ShieldPop":{"start":53,"end":53.66244897959184,"loop":false},"Sizzle":{"start":55,"end":56.36521541950113,"loop":false},"Slide":{"start":58,"end":58.83827664399093,"loop":false},"Splash":{"start":60,"end":62.51827664399093,"loop":false},"SplashEntry":{"start":64,"end":64.62721088435374,"loop":false},"Splat":{"start":66,"end":66.32598639455782,"loop":false},"Swish":{"start":68,"end":68.11120181405896,"loop":false},"Woohoo":{"start":70,"end":71.05224489795918,"loop":false},"Wooosh":{"start":73,"end":73.29727891156463,"loop":false}}'
);
},
function (e) {
e.exports = JSON.parse(
'{"FlameTrap":{"start":0,"end":2.6417687074829934,"loop":false},"SawBlade":{"start":4,"end":9.027120181405895,"loop":false},"SkySummitPlank":{"start":11,"end":12.186190476190475,"loop":false},"SpinningSpikeTrap":{"start":14,"end":14.623764172335601,"loop":false},"WaterLoopC":{"start":16,"end":18.52126984126984,"loop":false}}'
);
},
function (e, t, n) {
(function (t) {
var i;
"undefined" != typeof self && self,
(i = function (e, t, n, i, r) {
return (function (e) {
var t = {};
function n(i) {
if (t[i]) return t[i].exports;
var r = (t[i] = { i: i, l: !1, exports: {} });
return e[i].call(r.exports, r, r.exports, n), (r.l = !0), r.exports;
}
return (
(n.m = e),
(n.c = t),
(n.d = function (e, t, i) {
n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: i });
}),
(n.r = function (e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
}),
(n.t = function (e, t) {
if ((1 & t && (e = n(e)), 8 & t)) return e;
if (4 & t && "object" == typeof e && e && e.__esModule) return e;
var i = Object.create(null);
if ((n.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e))
for (var r in e)
n.d(
i,
r,
function (t) {
return e[t];
}.bind(null, r)
);
return i;
}),
(n.n = function (e) {
var t =
e && e.__esModule
? function () {
return e.default;
}
: function () {
return e;
};
return n.d(t, "a", t), t;
}),
(n.o = function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}),
(n.p = ""),
n((n.s = "./legacy/legacy.ts"))
);
})({
"../../../../node_modules/@fortawesome/fontawesome-svg-core/index.es.js": function (e, t, n) {
"use strict";
n.r(t),
function (e, i) {
function r(e) {
return (r =
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
? function (e) {
return typeof e;
}
: function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
})(e);
}
function o(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
function a(e, t, n) {
return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e;
}
function s(e) {
for (var t = 1; t < arguments.length; t++) {
var n = null != arguments[t] ? arguments[t] : {},
i = Object.keys(n);
"function" == typeof Object.getOwnPropertySymbols &&
(i = i.concat(
Object.getOwnPropertySymbols(n).filter(function (e) {
return Object.getOwnPropertyDescriptor(n, e).enumerable;
})
)),
i.forEach(function (t) {
a(e, t, n[t]);
});
}
return e;
}
function c(e, t) {
return (
(function (e) {
if (Array.isArray(e)) return e;
})(e) ||
(function (e, t) {
var n = [],
i = !0,
r = !1,
o = void 0;
try {
for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) && (n.push(a.value), !t || n.length !== t); i = !0);
} catch (e) {
(r = !0), (o = e);
} finally {
try {
i || null == s.return || s.return();
} finally {
if (r) throw o;
}
}
return n;
})(e, t) ||
(function () {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
})()
);
}
function l(e) {
return (
(function (e) {
if (Array.isArray(e)) {
for (var t = 0, n = new Array(e.length); t < e.length; t++) n[t] = e[t];
return n;
}
})(e) ||
(function (e) {
if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e);
})(e) ||
(function () {
throw new TypeError("Invalid attempt to spread non-iterable instance");
})()
);
}
n.d(t, "icon", function () {
return Pt;
}),
n.d(t, "noAuto", function () {
return _t;
}),
n.d(t, "config", function () {
return L;
}),
n.d(t, "toHtml", function () {
return Ne;
}),
n.d(t, "layer", function () {
return St;
}),
n.d(t, "text", function () {
return xt;
}),
n.d(t, "counter", function () {
return Tt;
}),
n.d(t, "library", function () {
return bt;
}),
n.d(t, "dom", function () {
return yt;
}),
n.d(t, "parse", function () {
return Ct;
}),
n.d(t, "findIconDefinition", function () {
return mt;
});
var u = function () {},
h = {},
d = {},
p = null,
f = { mark: u, measure: u };
try {
"undefined" != typeof window && (h = window),
"undefined" != typeof document && (d = document),
"undefined" != typeof MutationObserver && (p = MutationObserver),
"undefined" != typeof performance && (f = performance);
} catch (e) {}
var m = (h.navigator || {}).userAgent,
g = void 0 === m ? "" : m,
b = h,
_ = d,
v = p,
y = f,
C = (b.document, !!_.documentElement && !!_.head && "function" == typeof _.addEventListener && "function" == typeof _.createElement),
P = ~g.indexOf("MSIE") || ~g.indexOf("Trident/"),
x = ["HTML", "HEAD", "STYLE", "SCRIPT"],
T = { fas: "solid", far: "regular", fal: "light", fab: "brands", fa: "solid" },
S = { solid: "fas", regular: "far", light: "fal", brands: "fab" },
O = /Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/,
E = { 900: "fas", 400: "far", normal: "far", 300: "fal" },
M = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
A = M.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),
I = ["class", "data-prefix", "data-icon", "data-fa-transform", "data-fa-mask"],
D = [
"xs",
"sm",
"lg",
"fw",
"ul",
"li",
"border",
"pull-left",
"pull-right",
"spin",
"pulse",
"rotate-90",
"rotate-180",
"rotate-270",
"flip-horizontal",
"flip-vertical",
"flip-both",
"stack",
"stack-1x",
"stack-2x",
"inverse",
"layers",
"layers-text",
"layers-counter",
]
.concat(
M.map(function (e) {
return "".concat(e, "x");
})
)
.concat(
A.map(function (e) {
return "w-".concat(e);
})
),
R = b.FontAwesomeConfig || {};
_ &&
"function" == typeof _.querySelector &&
[
["data-family-prefix", "familyPrefix"],
["data-replacement-class", "replacementClass"],
["data-auto-replace-svg", "autoReplaceSvg"],
["data-auto-add-css", "autoAddCss"],
["data-auto-a11y", "autoA11y"],
["data-search-pseudo-elements", "searchPseudoElements"],
["data-observe-mutations", "observeMutations"],
["data-mutate-approach", "mutateApproach"],
["data-keep-original-source", "keepOriginalSource"],
["data-measure-performance", "measurePerformance"],
["data-show-missing-icons", "showMissingIcons"],
].forEach(function (e) {
var t = c(e, 2),
n = t[0],
i = t[1],
r = (function (e) {
return "" === e || ("false" !== e && ("true" === e || e));
})(
(function (e) {
var t = _.querySelector("script[" + e + "]");
if (t) return t.getAttribute(e);
})(n)
);
null != r && (R[i] = r);
});
var w = s(
{},
{
familyPrefix: "fa",
replacementClass: "svg-inline--fa",
autoReplaceSvg: !0,
autoAddCss: !0,
autoA11y: !0,
searchPseudoElements: !1,
observeMutations: !0,
mutateApproach: "async",
keepOriginalSource: !0,
measurePerformance: !1,
showMissingIcons: !0,
},
R
);
w.autoReplaceSvg || (w.observeMutations = !1);
var L = s({}, w);
b.FontAwesomeConfig = L;
var F = b || {};
F.___FONT_AWESOME___ || (F.___FONT_AWESOME___ = {}),
F.___FONT_AWESOME___.styles || (F.___FONT_AWESOME___.styles = {}),
F.___FONT_AWESOME___.hooks || (F.___FONT_AWESOME___.hooks = {}),
F.___FONT_AWESOME___.shims || (F.___FONT_AWESOME___.shims = []);
var N = F.___FONT_AWESOME___,
k = [],
z = !1;
function j(e) {
C && (z ? setTimeout(e, 0) : k.push(e));
}
C &&
((z = (_.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(_.readyState)) ||
_.addEventListener("DOMContentLoaded", function e() {
_.removeEventListener("DOMContentLoaded", e),
(z = 1),
k.map(function (e) {
return e();
});
}));
var B,
V = function () {},
G = void 0 !== e && void 0 !== e.process && "function" == typeof e.process.emit,
U = void 0 === i ? setTimeout : i,
H = [];
function W() {
for (var e = 0; e < H.length; e++) H[e][0](H[e][1]);
(H = []), (B = !1);
}
function X(e, t) {
H.push([e, t]), B || ((B = !0), U(W, 0));
}
function Y(e) {
var t = e.owner,
n = t._state,
i = t._data,
r = e[n],
o = e.then;
if ("function" == typeof r) {
n = "fulfilled";
try {
i = r(i);
} catch (e) {
Q(o, e);
}
}
K(o, i) || ("fulfilled" === n && Z(o, i), "rejected" === n && Q(o, i));
}
function K(e, t) {
var n;
try {
if (e === t) throw new TypeError("A promises callback cannot return that same promise.");
if (t && ("function" == typeof t || "object" === r(t))) {
var i = t.then;
if ("function" == typeof i)
return (
i.call(
t,
function (i) {
n || ((n = !0), t === i ? q(e, i) : Z(e, i));
},
function (t) {
n || ((n = !0), Q(e, t));
}
),
!0
);
}
} catch (t) {
return n || Q(e, t), !0;
}
return !1;
}
function Z(e, t) {
(e !== t && K(e, t)) || q(e, t);
}
function q(e, t) {
"pending" === e._state && ((e._state = "settled"), (e._data = t), X($, e));
}
function Q(e, t) {
"pending" === e._state && ((e._state = "settled"), (e._data = t), X(ee, e));
}
function J(e) {
e._then = e._then.forEach(Y);
}
function $(e) {
(e._state = "fulfilled"), J(e);
}
function ee(t) {
(t._state = "rejected"), J(t), !t._handled && G && e.process.emit("unhandledRejection", t._data, t);
}
function te(t) {
e.process.emit("rejectionHandled", t);
}
function ne(e) {
if ("function" != typeof e) throw new TypeError("Promise resolver " + e + " is not a function");
if (this instanceof ne == 0) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
(this._then = []),
(function (e, t) {
function n(e) {
Q(t, e);
}
try {
e(function (e) {
Z(t, e);
}, n);
} catch (e) {
n(e);
}
})(e, this);
}
(ne.prototype = {
constructor: ne,
_state: "pending",
_then: null,
_data: void 0,
_handled: !1,
then: function (e, t) {
var n = { owner: this, then: new this.constructor(V), fulfilled: e, rejected: t };
return (
(!t && !e) || this._handled || ((this._handled = !0), "rejected" === this._state && G && X(te, this)),
"fulfilled" === this._state || "rejected" === this._state ? X(Y, n) : this._then.push(n),
n.then
);
},
catch: function (e) {
return this.then(null, e);
},
}),
(ne.all = function (e) {
if (!Array.isArray(e)) throw new TypeError("You must pass an array to Promise.all().");
return new ne(function (t, n) {
var i = [],
r = 0;
function o(e) {
return (
r++,
function (n) {
(i[e] = n), --r || t(i);
}
);
}
for (var a, s = 0; s < e.length; s++) (a = e[s]) && "function" == typeof a.then ? a.then(o(s), n) : (i[s] = a);
r || t(i);
});
}),
(ne.race = function (e) {
if (!Array.isArray(e)) throw new TypeError("You must pass an array to Promise.race().");
return new ne(function (t, n) {
for (var i, r = 0; r < e.length; r++) (i = e[r]) && "function" == typeof i.then ? i.then(t, n) : t(i);
});
}),
(ne.resolve = function (e) {
return e && "object" === r(e) && e.constructor === ne
? e
: new ne(function (t) {
t(e);
});
}),
(ne.reject = function (e) {
return new ne(function (t, n) {
n(e);
});
});
var ie = "function" == typeof Promise ? Promise : ne,
re = 16,
oe = { size: 16, x: 0, y: 0, rotate: 0, flipX: !1, flipY: !1 };
function ae(e) {
if (e && C) {
var t = _.createElement("style");
t.setAttribute("type", "text/css"), (t.innerHTML = e);
for (var n = _.head.childNodes, i = null, r = n.length - 1; r > -1; r--) {
var o = n[r],
a = (o.tagName || "").toUpperCase();
["STYLE", "LINK"].indexOf(a) > -1 && (i = o);
}
return _.head.insertBefore(t, i), e;
}
}
function se() {
for (var e = 12, t = ""; e-- > 0; ) t += "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[(62 * Math.random()) | 0];
return t;
}
function ce(e) {
for (var t = [], n = (e || []).length >>> 0; n--; ) t[n] = e[n];
return t;
}
function le(e) {
return e.classList
? ce(e.classList)
: (e.getAttribute("class") || "").split(" ").filter(function (e) {
return e;
});
}
function ue(e, t) {
var n = t.split("-"),
i = n[0],
r = n.slice(1).join("-");
return i !== e ||
"" === r ||
(function (e) {
return ~D.indexOf(e);
})(r)
? null
: r;
}
function he(e) {
return "".concat(e).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">");
}
function de(e) {
return Object.keys(e || {}).reduce(function (t, n) {
return t + "".concat(n, ": ").concat(e[n], ";");
}, "");
}
function pe(e) {
return e.size !== oe.size || e.x !== oe.x || e.y !== oe.y || e.rotate !== oe.rotate || e.flipX || e.flipY;
}
function fe(e) {
var t = e.transform,
n = e.containerWidth,
i = e.iconWidth,
r = { transform: "translate(".concat(n / 2, " 256)") },
o = "translate(".concat(32 * t.x, ", ").concat(32 * t.y, ") "),
a = "scale(".concat((t.size / 16) * (t.flipX ? -1 : 1), ", ").concat((t.size / 16) * (t.flipY ? -1 : 1), ") "),
s = "rotate(".concat(t.rotate, " 0 0)");
return { outer: r, inner: { transform: "".concat(o, " ").concat(a, " ").concat(s) }, path: { transform: "translate(".concat((i / 2) * -1, " -256)") } };
}
var me = { x: 0, y: 0, width: "100%", height: "100%" };
function ge(e) {
var t = e.icons,
n = t.main,
i = t.mask,
r = e.prefix,
o = e.iconName,
a = e.transform,
c = e.symbol,
l = e.title,
u = e.extra,
h = e.watchable,
d = void 0 !== h && h,
p = i.found ? i : n,
f = p.width,
m = p.height,
g = "fa-w-".concat(Math.ceil((f / m) * 16)),
b = [L.replacementClass, o ? "".concat(L.familyPrefix, "-").concat(o) : "", g]
.filter(function (e) {
return -1 === u.classes.indexOf(e);
})
.concat(u.classes)
.join(" "),
_ = {
children: [],
attributes: s({}, u.attributes, {
"data-prefix": r,
"data-icon": o,
class: b,
role: u.attributes.role || "img",
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 ".concat(f, " ").concat(m),
}),
};
d && (_.attributes["data-fa-i2svg"] = ""), l && _.children.push({ tag: "title", attributes: { id: _.attributes["aria-labelledby"] || "title-".concat(se()) }, children: [l] });
var v = s({}, _, { prefix: r, iconName: o, main: n, mask: i, transform: a, symbol: c, styles: u.styles }),
y =
i.found && n.found
? (function (e) {
var t = e.children,
n = e.attributes,
i = e.main,
r = e.mask,
o = e.transform,
a = i.width,
c = i.icon,
l = r.width,
u = r.icon,
h = fe({ transform: o, containerWidth: l, iconWidth: a }),
d = { tag: "rect", attributes: s({}, me, { fill: "white" }) },
p = { tag: "g", attributes: s({}, h.inner), children: [{ tag: "path", attributes: s({}, c.attributes, h.path, { fill: "black" }) }] },
f = { tag: "g", attributes: s({}, h.outer), children: [p] },
m = "mask-".concat(se()),
g = "clip-".concat(se()),
b = {
tag: "defs",
children: [
{ tag: "clipPath", attributes: { id: g }, children: [u] },
{ tag: "mask", attributes: s({}, me, { id: m, maskUnits: "userSpaceOnUse", maskContentUnits: "userSpaceOnUse" }), children: [d, f] },
],
};
return t.push(b, { tag: "rect", attributes: s({ fill: "currentColor", "clip-path": "url(#".concat(g, ")"), mask: "url(#".concat(m, ")") }, me) }), { children: t, attributes: n };
})(v)
: (function (e) {
var t = e.children,
n = e.attributes,
i = e.main,
r = e.transform,
o = de(e.styles);
if ((o.length > 0 && (n.style = o), pe(r))) {
var a = fe({ transform: r, containerWidth: i.width, iconWidth: i.width });
t.push({
tag: "g",
attributes: s({}, a.outer),
children: [{ tag: "g", attributes: s({}, a.inner), children: [{ tag: i.icon.tag, children: i.icon.children, attributes: s({}, i.icon.attributes, a.path) }] }],
});
} else t.push(i.icon);
return { children: t, attributes: n };
})(v),
C = y.children,
P = y.attributes;
return (
(v.children = C),
(v.attributes = P),
c
? (function (e) {
var t = e.prefix,
n = e.iconName,
i = e.children,
r = e.attributes,
o = e.symbol;
return [
{
tag: "svg",
attributes: { style: "display: none;" },
children: [{ tag: "symbol", attributes: s({}, r, { id: !0 === o ? "".concat(t, "-").concat(L.familyPrefix, "-").concat(n) : o }), children: i }],
},
];
})(v)
: (function (e) {
var t = e.children,
n = e.main,
i = e.mask,
r = e.attributes,
o = e.styles,
a = e.transform;
if (pe(a) && n.found && !i.found) {
var c = { x: n.width / n.height / 2, y: 0.5 };
r.style = de(s({}, o, { "transform-origin": "".concat(c.x + a.x / 16, "em ").concat(c.y + a.y / 16, "em") }));
}
return [{ tag: "svg", attributes: r, children: t }];
})(v)
);
}
function be(e) {
var t = e.content,
n = e.width,
i = e.height,
r = e.transform,
o = e.title,
a = e.extra,
c = e.watchable,
l = void 0 !== c && c,
u = s({}, a.attributes, o ? { title: o } : {}, { class: a.classes.join(" ") });
l && (u["data-fa-i2svg"] = "");
var h = s({}, a.styles);
pe(r) &&
((h.transform = (function (e) {
var t = e.transform,
n = e.width,
i = void 0 === n ? 16 : n,
r = e.height,
o = void 0 === r ? 16 : r,
a = e.startCentered,
s = void 0 !== a && a,
c = "";
return (
(c +=
s && P
? "translate(".concat(t.x / re - i / 2, "em, ").concat(t.y / re - o / 2, "em) ")
: s
? "translate(calc(-50% + ".concat(t.x / re, "em), calc(-50% + ").concat(t.y / re, "em)) ")
: "translate(".concat(t.x / re, "em, ").concat(t.y / re, "em) ")),
(c += "scale(".concat((t.size / re) * (t.flipX ? -1 : 1), ", ").concat((t.size / re) * (t.flipY ? -1 : 1), ") ")),
(c += "rotate(".concat(t.rotate, "deg) "))
);
})({ transform: r, startCentered: !0, width: n, height: i })),
(h["-webkit-transform"] = h.transform));
var d = de(h);
d.length > 0 && (u.style = d);
var p = [];
return p.push({ tag: "span", attributes: u, children: [t] }), o && p.push({ tag: "span", attributes: { class: "sr-only" }, children: [o] }), p;
}
function _e(e) {
var t = e.content,
n = e.title,
i = e.extra,
r = s({}, i.attributes, n ? { title: n } : {}, { class: i.classes.join(" ") }),
o = de(i.styles);
o.length > 0 && (r.style = o);
var a = [];
return a.push({ tag: "span", attributes: r, children: [t] }), n && a.push({ tag: "span", attributes: { class: "sr-only" }, children: [n] }), a;
}
var ve = function () {},
ye = L.measurePerformance && y && y.mark && y.measure ? y : { mark: ve, measure: ve },
Ce = function (e) {
ye.mark("".concat('FA "5.9.0"', " ").concat(e, " ends")),
ye.measure("".concat('FA "5.9.0"', " ").concat(e), "".concat('FA "5.9.0"', " ").concat(e, " begins"), "".concat('FA "5.9.0"', " ").concat(e, " ends"));
},
Pe = function (e) {
return (
ye.mark("".concat('FA "5.9.0"', " ").concat(e, " begins")),
function () {
return Ce(e);
}
);
},
xe = function (e, t, n, i) {
var r,
o,
a,
s = Object.keys(e),
c = s.length,
l =
void 0 !== i
? (function (e, t) {
return function (n, i, r, o) {
return e.call(t, n, i, r, o);
};
})(t, i)
: t;
for (void 0 === n ? ((r = 1), (a = e[s[0]])) : ((r = 0), (a = n)); r < c; r++) a = l(a, e[(o = s[r])], o, e);
return a;
};
function Te(e) {
for (var t = "", n = 0; n < e.length; n++) t += ("000" + e.charCodeAt(n).toString(16)).slice(-4);
return t;
}
function Se(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
i = n.skipHooks,
r = void 0 !== i && i,
o = Object.keys(t).reduce(function (e, n) {
var i = t[n];
return i.icon ? (e[i.iconName] = i.icon) : (e[n] = i), e;
}, {});
"function" != typeof N.hooks.addPack || r ? (N.styles[e] = s({}, N.styles[e] || {}, o)) : N.hooks.addPack(e, o), "fas" === e && Se("fa", t);
}
var Oe = N.styles,
Ee = N.shims,
Me = {},
Ae = {},
Ie = {},
De = function () {
var e = function (e) {
return xe(
Oe,
function (t, n, i) {
return (t[i] = xe(n, e, {})), t;
},
{}
);
};
(Me = e(function (e, t, n) {
return t[3] && (e[t[3]] = n), e;
})),
(Ae = e(function (e, t, n) {
var i = t[2];
return (
(e[n] = n),
i.forEach(function (t) {
e[t] = n;
}),
e
);
}));
var t = "far" in Oe;
Ie = xe(
Ee,
function (e, n) {
var i = n[0],
r = n[1],
o = n[2];
return "far" !== r || t || (r = "fas"), (e[i] = { prefix: r, iconName: o }), e;
},
{}
);
};
function Re(e, t) {
return (Me[e] || {})[t];
}
De();
var we = N.styles;
function Le(e) {
return e.reduce(
function (e, t) {
var n = ue(L.familyPrefix, t);
if (we[t]) e.prefix = t;
else if (L.autoFetchSvg && ["fas", "far", "fal", "fab", "fa"].indexOf(t) > -1) e.prefix = t;
else if (n) {
var i =
"fa" === e.prefix
? (function (e) {
return Ie[e] || { prefix: null, iconName: null };
})(n)
: {};
(e.iconName = i.iconName || n), (e.prefix = i.prefix || e.prefix);
} else t !== L.replacementClass && 0 !== t.indexOf("fa-w-") && e.rest.push(t);
return e;
},
{ prefix: null, iconName: null, rest: [] }
);
}
function Fe(e, t, n) {
if (e && e[t] && e[t][n]) return { prefix: t, iconName: n, icon: e[t][n] };
}
function Ne(e) {
var t = e.tag,
n = e.attributes,
i = void 0 === n ? {} : n,
r = e.children,
o = void 0 === r ? [] : r;
return "string" == typeof e
? he(e)
: "<"
.concat(t, " ")
.concat(
(function (e) {
return Object.keys(e || {})
.reduce(function (t, n) {
return t + "".concat(n, '="').concat(he(e[n]), '" ');
}, "")
.trim();
})(i),
">"
)
.concat(o.map(Ne).join(""), "")
.concat(t, ">");
}
var ke = function () {};
function ze(e) {
return "string" == typeof (e.getAttribute ? e.getAttribute("data-fa-i2svg") : null);
}
var je = {
replace: function (e) {
var t = e[0],
n = e[1]
.map(function (e) {
return Ne(e);
})
.join("\n");
if (t.parentNode && t.outerHTML) t.outerHTML = n + (L.keepOriginalSource && "svg" !== t.tagName.toLowerCase() ? "\x3c!-- ".concat(t.outerHTML, " --\x3e") : "");
else if (t.parentNode) {
var i = document.createElement("span");
t.parentNode.replaceChild(i, t), (i.outerHTML = n);
}
},
nest: function (e) {
var t = e[0],
n = e[1];
if (~le(t).indexOf(L.replacementClass)) return je.replace(e);
var i = new RegExp("".concat(L.familyPrefix, "-.*"));
delete n[0].attributes.style;
var r = n[0].attributes.class.split(" ").reduce(
function (e, t) {
return t === L.replacementClass || t.match(i) ? e.toSvg.push(t) : e.toNode.push(t), e;
},
{ toNode: [], toSvg: [] }
);
n[0].attributes.class = r.toSvg.join(" ");
var o = n
.map(function (e) {
return Ne(e);
})
.join("\n");
t.setAttribute("class", r.toNode.join(" ")), t.setAttribute("data-fa-i2svg", ""), (t.innerHTML = o);
},
};
function Be(e) {
e();
}
function Ve(e, t) {
var n = "function" == typeof t ? t : ke;
if (0 === e.length) n();
else {
var i = Be;
"async" === L.mutateApproach && (i = b.requestAnimationFrame || Be),
i(function () {
var t = !0 === L.autoReplaceSvg ? je.replace : je[L.autoReplaceSvg] || je.replace,
i = Pe("mutate");
e.map(t), i(), n();
});
}
}
var Ge = !1;
function Ue() {
Ge = !1;
}
var He = null;
function We(e) {
if (v && L.observeMutations) {
var t = e.treeCallback,
n = e.nodeCallback,
i = e.pseudoElementsCallback,
r = e.observeMutationsRoot,
o = void 0 === r ? _ : r;
(He = new v(function (e) {
Ge ||
ce(e).forEach(function (e) {
if (
("childList" === e.type && e.addedNodes.length > 0 && !ze(e.addedNodes[0]) && (L.searchPseudoElements && i(e.target), t(e.target)),
"attributes" === e.type && e.target.parentNode && L.searchPseudoElements && i(e.target.parentNode),
"attributes" === e.type && ze(e.target) && ~I.indexOf(e.attributeName))
)
if ("class" === e.attributeName) {
var r = Le(le(e.target)),
o = r.prefix,
a = r.iconName;
o && e.target.setAttribute("data-prefix", o), a && e.target.setAttribute("data-icon", a);
} else n(e.target);
});
})),
C && He.observe(o, { childList: !0, attributes: !0, characterData: !0, subtree: !0 });
}
}
function Xe(e) {
var t,
n,
i = e.getAttribute("data-prefix"),
r = e.getAttribute("data-icon"),
o = void 0 !== e.innerText ? e.innerText.trim() : "",
a = Le(le(e));
return (
i && r && ((a.prefix = i), (a.iconName = r)),
a.prefix && o.length > 1 ? (a.iconName = ((t = a.prefix), (n = e.innerText), (Ae[t] || {})[n])) : a.prefix && 1 === o.length && (a.iconName = Re(a.prefix, Te(e.innerText))),
a
);
}
var Ye = function (e) {
var t = { size: 16, x: 0, y: 0, flipX: !1, flipY: !1, rotate: 0 };
return e
? e
.toLowerCase()
.split(" ")
.reduce(function (e, t) {
var n = t.toLowerCase().split("-"),
i = n[0],
r = n.slice(1).join("-");
if (i && "h" === r) return (e.flipX = !0), e;
if (i && "v" === r) return (e.flipY = !0), e;
if (((r = parseFloat(r)), isNaN(r))) return e;
switch (i) {
case "grow":
e.size = e.size + r;
break;
case "shrink":
e.size = e.size - r;
break;
case "left":
e.x = e.x - r;
break;
case "right":
e.x = e.x + r;
break;
case "up":
e.y = e.y - r;
break;
case "down":
e.y = e.y + r;
break;
case "rotate":
e.rotate = e.rotate + r;
}
return e;
}, t)
: t;
};
function Ke(e) {
var t = Xe(e),
n = t.iconName,
i = t.prefix,
r = t.rest,
o = (function (e) {
var t = e.getAttribute("style"),
n = [];
return (
t &&
(n = t.split(";").reduce(function (e, t) {
var n = t.split(":"),
i = n[0],
r = n.slice(1);
return i && r.length > 0 && (e[i] = r.join(":").trim()), e;
}, {})),
n
);
})(e),
a = (function (e) {
return Ye(e.getAttribute("data-fa-transform"));
})(e),
s = (function (e) {
var t = e.getAttribute("data-fa-symbol");
return null !== t && ("" === t || t);
})(e),
c = (function (e) {
var t = ce(e.attributes).reduce(function (e, t) {
return "class" !== e.name && "style" !== e.name && (e[t.name] = t.value), e;
}, {}),
n = e.getAttribute("title");
return L.autoA11y && (n ? (t["aria-labelledby"] = "".concat(L.replacementClass, "-title-").concat(se())) : ((t["aria-hidden"] = "true"), (t.focusable = "false"))), t;
})(e),
l = (function (e) {
var t = e.getAttribute("data-fa-mask");
return t
? Le(
t.split(" ").map(function (e) {
return e.trim();
})
)
: { prefix: null, iconName: null, rest: [] };
})(e);
return { iconName: n, title: e.getAttribute("title"), prefix: i, transform: a, symbol: s, mask: l, extra: { classes: r, styles: o, attributes: c } };
}
function Ze(e) {
(this.name = "MissingIcon"), (this.message = e || "Icon unavailable"), (this.stack = new Error().stack);
}
(Ze.prototype = Object.create(Error.prototype)), (Ze.prototype.constructor = Ze);
var qe = { fill: "currentColor" },
Qe = { attributeType: "XML", repeatCount: "indefinite", dur: "2s" },
Je = {
tag: "path",
attributes: s({}, qe, {
d:
"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z",
}),
},
$e = s({}, Qe, { attributeName: "opacity" }),
et = {
tag: "g",
children: [
Je,
{
tag: "circle",
attributes: s({}, qe, { cx: "256", cy: "364", r: "28" }),
children: [
{ tag: "animate", attributes: s({}, Qe, { attributeName: "r", values: "28;14;28;28;14;28;" }) },
{ tag: "animate", attributes: s({}, $e, { values: "1;0;1;1;0;1;" }) },
],
},
{
tag: "path",
attributes: s({}, qe, {
opacity: "1",
d:
"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z",
}),
children: [{ tag: "animate", attributes: s({}, $e, { values: "1;0;0;0;0;1;" }) }],
},
{
tag: "path",
attributes: s({}, qe, { opacity: "0", d: "M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z" }),
children: [{ tag: "animate", attributes: s({}, $e, { values: "0;0;1;1;0;0;" }) }],
},
],
},
tt = N.styles;
function nt(e, t) {
return new ie(function (n, i) {
var r = { found: !1, width: 512, height: 512, icon: et };
if (e && t && tt[t] && tt[t][e]) {
var o = tt[t][e];
return n((r = { found: !0, width: o[0], height: o[1], icon: { tag: "path", attributes: { fill: "currentColor", d: o.slice(4)[0] } } }));
}
e && t && !L.showMissingIcons ? i(new Ze("Icon is missing for prefix ".concat(t, " with icon name ").concat(e))) : n(r);
});
}
var it = N.styles;
function rt(e) {
var t = Ke(e);
return ~t.extra.classes.indexOf("fa-layers-text")
? (function (e, t) {
var n = t.title,
i = t.transform,
r = t.extra,
o = null,
a = null;
if (P) {
var s = parseInt(getComputedStyle(e).fontSize, 10),
c = e.getBoundingClientRect();
(o = c.width / s), (a = c.height / s);
}
return L.autoA11y && !n && (r.attributes["aria-hidden"] = "true"), ie.resolve([e, be({ content: e.innerHTML, width: o, height: a, transform: i, title: n, extra: r, watchable: !0 })]);
})(e, t)
: (function (e, t) {
var n = t.iconName,
i = t.title,
r = t.prefix,
o = t.transform,
a = t.symbol,
s = t.mask,
l = t.extra;
return new ie(function (t, u) {
ie.all([nt(n, r), nt(s.iconName, s.prefix)]).then(function (s) {
var u = c(s, 2),
h = u[0],
d = u[1];
t([e, ge({ icons: { main: h, mask: d }, prefix: r, iconName: n, transform: o, symbol: a, mask: d, title: i, extra: l, watchable: !0 })]);
});
});
})(e, t);
}
function ot(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
if (C) {
var n = _.documentElement.classList,
i = function (e) {
return n.add("".concat("fontawesome-i2svg", "-").concat(e));
},
r = function (e) {
return n.remove("".concat("fontawesome-i2svg", "-").concat(e));
},
o = L.autoFetchSvg ? Object.keys(T) : Object.keys(it),
a = [".".concat("fa-layers-text", ":not([").concat("data-fa-i2svg", "])")]
.concat(
o.map(function (e) {
return ".".concat(e, ":not([").concat("data-fa-i2svg", "])");
})
)
.join(", ");
if (0 !== a.length) {
var s = [];
try {
s = ce(e.querySelectorAll(a));
} catch (e) {}
if (s.length > 0) {
i("pending"), r("complete");
var c = Pe("onTree"),
l = s.reduce(function (e, t) {
try {
var n = rt(t);
n && e.push(n);
} catch (e) {}
return e;
}, []);
return new ie(function (e, n) {
ie.all(l)
.then(function (n) {
Ve(n, function () {
i("active"), i("complete"), r("pending"), "function" == typeof t && t(), c(), e();
});
})
.catch(function () {
c(), n();
});
});
}
}
}
}
function at(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
rt(e).then(function (e) {
e && Ve([e], t);
});
}
function st(e, t) {
var n = "".concat("data-fa-pseudo-element-pending").concat(t.replace(":", "-"));
return new ie(function (i, r) {
if (null !== e.getAttribute(n)) return i();
var o = ce(e.children).filter(function (e) {
return e.getAttribute("data-fa-pseudo-element") === t;
})[0],
a = b.getComputedStyle(e, t),
c = a.getPropertyValue("font-family").match(O),
l = a.getPropertyValue("font-weight");
if (o && !c) return e.removeChild(o), i();
if (c) {
var u = a.getPropertyValue("content"),
h = ~["Light", "Regular", "Solid", "Brands"].indexOf(c[1]) ? S[c[1].toLowerCase()] : E[l],
d = Te(3 === u.length ? u.substr(1, 1) : u),
p = Re(h, d),
f = p;
if (!p || (o && o.getAttribute("data-prefix") === h && o.getAttribute("data-icon") === f)) i();
else {
e.setAttribute(n, f), o && e.removeChild(o);
var m = { iconName: null, title: null, prefix: null, transform: oe, symbol: !1, mask: null, extra: { classes: [], styles: {}, attributes: {} } },
g = m.extra;
(g.attributes["data-fa-pseudo-element"] = t),
nt(p, h)
.then(function (r) {
var o = ge(s({}, m, { icons: { main: r, mask: { prefix: null, iconName: null, rest: [] } }, prefix: h, iconName: f, extra: g, watchable: !0 })),
a = _.createElement("svg");
":before" === t ? e.insertBefore(a, e.firstChild) : e.appendChild(a),
(a.outerHTML = o
.map(function (e) {
return Ne(e);
})
.join("\n")),
e.removeAttribute(n),
i();
})
.catch(r);
}
} else i();
});
}
function ct(e) {
return ie.all([st(e, ":before"), st(e, ":after")]);
}
function lt(e) {
return !(e.parentNode === document.head || ~x.indexOf(e.tagName.toUpperCase()) || e.getAttribute("data-fa-pseudo-element") || (e.parentNode && "svg" === e.parentNode.tagName));
}
function ut(e) {
if (C)
return new ie(function (t, n) {
var i = ce(e.querySelectorAll("*")).filter(lt).map(ct),
r = Pe("searchPseudoElements");
(Ge = !0),
ie
.all(i)
.then(function () {
r(), Ue(), t();
})
.catch(function () {
r(), Ue(), n();
});
});
}
function ht() {
var e = "svg-inline--fa",
t = L.familyPrefix,
n = L.replacementClass,
i =
'svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}';
if ("fa" !== t || n !== e) {
var r = new RegExp("\\.".concat("fa", "\\-"), "g"),
o = new RegExp("\\.".concat(e), "g");
i = i.replace(r, ".".concat(t, "-")).replace(o, ".".concat(n));
}
return i;
}
function dt(e) {
return { found: !0, width: e[0], height: e[1], icon: { tag: "path", attributes: { fill: "currentColor", d: e.slice(4)[0] } } };
}
function pt() {
L.autoAddCss && !vt && (ae(ht()), (vt = !0));
}
function ft(e, t) {
return (
Object.defineProperty(e, "abstract", { get: t }),
Object.defineProperty(e, "html", {
get: function () {
return e.abstract.map(function (e) {
return Ne(e);
});
},
}),
Object.defineProperty(e, "node", {
get: function () {
if (C) {
var t = _.createElement("div");
return (t.innerHTML = e.html), t.children;
}
},
}),
e
);
}
function mt(e) {
var t = e.prefix,
n = void 0 === t ? "fa" : t,
i = e.iconName;
if (i) return Fe(bt.definitions, n, i) || Fe(N.styles, n, i);
}
var gt,
bt = new ((function () {
function e() {
!(function (e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
})(this, e),
(this.definitions = {});
}
var t, n, i;
return (
(t = e),
(n = [
{
key: "add",
value: function () {
for (var e = this, t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i];
var r = n.reduce(this._pullDefinitions, {});
Object.keys(r).forEach(function (t) {
(e.definitions[t] = s({}, e.definitions[t] || {}, r[t])), Se(t, r[t]), De();
});
},
},
{
key: "reset",
value: function () {
this.definitions = {};
},
},
{
key: "_pullDefinitions",
value: function (e, t) {
var n = t.prefix && t.iconName && t.icon ? { 0: t } : t;
return (
Object.keys(n).map(function (t) {
var i = n[t],
r = i.prefix,
o = i.iconName,
a = i.icon;
e[r] || (e[r] = {}), (e[r][o] = a);
}),
e
);
},
},
]) && o(t.prototype, n),
i && o(t, i),
e
);
})())(),
_t = function () {
(L.autoReplaceSvg = !1), (L.observeMutations = !1), He && He.disconnect();
},
vt = !1,
yt = {
i2svg: function () {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
if (C) {
pt();
var t = e.node,
n = void 0 === t ? _ : t,
i = e.callback,
r = void 0 === i ? function () {} : i;
return L.searchPseudoElements && ut(n), ot(n, r);
}
return ie.reject("Operation requires a DOM of some kind.");
},
css: ht,
insertCss: function () {
vt || (ae(ht()), (vt = !0));
},
watch: function () {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
t = e.autoReplaceSvgRoot,
n = e.observeMutationsRoot;
!1 === L.autoReplaceSvg && (L.autoReplaceSvg = !0),
(L.observeMutations = !0),
j(function () {
Et({ autoReplaceSvgRoot: t }), We({ treeCallback: ot, nodeCallback: at, pseudoElementsCallback: ut, observeMutationsRoot: n });
});
},
},
Ct = {
transform: function (e) {
return Ye(e);
},
},
Pt =
((gt = function (e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
n = t.transform,
i = void 0 === n ? oe : n,
r = t.symbol,
o = void 0 !== r && r,
a = t.mask,
c = void 0 === a ? null : a,
l = t.title,
u = void 0 === l ? null : l,
h = t.classes,
d = void 0 === h ? [] : h,
p = t.attributes,
f = void 0 === p ? {} : p,
m = t.styles,
g = void 0 === m ? {} : m;
if (e) {
var b = e.prefix,
_ = e.iconName,
v = e.icon;
return ft(s({ type: "icon" }, e), function () {
return (
pt(),
L.autoA11y && (u ? (f["aria-labelledby"] = "".concat(L.replacementClass, "-title-").concat(se())) : ((f["aria-hidden"] = "true"), (f.focusable = "false"))),
ge({
icons: { main: dt(v), mask: c ? dt(c.icon) : { found: !1, width: null, height: null, icon: {} } },
prefix: b,
iconName: _,
transform: s({}, oe, i),
symbol: o,
title: u,
extra: { attributes: f, styles: g, classes: d },
})
);
});
}
}),
function (e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
n = (e || {}).icon ? e : mt(e || {}),
i = t.mask;
return i && (i = (i || {}).icon ? i : mt(i || {})), gt(n, s({}, t, { mask: i }));
}),
xt = function (e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
n = t.transform,
i = void 0 === n ? oe : n,
r = t.title,
o = void 0 === r ? null : r,
a = t.classes,
c = void 0 === a ? [] : a,
u = t.attributes,
h = void 0 === u ? {} : u,
d = t.styles,
p = void 0 === d ? {} : d;
return ft({ type: "text", content: e }, function () {
return pt(), be({ content: e, transform: s({}, oe, i), title: o, extra: { attributes: h, styles: p, classes: ["".concat(L.familyPrefix, "-layers-text")].concat(l(c)) } });
});
},
Tt = function (e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
n = t.title,
i = void 0 === n ? null : n,
r = t.classes,
o = void 0 === r ? [] : r,
a = t.attributes,
s = void 0 === a ? {} : a,
c = t.styles,
u = void 0 === c ? {} : c;
return ft({ type: "counter", content: e }, function () {
return pt(), _e({ content: e.toString(), title: i, extra: { attributes: s, styles: u, classes: ["".concat(L.familyPrefix, "-layers-counter")].concat(l(o)) } });
});
},
St = function (e) {
return ft({ type: "layer" }, function () {
pt();
var t = [];
return (
e(function (e) {
Array.isArray(e)
? e.map(function (e) {
t = t.concat(e.abstract);
})
: (t = t.concat(e.abstract));
}),
[{ tag: "span", attributes: { class: "".concat(L.familyPrefix, "-layers") }, children: t }]
);
});
},
Ot = { noAuto: _t, config: L, dom: yt, library: bt, parse: Ct, findIconDefinition: mt, icon: Pt, text: xt, counter: Tt, layer: St, toHtml: Ne },
Et = function () {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
t = e.autoReplaceSvgRoot,
n = void 0 === t ? _ : t;
(Object.keys(N.styles).length > 0 || L.autoFetchSvg) && C && L.autoReplaceSvg && Ot.dom.i2svg({ node: n });
};
}.call(this, n("../../../../node_modules/webpack/buildin/global.js"), n("../../../../node_modules/timers-browserify/main.js").setImmediate);
},
"../../../../node_modules/@fortawesome/free-regular-svg-icons/index.es.js": function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "far", function () {
return Kt;
}),
n.d(t, "prefix", function () {
return i;
}),
n.d(t, "faAddressBook", function () {
return r;
}),
n.d(t, "faAddressCard", function () {
return o;
}),
n.d(t, "faAngry", function () {
return a;
}),
n.d(t, "faArrowAltCircleDown", function () {
return s;
}),
n.d(t, "faArrowAltCircleLeft", function () {
return c;
}),
n.d(t, "faArrowAltCircleRight", function () {
return l;
}),
n.d(t, "faArrowAltCircleUp", function () {
return u;
}),
n.d(t, "faBell", function () {
return h;
}),
n.d(t, "faBellSlash", function () {
return d;
}),
n.d(t, "faBookmark", function () {
return p;
}),
n.d(t, "faBuilding", function () {
return f;
}),
n.d(t, "faCalendar", function () {
return m;
}),
n.d(t, "faCalendarAlt", function () {
return g;
}),
n.d(t, "faCalendarCheck", function () {
return b;
}),
n.d(t, "faCalendarMinus", function () {
return _;
}),
n.d(t, "faCalendarPlus", function () {
return v;
}),
n.d(t, "faCalendarTimes", function () {
return y;
}),
n.d(t, "faCaretSquareDown", function () {
return C;
}),
n.d(t, "faCaretSquareLeft", function () {
return P;
}),
n.d(t, "faCaretSquareRight", function () {
return x;
}),
n.d(t, "faCaretSquareUp", function () {
return T;
}),
n.d(t, "faChartBar", function () {
return S;
}),
n.d(t, "faCheckCircle", function () {
return O;
}),
n.d(t, "faCheckSquare", function () {
return E;
}),
n.d(t, "faCircle", function () {
return M;
}),
n.d(t, "faClipboard", function () {
return A;
}),
n.d(t, "faClock", function () {
return I;
}),
n.d(t, "faClone", function () {
return D;
}),
n.d(t, "faClosedCaptioning", function () {
return R;
}),
n.d(t, "faComment", function () {
return w;
}),
n.d(t, "faCommentAlt", function () {
return L;
}),
n.d(t, "faCommentDots", function () {
return F;
}),
n.d(t, "faComments", function () {
return N;
}),
n.d(t, "faCompass", function () {
return k;
}),
n.d(t, "faCopy", function () {
return z;
}),
n.d(t, "faCopyright", function () {
return j;
}),
n.d(t, "faCreditCard", function () {
return B;
}),
n.d(t, "faDizzy", function () {
return V;
}),
n.d(t, "faDotCircle", function () {
return G;
}),
n.d(t, "faEdit", function () {
return U;
}),
n.d(t, "faEnvelope", function () {
return H;
}),
n.d(t, "faEnvelopeOpen", function () {
return W;
}),
n.d(t, "faEye", function () {
return X;
}),
n.d(t, "faEyeSlash", function () {
return Y;
}),
n.d(t, "faFile", function () {
return K;
}),
n.d(t, "faFileAlt", function () {
return Z;
}),
n.d(t, "faFileArchive", function () {
return q;
}),
n.d(t, "faFileAudio", function () {
return Q;
}),
n.d(t, "faFileCode", function () {
return J;
}),
n.d(t, "faFileExcel", function () {
return $;
}),
n.d(t, "faFileImage", function () {
return ee;
}),
n.d(t, "faFilePdf", function () {
return te;
}),
n.d(t, "faFilePowerpoint", function () {
return ne;
}),
n.d(t, "faFileVideo", function () {
return ie;
}),
n.d(t, "faFileWord", function () {
return re;
}),
n.d(t, "faFlag", function () {
return oe;
}),
n.d(t, "faFlushed", function () {
return ae;
}),
n.d(t, "faFolder", function () {
return se;
}),
n.d(t, "faFolderOpen", function () {
return ce;
}),
n.d(t, "faFontAwesomeLogoFull", function () {
return le;
}),
n.d(t, "faFrown", function () {
return ue;
}),
n.d(t, "faFrownOpen", function () {
return he;
}),
n.d(t, "faFutbol", function () {
return de;
}),
n.d(t, "faGem", function () {
return pe;
}),
n.d(t, "faGrimace", function () {
return fe;
}),
n.d(t, "faGrin", function () {
return me;
}),
n.d(t, "faGrinAlt", function () {
return ge;
}),
n.d(t, "faGrinBeam", function () {
return be;
}),
n.d(t, "faGrinBeamSweat", function () {
return _e;
}),
n.d(t, "faGrinHearts", function () {
return ve;
}),
n.d(t, "faGrinSquint", function () {
return ye;
}),
n.d(t, "faGrinSquintTears", function () {
return Ce;
}),
n.d(t, "faGrinStars", function () {
return Pe;
}),
n.d(t, "faGrinTears", function () {
return xe;
}),
n.d(t, "faGrinTongue", function () {
return Te;
}),
n.d(t, "faGrinTongueSquint", function () {
return Se;
}),
n.d(t, "faGrinTongueWink", function () {
return Oe;
}),
n.d(t, "faGrinWink", function () {
return Ee;
}),
n.d(t, "faHandLizard", function () {
return Me;
}),
n.d(t, "faHandPaper", function () {
return Ae;
}),
n.d(t, "faHandPeace", function () {
return Ie;
}),
n.d(t, "faHandPointDown", function () {
return De;
}),
n.d(t, "faHandPointLeft", function () {
return Re;
}),
n.d(t, "faHandPointRight", function () {
return we;
}),
n.d(t, "faHandPointUp", function () {
return Le;
}),
n.d(t, "faHandPointer", function () {
return Fe;
}),
n.d(t, "faHandRock", function () {
return Ne;
}),
n.d(t, "faHandScissors", function () {
return ke;
}),
n.d(t, "faHandSpock", function () {
return ze;
}),
n.d(t, "faHandshake", function () {
return je;
}),
n.d(t, "faHdd", function () {
return Be;
}),
n.d(t, "faHeart", function () {
return Ve;
}),
n.d(t, "faHospital", function () {
return Ge;
}),
n.d(t, "faHourglass", function () {
return Ue;
}),
n.d(t, "faIdBadge", function () {
return He;
}),
n.d(t, "faIdCard", function () {
return We;
}),
n.d(t, "faImage", function () {
return Xe;
}),
n.d(t, "faImages", function () {
return Ye;
}),
n.d(t, "faKeyboard", function () {
return Ke;
}),
n.d(t, "faKiss", function () {
return Ze;
}),
n.d(t, "faKissBeam", function () {
return qe;
}),
n.d(t, "faKissWinkHeart", function () {
return Qe;
}),
n.d(t, "faLaugh", function () {
return Je;
}),
n.d(t, "faLaughBeam", function () {
return $e;
}),
n.d(t, "faLaughSquint", function () {
return et;
}),
n.d(t, "faLaughWink", function () {
return tt;
}),
n.d(t, "faLemon", function () {
return nt;
}),
n.d(t, "faLifeRing", function () {
return it;
}),
n.d(t, "faLightbulb", function () {
return rt;
}),
n.d(t, "faListAlt", function () {
return ot;
}),
n.d(t, "faMap", function () {
return at;
}),
n.d(t, "faMeh", function () {
return st;
}),
n.d(t, "faMehBlank", function () {
return ct;
}),
n.d(t, "faMehRollingEyes", function () {
return lt;
}),
n.d(t, "faMinusSquare", function () {
return ut;
}),
n.d(t, "faMoneyBillAlt", function () {
return ht;
}),
n.d(t, "faMoon", function () {
return dt;
}),
n.d(t, "faNewspaper", function () {
return pt;
}),
n.d(t, "faObjectGroup", function () {
return ft;
}),
n.d(t, "faObjectUngroup", function () {
return mt;
}),
n.d(t, "faPaperPlane", function () {
return gt;
}),
n.d(t, "faPauseCircle", function () {
return bt;
}),
n.d(t, "faPlayCircle", function () {
return _t;
}),
n.d(t, "faPlusSquare", function () {
return vt;
}),
n.d(t, "faQuestionCircle", function () {
return yt;
}),
n.d(t, "faRegistered", function () {
return Ct;
}),
n.d(t, "faSadCry", function () {
return Pt;
}),
n.d(t, "faSadTear", function () {
return xt;
}),
n.d(t, "faSave", function () {
return Tt;
}),
n.d(t, "faShareSquare", function () {
return St;
}),
n.d(t, "faSmile", function () {
return Ot;
}),
n.d(t, "faSmileBeam", function () {
return Et;
}),
n.d(t, "faSmileWink", function () {
return Mt;
}),
n.d(t, "faSnowflake", function () {
return At;
}),
n.d(t, "faSquare", function () {
return It;
}),
n.d(t, "faStar", function () {
return Dt;
}),
n.d(t, "faStarHalf", function () {
return Rt;
}),
n.d(t, "faStickyNote", function () {
return wt;
}),
n.d(t, "faStopCircle", function () {
return Lt;
}),
n.d(t, "faSun", function () {
return Ft;
}),
n.d(t, "faSurprise", function () {
return Nt;
}),
n.d(t, "faThumbsDown", function () {
return kt;
}),
n.d(t, "faThumbsUp", function () {
return zt;
}),
n.d(t, "faTimesCircle", function () {
return jt;
}),
n.d(t, "faTired", function () {
return Bt;
}),
n.d(t, "faTrashAlt", function () {
return Vt;
}),
n.d(t, "faUser", function () {
return Gt;
}),
n.d(t, "faUserCircle", function () {
return Ut;
}),
n.d(t, "faWindowClose", function () {
return Ht;
}),
n.d(t, "faWindowMaximize", function () {
return Wt;
}),
n.d(t, "faWindowMinimize", function () {
return Xt;
}),
n.d(t, "faWindowRestore", function () {
return Yt;
});
var i = "far",
r = {
prefix: "far",
iconName: "address-book",
icon: [
448,
512,
[],
"f2b9",
"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z",
],
},
o = {
prefix: "far",
iconName: "address-card",
icon: [
576,
512,
[],
"f2bb",
"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z",
],
},
a = {
prefix: "far",
iconName: "angry",
icon: [
496,
512,
[],
"f556",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z",
],
},
s = {
prefix: "far",
iconName: "arrow-alt-circle-down",
icon: [
512,
512,
[],
"f358",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z",
],
},
c = {
prefix: "far",
iconName: "arrow-alt-circle-left",
icon: [
512,
512,
[],
"f359",
"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z",
],
},
l = {
prefix: "far",
iconName: "arrow-alt-circle-right",
icon: [
512,
512,
[],
"f35a",
"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z",
],
},
u = {
prefix: "far",
iconName: "arrow-alt-circle-up",
icon: [
512,
512,
[],
"f35b",
"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z",
],
},
h = {
prefix: "far",
iconName: "bell",
icon: [
448,
512,
[],
"f0f3",
"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z",
],
},
d = {
prefix: "far",
iconName: "bell-slash",
icon: [
640,
512,
[],
"f1f6",
"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z",
],
},
p = {
prefix: "far",
iconName: "bookmark",
icon: [384, 512, [], "f02e", "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],
},
f = {
prefix: "far",
iconName: "building",
icon: [
448,
512,
[],
"f1ad",
"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z",
],
},
m = {
prefix: "far",
iconName: "calendar",
icon: [
448,
512,
[],
"f133",
"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z",
],
},
g = {
prefix: "far",
iconName: "calendar-alt",
icon: [
448,
512,
[],
"f073",
"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
b = {
prefix: "far",
iconName: "calendar-check",
icon: [
448,
512,
[],
"f274",
"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z",
],
},
_ = {
prefix: "far",
iconName: "calendar-minus",
icon: [
448,
512,
[],
"f272",
"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
v = {
prefix: "far",
iconName: "calendar-plus",
icon: [
448,
512,
[],
"f271",
"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
y = {
prefix: "far",
iconName: "calendar-times",
icon: [
448,
512,
[],
"f273",
"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
C = {
prefix: "far",
iconName: "caret-square-down",
icon: [
448,
512,
[],
"f150",
"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
P = {
prefix: "far",
iconName: "caret-square-left",
icon: [
448,
512,
[],
"f191",
"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
x = {
prefix: "far",
iconName: "caret-square-right",
icon: [
448,
512,
[],
"f152",
"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
T = {
prefix: "far",
iconName: "caret-square-up",
icon: [
448,
512,
[],
"f151",
"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
S = {
prefix: "far",
iconName: "chart-bar",
icon: [
512,
512,
[],
"f080",
"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z",
],
},
O = {
prefix: "far",
iconName: "check-circle",
icon: [
512,
512,
[],
"f058",
"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z",
],
},
E = {
prefix: "far",
iconName: "check-square",
icon: [
448,
512,
[],
"f14a",
"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z",
],
},
M = {
prefix: "far",
iconName: "circle",
icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],
},
A = {
prefix: "far",
iconName: "clipboard",
icon: [
384,
512,
[],
"f328",
"M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24",
],
},
I = {
prefix: "far",
iconName: "clock",
icon: [
512,
512,
[],
"f017",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z",
],
},
D = {
prefix: "far",
iconName: "clone",
icon: [
512,
512,
[],
"f24d",
"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z",
],
},
R = {
prefix: "far",
iconName: "closed-captioning",
icon: [
512,
512,
[],
"f20a",
"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z",
],
},
w = {
prefix: "far",
iconName: "comment",
icon: [
512,
512,
[],
"f075",
"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z",
],
},
L = {
prefix: "far",
iconName: "comment-alt",
icon: [
512,
512,
[],
"f27a",
"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z",
],
},
F = {
prefix: "far",
iconName: "comment-dots",
icon: [
512,
512,
[],
"f4ad",
"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z",
],
},
N = {
prefix: "far",
iconName: "comments",
icon: [
576,
512,
[],
"f086",
"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z",
],
},
k = {
prefix: "far",
iconName: "compass",
icon: [
496,
512,
[],
"f14e",
"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z",
],
},
z = {
prefix: "far",
iconName: "copy",
icon: [
448,
512,
[],
"f0c5",
"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z",
],
},
j = {
prefix: "far",
iconName: "copyright",
icon: [
512,
512,
[],
"f1f9",
"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z",
],
},
B = {
prefix: "far",
iconName: "credit-card",
icon: [
576,
512,
[],
"f09d",
"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z",
],
},
V = {
prefix: "far",
iconName: "dizzy",
icon: [
496,
512,
[],
"f567",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z",
],
},
G = {
prefix: "far",
iconName: "dot-circle",
icon: [
512,
512,
[],
"f192",
"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z",
],
},
U = {
prefix: "far",
iconName: "edit",
icon: [
576,
512,
[],
"f044",
"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z",
],
},
H = {
prefix: "far",
iconName: "envelope",
icon: [
512,
512,
[],
"f0e0",
"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z",
],
},
W = {
prefix: "far",
iconName: "envelope-open",
icon: [
512,
512,
[],
"f2b6",
"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z",
],
},
X = {
prefix: "far",
iconName: "eye",
icon: [
576,
512,
[],
"f06e",
"M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z",
],
},
Y = {
prefix: "far",
iconName: "eye-slash",
icon: [
576,
512,
[],
"f070",
"M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z",
],
},
K = {
prefix: "far",
iconName: "file",
icon: [
384,
512,
[],
"f15b",
"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z",
],
},
Z = {
prefix: "far",
iconName: "file-alt",
icon: [
384,
512,
[],
"f15c",
"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z",
],
},
q = {
prefix: "far",
iconName: "file-archive",
icon: [
384,
512,
[],
"f1c6",
"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z",
],
},
Q = {
prefix: "far",
iconName: "file-audio",
icon: [
384,
512,
[],
"f1c7",
"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z",
],
},
J = {
prefix: "far",
iconName: "file-code",
icon: [
384,
512,
[],
"f1c9",
"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z",
],
},
$ = {
prefix: "far",
iconName: "file-excel",
icon: [
384,
512,
[],
"f1c3",
"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z",
],
},
ee = {
prefix: "far",
iconName: "file-image",
icon: [
384,
512,
[],
"f1c5",
"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z",
],
},
te = {
prefix: "far",
iconName: "file-pdf",
icon: [
384,
512,
[],
"f1c1",
"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z",
],
},
ne = {
prefix: "far",
iconName: "file-powerpoint",
icon: [
384,
512,
[],
"f1c4",
"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z",
],
},
ie = {
prefix: "far",
iconName: "file-video",
icon: [
384,
512,
[],
"f1c8",
"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z",
],
},
re = {
prefix: "far",
iconName: "file-word",
icon: [
384,
512,
[],
"f1c2",
"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z",
],
},
oe = {
prefix: "far",
iconName: "flag",
icon: [
512,
512,
[],
"f024",
"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z",
],
},
ae = {
prefix: "far",
iconName: "flushed",
icon: [
496,
512,
[],
"f579",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z",
],
},
se = {
prefix: "far",
iconName: "folder",
icon: [
512,
512,
[],
"f07b",
"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z",
],
},
ce = {
prefix: "far",
iconName: "folder-open",
icon: [
576,
512,
[],
"f07c",
"M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z",
],
},
le = {
prefix: "far",
iconName: "font-awesome-logo-full",
icon: [
3992,
512,
["Font Awesome"],
"f4e6",
"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z",
],
},
ue = {
prefix: "far",
iconName: "frown",
icon: [
496,
512,
[],
"f119",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z",
],
},
he = {
prefix: "far",
iconName: "frown-open",
icon: [
496,
512,
[],
"f57a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z",
],
},
de = {
prefix: "far",
iconName: "futbol",
icon: [
496,
512,
[],
"f1e3",
"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z",
],
},
pe = {
prefix: "far",
iconName: "gem",
icon: [
576,
512,
[],
"f3a5",
"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z",
],
},
fe = {
prefix: "far",
iconName: "grimace",
icon: [
496,
512,
[],
"f57f",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z",
],
},
me = {
prefix: "far",
iconName: "grin",
icon: [
496,
512,
[],
"f580",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z",
],
},
ge = {
prefix: "far",
iconName: "grin-alt",
icon: [
496,
512,
[],
"f581",
"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z",
],
},
be = {
prefix: "far",
iconName: "grin-beam",
icon: [
496,
512,
[],
"f582",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z",
],
},
_e = {
prefix: "far",
iconName: "grin-beam-sweat",
icon: [
496,
512,
[],
"f583",
"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z",
],
},
ve = {
prefix: "far",
iconName: "grin-hearts",
icon: [
496,
512,
[],
"f584",
"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z",
],
},
ye = {
prefix: "far",
iconName: "grin-squint",
icon: [
496,
512,
[],
"f585",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z",
],
},
Ce = {
prefix: "far",
iconName: "grin-squint-tears",
icon: [
512,
512,
[],
"f586",
"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z",
],
},
Pe = {
prefix: "far",
iconName: "grin-stars",
icon: [
496,
512,
[],
"f587",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z",
],
},
xe = {
prefix: "far",
iconName: "grin-tears",
icon: [
640,
512,
[],
"f588",
"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z",
],
},
Te = {
prefix: "far",
iconName: "grin-tongue",
icon: [
496,
512,
[],
"f589",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z",
],
},
Se = {
prefix: "far",
iconName: "grin-tongue-squint",
icon: [
496,
512,
[],
"f58a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z",
],
},
Oe = {
prefix: "far",
iconName: "grin-tongue-wink",
icon: [
496,
512,
[],
"f58b",
"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z",
],
},
Ee = {
prefix: "far",
iconName: "grin-wink",
icon: [
496,
512,
[],
"f58c",
"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z",
],
},
Me = {
prefix: "far",
iconName: "hand-lizard",
icon: [
576,
512,
[],
"f258",
"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z",
],
},
Ae = {
prefix: "far",
iconName: "hand-paper",
icon: [
448,
512,
[],
"f256",
"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z",
],
},
Ie = {
prefix: "far",
iconName: "hand-peace",
icon: [
448,
512,
[],
"f25b",
"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z",
],
},
De = {
prefix: "far",
iconName: "hand-point-down",
icon: [
448,
512,
[],
"f0a7",
"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z",
],
},
Re = {
prefix: "far",
iconName: "hand-point-left",
icon: [
512,
512,
[],
"f0a5",
"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z",
],
},
we = {
prefix: "far",
iconName: "hand-point-right",
icon: [
512,
512,
[],
"f0a4",
"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z",
],
},
Le = {
prefix: "far",
iconName: "hand-point-up",
icon: [
448,
512,
[],
"f0a6",
"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z",
],
},
Fe = {
prefix: "far",
iconName: "hand-pointer",
icon: [
448,
512,
[],
"f25a",
"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z",
],
},
Ne = {
prefix: "far",
iconName: "hand-rock",
icon: [
512,
512,
[],
"f255",
"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z",
],
},
ke = {
prefix: "far",
iconName: "hand-scissors",
icon: [
512,
512,
[],
"f257",
"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z",
],
},
ze = {
prefix: "far",
iconName: "hand-spock",
icon: [
512,
512,
[],
"f259",
"M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z",
],
},
je = {
prefix: "far",
iconName: "handshake",
icon: [
640,
512,
[],
"f2b5",
"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z",
],
},
Be = {
prefix: "far",
iconName: "hdd",
icon: [
576,
512,
[],
"f0a0",
"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z",
],
},
Ve = {
prefix: "far",
iconName: "heart",
icon: [
512,
512,
[],
"f004",
"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z",
],
},
Ge = {
prefix: "far",
iconName: "hospital",
icon: [
448,
512,
[],
"f0f8",
"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z",
],
},
Ue = {
prefix: "far",
iconName: "hourglass",
icon: [
384,
512,
[],
"f254",
"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z",
],
},
He = {
prefix: "far",
iconName: "id-badge",
icon: [
384,
512,
[],
"f2c1",
"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z",
],
},
We = {
prefix: "far",
iconName: "id-card",
icon: [
576,
512,
[],
"f2c2",
"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z",
],
},
Xe = {
prefix: "far",
iconName: "image",
icon: [
512,
512,
[],
"f03e",
"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z",
],
},
Ye = {
prefix: "far",
iconName: "images",
icon: [
576,
512,
[],
"f302",
"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z",
],
},
Ke = {
prefix: "far",
iconName: "keyboard",
icon: [
576,
512,
[],
"f11c",
"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z",
],
},
Ze = {
prefix: "far",
iconName: "kiss",
icon: [
496,
512,
[],
"f596",
"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z",
],
},
qe = {
prefix: "far",
iconName: "kiss-beam",
icon: [
496,
512,
[],
"f597",
"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z",
],
},
Qe = {
prefix: "far",
iconName: "kiss-wink-heart",
icon: [
504,
512,
[],
"f598",
"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z",
],
},
Je = {
prefix: "far",
iconName: "laugh",
icon: [
496,
512,
[],
"f599",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z",
],
},
$e = {
prefix: "far",
iconName: "laugh-beam",
icon: [
496,
512,
[],
"f59a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z",
],
},
et = {
prefix: "far",
iconName: "laugh-squint",
icon: [
496,
512,
[],
"f59b",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z",
],
},
tt = {
prefix: "far",
iconName: "laugh-wink",
icon: [
496,
512,
[],
"f59c",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z",
],
},
nt = {
prefix: "far",
iconName: "lemon",
icon: [
512,
512,
[],
"f094",
"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z",
],
},
it = {
prefix: "far",
iconName: "life-ring",
icon: [
512,
512,
[],
"f1cd",
"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z",
],
},
rt = {
prefix: "far",
iconName: "lightbulb",
icon: [
352,
512,
[],
"f0eb",
"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z",
],
},
ot = {
prefix: "far",
iconName: "list-alt",
icon: [
512,
512,
[],
"f022",
"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z",
],
},
at = {
prefix: "far",
iconName: "map",
icon: [
576,
512,
[],
"f279",
"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z",
],
},
st = {
prefix: "far",
iconName: "meh",
icon: [
496,
512,
[],
"f11a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z",
],
},
ct = {
prefix: "far",
iconName: "meh-blank",
icon: [
496,
512,
[],
"f5a4",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z",
],
},
lt = {
prefix: "far",
iconName: "meh-rolling-eyes",
icon: [
496,
512,
[],
"f5a5",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z",
],
},
ut = {
prefix: "far",
iconName: "minus-square",
icon: [
448,
512,
[],
"f146",
"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
ht = {
prefix: "far",
iconName: "money-bill-alt",
icon: [
640,
512,
[],
"f3d1",
"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z",
],
},
dt = {
prefix: "far",
iconName: "moon",
icon: [
512,
512,
[],
"f186",
"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z",
],
},
pt = {
prefix: "far",
iconName: "newspaper",
icon: [
576,
512,
[],
"f1ea",
"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z",
],
},
ft = {
prefix: "far",
iconName: "object-group",
icon: [
512,
512,
[],
"f247",
"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z",
],
},
mt = {
prefix: "far",
iconName: "object-ungroup",
icon: [
576,
512,
[],
"f248",
"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z",
],
},
gt = {
prefix: "far",
iconName: "paper-plane",
icon: [
512,
512,
[],
"f1d8",
"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z",
],
},
bt = {
prefix: "far",
iconName: "pause-circle",
icon: [
512,
512,
[],
"f28b",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z",
],
},
_t = {
prefix: "far",
iconName: "play-circle",
icon: [
512,
512,
[],
"f144",
"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z",
],
},
vt = {
prefix: "far",
iconName: "plus-square",
icon: [
448,
512,
[],
"f0fe",
"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z",
],
},
yt = {
prefix: "far",
iconName: "question-circle",
icon: [
512,
512,
[],
"f059",
"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z",
],
},
Ct = {
prefix: "far",
iconName: "registered",
icon: [
512,
512,
[],
"f25d",
"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z",
],
},
Pt = {
prefix: "far",
iconName: "sad-cry",
icon: [
496,
512,
[],
"f5b3",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z",
],
},
xt = {
prefix: "far",
iconName: "sad-tear",
icon: [
496,
512,
[],
"f5b4",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z",
],
},
Tt = {
prefix: "far",
iconName: "save",
icon: [
448,
512,
[],
"f0c7",
"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z",
],
},
St = {
prefix: "far",
iconName: "share-square",
icon: [
576,
512,
[],
"f14d",
"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z",
],
},
Ot = {
prefix: "far",
iconName: "smile",
icon: [
496,
512,
[],
"f118",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z",
],
},
Et = {
prefix: "far",
iconName: "smile-beam",
icon: [
496,
512,
[],
"f5b8",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z",
],
},
Mt = {
prefix: "far",
iconName: "smile-wink",
icon: [
496,
512,
[],
"f4da",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z",
],
},
At = {
prefix: "far",
iconName: "snowflake",
icon: [
448,
512,
[],
"f2dc",
"M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z",
],
},
It = {
prefix: "far",
iconName: "square",
icon: [
448,
512,
[],
"f0c8",
"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z",
],
},
Dt = {
prefix: "far",
iconName: "star",
icon: [
576,
512,
[],
"f005",
"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z",
],
},
Rt = {
prefix: "far",
iconName: "star-half",
icon: [
576,
512,
[],
"f089",
"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z",
],
},
wt = {
prefix: "far",
iconName: "sticky-note",
icon: [
448,
512,
[],
"f249",
"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z",
],
},
Lt = {
prefix: "far",
iconName: "stop-circle",
icon: [
512,
512,
[],
"f28d",
"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z",
],
},
Ft = {
prefix: "far",
iconName: "sun",
icon: [
512,
512,
[],
"f185",
"M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z",
],
},
Nt = {
prefix: "far",
iconName: "surprise",
icon: [
496,
512,
[],
"f5c2",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z",
],
},
kt = {
prefix: "far",
iconName: "thumbs-down",
icon: [
512,
512,
[],
"f165",
"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z",
],
},
zt = {
prefix: "far",
iconName: "thumbs-up",
icon: [
512,
512,
[],
"f164",
"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z",
],
},
jt = {
prefix: "far",
iconName: "times-circle",
icon: [
512,
512,
[],
"f057",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z",
],
},
Bt = {
prefix: "far",
iconName: "tired",
icon: [
496,
512,
[],
"f5c8",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z",
],
},
Vt = {
prefix: "far",
iconName: "trash-alt",
icon: [
448,
512,
[],
"f2ed",
"M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z",
],
},
Gt = {
prefix: "far",
iconName: "user",
icon: [
448,
512,
[],
"f007",
"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z",
],
},
Ut = {
prefix: "far",
iconName: "user-circle",
icon: [
496,
512,
[],
"f2bd",
"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z",
],
},
Ht = {
prefix: "far",
iconName: "window-close",
icon: [
512,
512,
[],
"f410",
"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z",
],
},
Wt = {
prefix: "far",
iconName: "window-maximize",
icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],
},
Xt = { prefix: "far", iconName: "window-minimize", icon: [512, 512, [], "f2d1", "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"] },
Yt = {
prefix: "far",
iconName: "window-restore",
icon: [
512,
512,
[],
"f2d2",
"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z",
],
},
Kt = {
faAddressBook: r,
faAddressCard: o,
faAngry: a,
faArrowAltCircleDown: s,
faArrowAltCircleLeft: c,
faArrowAltCircleRight: l,
faArrowAltCircleUp: u,
faBell: h,
faBellSlash: d,
faBookmark: p,
faBuilding: f,
faCalendar: m,
faCalendarAlt: g,
faCalendarCheck: b,
faCalendarMinus: _,
faCalendarPlus: v,
faCalendarTimes: y,
faCaretSquareDown: C,
faCaretSquareLeft: P,
faCaretSquareRight: x,
faCaretSquareUp: T,
faChartBar: S,
faCheckCircle: O,
faCheckSquare: E,
faCircle: M,
faClipboard: A,
faClock: I,
faClone: D,
faClosedCaptioning: R,
faComment: w,
faCommentAlt: L,
faCommentDots: F,
faComments: N,
faCompass: k,
faCopy: z,
faCopyright: j,
faCreditCard: B,
faDizzy: V,
faDotCircle: G,
faEdit: U,
faEnvelope: H,
faEnvelopeOpen: W,
faEye: X,
faEyeSlash: Y,
faFile: K,
faFileAlt: Z,
faFileArchive: q,
faFileAudio: Q,
faFileCode: J,
faFileExcel: $,
faFileImage: ee,
faFilePdf: te,
faFilePowerpoint: ne,
faFileVideo: ie,
faFileWord: re,
faFlag: oe,
faFlushed: ae,
faFolder: se,
faFolderOpen: ce,
faFontAwesomeLogoFull: le,
faFrown: ue,
faFrownOpen: he,
faFutbol: de,
faGem: pe,
faGrimace: fe,
faGrin: me,
faGrinAlt: ge,
faGrinBeam: be,
faGrinBeamSweat: _e,
faGrinHearts: ve,
faGrinSquint: ye,
faGrinSquintTears: Ce,
faGrinStars: Pe,
faGrinTears: xe,
faGrinTongue: Te,
faGrinTongueSquint: Se,
faGrinTongueWink: Oe,
faGrinWink: Ee,
faHandLizard: Me,
faHandPaper: Ae,
faHandPeace: Ie,
faHandPointDown: De,
faHandPointLeft: Re,
faHandPointRight: we,
faHandPointUp: Le,
faHandPointer: Fe,
faHandRock: Ne,
faHandScissors: ke,
faHandSpock: ze,
faHandshake: je,
faHdd: Be,
faHeart: Ve,
faHospital: Ge,
faHourglass: Ue,
faIdBadge: He,
faIdCard: We,
faImage: Xe,
faImages: Ye,
faKeyboard: Ke,
faKiss: Ze,
faKissBeam: qe,
faKissWinkHeart: Qe,
faLaugh: Je,
faLaughBeam: $e,
faLaughSquint: et,
faLaughWink: tt,
faLemon: nt,
faLifeRing: it,
faLightbulb: rt,
faListAlt: ot,
faMap: at,
faMeh: st,
faMehBlank: ct,
faMehRollingEyes: lt,
faMinusSquare: ut,
faMoneyBillAlt: ht,
faMoon: dt,
faNewspaper: pt,
faObjectGroup: ft,
faObjectUngroup: mt,
faPaperPlane: gt,
faPauseCircle: bt,
faPlayCircle: _t,
faPlusSquare: vt,
faQuestionCircle: yt,
faRegistered: Ct,
faSadCry: Pt,
faSadTear: xt,
faSave: Tt,
faShareSquare: St,
faSmile: Ot,
faSmileBeam: Et,
faSmileWink: Mt,
faSnowflake: At,
faSquare: It,
faStar: Dt,
faStarHalf: Rt,
faStickyNote: wt,
faStopCircle: Lt,
faSun: Ft,
faSurprise: Nt,
faThumbsDown: kt,
faThumbsUp: zt,
faTimesCircle: jt,
faTired: Bt,
faTrashAlt: Vt,
faUser: Gt,
faUserCircle: Ut,
faWindowClose: Ht,
faWindowMaximize: Wt,
faWindowMinimize: Xt,
faWindowRestore: Yt,
};
},
"../../../../node_modules/@fortawesome/free-solid-svg-icons/index.es.js": function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "fas", function () {
return Zf;
}),
n.d(t, "prefix", function () {
return i;
}),
n.d(t, "faAd", function () {
return r;
}),
n.d(t, "faAddressBook", function () {
return o;
}),
n.d(t, "faAddressCard", function () {
return a;
}),
n.d(t, "faAdjust", function () {
return s;
}),
n.d(t, "faAirFreshener", function () {
return c;
}),
n.d(t, "faAlignCenter", function () {
return l;
}),
n.d(t, "faAlignJustify", function () {
return u;
}),
n.d(t, "faAlignLeft", function () {
return h;
}),
n.d(t, "faAlignRight", function () {
return d;
}),
n.d(t, "faAllergies", function () {
return p;
}),
n.d(t, "faAmbulance", function () {
return f;
}),
n.d(t, "faAmericanSignLanguageInterpreting", function () {
return m;
}),
n.d(t, "faAnchor", function () {
return g;
}),
n.d(t, "faAngleDoubleDown", function () {
return b;
}),
n.d(t, "faAngleDoubleLeft", function () {
return _;
}),
n.d(t, "faAngleDoubleRight", function () {
return v;
}),
n.d(t, "faAngleDoubleUp", function () {
return y;
}),
n.d(t, "faAngleDown", function () {
return C;
}),
n.d(t, "faAngleLeft", function () {
return P;
}),
n.d(t, "faAngleRight", function () {
return x;
}),
n.d(t, "faAngleUp", function () {
return T;
}),
n.d(t, "faAngry", function () {
return S;
}),
n.d(t, "faAnkh", function () {
return O;
}),
n.d(t, "faAppleAlt", function () {
return E;
}),
n.d(t, "faArchive", function () {
return M;
}),
n.d(t, "faArchway", function () {
return A;
}),
n.d(t, "faArrowAltCircleDown", function () {
return I;
}),
n.d(t, "faArrowAltCircleLeft", function () {
return D;
}),
n.d(t, "faArrowAltCircleRight", function () {
return R;
}),
n.d(t, "faArrowAltCircleUp", function () {
return w;
}),
n.d(t, "faArrowCircleDown", function () {
return L;
}),
n.d(t, "faArrowCircleLeft", function () {
return F;
}),
n.d(t, "faArrowCircleRight", function () {
return N;
}),
n.d(t, "faArrowCircleUp", function () {
return k;
}),
n.d(t, "faArrowDown", function () {
return z;
}),
n.d(t, "faArrowLeft", function () {
return j;
}),
n.d(t, "faArrowRight", function () {
return B;
}),
n.d(t, "faArrowUp", function () {
return V;
}),
n.d(t, "faArrowsAlt", function () {
return G;
}),
n.d(t, "faArrowsAltH", function () {
return U;
}),
n.d(t, "faArrowsAltV", function () {
return H;
}),
n.d(t, "faAssistiveListeningSystems", function () {
return W;
}),
n.d(t, "faAsterisk", function () {
return X;
}),
n.d(t, "faAt", function () {
return Y;
}),
n.d(t, "faAtlas", function () {
return K;
}),
n.d(t, "faAtom", function () {
return Z;
}),
n.d(t, "faAudioDescription", function () {
return q;
}),
n.d(t, "faAward", function () {
return Q;
}),
n.d(t, "faBackspace", function () {
return J;
}),
n.d(t, "faBackward", function () {
return $;
}),
n.d(t, "faBalanceScale", function () {
return ee;
}),
n.d(t, "faBan", function () {
return te;
}),
n.d(t, "faBandAid", function () {
return ne;
}),
n.d(t, "faBarcode", function () {
return ie;
}),
n.d(t, "faBars", function () {
return re;
}),
n.d(t, "faBaseballBall", function () {
return oe;
}),
n.d(t, "faBasketballBall", function () {
return ae;
}),
n.d(t, "faBath", function () {
return se;
}),
n.d(t, "faBatteryEmpty", function () {
return ce;
}),
n.d(t, "faBatteryFull", function () {
return le;
}),
n.d(t, "faBatteryHalf", function () {
return ue;
}),
n.d(t, "faBatteryQuarter", function () {
return he;
}),
n.d(t, "faBatteryThreeQuarters", function () {
return de;
}),
n.d(t, "faBed", function () {
return pe;
}),
n.d(t, "faBeer", function () {
return fe;
}),
n.d(t, "faBell", function () {
return me;
}),
n.d(t, "faBellSlash", function () {
return ge;
}),
n.d(t, "faBezierCurve", function () {
return be;
}),
n.d(t, "faBible", function () {
return _e;
}),
n.d(t, "faBicycle", function () {
return ve;
}),
n.d(t, "faBinoculars", function () {
return ye;
}),
n.d(t, "faBirthdayCake", function () {
return Ce;
}),
n.d(t, "faBlender", function () {
return Pe;
}),
n.d(t, "faBlenderPhone", function () {
return xe;
}),
n.d(t, "faBlind", function () {
return Te;
}),
n.d(t, "faBold", function () {
return Se;
}),
n.d(t, "faBolt", function () {
return Oe;
}),
n.d(t, "faBomb", function () {
return Ee;
}),
n.d(t, "faBone", function () {
return Me;
}),
n.d(t, "faBong", function () {
return Ae;
}),
n.d(t, "faBook", function () {
return Ie;
}),
n.d(t, "faBookDead", function () {
return De;
}),
n.d(t, "faBookOpen", function () {
return Re;
}),
n.d(t, "faBookReader", function () {
return we;
}),
n.d(t, "faBookmark", function () {
return Le;
}),
n.d(t, "faBowlingBall", function () {
return Fe;
}),
n.d(t, "faBox", function () {
return Ne;
}),
n.d(t, "faBoxOpen", function () {
return ke;
}),
n.d(t, "faBoxes", function () {
return ze;
}),
n.d(t, "faBraille", function () {
return je;
}),
n.d(t, "faBrain", function () {
return Be;
}),
n.d(t, "faBriefcase", function () {
return Ve;
}),
n.d(t, "faBriefcaseMedical", function () {
return Ge;
}),
n.d(t, "faBroadcastTower", function () {
return Ue;
}),
n.d(t, "faBroom", function () {
return He;
}),
n.d(t, "faBrush", function () {
return We;
}),
n.d(t, "faBug", function () {
return Xe;
}),
n.d(t, "faBuilding", function () {
return Ye;
}),
n.d(t, "faBullhorn", function () {
return Ke;
}),
n.d(t, "faBullseye", function () {
return Ze;
}),
n.d(t, "faBurn", function () {
return qe;
}),
n.d(t, "faBus", function () {
return Qe;
}),
n.d(t, "faBusAlt", function () {
return Je;
}),
n.d(t, "faBusinessTime", function () {
return $e;
}),
n.d(t, "faCalculator", function () {
return et;
}),
n.d(t, "faCalendar", function () {
return tt;
}),
n.d(t, "faCalendarAlt", function () {
return nt;
}),
n.d(t, "faCalendarCheck", function () {
return it;
}),
n.d(t, "faCalendarMinus", function () {
return rt;
}),
n.d(t, "faCalendarPlus", function () {
return ot;
}),
n.d(t, "faCalendarTimes", function () {
return at;
}),
n.d(t, "faCamera", function () {
return st;
}),
n.d(t, "faCameraRetro", function () {
return ct;
}),
n.d(t, "faCampground", function () {
return lt;
}),
n.d(t, "faCannabis", function () {
return ut;
}),
n.d(t, "faCapsules", function () {
return ht;
}),
n.d(t, "faCar", function () {
return dt;
}),
n.d(t, "faCarAlt", function () {
return pt;
}),
n.d(t, "faCarBattery", function () {
return ft;
}),
n.d(t, "faCarCrash", function () {
return mt;
}),
n.d(t, "faCarSide", function () {
return gt;
}),
n.d(t, "faCaretDown", function () {
return bt;
}),
n.d(t, "faCaretLeft", function () {
return _t;
}),
n.d(t, "faCaretRight", function () {
return vt;
}),
n.d(t, "faCaretSquareDown", function () {
return yt;
}),
n.d(t, "faCaretSquareLeft", function () {
return Ct;
}),
n.d(t, "faCaretSquareRight", function () {
return Pt;
}),
n.d(t, "faCaretSquareUp", function () {
return xt;
}),
n.d(t, "faCaretUp", function () {
return Tt;
}),
n.d(t, "faCartArrowDown", function () {
return St;
}),
n.d(t, "faCartPlus", function () {
return Ot;
}),
n.d(t, "faCat", function () {
return Et;
}),
n.d(t, "faCertificate", function () {
return Mt;
}),
n.d(t, "faChair", function () {
return At;
}),
n.d(t, "faChalkboard", function () {
return It;
}),
n.d(t, "faChalkboardTeacher", function () {
return Dt;
}),
n.d(t, "faChargingStation", function () {
return Rt;
}),
n.d(t, "faChartArea", function () {
return wt;
}),
n.d(t, "faChartBar", function () {
return Lt;
}),
n.d(t, "faChartLine", function () {
return Ft;
}),
n.d(t, "faChartPie", function () {
return Nt;
}),
n.d(t, "faCheck", function () {
return kt;
}),
n.d(t, "faCheckCircle", function () {
return zt;
}),
n.d(t, "faCheckDouble", function () {
return jt;
}),
n.d(t, "faCheckSquare", function () {
return Bt;
}),
n.d(t, "faChess", function () {
return Vt;
}),
n.d(t, "faChessBishop", function () {
return Gt;
}),
n.d(t, "faChessBoard", function () {
return Ut;
}),
n.d(t, "faChessKing", function () {
return Ht;
}),
n.d(t, "faChessKnight", function () {
return Wt;
}),
n.d(t, "faChessPawn", function () {
return Xt;
}),
n.d(t, "faChessQueen", function () {
return Yt;
}),
n.d(t, "faChessRook", function () {
return Kt;
}),
n.d(t, "faChevronCircleDown", function () {
return Zt;
}),
n.d(t, "faChevronCircleLeft", function () {
return qt;
}),
n.d(t, "faChevronCircleRight", function () {
return Qt;
}),
n.d(t, "faChevronCircleUp", function () {
return Jt;
}),
n.d(t, "faChevronDown", function () {
return $t;
}),
n.d(t, "faChevronLeft", function () {
return en;
}),
n.d(t, "faChevronRight", function () {
return tn;
}),
n.d(t, "faChevronUp", function () {
return nn;
}),
n.d(t, "faChild", function () {
return rn;
}),
n.d(t, "faChurch", function () {
return on;
}),
n.d(t, "faCircle", function () {
return an;
}),
n.d(t, "faCircleNotch", function () {
return sn;
}),
n.d(t, "faCity", function () {
return cn;
}),
n.d(t, "faClipboard", function () {
return ln;
}),
n.d(t, "faClipboardCheck", function () {
return un;
}),
n.d(t, "faClipboardList", function () {
return hn;
}),
n.d(t, "faClock", function () {
return dn;
}),
n.d(t, "faClone", function () {
return pn;
}),
n.d(t, "faClosedCaptioning", function () {
return fn;
}),
n.d(t, "faCloud", function () {
return mn;
}),
n.d(t, "faCloudDownloadAlt", function () {
return gn;
}),
n.d(t, "faCloudMoon", function () {
return bn;
}),
n.d(t, "faCloudSun", function () {
return _n;
}),
n.d(t, "faCloudUploadAlt", function () {
return vn;
}),
n.d(t, "faCocktail", function () {
return yn;
}),
n.d(t, "faCode", function () {
return Cn;
}),
n.d(t, "faCodeBranch", function () {
return Pn;
}),
n.d(t, "faCoffee", function () {
return xn;
}),
n.d(t, "faCog", function () {
return Tn;
}),
n.d(t, "faCogs", function () {
return Sn;
}),
n.d(t, "faCoins", function () {
return On;
}),
n.d(t, "faColumns", function () {
return En;
}),
n.d(t, "faComment", function () {
return Mn;
}),
n.d(t, "faCommentAlt", function () {
return An;
}),
n.d(t, "faCommentDollar", function () {
return In;
}),
n.d(t, "faCommentDots", function () {
return Dn;
}),
n.d(t, "faCommentSlash", function () {
return Rn;
}),
n.d(t, "faComments", function () {
return wn;
}),
n.d(t, "faCommentsDollar", function () {
return Ln;
}),
n.d(t, "faCompactDisc", function () {
return Fn;
}),
n.d(t, "faCompass", function () {
return Nn;
}),
n.d(t, "faCompress", function () {
return kn;
}),
n.d(t, "faConciergeBell", function () {
return zn;
}),
n.d(t, "faCookie", function () {
return jn;
}),
n.d(t, "faCookieBite", function () {
return Bn;
}),
n.d(t, "faCopy", function () {
return Vn;
}),
n.d(t, "faCopyright", function () {
return Gn;
}),
n.d(t, "faCouch", function () {
return Un;
}),
n.d(t, "faCreditCard", function () {
return Hn;
}),
n.d(t, "faCrop", function () {
return Wn;
}),
n.d(t, "faCropAlt", function () {
return Xn;
}),
n.d(t, "faCross", function () {
return Yn;
}),
n.d(t, "faCrosshairs", function () {
return Kn;
}),
n.d(t, "faCrow", function () {
return Zn;
}),
n.d(t, "faCrown", function () {
return qn;
}),
n.d(t, "faCube", function () {
return Qn;
}),
n.d(t, "faCubes", function () {
return Jn;
}),
n.d(t, "faCut", function () {
return $n;
}),
n.d(t, "faDatabase", function () {
return ei;
}),
n.d(t, "faDeaf", function () {
return ti;
}),
n.d(t, "faDesktop", function () {
return ni;
}),
n.d(t, "faDharmachakra", function () {
return ii;
}),
n.d(t, "faDiagnoses", function () {
return ri;
}),
n.d(t, "faDice", function () {
return oi;
}),
n.d(t, "faDiceD20", function () {
return ai;
}),
n.d(t, "faDiceD6", function () {
return si;
}),
n.d(t, "faDiceFive", function () {
return ci;
}),
n.d(t, "faDiceFour", function () {
return li;
}),
n.d(t, "faDiceOne", function () {
return ui;
}),
n.d(t, "faDiceSix", function () {
return hi;
}),
n.d(t, "faDiceThree", function () {
return di;
}),
n.d(t, "faDiceTwo", function () {
return pi;
}),
n.d(t, "faDigitalTachograph", function () {
return fi;
}),
n.d(t, "faDirections", function () {
return mi;
}),
n.d(t, "faDivide", function () {
return gi;
}),
n.d(t, "faDizzy", function () {
return bi;
}),
n.d(t, "faDna", function () {
return _i;
}),
n.d(t, "faDog", function () {
return vi;
}),
n.d(t, "faDollarSign", function () {
return yi;
}),
n.d(t, "faDolly", function () {
return Ci;
}),
n.d(t, "faDollyFlatbed", function () {
return Pi;
}),
n.d(t, "faDonate", function () {
return xi;
}),
n.d(t, "faDoorClosed", function () {
return Ti;
}),
n.d(t, "faDoorOpen", function () {
return Si;
}),
n.d(t, "faDotCircle", function () {
return Oi;
}),
n.d(t, "faDove", function () {
return Ei;
}),
n.d(t, "faDownload", function () {
return Mi;
}),
n.d(t, "faDraftingCompass", function () {
return Ai;
}),
n.d(t, "faDragon", function () {
return Ii;
}),
n.d(t, "faDrawPolygon", function () {
return Di;
}),
n.d(t, "faDrum", function () {
return Ri;
}),
n.d(t, "faDrumSteelpan", function () {
return wi;
}),
n.d(t, "faDrumstickBite", function () {
return Li;
}),
n.d(t, "faDumbbell", function () {
return Fi;
}),
n.d(t, "faDungeon", function () {
return Ni;
}),
n.d(t, "faEdit", function () {
return ki;
}),
n.d(t, "faEject", function () {
return zi;
}),
n.d(t, "faEllipsisH", function () {
return ji;
}),
n.d(t, "faEllipsisV", function () {
return Bi;
}),
n.d(t, "faEnvelope", function () {
return Vi;
}),
n.d(t, "faEnvelopeOpen", function () {
return Gi;
}),
n.d(t, "faEnvelopeOpenText", function () {
return Ui;
}),
n.d(t, "faEnvelopeSquare", function () {
return Hi;
}),
n.d(t, "faEquals", function () {
return Wi;
}),
n.d(t, "faEraser", function () {
return Xi;
}),
n.d(t, "faEuroSign", function () {
return Yi;
}),
n.d(t, "faExchangeAlt", function () {
return Ki;
}),
n.d(t, "faExclamation", function () {
return Zi;
}),
n.d(t, "faExclamationCircle", function () {
return qi;
}),
n.d(t, "faExclamationTriangle", function () {
return Qi;
}),
n.d(t, "faExpand", function () {
return Ji;
}),
n.d(t, "faExpandArrowsAlt", function () {
return $i;
}),
n.d(t, "faExternalLinkAlt", function () {
return er;
}),
n.d(t, "faExternalLinkSquareAlt", function () {
return tr;
}),
n.d(t, "faEye", function () {
return nr;
}),
n.d(t, "faEyeDropper", function () {
return ir;
}),
n.d(t, "faEyeSlash", function () {
return rr;
}),
n.d(t, "faFastBackward", function () {
return or;
}),
n.d(t, "faFastForward", function () {
return ar;
}),
n.d(t, "faFax", function () {
return sr;
}),
n.d(t, "faFeather", function () {
return cr;
}),
n.d(t, "faFeatherAlt", function () {
return lr;
}),
n.d(t, "faFemale", function () {
return ur;
}),
n.d(t, "faFighterJet", function () {
return hr;
}),
n.d(t, "faFile", function () {
return dr;
}),
n.d(t, "faFileAlt", function () {
return pr;
}),
n.d(t, "faFileArchive", function () {
return fr;
}),
n.d(t, "faFileAudio", function () {
return mr;
}),
n.d(t, "faFileCode", function () {
return gr;
}),
n.d(t, "faFileContract", function () {
return br;
}),
n.d(t, "faFileCsv", function () {
return _r;
}),
n.d(t, "faFileDownload", function () {
return vr;
}),
n.d(t, "faFileExcel", function () {
return yr;
}),
n.d(t, "faFileExport", function () {
return Cr;
}),
n.d(t, "faFileImage", function () {
return Pr;
}),
n.d(t, "faFileImport", function () {
return xr;
}),
n.d(t, "faFileInvoice", function () {
return Tr;
}),
n.d(t, "faFileInvoiceDollar", function () {
return Sr;
}),
n.d(t, "faFileMedical", function () {
return Or;
}),
n.d(t, "faFileMedicalAlt", function () {
return Er;
}),
n.d(t, "faFilePdf", function () {
return Mr;
}),
n.d(t, "faFilePowerpoint", function () {
return Ar;
}),
n.d(t, "faFilePrescription", function () {
return Ir;
}),
n.d(t, "faFileSignature", function () {
return Dr;
}),
n.d(t, "faFileUpload", function () {
return Rr;
}),
n.d(t, "faFileVideo", function () {
return wr;
}),
n.d(t, "faFileWord", function () {
return Lr;
}),
n.d(t, "faFill", function () {
return Fr;
}),
n.d(t, "faFillDrip", function () {
return Nr;
}),
n.d(t, "faFilm", function () {
return kr;
}),
n.d(t, "faFilter", function () {
return zr;
}),
n.d(t, "faFingerprint", function () {
return jr;
}),
n.d(t, "faFire", function () {
return Br;
}),
n.d(t, "faFireExtinguisher", function () {
return Vr;
}),
n.d(t, "faFirstAid", function () {
return Gr;
}),
n.d(t, "faFish", function () {
return Ur;
}),
n.d(t, "faFistRaised", function () {
return Hr;
}),
n.d(t, "faFlag", function () {
return Wr;
}),
n.d(t, "faFlagCheckered", function () {
return Xr;
}),
n.d(t, "faFlask", function () {
return Yr;
}),
n.d(t, "faFlushed", function () {
return Kr;
}),
n.d(t, "faFolder", function () {
return Zr;
}),
n.d(t, "faFolderMinus", function () {
return qr;
}),
n.d(t, "faFolderOpen", function () {
return Qr;
}),
n.d(t, "faFolderPlus", function () {
return Jr;
}),
n.d(t, "faFont", function () {
return $r;
}),
n.d(t, "faFontAwesomeLogoFull", function () {
return eo;
}),
n.d(t, "faFootballBall", function () {
return to;
}),
n.d(t, "faForward", function () {
return no;
}),
n.d(t, "faFrog", function () {
return io;
}),
n.d(t, "faFrown", function () {
return ro;
}),
n.d(t, "faFrownOpen", function () {
return oo;
}),
n.d(t, "faFunnelDollar", function () {
return ao;
}),
n.d(t, "faFutbol", function () {
return so;
}),
n.d(t, "faGamepad", function () {
return co;
}),
n.d(t, "faGasPump", function () {
return lo;
}),
n.d(t, "faGavel", function () {
return uo;
}),
n.d(t, "faGem", function () {
return ho;
}),
n.d(t, "faGenderless", function () {
return po;
}),
n.d(t, "faGhost", function () {
return fo;
}),
n.d(t, "faGift", function () {
return mo;
}),
n.d(t, "faGlassMartini", function () {
return go;
}),
n.d(t, "faGlassMartiniAlt", function () {
return bo;
}),
n.d(t, "faGlasses", function () {
return _o;
}),
n.d(t, "faGlobe", function () {
return vo;
}),
n.d(t, "faGlobeAfrica", function () {
return yo;
}),
n.d(t, "faGlobeAmericas", function () {
return Co;
}),
n.d(t, "faGlobeAsia", function () {
return Po;
}),
n.d(t, "faGolfBall", function () {
return xo;
}),
n.d(t, "faGopuram", function () {
return To;
}),
n.d(t, "faGraduationCap", function () {
return So;
}),
n.d(t, "faGreaterThan", function () {
return Oo;
}),
n.d(t, "faGreaterThanEqual", function () {
return Eo;
}),
n.d(t, "faGrimace", function () {
return Mo;
}),
n.d(t, "faGrin", function () {
return Ao;
}),
n.d(t, "faGrinAlt", function () {
return Io;
}),
n.d(t, "faGrinBeam", function () {
return Do;
}),
n.d(t, "faGrinBeamSweat", function () {
return Ro;
}),
n.d(t, "faGrinHearts", function () {
return wo;
}),
n.d(t, "faGrinSquint", function () {
return Lo;
}),
n.d(t, "faGrinSquintTears", function () {
return Fo;
}),
n.d(t, "faGrinStars", function () {
return No;
}),
n.d(t, "faGrinTears", function () {
return ko;
}),
n.d(t, "faGrinTongue", function () {
return zo;
}),
n.d(t, "faGrinTongueSquint", function () {
return jo;
}),
n.d(t, "faGrinTongueWink", function () {
return Bo;
}),
n.d(t, "faGrinWink", function () {
return Vo;
}),
n.d(t, "faGripHorizontal", function () {
return Go;
}),
n.d(t, "faGripVertical", function () {
return Uo;
}),
n.d(t, "faHSquare", function () {
return Ho;
}),
n.d(t, "faHammer", function () {
return Wo;
}),
n.d(t, "faHamsa", function () {
return Xo;
}),
n.d(t, "faHandHolding", function () {
return Yo;
}),
n.d(t, "faHandHoldingHeart", function () {
return Ko;
}),
n.d(t, "faHandHoldingUsd", function () {
return Zo;
}),
n.d(t, "faHandLizard", function () {
return qo;
}),
n.d(t, "faHandPaper", function () {
return Qo;
}),
n.d(t, "faHandPeace", function () {
return Jo;
}),
n.d(t, "faHandPointDown", function () {
return $o;
}),
n.d(t, "faHandPointLeft", function () {
return ea;
}),
n.d(t, "faHandPointRight", function () {
return ta;
}),
n.d(t, "faHandPointUp", function () {
return na;
}),
n.d(t, "faHandPointer", function () {
return ia;
}),
n.d(t, "faHandRock", function () {
return ra;
}),
n.d(t, "faHandScissors", function () {
return oa;
}),
n.d(t, "faHandSpock", function () {
return aa;
}),
n.d(t, "faHands", function () {
return sa;
}),
n.d(t, "faHandsHelping", function () {
return ca;
}),
n.d(t, "faHandshake", function () {
return la;
}),
n.d(t, "faHanukiah", function () {
return ua;
}),
n.d(t, "faHashtag", function () {
return ha;
}),
n.d(t, "faHatWizard", function () {
return da;
}),
n.d(t, "faHaykal", function () {
return pa;
}),
n.d(t, "faHdd", function () {
return fa;
}),
n.d(t, "faHeading", function () {
return ma;
}),
n.d(t, "faHeadphones", function () {
return ga;
}),
n.d(t, "faHeadphonesAlt", function () {
return ba;
}),
n.d(t, "faHeadset", function () {
return _a;
}),
n.d(t, "faHeart", function () {
return va;
}),
n.d(t, "faHeartbeat", function () {
return ya;
}),
n.d(t, "faHelicopter", function () {
return Ca;
}),
n.d(t, "faHighlighter", function () {
return Pa;
}),
n.d(t, "faHiking", function () {
return xa;
}),
n.d(t, "faHippo", function () {
return Ta;
}),
n.d(t, "faHistory", function () {
return Sa;
}),
n.d(t, "faHockeyPuck", function () {
return Oa;
}),
n.d(t, "faHome", function () {
return Ea;
}),
n.d(t, "faHorse", function () {
return Ma;
}),
n.d(t, "faHospital", function () {
return Aa;
}),
n.d(t, "faHospitalAlt", function () {
return Ia;
}),
n.d(t, "faHospitalSymbol", function () {
return Da;
}),
n.d(t, "faHotTub", function () {
return Ra;
}),
n.d(t, "faHotel", function () {
return wa;
}),
n.d(t, "faHourglass", function () {
return La;
}),
n.d(t, "faHourglassEnd", function () {
return Fa;
}),
n.d(t, "faHourglassHalf", function () {
return Na;
}),
n.d(t, "faHourglassStart", function () {
return ka;
}),
n.d(t, "faHouseDamage", function () {
return za;
}),
n.d(t, "faHryvnia", function () {
return ja;
}),
n.d(t, "faICursor", function () {
return Ba;
}),
n.d(t, "faIdBadge", function () {
return Va;
}),
n.d(t, "faIdCard", function () {
return Ga;
}),
n.d(t, "faIdCardAlt", function () {
return Ua;
}),
n.d(t, "faImage", function () {
return Ha;
}),
n.d(t, "faImages", function () {
return Wa;
}),
n.d(t, "faInbox", function () {
return Xa;
}),
n.d(t, "faIndent", function () {
return Ya;
}),
n.d(t, "faIndustry", function () {
return Ka;
}),
n.d(t, "faInfinity", function () {
return Za;
}),
n.d(t, "faInfo", function () {
return qa;
}),
n.d(t, "faInfoCircle", function () {
return Qa;
}),
n.d(t, "faItalic", function () {
return Ja;
}),
n.d(t, "faJedi", function () {
return $a;
}),
n.d(t, "faJoint", function () {
return es;
}),
n.d(t, "faJournalWhills", function () {
return ts;
}),
n.d(t, "faKaaba", function () {
return ns;
}),
n.d(t, "faKey", function () {
return is;
}),
n.d(t, "faKeyboard", function () {
return rs;
}),
n.d(t, "faKhanda", function () {
return os;
}),
n.d(t, "faKiss", function () {
return as;
}),
n.d(t, "faKissBeam", function () {
return ss;
}),
n.d(t, "faKissWinkHeart", function () {
return cs;
}),
n.d(t, "faKiwiBird", function () {
return ls;
}),
n.d(t, "faLandmark", function () {
return us;
}),
n.d(t, "faLanguage", function () {
return hs;
}),
n.d(t, "faLaptop", function () {
return ds;
}),
n.d(t, "faLaptopCode", function () {
return ps;
}),
n.d(t, "faLaugh", function () {
return fs;
}),
n.d(t, "faLaughBeam", function () {
return ms;
}),
n.d(t, "faLaughSquint", function () {
return gs;
}),
n.d(t, "faLaughWink", function () {
return bs;
}),
n.d(t, "faLayerGroup", function () {
return _s;
}),
n.d(t, "faLeaf", function () {
return vs;
}),
n.d(t, "faLemon", function () {
return ys;
}),
n.d(t, "faLessThan", function () {
return Cs;
}),
n.d(t, "faLessThanEqual", function () {
return Ps;
}),
n.d(t, "faLevelDownAlt", function () {
return xs;
}),
n.d(t, "faLevelUpAlt", function () {
return Ts;
}),
n.d(t, "faLifeRing", function () {
return Ss;
}),
n.d(t, "faLightbulb", function () {
return Os;
}),
n.d(t, "faLink", function () {
return Es;
}),
n.d(t, "faLiraSign", function () {
return Ms;
}),
n.d(t, "faList", function () {
return As;
}),
n.d(t, "faListAlt", function () {
return Is;
}),
n.d(t, "faListOl", function () {
return Ds;
}),
n.d(t, "faListUl", function () {
return Rs;
}),
n.d(t, "faLocationArrow", function () {
return ws;
}),
n.d(t, "faLock", function () {
return Ls;
}),
n.d(t, "faLockOpen", function () {
return Fs;
}),
n.d(t, "faLongArrowAltDown", function () {
return Ns;
}),
n.d(t, "faLongArrowAltLeft", function () {
return ks;
}),
n.d(t, "faLongArrowAltRight", function () {
return zs;
}),
n.d(t, "faLongArrowAltUp", function () {
return js;
}),
n.d(t, "faLowVision", function () {
return Bs;
}),
n.d(t, "faLuggageCart", function () {
return Vs;
}),
n.d(t, "faMagic", function () {
return Gs;
}),
n.d(t, "faMagnet", function () {
return Us;
}),
n.d(t, "faMailBulk", function () {
return Hs;
}),
n.d(t, "faMale", function () {
return Ws;
}),
n.d(t, "faMap", function () {
return Xs;
}),
n.d(t, "faMapMarked", function () {
return Ys;
}),
n.d(t, "faMapMarkedAlt", function () {
return Ks;
}),
n.d(t, "faMapMarker", function () {
return Zs;
}),
n.d(t, "faMapMarkerAlt", function () {
return qs;
}),
n.d(t, "faMapPin", function () {
return Qs;
}),
n.d(t, "faMapSigns", function () {
return Js;
}),
n.d(t, "faMarker", function () {
return $s;
}),
n.d(t, "faMars", function () {
return ec;
}),
n.d(t, "faMarsDouble", function () {
return tc;
}),
n.d(t, "faMarsStroke", function () {
return nc;
}),
n.d(t, "faMarsStrokeH", function () {
return ic;
}),
n.d(t, "faMarsStrokeV", function () {
return rc;
}),
n.d(t, "faMask", function () {
return oc;
}),
n.d(t, "faMedal", function () {
return ac;
}),
n.d(t, "faMedkit", function () {
return sc;
}),
n.d(t, "faMeh", function () {
return cc;
}),
n.d(t, "faMehBlank", function () {
return lc;
}),
n.d(t, "faMehRollingEyes", function () {
return uc;
}),
n.d(t, "faMemory", function () {
return hc;
}),
n.d(t, "faMenorah", function () {
return dc;
}),
n.d(t, "faMercury", function () {
return pc;
}),
n.d(t, "faMicrochip", function () {
return fc;
}),
n.d(t, "faMicrophone", function () {
return mc;
}),
n.d(t, "faMicrophoneAlt", function () {
return gc;
}),
n.d(t, "faMicrophoneAltSlash", function () {
return bc;
}),
n.d(t, "faMicrophoneSlash", function () {
return _c;
}),
n.d(t, "faMicroscope", function () {
return vc;
}),
n.d(t, "faMinus", function () {
return yc;
}),
n.d(t, "faMinusCircle", function () {
return Cc;
}),
n.d(t, "faMinusSquare", function () {
return Pc;
}),
n.d(t, "faMobile", function () {
return xc;
}),
n.d(t, "faMobileAlt", function () {
return Tc;
}),
n.d(t, "faMoneyBill", function () {
return Sc;
}),
n.d(t, "faMoneyBillAlt", function () {
return Oc;
}),
n.d(t, "faMoneyBillWave", function () {
return Ec;
}),
n.d(t, "faMoneyBillWaveAlt", function () {
return Mc;
}),
n.d(t, "faMoneyCheck", function () {
return Ac;
}),
n.d(t, "faMoneyCheckAlt", function () {
return Ic;
}),
n.d(t, "faMonument", function () {
return Dc;
}),
n.d(t, "faMoon", function () {
return Rc;
}),
n.d(t, "faMortarPestle", function () {
return wc;
}),
n.d(t, "faMosque", function () {
return Lc;
}),
n.d(t, "faMotorcycle", function () {
return Fc;
}),
n.d(t, "faMountain", function () {
return Nc;
}),
n.d(t, "faMousePointer", function () {
return kc;
}),
n.d(t, "faMusic", function () {
return zc;
}),
n.d(t, "faNetworkWired", function () {
return jc;
}),
n.d(t, "faNeuter", function () {
return Bc;
}),
n.d(t, "faNewspaper", function () {
return Vc;
}),
n.d(t, "faNotEqual", function () {
return Gc;
}),
n.d(t, "faNotesMedical", function () {
return Uc;
}),
n.d(t, "faObjectGroup", function () {
return Hc;
}),
n.d(t, "faObjectUngroup", function () {
return Wc;
}),
n.d(t, "faOilCan", function () {
return Xc;
}),
n.d(t, "faOm", function () {
return Yc;
}),
n.d(t, "faOtter", function () {
return Kc;
}),
n.d(t, "faOutdent", function () {
return Zc;
}),
n.d(t, "faPaintBrush", function () {
return qc;
}),
n.d(t, "faPaintRoller", function () {
return Qc;
}),
n.d(t, "faPalette", function () {
return Jc;
}),
n.d(t, "faPallet", function () {
return $c;
}),
n.d(t, "faPaperPlane", function () {
return el;
}),
n.d(t, "faPaperclip", function () {
return tl;
}),
n.d(t, "faParachuteBox", function () {
return nl;
}),
n.d(t, "faParagraph", function () {
return il;
}),
n.d(t, "faParking", function () {
return rl;
}),
n.d(t, "faPassport", function () {
return ol;
}),
n.d(t, "faPastafarianism", function () {
return al;
}),
n.d(t, "faPaste", function () {
return sl;
}),
n.d(t, "faPause", function () {
return cl;
}),
n.d(t, "faPauseCircle", function () {
return ll;
}),
n.d(t, "faPaw", function () {
return ul;
}),
n.d(t, "faPeace", function () {
return hl;
}),
n.d(t, "faPen", function () {
return dl;
}),
n.d(t, "faPenAlt", function () {
return pl;
}),
n.d(t, "faPenFancy", function () {
return fl;
}),
n.d(t, "faPenNib", function () {
return ml;
}),
n.d(t, "faPenSquare", function () {
return gl;
}),
n.d(t, "faPencilAlt", function () {
return bl;
}),
n.d(t, "faPencilRuler", function () {
return _l;
}),
n.d(t, "faPeopleCarry", function () {
return vl;
}),
n.d(t, "faPercent", function () {
return yl;
}),
n.d(t, "faPercentage", function () {
return Cl;
}),
n.d(t, "faPhone", function () {
return Pl;
}),
n.d(t, "faPhoneSlash", function () {
return xl;
}),
n.d(t, "faPhoneSquare", function () {
return Tl;
}),
n.d(t, "faPhoneVolume", function () {
return Sl;
}),
n.d(t, "faPiggyBank", function () {
return Ol;
}),
n.d(t, "faPills", function () {
return El;
}),
n.d(t, "faPlaceOfWorship", function () {
return Ml;
}),
n.d(t, "faPlane", function () {
return Al;
}),
n.d(t, "faPlaneArrival", function () {
return Il;
}),
n.d(t, "faPlaneDeparture", function () {
return Dl;
}),
n.d(t, "faPlay", function () {
return Rl;
}),
n.d(t, "faPlayCircle", function () {
return wl;
}),
n.d(t, "faPlug", function () {
return Ll;
}),
n.d(t, "faPlus", function () {
return Fl;
}),
n.d(t, "faPlusCircle", function () {
return Nl;
}),
n.d(t, "faPlusSquare", function () {
return kl;
}),
n.d(t, "faPodcast", function () {
return zl;
}),
n.d(t, "faPoll", function () {
return jl;
}),
n.d(t, "faPollH", function () {
return Bl;
}),
n.d(t, "faPoo", function () {
return Vl;
}),
n.d(t, "faPoop", function () {
return Gl;
}),
n.d(t, "faPortrait", function () {
return Ul;
}),
n.d(t, "faPoundSign", function () {
return Hl;
}),
n.d(t, "faPowerOff", function () {
return Wl;
}),
n.d(t, "faPray", function () {
return Xl;
}),
n.d(t, "faPrayingHands", function () {
return Yl;
}),
n.d(t, "faPrescription", function () {
return Kl;
}),
n.d(t, "faPrescriptionBottle", function () {
return Zl;
}),
n.d(t, "faPrescriptionBottleAlt", function () {
return ql;
}),
n.d(t, "faPrint", function () {
return Ql;
}),
n.d(t, "faProcedures", function () {
return Jl;
}),
n.d(t, "faProjectDiagram", function () {
return $l;
}),
n.d(t, "faPuzzlePiece", function () {
return eu;
}),
n.d(t, "faQrcode", function () {
return tu;
}),
n.d(t, "faQuestion", function () {
return nu;
}),
n.d(t, "faQuestionCircle", function () {
return iu;
}),
n.d(t, "faQuidditch", function () {
return ru;
}),
n.d(t, "faQuoteLeft", function () {
return ou;
}),
n.d(t, "faQuoteRight", function () {
return au;
}),
n.d(t, "faQuran", function () {
return su;
}),
n.d(t, "faRandom", function () {
return cu;
}),
n.d(t, "faReceipt", function () {
return lu;
}),
n.d(t, "faRecycle", function () {
return uu;
}),
n.d(t, "faRedo", function () {
return hu;
}),
n.d(t, "faRedoAlt", function () {
return du;
}),
n.d(t, "faRegistered", function () {
return pu;
}),
n.d(t, "faReply", function () {
return fu;
}),
n.d(t, "faReplyAll", function () {
return mu;
}),
n.d(t, "faRetweet", function () {
return gu;
}),
n.d(t, "faRibbon", function () {
return bu;
}),
n.d(t, "faRing", function () {
return _u;
}),
n.d(t, "faRoad", function () {
return vu;
}),
n.d(t, "faRobot", function () {
return yu;
}),
n.d(t, "faRocket", function () {
return Cu;
}),
n.d(t, "faRoute", function () {
return Pu;
}),
n.d(t, "faRss", function () {
return xu;
}),
n.d(t, "faRssSquare", function () {
return Tu;
}),
n.d(t, "faRubleSign", function () {
return Su;
}),
n.d(t, "faRuler", function () {
return Ou;
}),
n.d(t, "faRulerCombined", function () {
return Eu;
}),
n.d(t, "faRulerHorizontal", function () {
return Mu;
}),
n.d(t, "faRulerVertical", function () {
return Au;
}),
n.d(t, "faRunning", function () {
return Iu;
}),
n.d(t, "faRupeeSign", function () {
return Du;
}),
n.d(t, "faSadCry", function () {
return Ru;
}),
n.d(t, "faSadTear", function () {
return wu;
}),
n.d(t, "faSave", function () {
return Lu;
}),
n.d(t, "faSchool", function () {
return Fu;
}),
n.d(t, "faScrewdriver", function () {
return Nu;
}),
n.d(t, "faScroll", function () {
return ku;
}),
n.d(t, "faSearch", function () {
return zu;
}),
n.d(t, "faSearchDollar", function () {
return ju;
}),
n.d(t, "faSearchLocation", function () {
return Bu;
}),
n.d(t, "faSearchMinus", function () {
return Vu;
}),
n.d(t, "faSearchPlus", function () {
return Gu;
}),
n.d(t, "faSeedling", function () {
return Uu;
}),
n.d(t, "faServer", function () {
return Hu;
}),
n.d(t, "faShapes", function () {
return Wu;
}),
n.d(t, "faShare", function () {
return Xu;
}),
n.d(t, "faShareAlt", function () {
return Yu;
}),
n.d(t, "faShareAltSquare", function () {
return Ku;
}),
n.d(t, "faShareSquare", function () {
return Zu;
}),
n.d(t, "faShekelSign", function () {
return qu;
}),
n.d(t, "faShieldAlt", function () {
return Qu;
}),
n.d(t, "faShip", function () {
return Ju;
}),
n.d(t, "faShippingFast", function () {
return $u;
}),
n.d(t, "faShoePrints", function () {
return eh;
}),
n.d(t, "faShoppingBag", function () {
return th;
}),
n.d(t, "faShoppingBasket", function () {
return nh;
}),
n.d(t, "faShoppingCart", function () {
return ih;
}),
n.d(t, "faShower", function () {
return rh;
}),
n.d(t, "faShuttleVan", function () {
return oh;
}),
n.d(t, "faSign", function () {
return ah;
}),
n.d(t, "faSignInAlt", function () {
return sh;
}),
n.d(t, "faSignLanguage", function () {
return ch;
}),
n.d(t, "faSignOutAlt", function () {
return lh;
}),
n.d(t, "faSignal", function () {
return uh;
}),
n.d(t, "faSignature", function () {
return hh;
}),
n.d(t, "faSitemap", function () {
return dh;
}),
n.d(t, "faSkull", function () {
return ph;
}),
n.d(t, "faSkullCrossbones", function () {
return fh;
}),
n.d(t, "faSlash", function () {
return mh;
}),
n.d(t, "faSlidersH", function () {
return gh;
}),
n.d(t, "faSmile", function () {
return bh;
}),
n.d(t, "faSmileBeam", function () {
return _h;
}),
n.d(t, "faSmileWink", function () {
return vh;
}),
n.d(t, "faSmoking", function () {
return yh;
}),
n.d(t, "faSmokingBan", function () {
return Ch;
}),
n.d(t, "faSnowflake", function () {
return Ph;
}),
n.d(t, "faSocks", function () {
return xh;
}),
n.d(t, "faSolarPanel", function () {
return Th;
}),
n.d(t, "faSort", function () {
return Sh;
}),
n.d(t, "faSortAlphaDown", function () {
return Oh;
}),
n.d(t, "faSortAlphaUp", function () {
return Eh;
}),
n.d(t, "faSortAmountDown", function () {
return Mh;
}),
n.d(t, "faSortAmountUp", function () {
return Ah;
}),
n.d(t, "faSortDown", function () {
return Ih;
}),
n.d(t, "faSortNumericDown", function () {
return Dh;
}),
n.d(t, "faSortNumericUp", function () {
return Rh;
}),
n.d(t, "faSortUp", function () {
return wh;
}),
n.d(t, "faSpa", function () {
return Lh;
}),
n.d(t, "faSpaceShuttle", function () {
return Fh;
}),
n.d(t, "faSpider", function () {
return Nh;
}),
n.d(t, "faSpinner", function () {
return kh;
}),
n.d(t, "faSplotch", function () {
return zh;
}),
n.d(t, "faSprayCan", function () {
return jh;
}),
n.d(t, "faSquare", function () {
return Bh;
}),
n.d(t, "faSquareFull", function () {
return Vh;
}),
n.d(t, "faSquareRootAlt", function () {
return Gh;
}),
n.d(t, "faStamp", function () {
return Uh;
}),
n.d(t, "faStar", function () {
return Hh;
}),
n.d(t, "faStarAndCrescent", function () {
return Wh;
}),
n.d(t, "faStarHalf", function () {
return Xh;
}),
n.d(t, "faStarHalfAlt", function () {
return Yh;
}),
n.d(t, "faStarOfDavid", function () {
return Kh;
}),
n.d(t, "faStarOfLife", function () {
return Zh;
}),
n.d(t, "faStepBackward", function () {
return qh;
}),
n.d(t, "faStepForward", function () {
return Qh;
}),
n.d(t, "faStethoscope", function () {
return Jh;
}),
n.d(t, "faStickyNote", function () {
return $h;
}),
n.d(t, "faStop", function () {
return ed;
}),
n.d(t, "faStopCircle", function () {
return td;
}),
n.d(t, "faStopwatch", function () {
return nd;
}),
n.d(t, "faStore", function () {
return id;
}),
n.d(t, "faStoreAlt", function () {
return rd;
}),
n.d(t, "faStream", function () {
return od;
}),
n.d(t, "faStreetView", function () {
return ad;
}),
n.d(t, "faStrikethrough", function () {
return sd;
}),
n.d(t, "faStroopwafel", function () {
return cd;
}),
n.d(t, "faSubscript", function () {
return ld;
}),
n.d(t, "faSubway", function () {
return ud;
}),
n.d(t, "faSuitcase", function () {
return hd;
}),
n.d(t, "faSuitcaseRolling", function () {
return dd;
}),
n.d(t, "faSun", function () {
return pd;
}),
n.d(t, "faSuperscript", function () {
return fd;
}),
n.d(t, "faSurprise", function () {
return md;
}),
n.d(t, "faSwatchbook", function () {
return gd;
}),
n.d(t, "faSwimmer", function () {
return bd;
}),
n.d(t, "faSwimmingPool", function () {
return _d;
}),
n.d(t, "faSynagogue", function () {
return vd;
}),
n.d(t, "faSync", function () {
return yd;
}),
n.d(t, "faSyncAlt", function () {
return Cd;
}),
n.d(t, "faSyringe", function () {
return Pd;
}),
n.d(t, "faTable", function () {
return xd;
}),
n.d(t, "faTableTennis", function () {
return Td;
}),
n.d(t, "faTablet", function () {
return Sd;
}),
n.d(t, "faTabletAlt", function () {
return Od;
}),
n.d(t, "faTablets", function () {
return Ed;
}),
n.d(t, "faTachometerAlt", function () {
return Md;
}),
n.d(t, "faTag", function () {
return Ad;
}),
n.d(t, "faTags", function () {
return Id;
}),
n.d(t, "faTape", function () {
return Dd;
}),
n.d(t, "faTasks", function () {
return Rd;
}),
n.d(t, "faTaxi", function () {
return wd;
}),
n.d(t, "faTeeth", function () {
return Ld;
}),
n.d(t, "faTeethOpen", function () {
return Fd;
}),
n.d(t, "faTerminal", function () {
return Nd;
}),
n.d(t, "faTextHeight", function () {
return kd;
}),
n.d(t, "faTextWidth", function () {
return zd;
}),
n.d(t, "faTh", function () {
return jd;
}),
n.d(t, "faThLarge", function () {
return Bd;
}),
n.d(t, "faThList", function () {
return Vd;
}),
n.d(t, "faTheaterMasks", function () {
return Gd;
}),
n.d(t, "faThermometer", function () {
return Ud;
}),
n.d(t, "faThermometerEmpty", function () {
return Hd;
}),
n.d(t, "faThermometerFull", function () {
return Wd;
}),
n.d(t, "faThermometerHalf", function () {
return Xd;
}),
n.d(t, "faThermometerQuarter", function () {
return Yd;
}),
n.d(t, "faThermometerThreeQuarters", function () {
return Kd;
}),
n.d(t, "faThumbsDown", function () {
return Zd;
}),
n.d(t, "faThumbsUp", function () {
return qd;
}),
n.d(t, "faThumbtack", function () {
return Qd;
}),
n.d(t, "faTicketAlt", function () {
return Jd;
}),
n.d(t, "faTimes", function () {
return $d;
}),
n.d(t, "faTimesCircle", function () {
return ep;
}),
n.d(t, "faTint", function () {
return tp;
}),
n.d(t, "faTintSlash", function () {
return np;
}),
n.d(t, "faTired", function () {
return ip;
}),
n.d(t, "faToggleOff", function () {
return rp;
}),
n.d(t, "faToggleOn", function () {
return op;
}),
n.d(t, "faToiletPaper", function () {
return ap;
}),
n.d(t, "faToolbox", function () {
return sp;
}),
n.d(t, "faTooth", function () {
return cp;
}),
n.d(t, "faTorah", function () {
return lp;
}),
n.d(t, "faToriiGate", function () {
return up;
}),
n.d(t, "faTractor", function () {
return hp;
}),
n.d(t, "faTrademark", function () {
return dp;
}),
n.d(t, "faTrafficLight", function () {
return pp;
}),
n.d(t, "faTrain", function () {
return fp;
}),
n.d(t, "faTransgender", function () {
return mp;
}),
n.d(t, "faTransgenderAlt", function () {
return gp;
}),
n.d(t, "faTrash", function () {
return bp;
}),
n.d(t, "faTrashAlt", function () {
return _p;
}),
n.d(t, "faTree", function () {
return vp;
}),
n.d(t, "faTrophy", function () {
return yp;
}),
n.d(t, "faTruck", function () {
return Cp;
}),
n.d(t, "faTruckLoading", function () {
return Pp;
}),
n.d(t, "faTruckMonster", function () {
return xp;
}),
n.d(t, "faTruckMoving", function () {
return Tp;
}),
n.d(t, "faTruckPickup", function () {
return Sp;
}),
n.d(t, "faTshirt", function () {
return Op;
}),
n.d(t, "faTty", function () {
return Ep;
}),
n.d(t, "faTv", function () {
return Mp;
}),
n.d(t, "faUmbrella", function () {
return Ap;
}),
n.d(t, "faUmbrellaBeach", function () {
return Ip;
}),
n.d(t, "faUnderline", function () {
return Dp;
}),
n.d(t, "faUndo", function () {
return Rp;
}),
n.d(t, "faUndoAlt", function () {
return wp;
}),
n.d(t, "faUniversalAccess", function () {
return Lp;
}),
n.d(t, "faUniversity", function () {
return Fp;
}),
n.d(t, "faUnlink", function () {
return Np;
}),
n.d(t, "faUnlock", function () {
return kp;
}),
n.d(t, "faUnlockAlt", function () {
return zp;
}),
n.d(t, "faUpload", function () {
return jp;
}),
n.d(t, "faUser", function () {
return Bp;
}),
n.d(t, "faUserAlt", function () {
return Vp;
}),
n.d(t, "faUserAltSlash", function () {
return Gp;
}),
n.d(t, "faUserAstronaut", function () {
return Up;
}),
n.d(t, "faUserCheck", function () {
return Hp;
}),
n.d(t, "faUserCircle", function () {
return Wp;
}),
n.d(t, "faUserClock", function () {
return Xp;
});
n.d(t, "faUserCog", function () {
return Yp;
}),
n.d(t, "faUserEdit", function () {
return Kp;
}),
n.d(t, "faUserFriends", function () {
return Zp;
}),
n.d(t, "faUserGraduate", function () {
return qp;
}),
n.d(t, "faUserInjured", function () {
return Qp;
}),
n.d(t, "faUserLock", function () {
return Jp;
}),
n.d(t, "faUserMd", function () {
return $p;
}),
n.d(t, "faUserMinus", function () {
return ef;
}),
n.d(t, "faUserNinja", function () {
return tf;
}),
n.d(t, "faUserPlus", function () {
return nf;
}),
n.d(t, "faUserSecret", function () {
return rf;
}),
n.d(t, "faUserShield", function () {
return of;
}),
n.d(t, "faUserSlash", function () {
return af;
}),
n.d(t, "faUserTag", function () {
return sf;
}),
n.d(t, "faUserTie", function () {
return cf;
}),
n.d(t, "faUserTimes", function () {
return lf;
}),
n.d(t, "faUsers", function () {
return uf;
}),
n.d(t, "faUsersCog", function () {
return hf;
}),
n.d(t, "faUtensilSpoon", function () {
return df;
}),
n.d(t, "faUtensils", function () {
return pf;
}),
n.d(t, "faVectorSquare", function () {
return ff;
}),
n.d(t, "faVenus", function () {
return mf;
}),
n.d(t, "faVenusDouble", function () {
return gf;
}),
n.d(t, "faVenusMars", function () {
return bf;
}),
n.d(t, "faVial", function () {
return _f;
}),
n.d(t, "faVials", function () {
return vf;
}),
n.d(t, "faVideo", function () {
return yf;
}),
n.d(t, "faVideoSlash", function () {
return Cf;
}),
n.d(t, "faVihara", function () {
return Pf;
}),
n.d(t, "faVolleyballBall", function () {
return xf;
}),
n.d(t, "faVolumeDown", function () {
return Tf;
}),
n.d(t, "faVolumeMute", function () {
return Sf;
}),
n.d(t, "faVolumeOff", function () {
return Of;
}),
n.d(t, "faVolumeUp", function () {
return Ef;
}),
n.d(t, "faVrCardboard", function () {
return Mf;
}),
n.d(t, "faWalking", function () {
return Af;
}),
n.d(t, "faWallet", function () {
return If;
}),
n.d(t, "faWarehouse", function () {
return Df;
}),
n.d(t, "faWeight", function () {
return Rf;
}),
n.d(t, "faWeightHanging", function () {
return wf;
}),
n.d(t, "faWheelchair", function () {
return Lf;
}),
n.d(t, "faWifi", function () {
return Ff;
}),
n.d(t, "faWind", function () {
return Nf;
}),
n.d(t, "faWindowClose", function () {
return kf;
}),
n.d(t, "faWindowMaximize", function () {
return zf;
}),
n.d(t, "faWindowMinimize", function () {
return jf;
}),
n.d(t, "faWindowRestore", function () {
return Bf;
}),
n.d(t, "faWineBottle", function () {
return Vf;
}),
n.d(t, "faWineGlass", function () {
return Gf;
}),
n.d(t, "faWineGlassAlt", function () {
return Uf;
}),
n.d(t, "faWonSign", function () {
return Hf;
}),
n.d(t, "faWrench", function () {
return Wf;
}),
n.d(t, "faXRay", function () {
return Xf;
}),
n.d(t, "faYenSign", function () {
return Yf;
}),
n.d(t, "faYinYang", function () {
return Kf;
});
var i = "fas",
r = {
prefix: "fas",
iconName: "ad",
icon: [
512,
512,
[],
"f641",
"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z",
],
},
o = {
prefix: "fas",
iconName: "address-book",
icon: [
448,
512,
[],
"f2b9",
"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z",
],
},
a = {
prefix: "fas",
iconName: "address-card",
icon: [
576,
512,
[],
"f2bb",
"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z",
],
},
s = {
prefix: "fas",
iconName: "adjust",
icon: [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"],
},
c = {
prefix: "fas",
iconName: "air-freshener",
icon: [
384,
512,
[],
"f5d0",
"M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z",
],
},
l = {
prefix: "fas",
iconName: "align-center",
icon: [
448,
512,
[],
"f037",
"M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z",
],
},
u = {
prefix: "fas",
iconName: "align-justify",
icon: [
448,
512,
[],
"f039",
"M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z",
],
},
h = {
prefix: "fas",
iconName: "align-left",
icon: [
448,
512,
[],
"f036",
"M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z",
],
},
d = {
prefix: "fas",
iconName: "align-right",
icon: [
448,
512,
[],
"f038",
"M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z",
],
},
p = {
prefix: "fas",
iconName: "allergies",
icon: [
448,
512,
[],
"f461",
"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z",
],
},
f = {
prefix: "fas",
iconName: "ambulance",
icon: [
640,
512,
[],
"f0f9",
"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z",
],
},
m = {
prefix: "fas",
iconName: "american-sign-language-interpreting",
icon: [
640,
512,
[],
"f2a3",
"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z",
],
},
g = {
prefix: "fas",
iconName: "anchor",
icon: [
576,
512,
[],
"f13d",
"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z",
],
},
b = {
prefix: "fas",
iconName: "angle-double-down",
icon: [
320,
512,
[],
"f103",
"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z",
],
},
_ = {
prefix: "fas",
iconName: "angle-double-left",
icon: [
448,
512,
[],
"f100",
"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z",
],
},
v = {
prefix: "fas",
iconName: "angle-double-right",
icon: [
448,
512,
[],
"f101",
"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z",
],
},
y = {
prefix: "fas",
iconName: "angle-double-up",
icon: [
320,
512,
[],
"f102",
"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z",
],
},
C = {
prefix: "fas",
iconName: "angle-down",
icon: [
320,
512,
[],
"f107",
"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z",
],
},
P = {
prefix: "fas",
iconName: "angle-left",
icon: [
256,
512,
[],
"f104",
"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z",
],
},
x = {
prefix: "fas",
iconName: "angle-right",
icon: [
256,
512,
[],
"f105",
"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z",
],
},
T = {
prefix: "fas",
iconName: "angle-up",
icon: [
320,
512,
[],
"f106",
"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z",
],
},
S = {
prefix: "fas",
iconName: "angry",
icon: [
496,
512,
[],
"f556",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z",
],
},
O = {
prefix: "fas",
iconName: "ankh",
icon: [
320,
512,
[],
"f644",
"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z",
],
},
E = {
prefix: "fas",
iconName: "apple-alt",
icon: [
448,
512,
[],
"f5d1",
"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z",
],
},
M = {
prefix: "fas",
iconName: "archive",
icon: [
512,
512,
[],
"f187",
"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z",
],
},
A = {
prefix: "fas",
iconName: "archway",
icon: [
576,
512,
[],
"f557",
"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z",
],
},
I = {
prefix: "fas",
iconName: "arrow-alt-circle-down",
icon: [
512,
512,
[],
"f358",
"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z",
],
},
D = {
prefix: "fas",
iconName: "arrow-alt-circle-left",
icon: [
512,
512,
[],
"f359",
"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z",
],
},
R = {
prefix: "fas",
iconName: "arrow-alt-circle-right",
icon: [
512,
512,
[],
"f35a",
"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z",
],
},
w = {
prefix: "fas",
iconName: "arrow-alt-circle-up",
icon: [
512,
512,
[],
"f35b",
"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z",
],
},
L = {
prefix: "fas",
iconName: "arrow-circle-down",
icon: [
512,
512,
[],
"f0ab",
"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z",
],
},
F = {
prefix: "fas",
iconName: "arrow-circle-left",
icon: [
512,
512,
[],
"f0a8",
"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z",
],
},
N = {
prefix: "fas",
iconName: "arrow-circle-right",
icon: [
512,
512,
[],
"f0a9",
"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z",
],
},
k = {
prefix: "fas",
iconName: "arrow-circle-up",
icon: [
512,
512,
[],
"f0aa",
"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z",
],
},
z = {
prefix: "fas",
iconName: "arrow-down",
icon: [
448,
512,
[],
"f063",
"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z",
],
},
j = {
prefix: "fas",
iconName: "arrow-left",
icon: [
448,
512,
[],
"f060",
"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z",
],
},
B = {
prefix: "fas",
iconName: "arrow-right",
icon: [
448,
512,
[],
"f061",
"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z",
],
},
V = {
prefix: "fas",
iconName: "arrow-up",
icon: [
448,
512,
[],
"f062",
"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z",
],
},
G = {
prefix: "fas",
iconName: "arrows-alt",
icon: [
512,
512,
[],
"f0b2",
"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z",
],
},
U = {
prefix: "fas",
iconName: "arrows-alt-h",
icon: [
512,
512,
[],
"f337",
"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z",
],
},
H = {
prefix: "fas",
iconName: "arrows-alt-v",
icon: [
256,
512,
[],
"f338",
"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z",
],
},
W = {
prefix: "fas",
iconName: "assistive-listening-systems",
icon: [
512,
512,
[],
"f2a2",
"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z",
],
},
X = {
prefix: "fas",
iconName: "asterisk",
icon: [
512,
512,
[],
"f069",
"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z",
],
},
Y = {
prefix: "fas",
iconName: "at",
icon: [
512,
512,
[],
"f1fa",
"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z",
],
},
K = {
prefix: "fas",
iconName: "atlas",
icon: [
448,
512,
[],
"f558",
"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z",
],
},
Z = {
prefix: "fas",
iconName: "atom",
icon: [
448,
512,
[],
"f5d2",
"M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z",
],
},
q = {
prefix: "fas",
iconName: "audio-description",
icon: [
512,
512,
[],
"f29e",
"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z",
],
},
Q = {
prefix: "fas",
iconName: "award",
icon: [
384,
512,
[],
"f559",
"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z",
],
},
J = {
prefix: "fas",
iconName: "backspace",
icon: [
640,
512,
[],
"f55a",
"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z",
],
},
$ = {
prefix: "fas",
iconName: "backward",
icon: [
512,
512,
[],
"f04a",
"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z",
],
},
ee = {
prefix: "fas",
iconName: "balance-scale",
icon: [
640,
512,
[],
"f24e",
"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z",
],
},
te = {
prefix: "fas",
iconName: "ban",
icon: [
512,
512,
[],
"f05e",
"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z",
],
},
ne = {
prefix: "fas",
iconName: "band-aid",
icon: [
640,
512,
[],
"f462",
"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z",
],
},
ie = {
prefix: "fas",
iconName: "barcode",
icon: [
512,
512,
[],
"f02a",
"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z",
],
},
re = {
prefix: "fas",
iconName: "bars",
icon: [
448,
512,
[],
"f0c9",
"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z",
],
},
oe = {
prefix: "fas",
iconName: "baseball-ball",
icon: [
496,
512,
[],
"f433",
"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z",
],
},
ae = {
prefix: "fas",
iconName: "basketball-ball",
icon: [
496,
512,
[],
"f434",
"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z",
],
},
se = {
prefix: "fas",
iconName: "bath",
icon: [
512,
512,
[],
"f2cd",
"M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z",
],
},
ce = {
prefix: "fas",
iconName: "battery-empty",
icon: [
640,
512,
[],
"f244",
"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z",
],
},
le = {
prefix: "fas",
iconName: "battery-full",
icon: [
640,
512,
[],
"f240",
"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z",
],
},
ue = {
prefix: "fas",
iconName: "battery-half",
icon: [
640,
512,
[],
"f242",
"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z",
],
},
he = {
prefix: "fas",
iconName: "battery-quarter",
icon: [
640,
512,
[],
"f243",
"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z",
],
},
de = {
prefix: "fas",
iconName: "battery-three-quarters",
icon: [
640,
512,
[],
"f241",
"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z",
],
},
pe = {
prefix: "fas",
iconName: "bed",
icon: [
640,
512,
[],
"f236",
"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z",
],
},
fe = {
prefix: "fas",
iconName: "beer",
icon: [
448,
512,
[],
"f0fc",
"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z",
],
},
me = {
prefix: "fas",
iconName: "bell",
icon: [
448,
512,
[],
"f0f3",
"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z",
],
},
ge = {
prefix: "fas",
iconName: "bell-slash",
icon: [
640,
512,
[],
"f1f6",
"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z",
],
},
be = {
prefix: "fas",
iconName: "bezier-curve",
icon: [
640,
512,
[],
"f55b",
"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z",
],
},
_e = {
prefix: "fas",
iconName: "bible",
icon: [
448,
512,
[],
"f647",
"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z",
],
},
ve = {
prefix: "fas",
iconName: "bicycle",
icon: [
640,
512,
[],
"f206",
"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z",
],
},
ye = {
prefix: "fas",
iconName: "binoculars",
icon: [
512,
512,
[],
"f1e5",
"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z",
],
},
Ce = {
prefix: "fas",
iconName: "birthday-cake",
icon: [
448,
512,
[],
"f1fd",
"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z",
],
},
Pe = {
prefix: "fas",
iconName: "blender",
icon: [
512,
512,
[],
"f517",
"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z",
],
},
xe = {
prefix: "fas",
iconName: "blender-phone",
icon: [
576,
512,
[],
"f6b6",
"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Te = {
prefix: "fas",
iconName: "blind",
icon: [
384,
512,
[],
"f29d",
"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z",
],
},
Se = {
prefix: "fas",
iconName: "bold",
icon: [
384,
512,
[],
"f032",
"M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z",
],
},
Oe = {
prefix: "fas",
iconName: "bolt",
icon: [
320,
512,
[],
"f0e7",
"M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z",
],
},
Ee = {
prefix: "fas",
iconName: "bomb",
icon: [
512,
512,
[],
"f1e2",
"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z",
],
},
Me = {
prefix: "fas",
iconName: "bone",
icon: [
640,
512,
[],
"f5d7",
"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z",
],
},
Ae = {
prefix: "fas",
iconName: "bong",
icon: [
448,
512,
[],
"f55c",
"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z",
],
},
Ie = {
prefix: "fas",
iconName: "book",
icon: [
448,
512,
[],
"f02d",
"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z",
],
},
De = {
prefix: "fas",
iconName: "book-dead",
icon: [
448,
512,
[],
"f6b7",
"M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z",
],
},
Re = {
prefix: "fas",
iconName: "book-open",
icon: [
576,
512,
[],
"f518",
"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z",
],
},
we = {
prefix: "fas",
iconName: "book-reader",
icon: [
512,
512,
[],
"f5da",
"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z",
],
},
Le = { prefix: "fas", iconName: "bookmark", icon: [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"] },
Fe = {
prefix: "fas",
iconName: "bowling-ball",
icon: [
496,
512,
[],
"f436",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
Ne = {
prefix: "fas",
iconName: "box",
icon: [
512,
512,
[],
"f466",
"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z",
],
},
ke = {
prefix: "fas",
iconName: "box-open",
icon: [
640,
512,
[],
"f49e",
"M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z",
],
},
ze = {
prefix: "fas",
iconName: "boxes",
icon: [
576,
512,
[],
"f468",
"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z",
],
},
je = {
prefix: "fas",
iconName: "braille",
icon: [
640,
512,
[],
"f2a1",
"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z",
],
},
Be = {
prefix: "fas",
iconName: "brain",
icon: [
576,
512,
[],
"f5dc",
"M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z",
],
},
Ve = {
prefix: "fas",
iconName: "briefcase",
icon: [
512,
512,
[],
"f0b1",
"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z",
],
},
Ge = {
prefix: "fas",
iconName: "briefcase-medical",
icon: [
512,
512,
[],
"f469",
"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z",
],
},
Ue = {
prefix: "fas",
iconName: "broadcast-tower",
icon: [
640,
512,
[],
"f519",
"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z",
],
},
He = {
prefix: "fas",
iconName: "broom",
icon: [
640,
512,
[],
"f51a",
"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z",
],
},
We = {
prefix: "fas",
iconName: "brush",
icon: [
384,
512,
[],
"f55d",
"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z",
],
},
Xe = {
prefix: "fas",
iconName: "bug",
icon: [
512,
512,
[],
"f188",
"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z",
],
},
Ye = {
prefix: "fas",
iconName: "building",
icon: [
448,
512,
[],
"f1ad",
"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z",
],
},
Ke = {
prefix: "fas",
iconName: "bullhorn",
icon: [
576,
512,
[],
"f0a1",
"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z",
],
},
Ze = {
prefix: "fas",
iconName: "bullseye",
icon: [
496,
512,
[],
"f140",
"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z",
],
},
qe = {
prefix: "fas",
iconName: "burn",
icon: [
384,
512,
[],
"f46a",
"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z",
],
},
Qe = {
prefix: "fas",
iconName: "bus",
icon: [
512,
512,
[],
"f207",
"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Je = {
prefix: "fas",
iconName: "bus-alt",
icon: [
512,
512,
[],
"f55e",
"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
$e = {
prefix: "fas",
iconName: "business-time",
icon: [
640,
512,
[],
"f64a",
"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z",
],
},
et = {
prefix: "fas",
iconName: "calculator",
icon: [
448,
512,
[],
"f1ec",
"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z",
],
},
tt = {
prefix: "fas",
iconName: "calendar",
icon: [
448,
512,
[],
"f133",
"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z",
],
},
nt = {
prefix: "fas",
iconName: "calendar-alt",
icon: [
448,
512,
[],
"f073",
"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z",
],
},
it = {
prefix: "fas",
iconName: "calendar-check",
icon: [
448,
512,
[],
"f274",
"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z",
],
},
rt = {
prefix: "fas",
iconName: "calendar-minus",
icon: [
448,
512,
[],
"f272",
"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z",
],
},
ot = {
prefix: "fas",
iconName: "calendar-plus",
icon: [
448,
512,
[],
"f271",
"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z",
],
},
at = {
prefix: "fas",
iconName: "calendar-times",
icon: [
448,
512,
[],
"f273",
"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z",
],
},
st = {
prefix: "fas",
iconName: "camera",
icon: [
512,
512,
[],
"f030",
"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z",
],
},
ct = {
prefix: "fas",
iconName: "camera-retro",
icon: [
512,
512,
[],
"f083",
"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z",
],
},
lt = {
prefix: "fas",
iconName: "campground",
icon: [
640,
512,
[],
"f6bb",
"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z",
],
},
ut = {
prefix: "fas",
iconName: "cannabis",
icon: [
512,
512,
[],
"f55f",
"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z",
],
},
ht = {
prefix: "fas",
iconName: "capsules",
icon: [
576,
512,
[],
"f46b",
"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z",
],
},
dt = {
prefix: "fas",
iconName: "car",
icon: [
512,
512,
[],
"f1b9",
"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z",
],
},
pt = {
prefix: "fas",
iconName: "car-alt",
icon: [
480,
512,
[],
"f5de",
"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z",
],
},
ft = {
prefix: "fas",
iconName: "car-battery",
icon: [
512,
512,
[],
"f5df",
"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z",
],
},
mt = {
prefix: "fas",
iconName: "car-crash",
icon: [
640,
512,
[],
"f5e1",
"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z",
],
},
gt = {
prefix: "fas",
iconName: "car-side",
icon: [
640,
512,
[],
"f5e4",
"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z",
],
},
bt = { prefix: "fas", iconName: "caret-down", icon: [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"] },
_t = {
prefix: "fas",
iconName: "caret-left",
icon: [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"],
},
vt = {
prefix: "fas",
iconName: "caret-right",
icon: [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"],
},
yt = {
prefix: "fas",
iconName: "caret-square-down",
icon: [
448,
512,
[],
"f150",
"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z",
],
},
Ct = {
prefix: "fas",
iconName: "caret-square-left",
icon: [
448,
512,
[],
"f191",
"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z",
],
},
Pt = {
prefix: "fas",
iconName: "caret-square-right",
icon: [
448,
512,
[],
"f152",
"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z",
],
},
xt = {
prefix: "fas",
iconName: "caret-square-up",
icon: [
448,
512,
[],
"f151",
"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z",
],
},
Tt = {
prefix: "fas",
iconName: "caret-up",
icon: [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"],
},
St = {
prefix: "fas",
iconName: "cart-arrow-down",
icon: [
576,
512,
[],
"f218",
"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z",
],
},
Ot = {
prefix: "fas",
iconName: "cart-plus",
icon: [
576,
512,
[],
"f217",
"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z",
],
},
Et = {
prefix: "fas",
iconName: "cat",
icon: [
512,
512,
[],
"f6be",
"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z",
],
},
Mt = {
prefix: "fas",
iconName: "certificate",
icon: [
512,
512,
[],
"f0a3",
"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z",
],
},
At = {
prefix: "fas",
iconName: "chair",
icon: [
448,
512,
[],
"f6c0",
"M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z",
],
},
It = {
prefix: "fas",
iconName: "chalkboard",
icon: [
640,
512,
[],
"f51b",
"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z",
],
},
Dt = {
prefix: "fas",
iconName: "chalkboard-teacher",
icon: [
640,
512,
[],
"f51c",
"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z",
],
},
Rt = {
prefix: "fas",
iconName: "charging-station",
icon: [
576,
512,
[],
"f5e7",
"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z",
],
},
wt = {
prefix: "fas",
iconName: "chart-area",
icon: [
512,
512,
[],
"f1fe",
"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z",
],
},
Lt = {
prefix: "fas",
iconName: "chart-bar",
icon: [
512,
512,
[],
"f080",
"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z",
],
},
Ft = {
prefix: "fas",
iconName: "chart-line",
icon: [
512,
512,
[],
"f201",
"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z",
],
},
Nt = {
prefix: "fas",
iconName: "chart-pie",
icon: [
544,
512,
[],
"f200",
"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z",
],
},
kt = {
prefix: "fas",
iconName: "check",
icon: [
512,
512,
[],
"f00c",
"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z",
],
},
zt = {
prefix: "fas",
iconName: "check-circle",
icon: [
512,
512,
[],
"f058",
"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z",
],
},
jt = {
prefix: "fas",
iconName: "check-double",
icon: [
512,
512,
[],
"f560",
"M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z",
],
},
Bt = {
prefix: "fas",
iconName: "check-square",
icon: [
448,
512,
[],
"f14a",
"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z",
],
},
Vt = {
prefix: "fas",
iconName: "chess",
icon: [
512,
512,
[],
"f439",
"M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z",
],
},
Gt = {
prefix: "fas",
iconName: "chess-bishop",
icon: [
320,
512,
[],
"f43a",
"M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z",
],
},
Ut = {
prefix: "fas",
iconName: "chess-board",
icon: [
512,
512,
[],
"f43c",
"M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z",
],
},
Ht = {
prefix: "fas",
iconName: "chess-king",
icon: [
448,
512,
[],
"f43f",
"M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z",
],
},
Wt = {
prefix: "fas",
iconName: "chess-knight",
icon: [
384,
512,
[],
"f441",
"M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z",
],
},
Xt = {
prefix: "fas",
iconName: "chess-pawn",
icon: [
320,
512,
[],
"f443",
"M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z",
],
},
Yt = {
prefix: "fas",
iconName: "chess-queen",
icon: [
512,
512,
[],
"f445",
"M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z",
],
},
Kt = {
prefix: "fas",
iconName: "chess-rook",
icon: [
384,
512,
[],
"f447",
"M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z",
],
},
Zt = {
prefix: "fas",
iconName: "chevron-circle-down",
icon: [
512,
512,
[],
"f13a",
"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z",
],
},
qt = {
prefix: "fas",
iconName: "chevron-circle-left",
icon: [
512,
512,
[],
"f137",
"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z",
],
},
Qt = {
prefix: "fas",
iconName: "chevron-circle-right",
icon: [
512,
512,
[],
"f138",
"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z",
],
},
Jt = {
prefix: "fas",
iconName: "chevron-circle-up",
icon: [
512,
512,
[],
"f139",
"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z",
],
},
$t = {
prefix: "fas",
iconName: "chevron-down",
icon: [
448,
512,
[],
"f078",
"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z",
],
},
en = {
prefix: "fas",
iconName: "chevron-left",
icon: [
320,
512,
[],
"f053",
"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z",
],
},
tn = {
prefix: "fas",
iconName: "chevron-right",
icon: [
320,
512,
[],
"f054",
"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z",
],
},
nn = {
prefix: "fas",
iconName: "chevron-up",
icon: [
448,
512,
[],
"f077",
"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z",
],
},
rn = {
prefix: "fas",
iconName: "child",
icon: [
384,
512,
[],
"f1ae",
"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z",
],
},
on = {
prefix: "fas",
iconName: "church",
icon: [
640,
512,
[],
"f51d",
"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z",
],
},
an = { prefix: "fas", iconName: "circle", icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"] },
sn = {
prefix: "fas",
iconName: "circle-notch",
icon: [
512,
512,
[],
"f1ce",
"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z",
],
},
cn = {
prefix: "fas",
iconName: "city",
icon: [
640,
512,
[],
"f64f",
"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z",
],
},
ln = {
prefix: "fas",
iconName: "clipboard",
icon: [
384,
512,
[],
"f328",
"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z",
],
},
un = {
prefix: "fas",
iconName: "clipboard-check",
icon: [
384,
512,
[],
"f46c",
"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z",
],
},
hn = {
prefix: "fas",
iconName: "clipboard-list",
icon: [
384,
512,
[],
"f46d",
"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z",
],
},
dn = {
prefix: "fas",
iconName: "clock",
icon: [
512,
512,
[],
"f017",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z",
],
},
pn = {
prefix: "fas",
iconName: "clone",
icon: [
512,
512,
[],
"f24d",
"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z",
],
},
fn = {
prefix: "fas",
iconName: "closed-captioning",
icon: [
512,
512,
[],
"f20a",
"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z",
],
},
mn = {
prefix: "fas",
iconName: "cloud",
icon: [
640,
512,
[],
"f0c2",
"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z",
],
},
gn = {
prefix: "fas",
iconName: "cloud-download-alt",
icon: [
640,
512,
[],
"f381",
"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z",
],
},
bn = {
prefix: "fas",
iconName: "cloud-moon",
icon: [
640,
512,
[],
"f6c3",
"M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z",
],
},
_n = {
prefix: "fas",
iconName: "cloud-sun",
icon: [
640,
512,
[],
"f6c4",
"M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z",
],
},
vn = {
prefix: "fas",
iconName: "cloud-upload-alt",
icon: [
640,
512,
[],
"f382",
"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z",
],
},
yn = {
prefix: "fas",
iconName: "cocktail",
icon: [
576,
512,
[],
"f561",
"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z",
],
},
Cn = {
prefix: "fas",
iconName: "code",
icon: [
640,
512,
[],
"f121",
"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z",
],
},
Pn = {
prefix: "fas",
iconName: "code-branch",
icon: [
384,
512,
[],
"f126",
"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z",
],
},
xn = {
prefix: "fas",
iconName: "coffee",
icon: [
640,
512,
[],
"f0f4",
"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z",
],
},
Tn = {
prefix: "fas",
iconName: "cog",
icon: [
512,
512,
[],
"f013",
"M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z",
],
},
Sn = {
prefix: "fas",
iconName: "cogs",
icon: [
640,
512,
[],
"f085",
"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z",
],
},
On = {
prefix: "fas",
iconName: "coins",
icon: [
512,
512,
[],
"f51e",
"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z",
],
},
En = {
prefix: "fas",
iconName: "columns",
icon: [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"],
},
Mn = {
prefix: "fas",
iconName: "comment",
icon: [
512,
512,
[],
"f075",
"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z",
],
},
An = {
prefix: "fas",
iconName: "comment-alt",
icon: [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"],
},
In = {
prefix: "fas",
iconName: "comment-dollar",
icon: [
512,
512,
[],
"f651",
"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z",
],
},
Dn = {
prefix: "fas",
iconName: "comment-dots",
icon: [
512,
512,
[],
"f4ad",
"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
Rn = {
prefix: "fas",
iconName: "comment-slash",
icon: [
640,
512,
[],
"f4b3",
"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z",
],
},
wn = {
prefix: "fas",
iconName: "comments",
icon: [
576,
512,
[],
"f086",
"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z",
],
},
Ln = {
prefix: "fas",
iconName: "comments-dollar",
icon: [
576,
512,
[],
"f653",
"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z",
],
},
Fn = {
prefix: "fas",
iconName: "compact-disc",
icon: [
496,
512,
[],
"f51f",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z",
],
},
Nn = {
prefix: "fas",
iconName: "compass",
icon: [
496,
512,
[],
"f14e",
"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z",
],
},
kn = {
prefix: "fas",
iconName: "compress",
icon: [
448,
512,
[],
"f066",
"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z",
],
},
zn = {
prefix: "fas",
iconName: "concierge-bell",
icon: [
512,
512,
[],
"f562",
"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z",
],
},
jn = {
prefix: "fas",
iconName: "cookie",
icon: [
512,
512,
[],
"f563",
"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Bn = {
prefix: "fas",
iconName: "cookie-bite",
icon: [
512,
512,
[],
"f564",
"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Vn = {
prefix: "fas",
iconName: "copy",
icon: [
448,
512,
[],
"f0c5",
"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z",
],
},
Gn = {
prefix: "fas",
iconName: "copyright",
icon: [
512,
512,
[],
"f1f9",
"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z",
],
},
Un = {
prefix: "fas",
iconName: "couch",
icon: [
640,
512,
[],
"f4b8",
"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z",
],
},
Hn = {
prefix: "fas",
iconName: "credit-card",
icon: [
576,
512,
[],
"f09d",
"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z",
],
},
Wn = {
prefix: "fas",
iconName: "crop",
icon: [
512,
512,
[],
"f125",
"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z",
],
},
Xn = {
prefix: "fas",
iconName: "crop-alt",
icon: [
512,
512,
[],
"f565",
"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z",
],
},
Yn = {
prefix: "fas",
iconName: "cross",
icon: [
384,
512,
[],
"f654",
"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z",
],
},
Kn = {
prefix: "fas",
iconName: "crosshairs",
icon: [
512,
512,
[],
"f05b",
"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z",
],
},
Zn = {
prefix: "fas",
iconName: "crow",
icon: [
640,
512,
[],
"f520",
"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z",
],
},
qn = {
prefix: "fas",
iconName: "crown",
icon: [
640,
512,
[],
"f521",
"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z",
],
},
Qn = {
prefix: "fas",
iconName: "cube",
icon: [
512,
512,
[],
"f1b2",
"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z",
],
},
Jn = {
prefix: "fas",
iconName: "cubes",
icon: [
512,
512,
[],
"f1b3",
"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z",
],
},
$n = {
prefix: "fas",
iconName: "cut",
icon: [
448,
512,
[],
"f0c4",
"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z",
],
},
ei = {
prefix: "fas",
iconName: "database",
icon: [
448,
512,
[],
"f1c0",
"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z",
],
},
ti = {
prefix: "fas",
iconName: "deaf",
icon: [
512,
512,
[],
"f2a4",
"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z",
],
},
ni = {
prefix: "fas",
iconName: "desktop",
icon: [
576,
512,
[],
"f108",
"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z",
],
},
ii = {
prefix: "fas",
iconName: "dharmachakra",
icon: [
512,
512,
[],
"f655",
"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z",
],
},
ri = {
prefix: "fas",
iconName: "diagnoses",
icon: [
640,
512,
[],
"f470",
"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z",
],
},
oi = {
prefix: "fas",
iconName: "dice",
icon: [
640,
512,
[],
"f522",
"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z",
],
},
ai = {
prefix: "fas",
iconName: "dice-d20",
icon: [
480,
512,
[],
"f6cf",
"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z",
],
},
si = {
prefix: "fas",
iconName: "dice-d6",
icon: [
448,
512,
[],
"f6d1",
"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z",
],
},
ci = {
prefix: "fas",
iconName: "dice-five",
icon: [
448,
512,
[],
"f523",
"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
li = {
prefix: "fas",
iconName: "dice-four",
icon: [
448,
512,
[],
"f524",
"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
ui = {
prefix: "fas",
iconName: "dice-one",
icon: [
448,
512,
[],
"f525",
"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
hi = {
prefix: "fas",
iconName: "dice-six",
icon: [
448,
512,
[],
"f526",
"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
di = {
prefix: "fas",
iconName: "dice-three",
icon: [
448,
512,
[],
"f527",
"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
pi = {
prefix: "fas",
iconName: "dice-two",
icon: [
448,
512,
[],
"f528",
"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
fi = {
prefix: "fas",
iconName: "digital-tachograph",
icon: [
640,
512,
[],
"f566",
"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z",
],
},
mi = {
prefix: "fas",
iconName: "directions",
icon: [
512,
512,
[],
"f5eb",
"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z",
],
},
gi = {
prefix: "fas",
iconName: "divide",
icon: [
448,
512,
[],
"f529",
"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",
],
},
bi = {
prefix: "fas",
iconName: "dizzy",
icon: [
496,
512,
[],
"f567",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z",
],
},
_i = {
prefix: "fas",
iconName: "dna",
icon: [
448,
512,
[],
"f471",
"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z",
],
},
vi = {
prefix: "fas",
iconName: "dog",
icon: [
512,
512,
[],
"f6d3",
"M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z",
],
},
yi = {
prefix: "fas",
iconName: "dollar-sign",
icon: [
288,
512,
[],
"f155",
"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z",
],
},
Ci = {
prefix: "fas",
iconName: "dolly",
icon: [
576,
512,
[],
"f472",
"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z",
],
},
Pi = {
prefix: "fas",
iconName: "dolly-flatbed",
icon: [
640,
512,
[],
"f474",
"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z",
],
},
xi = {
prefix: "fas",
iconName: "donate",
icon: [
512,
512,
[],
"f4b9",
"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z",
],
},
Ti = {
prefix: "fas",
iconName: "door-closed",
icon: [
640,
512,
[],
"f52a",
"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z",
],
},
Si = {
prefix: "fas",
iconName: "door-open",
icon: [
640,
512,
[],
"f52b",
"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z",
],
},
Oi = {
prefix: "fas",
iconName: "dot-circle",
icon: [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"],
},
Ei = {
prefix: "fas",
iconName: "dove",
icon: [
512,
512,
[],
"f4ba",
"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z",
],
},
Mi = {
prefix: "fas",
iconName: "download",
icon: [
512,
512,
[],
"f019",
"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z",
],
},
Ai = {
prefix: "fas",
iconName: "drafting-compass",
icon: [
512,
512,
[],
"f568",
"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z",
],
},
Ii = {
prefix: "fas",
iconName: "dragon",
icon: [
640,
512,
[],
"f6d5",
"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z",
],
},
Di = {
prefix: "fas",
iconName: "draw-polygon",
icon: [
448,
512,
[],
"f5ee",
"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z",
],
},
Ri = {
prefix: "fas",
iconName: "drum",
icon: [
576,
512,
[],
"f569",
"M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z",
],
},
wi = {
prefix: "fas",
iconName: "drum-steelpan",
icon: [
576,
512,
[],
"f56a",
"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z",
],
},
Li = {
prefix: "fas",
iconName: "drumstick-bite",
icon: [
512,
512,
[],
"f6d7",
"M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z",
],
},
Fi = {
prefix: "fas",
iconName: "dumbbell",
icon: [
640,
512,
[],
"f44b",
"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z",
],
},
Ni = {
prefix: "fas",
iconName: "dungeon",
icon: [
512,
512,
[],
"f6d9",
"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z",
],
},
ki = {
prefix: "fas",
iconName: "edit",
icon: [
576,
512,
[],
"f044",
"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z",
],
},
zi = {
prefix: "fas",
iconName: "eject",
icon: [
448,
512,
[],
"f052",
"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z",
],
},
ji = {
prefix: "fas",
iconName: "ellipsis-h",
icon: [
512,
512,
[],
"f141",
"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z",
],
},
Bi = {
prefix: "fas",
iconName: "ellipsis-v",
icon: [
192,
512,
[],
"f142",
"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z",
],
},
Vi = {
prefix: "fas",
iconName: "envelope",
icon: [
512,
512,
[],
"f0e0",
"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z",
],
},
Gi = {
prefix: "fas",
iconName: "envelope-open",
icon: [
512,
512,
[],
"f2b6",
"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z",
],
},
Ui = {
prefix: "fas",
iconName: "envelope-open-text",
icon: [
512,
512,
[],
"f658",
"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z",
],
},
Hi = {
prefix: "fas",
iconName: "envelope-square",
icon: [
448,
512,
[],
"f199",
"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z",
],
},
Wi = {
prefix: "fas",
iconName: "equals",
icon: [
448,
512,
[],
"f52c",
"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",
],
},
Xi = {
prefix: "fas",
iconName: "eraser",
icon: [
512,
512,
[],
"f12d",
"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z",
],
},
Yi = {
prefix: "fas",
iconName: "euro-sign",
icon: [
320,
512,
[],
"f153",
"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z",
],
},
Ki = {
prefix: "fas",
iconName: "exchange-alt",
icon: [
512,
512,
[],
"f362",
"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z",
],
},
Zi = {
prefix: "fas",
iconName: "exclamation",
icon: [
192,
512,
[],
"f12a",
"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z",
],
},
qi = {
prefix: "fas",
iconName: "exclamation-circle",
icon: [
512,
512,
[],
"f06a",
"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z",
],
},
Qi = {
prefix: "fas",
iconName: "exclamation-triangle",
icon: [
576,
512,
[],
"f071",
"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z",
],
},
Ji = {
prefix: "fas",
iconName: "expand",
icon: [
448,
512,
[],
"f065",
"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z",
],
},
$i = {
prefix: "fas",
iconName: "expand-arrows-alt",
icon: [
448,
512,
[],
"f31e",
"M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z",
],
},
er = {
prefix: "fas",
iconName: "external-link-alt",
icon: [
576,
512,
[],
"f35d",
"M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z",
],
},
tr = {
prefix: "fas",
iconName: "external-link-square-alt",
icon: [
448,
512,
[],
"f360",
"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z",
],
},
nr = {
prefix: "fas",
iconName: "eye",
icon: [
576,
512,
[],
"f06e",
"M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z",
],
},
ir = {
prefix: "fas",
iconName: "eye-dropper",
icon: [
512,
512,
[],
"f1fb",
"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z",
],
},
rr = {
prefix: "fas",
iconName: "eye-slash",
icon: [
576,
512,
[],
"f070",
"M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z",
],
},
or = {
prefix: "fas",
iconName: "fast-backward",
icon: [
512,
512,
[],
"f049",
"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z",
],
},
ar = {
prefix: "fas",
iconName: "fast-forward",
icon: [
512,
512,
[],
"f050",
"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z",
],
},
sr = {
prefix: "fas",
iconName: "fax",
icon: [
512,
512,
[],
"f1ac",
"M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z",
],
},
cr = {
prefix: "fas",
iconName: "feather",
icon: [
512,
512,
[],
"f52d",
"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z",
],
},
lr = {
prefix: "fas",
iconName: "feather-alt",
icon: [
512,
512,
[],
"f56b",
"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z",
],
},
ur = {
prefix: "fas",
iconName: "female",
icon: [
256,
512,
[],
"f182",
"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z",
],
},
hr = {
prefix: "fas",
iconName: "fighter-jet",
icon: [
640,
512,
[],
"f0fb",
"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z",
],
},
dr = {
prefix: "fas",
iconName: "file",
icon: [
384,
512,
[],
"f15b",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
pr = {
prefix: "fas",
iconName: "file-alt",
icon: [
384,
512,
[],
"f15c",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
fr = {
prefix: "fas",
iconName: "file-archive",
icon: [
384,
512,
[],
"f1c6",
"M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
mr = {
prefix: "fas",
iconName: "file-audio",
icon: [
384,
512,
[],
"f1c7",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
gr = {
prefix: "fas",
iconName: "file-code",
icon: [
384,
512,
[],
"f1c9",
"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z",
],
},
br = {
prefix: "fas",
iconName: "file-contract",
icon: [
384,
512,
[],
"f56c",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z",
],
},
_r = {
prefix: "fas",
iconName: "file-csv",
icon: [
384,
512,
[],
"f6dd",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z",
],
},
vr = {
prefix: "fas",
iconName: "file-download",
icon: [
384,
512,
[],
"f56d",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z",
],
},
yr = {
prefix: "fas",
iconName: "file-excel",
icon: [
384,
512,
[],
"f1c3",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
Cr = {
prefix: "fas",
iconName: "file-export",
icon: [
576,
512,
[],
"f56e",
"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z",
],
},
Pr = {
prefix: "fas",
iconName: "file-image",
icon: [
384,
512,
[],
"f1c5",
"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z",
],
},
xr = {
prefix: "fas",
iconName: "file-import",
icon: [
512,
512,
[],
"f56f",
"M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z",
],
},
Tr = {
prefix: "fas",
iconName: "file-invoice",
icon: [
384,
512,
[],
"f570",
"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z",
],
},
Sr = {
prefix: "fas",
iconName: "file-invoice-dollar",
icon: [
384,
512,
[],
"f571",
"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z",
],
},
Or = {
prefix: "fas",
iconName: "file-medical",
icon: [
384,
512,
[],
"f477",
"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z",
],
},
Er = {
prefix: "fas",
iconName: "file-medical-alt",
icon: [
448,
512,
[],
"f478",
"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z",
],
},
Mr = {
prefix: "fas",
iconName: "file-pdf",
icon: [
384,
512,
[],
"f1c1",
"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z",
],
},
Ar = {
prefix: "fas",
iconName: "file-powerpoint",
icon: [
384,
512,
[],
"f1c4",
"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z",
],
},
Ir = {
prefix: "fas",
iconName: "file-prescription",
icon: [
384,
512,
[],
"f572",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
Dr = {
prefix: "fas",
iconName: "file-signature",
icon: [
576,
512,
[],
"f573",
"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z",
],
},
Rr = {
prefix: "fas",
iconName: "file-upload",
icon: [
384,
512,
[],
"f574",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z",
],
},
wr = {
prefix: "fas",
iconName: "file-video",
icon: [
384,
512,
[],
"f1c8",
"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z",
],
},
Lr = {
prefix: "fas",
iconName: "file-word",
icon: [
384,
512,
[],
"f1c2",
"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z",
],
},
Fr = {
prefix: "fas",
iconName: "fill",
icon: [
512,
512,
[],
"f575",
"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z",
],
},
Nr = {
prefix: "fas",
iconName: "fill-drip",
icon: [
576,
512,
[],
"f576",
"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z",
],
},
kr = {
prefix: "fas",
iconName: "film",
icon: [
512,
512,
[],
"f008",
"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z",
],
},
zr = {
prefix: "fas",
iconName: "filter",
icon: [
512,
512,
[],
"f0b0",
"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z",
],
},
jr = {
prefix: "fas",
iconName: "fingerprint",
icon: [
512,
512,
[],
"f577",
"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z",
],
},
Br = {
prefix: "fas",
iconName: "fire",
icon: [
384,
512,
[],
"f06d",
"M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z",
],
},
Vr = {
prefix: "fas",
iconName: "fire-extinguisher",
icon: [
448,
512,
[],
"f134",
"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z",
],
},
Gr = {
prefix: "fas",
iconName: "first-aid",
icon: [
576,
512,
[],
"f479",
"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z",
],
},
Ur = {
prefix: "fas",
iconName: "fish",
icon: [
576,
512,
[],
"f578",
"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z",
],
},
Hr = {
prefix: "fas",
iconName: "fist-raised",
icon: [
384,
512,
[],
"f6de",
"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z",
],
},
Wr = {
prefix: "fas",
iconName: "flag",
icon: [
512,
512,
[],
"f024",
"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z",
],
},
Xr = {
prefix: "fas",
iconName: "flag-checkered",
icon: [
512,
512,
[],
"f11e",
"M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z",
],
},
Yr = {
prefix: "fas",
iconName: "flask",
icon: [
448,
512,
[],
"f0c3",
"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z",
],
},
Kr = {
prefix: "fas",
iconName: "flushed",
icon: [
496,
512,
[],
"f579",
"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z",
],
},
Zr = { prefix: "fas", iconName: "folder", icon: [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"] },
qr = {
prefix: "fas",
iconName: "folder-minus",
icon: [
512,
512,
[],
"f65d",
"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z",
],
},
Qr = {
prefix: "fas",
iconName: "folder-open",
icon: [
576,
512,
[],
"f07c",
"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z",
],
},
Jr = {
prefix: "fas",
iconName: "folder-plus",
icon: [
512,
512,
[],
"f65e",
"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z",
],
},
$r = {
prefix: "fas",
iconName: "font",
icon: [
448,
512,
[],
"f031",
"M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z",
],
},
eo = {
prefix: "fas",
iconName: "font-awesome-logo-full",
icon: [
3992,
512,
["Font Awesome"],
"f4e6",
"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z",
],
},
to = {
prefix: "fas",
iconName: "football-ball",
icon: [
496,
512,
[],
"f44e",
"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z",
],
},
no = {
prefix: "fas",
iconName: "forward",
icon: [
512,
512,
[],
"f04e",
"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z",
],
},
io = {
prefix: "fas",
iconName: "frog",
icon: [
576,
512,
[],
"f52e",
"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z",
],
},
ro = {
prefix: "fas",
iconName: "frown",
icon: [
496,
512,
[],
"f119",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z",
],
},
oo = {
prefix: "fas",
iconName: "frown-open",
icon: [
496,
512,
[],
"f57a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
ao = {
prefix: "fas",
iconName: "funnel-dollar",
icon: [
640,
512,
[],
"f662",
"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z",
],
},
so = {
prefix: "fas",
iconName: "futbol",
icon: [
512,
512,
[],
"f1e3",
"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z",
],
},
co = {
prefix: "fas",
iconName: "gamepad",
icon: [
640,
512,
[],
"f11b",
"M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z",
],
},
lo = {
prefix: "fas",
iconName: "gas-pump",
icon: [
512,
512,
[],
"f52f",
"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z",
],
},
uo = {
prefix: "fas",
iconName: "gavel",
icon: [
512,
512,
[],
"f0e3",
"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z",
],
},
ho = {
prefix: "fas",
iconName: "gem",
icon: [
576,
512,
[],
"f3a5",
"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z",
],
},
po = {
prefix: "fas",
iconName: "genderless",
icon: [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"],
},
fo = {
prefix: "fas",
iconName: "ghost",
icon: [
384,
512,
[],
"f6e2",
"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
mo = {
prefix: "fas",
iconName: "gift",
icon: [
512,
512,
[],
"f06b",
"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z",
],
},
go = {
prefix: "fas",
iconName: "glass-martini",
icon: [
512,
512,
[],
"f000",
"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z",
],
},
bo = {
prefix: "fas",
iconName: "glass-martini-alt",
icon: [
512,
512,
[],
"f57b",
"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z",
],
},
_o = {
prefix: "fas",
iconName: "glasses",
icon: [
576,
512,
[],
"f530",
"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z",
],
},
vo = {
prefix: "fas",
iconName: "globe",
icon: [
496,
512,
[],
"f0ac",
"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z",
],
},
yo = {
prefix: "fas",
iconName: "globe-africa",
icon: [
496,
512,
[],
"f57c",
"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z",
],
},
Co = {
prefix: "fas",
iconName: "globe-americas",
icon: [
496,
512,
[],
"f57d",
"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z",
],
},
Po = {
prefix: "fas",
iconName: "globe-asia",
icon: [
496,
512,
[],
"f57e",
"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z",
],
},
xo = {
prefix: "fas",
iconName: "golf-ball",
icon: [
416,
512,
[],
"f450",
"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z",
],
},
To = {
prefix: "fas",
iconName: "gopuram",
icon: [
512,
512,
[],
"f664",
"M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z",
],
},
So = {
prefix: "fas",
iconName: "graduation-cap",
icon: [
640,
512,
[],
"f19d",
"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z",
],
},
Oo = {
prefix: "fas",
iconName: "greater-than",
icon: [
384,
512,
[],
"f531",
"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z",
],
},
Eo = {
prefix: "fas",
iconName: "greater-than-equal",
icon: [
448,
512,
[],
"f532",
"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z",
],
},
Mo = {
prefix: "fas",
iconName: "grimace",
icon: [
496,
512,
[],
"f57f",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z",
],
},
Ao = {
prefix: "fas",
iconName: "grin",
icon: [
496,
512,
[],
"f580",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z",
],
},
Io = {
prefix: "fas",
iconName: "grin-alt",
icon: [
496,
512,
[],
"f581",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z",
],
},
Do = {
prefix: "fas",
iconName: "grin-beam",
icon: [
496,
512,
[],
"f582",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z",
],
},
Ro = {
prefix: "fas",
iconName: "grin-beam-sweat",
icon: [
504,
512,
[],
"f583",
"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z",
],
},
wo = {
prefix: "fas",
iconName: "grin-hearts",
icon: [
496,
512,
[],
"f584",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z",
],
},
Lo = {
prefix: "fas",
iconName: "grin-squint",
icon: [
496,
512,
[],
"f585",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z",
],
},
Fo = {
prefix: "fas",
iconName: "grin-squint-tears",
icon: [
512,
512,
[],
"f586",
"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z",
],
},
No = {
prefix: "fas",
iconName: "grin-stars",
icon: [
496,
512,
[],
"f587",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z",
],
},
ko = {
prefix: "fas",
iconName: "grin-tears",
icon: [
640,
512,
[],
"f588",
"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z",
],
},
zo = {
prefix: "fas",
iconName: "grin-tongue",
icon: [
496,
512,
[],
"f589",
"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z",
],
},
jo = {
prefix: "fas",
iconName: "grin-tongue-squint",
icon: [
496,
512,
[],
"f58a",
"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z",
],
},
Bo = {
prefix: "fas",
iconName: "grin-tongue-wink",
icon: [
496,
512,
[],
"f58b",
"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z",
],
},
Vo = {
prefix: "fas",
iconName: "grin-wink",
icon: [
496,
512,
[],
"f58c",
"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z",
],
},
Go = {
prefix: "fas",
iconName: "grip-horizontal",
icon: [
448,
512,
[],
"f58d",
"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z",
],
},
Uo = {
prefix: "fas",
iconName: "grip-vertical",
icon: [
320,
512,
[],
"f58e",
"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z",
],
},
Ho = {
prefix: "fas",
iconName: "h-square",
icon: [
448,
512,
[],
"f0fd",
"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z",
],
},
Wo = {
prefix: "fas",
iconName: "hammer",
icon: [
576,
512,
[],
"f6e3",
"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z",
],
},
Xo = {
prefix: "fas",
iconName: "hamsa",
icon: [
512,
512,
[],
"f665",
"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z",
],
},
Yo = {
prefix: "fas",
iconName: "hand-holding",
icon: [
576,
512,
[],
"f4bd",
"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z",
],
},
Ko = {
prefix: "fas",
iconName: "hand-holding-heart",
icon: [
576,
512,
[],
"f4be",
"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z",
],
},
Zo = {
prefix: "fas",
iconName: "hand-holding-usd",
icon: [
544,
512,
[],
"f4c0",
"M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z",
],
},
qo = {
prefix: "fas",
iconName: "hand-lizard",
icon: [
576,
512,
[],
"f258",
"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z",
],
},
Qo = {
prefix: "fas",
iconName: "hand-paper",
icon: [
448,
512,
[],
"f256",
"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z",
],
},
Jo = {
prefix: "fas",
iconName: "hand-peace",
icon: [
448,
512,
[],
"f25b",
"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z",
],
},
$o = {
prefix: "fas",
iconName: "hand-point-down",
icon: [
384,
512,
[],
"f0a7",
"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z",
],
},
ea = {
prefix: "fas",
iconName: "hand-point-left",
icon: [
512,
512,
[],
"f0a5",
"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z",
],
},
ta = {
prefix: "fas",
iconName: "hand-point-right",
icon: [
512,
512,
[],
"f0a4",
"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z",
],
},
na = {
prefix: "fas",
iconName: "hand-point-up",
icon: [
384,
512,
[],
"f0a6",
"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z",
],
},
ia = {
prefix: "fas",
iconName: "hand-pointer",
icon: [
448,
512,
[],
"f25a",
"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z",
],
},
ra = {
prefix: "fas",
iconName: "hand-rock",
icon: [
512,
512,
[],
"f255",
"M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z",
],
},
oa = {
prefix: "fas",
iconName: "hand-scissors",
icon: [
512,
512,
[],
"f257",
"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z",
],
},
aa = {
prefix: "fas",
iconName: "hand-spock",
icon: [
512,
512,
[],
"f259",
"M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z",
],
},
sa = {
prefix: "fas",
iconName: "hands",
icon: [
640,
512,
[],
"f4c2",
"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z",
],
},
ca = {
prefix: "fas",
iconName: "hands-helping",
icon: [
640,
512,
[],
"f4c4",
"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z",
],
},
la = {
prefix: "fas",
iconName: "handshake",
icon: [
640,
512,
[],
"f2b5",
"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z",
],
},
ua = {
prefix: "fas",
iconName: "hanukiah",
icon: [
640,
512,
[],
"f6e6",
"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z",
],
},
ha = {
prefix: "fas",
iconName: "hashtag",
icon: [
448,
512,
[],
"f292",
"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z",
],
},
da = {
prefix: "fas",
iconName: "hat-wizard",
icon: [
512,
512,
[],
"f6e8",
"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z",
],
},
pa = {
prefix: "fas",
iconName: "haykal",
icon: [
512,
512,
[],
"f666",
"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z",
],
},
fa = {
prefix: "fas",
iconName: "hdd",
icon: [
576,
512,
[],
"f0a0",
"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z",
],
},
ma = {
prefix: "fas",
iconName: "heading",
icon: [
512,
512,
[],
"f1dc",
"M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z",
],
},
ga = {
prefix: "fas",
iconName: "headphones",
icon: [
512,
512,
[],
"f025",
"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z",
],
},
ba = {
prefix: "fas",
iconName: "headphones-alt",
icon: [
512,
512,
[],
"f58f",
"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z",
],
},
_a = {
prefix: "fas",
iconName: "headset",
icon: [
512,
512,
[],
"f590",
"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z",
],
},
va = {
prefix: "fas",
iconName: "heart",
icon: [
512,
512,
[],
"f004",
"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z",
],
},
ya = {
prefix: "fas",
iconName: "heartbeat",
icon: [
512,
512,
[],
"f21e",
"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z",
],
},
Ca = {
prefix: "fas",
iconName: "helicopter",
icon: [
640,
512,
[],
"f533",
"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z",
],
},
Pa = {
prefix: "fas",
iconName: "highlighter",
icon: [
544,
512,
[],
"f591",
"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z",
],
},
xa = {
prefix: "fas",
iconName: "hiking",
icon: [
384,
512,
[],
"f6ec",
"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z",
],
},
Ta = {
prefix: "fas",
iconName: "hippo",
icon: [
640,
512,
[],
"f6ed",
"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z",
],
},
Sa = {
prefix: "fas",
iconName: "history",
icon: [
512,
512,
[],
"f1da",
"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z",
],
},
Oa = {
prefix: "fas",
iconName: "hockey-puck",
icon: [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"],
},
Ea = {
prefix: "fas",
iconName: "home",
icon: [
576,
512,
[],
"f015",
"M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z",
],
},
Ma = {
prefix: "fas",
iconName: "horse",
icon: [
576,
512,
[],
"f6f0",
"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z",
],
},
Aa = {
prefix: "fas",
iconName: "hospital",
icon: [
448,
512,
[],
"f0f8",
"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z",
],
},
Ia = {
prefix: "fas",
iconName: "hospital-alt",
icon: [
576,
512,
[],
"f47d",
"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z",
],
},
Da = {
prefix: "fas",
iconName: "hospital-symbol",
icon: [
512,
512,
[],
"f47e",
"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z",
],
},
Ra = {
prefix: "fas",
iconName: "hot-tub",
icon: [
512,
512,
[],
"f593",
"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z",
],
},
wa = {
prefix: "fas",
iconName: "hotel",
icon: [
576,
512,
[],
"f594",
"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z",
],
},
La = {
prefix: "fas",
iconName: "hourglass",
icon: [
384,
512,
[],
"f254",
"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z",
],
},
Fa = {
prefix: "fas",
iconName: "hourglass-end",
icon: [
384,
512,
[],
"f253",
"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z",
],
},
Na = {
prefix: "fas",
iconName: "hourglass-half",
icon: [
384,
512,
[],
"f252",
"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z",
],
},
ka = {
prefix: "fas",
iconName: "hourglass-start",
icon: [
384,
512,
[],
"f251",
"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z",
],
},
za = {
prefix: "fas",
iconName: "house-damage",
icon: [
576,
512,
[],
"f6f1",
"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z",
],
},
ja = {
prefix: "fas",
iconName: "hryvnia",
icon: [
384,
512,
[],
"f6f2",
"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z",
],
},
Ba = {
prefix: "fas",
iconName: "i-cursor",
icon: [
256,
512,
[],
"f246",
"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z",
],
},
Va = {
prefix: "fas",
iconName: "id-badge",
icon: [
384,
512,
[],
"f2c1",
"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z",
],
},
Ga = {
prefix: "fas",
iconName: "id-card",
icon: [
576,
512,
[],
"f2c2",
"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z",
],
},
Ua = {
prefix: "fas",
iconName: "id-card-alt",
icon: [
576,
512,
[],
"f47f",
"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z",
],
},
Ha = {
prefix: "fas",
iconName: "image",
icon: [
512,
512,
[],
"f03e",
"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z",
],
},
Wa = {
prefix: "fas",
iconName: "images",
icon: [
576,
512,
[],
"f302",
"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z",
],
},
Xa = {
prefix: "fas",
iconName: "inbox",
icon: [
576,
512,
[],
"f01c",
"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z",
],
},
Ya = {
prefix: "fas",
iconName: "indent",
icon: [
448,
512,
[],
"f03c",
"M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z",
],
},
Ka = {
prefix: "fas",
iconName: "industry",
icon: [
512,
512,
[],
"f275",
"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z",
],
},
Za = {
prefix: "fas",
iconName: "infinity",
icon: [
640,
512,
[],
"f534",
"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z",
],
},
qa = {
prefix: "fas",
iconName: "info",
icon: [
192,
512,
[],
"f129",
"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z",
],
},
Qa = {
prefix: "fas",
iconName: "info-circle",
icon: [
512,
512,
[],
"f05a",
"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z",
],
},
Ja = {
prefix: "fas",
iconName: "italic",
icon: [
320,
512,
[],
"f033",
"M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z",
],
},
$a = {
prefix: "fas",
iconName: "jedi",
icon: [
544,
512,
[],
"f669",
"M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z",
],
},
es = {
prefix: "fas",
iconName: "joint",
icon: [
640,
512,
[],
"f595",
"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z",
],
},
ts = {
prefix: "fas",
iconName: "journal-whills",
icon: [
448,
512,
[],
"f66a",
"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z",
],
},
ns = {
prefix: "fas",
iconName: "kaaba",
icon: [
576,
512,
[],
"f66b",
"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z",
],
},
is = {
prefix: "fas",
iconName: "key",
icon: [
512,
512,
[],
"f084",
"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z",
],
},
rs = {
prefix: "fas",
iconName: "keyboard",
icon: [
576,
512,
[],
"f11c",
"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z",
],
},
os = {
prefix: "fas",
iconName: "khanda",
icon: [
512,
512,
[],
"f66d",
"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z",
],
},
as = {
prefix: "fas",
iconName: "kiss",
icon: [
496,
512,
[],
"f596",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
ss = {
prefix: "fas",
iconName: "kiss-beam",
icon: [
496,
512,
[],
"f597",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z",
],
},
cs = {
prefix: "fas",
iconName: "kiss-wink-heart",
icon: [
504,
512,
[],
"f598",
"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z",
],
},
ls = {
prefix: "fas",
iconName: "kiwi-bird",
icon: [
576,
512,
[],
"f535",
"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z",
],
},
us = {
prefix: "fas",
iconName: "landmark",
icon: [
512,
512,
[],
"f66f",
"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z",
],
},
hs = {
prefix: "fas",
iconName: "language",
icon: [
640,
512,
[],
"f1ab",
"M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z",
],
},
ds = {
prefix: "fas",
iconName: "laptop",
icon: [
640,
512,
[],
"f109",
"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z",
],
},
ps = {
prefix: "fas",
iconName: "laptop-code",
icon: [
640,
512,
[],
"f5fc",
"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z",
],
},
fs = {
prefix: "fas",
iconName: "laugh",
icon: [
496,
512,
[],
"f599",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z",
],
},
ms = {
prefix: "fas",
iconName: "laugh-beam",
icon: [
496,
512,
[],
"f59a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z",
],
},
gs = {
prefix: "fas",
iconName: "laugh-squint",
icon: [
496,
512,
[],
"f59b",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z",
],
},
bs = {
prefix: "fas",
iconName: "laugh-wink",
icon: [
496,
512,
[],
"f59c",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z",
],
},
_s = {
prefix: "fas",
iconName: "layer-group",
icon: [
512,
512,
[],
"f5fd",
"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z",
],
},
vs = {
prefix: "fas",
iconName: "leaf",
icon: [
576,
512,
[],
"f06c",
"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z",
],
},
ys = {
prefix: "fas",
iconName: "lemon",
icon: [
512,
512,
[],
"f094",
"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z",
],
},
Cs = {
prefix: "fas",
iconName: "less-than",
icon: [
384,
512,
[],
"f536",
"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z",
],
},
Ps = {
prefix: "fas",
iconName: "less-than-equal",
icon: [
448,
512,
[],
"f537",
"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z",
],
},
xs = {
prefix: "fas",
iconName: "level-down-alt",
icon: [
320,
512,
[],
"f3be",
"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z",
],
},
Ts = {
prefix: "fas",
iconName: "level-up-alt",
icon: [
320,
512,
[],
"f3bf",
"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z",
],
},
Ss = {
prefix: "fas",
iconName: "life-ring",
icon: [
512,
512,
[],
"f1cd",
"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z",
],
},
Os = {
prefix: "fas",
iconName: "lightbulb",
icon: [
352,
512,
[],
"f0eb",
"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z",
],
},
Es = {
prefix: "fas",
iconName: "link",
icon: [
512,
512,
[],
"f0c1",
"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z",
],
},
Ms = {
prefix: "fas",
iconName: "lira-sign",
icon: [
384,
512,
[],
"f195",
"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z",
],
},
As = {
prefix: "fas",
iconName: "list",
icon: [
512,
512,
[],
"f03a",
"M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z",
],
},
Is = {
prefix: "fas",
iconName: "list-alt",
icon: [
512,
512,
[],
"f022",
"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z",
],
},
Ds = {
prefix: "fas",
iconName: "list-ol",
icon: [
512,
512,
[],
"f0cb",
"M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z",
],
},
Rs = {
prefix: "fas",
iconName: "list-ul",
icon: [
512,
512,
[],
"f0ca",
"M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z",
],
},
ws = {
prefix: "fas",
iconName: "location-arrow",
icon: [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"],
},
Ls = {
prefix: "fas",
iconName: "lock",
icon: [
448,
512,
[],
"f023",
"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z",
],
},
Fs = {
prefix: "fas",
iconName: "lock-open",
icon: [
576,
512,
[],
"f3c1",
"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z",
],
},
Ns = {
prefix: "fas",
iconName: "long-arrow-alt-down",
icon: [
256,
512,
[],
"f309",
"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z",
],
},
ks = {
prefix: "fas",
iconName: "long-arrow-alt-left",
icon: [
448,
512,
[],
"f30a",
"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z",
],
},
zs = {
prefix: "fas",
iconName: "long-arrow-alt-right",
icon: [
448,
512,
[],
"f30b",
"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z",
],
},
js = {
prefix: "fas",
iconName: "long-arrow-alt-up",
icon: [
256,
512,
[],
"f30c",
"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z",
],
},
Bs = {
prefix: "fas",
iconName: "low-vision",
icon: [
576,
512,
[],
"f2a8",
"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z",
],
},
Vs = {
prefix: "fas",
iconName: "luggage-cart",
icon: [
640,
512,
[],
"f59d",
"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z",
],
},
Gs = {
prefix: "fas",
iconName: "magic",
icon: [
512,
512,
[],
"f0d0",
"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z",
],
},
Us = {
prefix: "fas",
iconName: "magnet",
icon: [
512,
512,
[],
"f076",
"M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z",
],
},
Hs = {
prefix: "fas",
iconName: "mail-bulk",
icon: [
576,
512,
[],
"f674",
"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z",
],
},
Ws = {
prefix: "fas",
iconName: "male",
icon: [
192,
512,
[],
"f183",
"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z",
],
},
Xs = {
prefix: "fas",
iconName: "map",
icon: [
576,
512,
[],
"f279",
"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z",
],
},
Ys = {
prefix: "fas",
iconName: "map-marked",
icon: [
576,
512,
[],
"f59f",
"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z",
],
},
Ks = {
prefix: "fas",
iconName: "map-marked-alt",
icon: [
576,
512,
[],
"f5a0",
"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z",
],
},
Zs = {
prefix: "fas",
iconName: "map-marker",
icon: [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"],
},
qs = {
prefix: "fas",
iconName: "map-marker-alt",
icon: [
384,
512,
[],
"f3c5",
"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z",
],
},
Qs = {
prefix: "fas",
iconName: "map-pin",
icon: [
288,
512,
[],
"f276",
"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z",
],
},
Js = {
prefix: "fas",
iconName: "map-signs",
icon: [
512,
512,
[],
"f277",
"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z",
],
},
$s = {
prefix: "fas",
iconName: "marker",
icon: [
512,
512,
[],
"f5a1",
"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z",
],
},
ec = {
prefix: "fas",
iconName: "mars",
icon: [
384,
512,
[],
"f222",
"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z",
],
},
tc = {
prefix: "fas",
iconName: "mars-double",
icon: [
512,
512,
[],
"f227",
"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z",
],
},
nc = {
prefix: "fas",
iconName: "mars-stroke",
icon: [
384,
512,
[],
"f229",
"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z",
],
},
ic = {
prefix: "fas",
iconName: "mars-stroke-h",
icon: [
480,
512,
[],
"f22b",
"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z",
],
},
rc = {
prefix: "fas",
iconName: "mars-stroke-v",
icon: [
288,
512,
[],
"f22a",
"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z",
],
},
oc = {
prefix: "fas",
iconName: "mask",
icon: [
640,
512,
[],
"f6fa",
"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z",
],
},
ac = {
prefix: "fas",
iconName: "medal",
icon: [
512,
512,
[],
"f5a2",
"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z",
],
},
sc = {
prefix: "fas",
iconName: "medkit",
icon: [
512,
512,
[],
"f0fa",
"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z",
],
},
cc = {
prefix: "fas",
iconName: "meh",
icon: [
496,
512,
[],
"f11a",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
lc = {
prefix: "fas",
iconName: "meh-blank",
icon: [
496,
512,
[],
"f5a4",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
uc = {
prefix: "fas",
iconName: "meh-rolling-eyes",
icon: [
496,
512,
[],
"f5a5",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z",
],
},
hc = {
prefix: "fas",
iconName: "memory",
icon: [
640,
512,
[],
"f538",
"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z",
],
},
dc = {
prefix: "fas",
iconName: "menorah",
icon: [
640,
512,
[],
"f676",
"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z",
],
},
pc = {
prefix: "fas",
iconName: "mercury",
icon: [
288,
512,
[],
"f223",
"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z",
],
},
fc = {
prefix: "fas",
iconName: "microchip",
icon: [
512,
512,
[],
"f2db",
"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z",
],
},
mc = {
prefix: "fas",
iconName: "microphone",
icon: [
352,
512,
[],
"f130",
"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z",
],
},
gc = {
prefix: "fas",
iconName: "microphone-alt",
icon: [
352,
512,
[],
"f3c9",
"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z",
],
},
bc = {
prefix: "fas",
iconName: "microphone-alt-slash",
icon: [
640,
512,
[],
"f539",
"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z",
],
},
_c = {
prefix: "fas",
iconName: "microphone-slash",
icon: [
640,
512,
[],
"f131",
"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z",
],
},
vc = {
prefix: "fas",
iconName: "microscope",
icon: [
512,
512,
[],
"f610",
"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z",
],
},
yc = { prefix: "fas", iconName: "minus", icon: [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] },
Cc = {
prefix: "fas",
iconName: "minus-circle",
icon: [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"],
},
Pc = {
prefix: "fas",
iconName: "minus-square",
icon: [
448,
512,
[],
"f146",
"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z",
],
},
xc = {
prefix: "fas",
iconName: "mobile",
icon: [
320,
512,
[],
"f10b",
"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
Tc = {
prefix: "fas",
iconName: "mobile-alt",
icon: [
320,
512,
[],
"f3cd",
"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z",
],
},
Sc = {
prefix: "fas",
iconName: "money-bill",
icon: [
640,
512,
[],
"f0d6",
"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z",
],
},
Oc = {
prefix: "fas",
iconName: "money-bill-alt",
icon: [
640,
512,
[],
"f3d1",
"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z",
],
},
Ec = {
prefix: "fas",
iconName: "money-bill-wave",
icon: [
640,
512,
[],
"f53a",
"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z",
],
},
Mc = {
prefix: "fas",
iconName: "money-bill-wave-alt",
icon: [
640,
512,
[],
"f53b",
"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z",
],
},
Ac = {
prefix: "fas",
iconName: "money-check",
icon: [
640,
512,
[],
"f53c",
"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z",
],
},
Ic = {
prefix: "fas",
iconName: "money-check-alt",
icon: [
640,
512,
[],
"f53d",
"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z",
],
},
Dc = {
prefix: "fas",
iconName: "monument",
icon: [
384,
512,
[],
"f5a6",
"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z",
],
},
Rc = {
prefix: "fas",
iconName: "moon",
icon: [
512,
512,
[],
"f186",
"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z",
],
},
wc = {
prefix: "fas",
iconName: "mortar-pestle",
icon: [
512,
512,
[],
"f5a7",
"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z",
],
},
Lc = {
prefix: "fas",
iconName: "mosque",
icon: [
640,
512,
[],
"f678",
"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z",
],
},
Fc = {
prefix: "fas",
iconName: "motorcycle",
icon: [
640,
512,
[],
"f21c",
"M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z",
],
},
Nc = {
prefix: "fas",
iconName: "mountain",
icon: [
640,
512,
[],
"f6fc",
"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z",
],
},
kc = {
prefix: "fas",
iconName: "mouse-pointer",
icon: [
320,
512,
[],
"f245",
"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z",
],
},
zc = {
prefix: "fas",
iconName: "music",
icon: [
512,
512,
[],
"f001",
"M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z",
],
},
jc = {
prefix: "fas",
iconName: "network-wired",
icon: [
640,
512,
[],
"f6ff",
"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z",
],
},
Bc = {
prefix: "fas",
iconName: "neuter",
icon: [
288,
512,
[],
"f22c",
"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z",
],
},
Vc = {
prefix: "fas",
iconName: "newspaper",
icon: [
576,
512,
[],
"f1ea",
"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z",
],
},
Gc = {
prefix: "fas",
iconName: "not-equal",
icon: [
448,
512,
[],
"f53e",
"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z",
],
},
Uc = {
prefix: "fas",
iconName: "notes-medical",
icon: [
384,
512,
[],
"f481",
"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z",
],
},
Hc = {
prefix: "fas",
iconName: "object-group",
icon: [
512,
512,
[],
"f247",
"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z",
],
},
Wc = {
prefix: "fas",
iconName: "object-ungroup",
icon: [
576,
512,
[],
"f248",
"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z",
],
},
Xc = {
prefix: "fas",
iconName: "oil-can",
icon: [
640,
512,
[],
"f613",
"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z",
],
},
Yc = {
prefix: "fas",
iconName: "om",
icon: [
512,
512,
[],
"f679",
"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z",
],
},
Kc = {
prefix: "fas",
iconName: "otter",
icon: [
640,
512,
[],
"f700",
"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z",
],
},
Zc = {
prefix: "fas",
iconName: "outdent",
icon: [
448,
512,
[],
"f03b",
"M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z",
],
},
qc = {
prefix: "fas",
iconName: "paint-brush",
icon: [
512,
512,
[],
"f1fc",
"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z",
],
},
Qc = {
prefix: "fas",
iconName: "paint-roller",
icon: [
512,
512,
[],
"f5aa",
"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z",
],
},
Jc = {
prefix: "fas",
iconName: "palette",
icon: [
512,
512,
[],
"f53f",
"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
$c = {
prefix: "fas",
iconName: "pallet",
icon: [
640,
512,
[],
"f482",
"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z",
],
},
el = {
prefix: "fas",
iconName: "paper-plane",
icon: [
512,
512,
[],
"f1d8",
"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z",
],
},
tl = {
prefix: "fas",
iconName: "paperclip",
icon: [
448,
512,
[],
"f0c6",
"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z",
],
},
nl = {
prefix: "fas",
iconName: "parachute-box",
icon: [
512,
512,
[],
"f4cd",
"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z",
],
},
il = {
prefix: "fas",
iconName: "paragraph",
icon: [
448,
512,
[],
"f1dd",
"M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z",
],
},
rl = {
prefix: "fas",
iconName: "parking",
icon: [
448,
512,
[],
"f540",
"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z",
],
},
ol = {
prefix: "fas",
iconName: "passport",
icon: [
448,
512,
[],
"f5ab",
"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z",
],
},
al = {
prefix: "fas",
iconName: "pastafarianism",
icon: [
640,
512,
[],
"f67b",
"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z",
],
},
sl = {
prefix: "fas",
iconName: "paste",
icon: [
448,
512,
[],
"f0ea",
"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z",
],
},
cl = {
prefix: "fas",
iconName: "pause",
icon: [
448,
512,
[],
"f04c",
"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z",
],
},
ll = {
prefix: "fas",
iconName: "pause-circle",
icon: [
512,
512,
[],
"f28b",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z",
],
},
ul = {
prefix: "fas",
iconName: "paw",
icon: [
512,
512,
[],
"f1b0",
"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z",
],
},
hl = {
prefix: "fas",
iconName: "peace",
icon: [
496,
512,
[],
"f67c",
"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z",
],
},
dl = {
prefix: "fas",
iconName: "pen",
icon: [
512,
512,
[],
"f304",
"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z",
],
},
pl = {
prefix: "fas",
iconName: "pen-alt",
icon: [
512,
512,
[],
"f305",
"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z",
],
},
fl = {
prefix: "fas",
iconName: "pen-fancy",
icon: [
512,
512,
[],
"f5ac",
"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z",
],
},
ml = {
prefix: "fas",
iconName: "pen-nib",
icon: [
512,
512,
[],
"f5ad",
"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z",
],
},
gl = {
prefix: "fas",
iconName: "pen-square",
icon: [
448,
512,
[],
"f14b",
"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z",
],
},
bl = {
prefix: "fas",
iconName: "pencil-alt",
icon: [
512,
512,
[],
"f303",
"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z",
],
},
_l = {
prefix: "fas",
iconName: "pencil-ruler",
icon: [
512,
512,
[],
"f5ae",
"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z",
],
},
vl = {
prefix: "fas",
iconName: "people-carry",
icon: [
640,
512,
[],
"f4ce",
"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z",
],
},
yl = {
prefix: "fas",
iconName: "percent",
icon: [
448,
512,
[],
"f295",
"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z",
],
},
Cl = {
prefix: "fas",
iconName: "percentage",
icon: [
384,
512,
[],
"f541",
"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z",
],
},
Pl = {
prefix: "fas",
iconName: "phone",
icon: [
512,
512,
[],
"f095",
"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z",
],
},
xl = {
prefix: "fas",
iconName: "phone-slash",
icon: [
640,
512,
[],
"f3dd",
"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z",
],
},
Tl = {
prefix: "fas",
iconName: "phone-square",
icon: [
448,
512,
[],
"f098",
"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z",
],
},
Sl = {
prefix: "fas",
iconName: "phone-volume",
icon: [
384,
512,
[],
"f2a0",
"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z",
],
},
Ol = {
prefix: "fas",
iconName: "piggy-bank",
icon: [
576,
512,
[],
"f4d3",
"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z",
],
},
El = {
prefix: "fas",
iconName: "pills",
icon: [
576,
512,
[],
"f484",
"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z",
],
},
Ml = {
prefix: "fas",
iconName: "place-of-worship",
icon: [
640,
512,
[],
"f67f",
"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z",
],
},
Al = {
prefix: "fas",
iconName: "plane",
icon: [
576,
512,
[],
"f072",
"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z",
],
},
Il = {
prefix: "fas",
iconName: "plane-arrival",
icon: [
640,
512,
[],
"f5af",
"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z",
],
},
Dl = {
prefix: "fas",
iconName: "plane-departure",
icon: [
640,
512,
[],
"f5b0",
"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z",
],
},
Rl = { prefix: "fas", iconName: "play", icon: [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"] },
wl = {
prefix: "fas",
iconName: "play-circle",
icon: [
512,
512,
[],
"f144",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z",
],
},
Ll = {
prefix: "fas",
iconName: "plug",
icon: [
384,
512,
[],
"f1e6",
"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z",
],
},
Fl = {
prefix: "fas",
iconName: "plus",
icon: [
448,
512,
[],
"f067",
"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",
],
},
Nl = {
prefix: "fas",
iconName: "plus-circle",
icon: [
512,
512,
[],
"f055",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z",
],
},
kl = {
prefix: "fas",
iconName: "plus-square",
icon: [
448,
512,
[],
"f0fe",
"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z",
],
},
zl = {
prefix: "fas",
iconName: "podcast",
icon: [
448,
512,
[],
"f2ce",
"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z",
],
},
jl = {
prefix: "fas",
iconName: "poll",
icon: [
448,
512,
[],
"f681",
"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z",
],
},
Bl = {
prefix: "fas",
iconName: "poll-h",
icon: [
448,
512,
[],
"f682",
"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z",
],
},
Vl = {
prefix: "fas",
iconName: "poo",
icon: [
512,
512,
[],
"f2fe",
"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
Gl = {
prefix: "fas",
iconName: "poop",
icon: [
512,
512,
[],
"f619",
"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z",
],
},
Ul = {
prefix: "fas",
iconName: "portrait",
icon: [
384,
512,
[],
"f3e0",
"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z",
],
},
Hl = {
prefix: "fas",
iconName: "pound-sign",
icon: [
320,
512,
[],
"f154",
"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z",
],
},
Wl = {
prefix: "fas",
iconName: "power-off",
icon: [
512,
512,
[],
"f011",
"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z",
],
},
Xl = {
prefix: "fas",
iconName: "pray",
icon: [
384,
512,
[],
"f683",
"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z",
],
},
Yl = {
prefix: "fas",
iconName: "praying-hands",
icon: [
640,
512,
[],
"f684",
"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z",
],
},
Kl = {
prefix: "fas",
iconName: "prescription",
icon: [
384,
512,
[],
"f5b1",
"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z",
],
},
Zl = {
prefix: "fas",
iconName: "prescription-bottle",
icon: [
384,
512,
[],
"f485",
"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z",
],
},
ql = {
prefix: "fas",
iconName: "prescription-bottle-alt",
icon: [
384,
512,
[],
"f486",
"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z",
],
},
Ql = {
prefix: "fas",
iconName: "print",
icon: [
512,
512,
[],
"f02f",
"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z",
],
},
Jl = {
prefix: "fas",
iconName: "procedures",
icon: [
640,
512,
[],
"f487",
"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z",
],
},
$l = {
prefix: "fas",
iconName: "project-diagram",
icon: [
640,
512,
[],
"f542",
"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z",
],
},
eu = {
prefix: "fas",
iconName: "puzzle-piece",
icon: [
576,
512,
[],
"f12e",
"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z",
],
},
tu = {
prefix: "fas",
iconName: "qrcode",
icon: [
448,
512,
[],
"f029",
"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z",
],
},
nu = {
prefix: "fas",
iconName: "question",
icon: [
384,
512,
[],
"f128",
"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z",
],
},
iu = {
prefix: "fas",
iconName: "question-circle",
icon: [
512,
512,
[],
"f059",
"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z",
],
},
ru = {
prefix: "fas",
iconName: "quidditch",
icon: [
640,
512,
[],
"f458",
"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z",
],
},
ou = {
prefix: "fas",
iconName: "quote-left",
icon: [
512,
512,
[],
"f10d",
"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z",
],
},
au = {
prefix: "fas",
iconName: "quote-right",
icon: [
512,
512,
[],
"f10e",
"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z",
],
},
su = {
prefix: "fas",
iconName: "quran",
icon: [
448,
512,
[],
"f687",
"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z",
],
},
cu = {
prefix: "fas",
iconName: "random",
icon: [
512,
512,
[],
"f074",
"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z",
],
},
lu = {
prefix: "fas",
iconName: "receipt",
icon: [
384,
512,
[],
"f543",
"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z",
],
},
uu = {
prefix: "fas",
iconName: "recycle",
icon: [
512,
512,
[],
"f1b8",
"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z",
],
},
hu = {
prefix: "fas",
iconName: "redo",
icon: [
512,
512,
[],
"f01e",
"M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z",
],
},
du = {
prefix: "fas",
iconName: "redo-alt",
icon: [
512,
512,
[],
"f2f9",
"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z",
],
},
pu = {
prefix: "fas",
iconName: "registered",
icon: [
512,
512,
[],
"f25d",
"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z",
],
},
fu = {
prefix: "fas",
iconName: "reply",
icon: [
512,
512,
[],
"f3e5",
"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z",
],
},
mu = {
prefix: "fas",
iconName: "reply-all",
icon: [
576,
512,
[],
"f122",
"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z",
],
},
gu = {
prefix: "fas",
iconName: "retweet",
icon: [
640,
512,
[],
"f079",
"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z",
],
},
bu = {
prefix: "fas",
iconName: "ribbon",
icon: [
448,
512,
[],
"f4d6",
"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z",
],
},
_u = {
prefix: "fas",
iconName: "ring",
icon: [
512,
512,
[],
"f70b",
"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z",
],
},
vu = {
prefix: "fas",
iconName: "road",
icon: [
576,
512,
[],
"f018",
"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z",
],
},
yu = {
prefix: "fas",
iconName: "robot",
icon: [
640,
512,
[],
"f544",
"M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z",
],
},
Cu = {
prefix: "fas",
iconName: "rocket",
icon: [
512,
512,
[],
"f135",
"M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z",
],
},
Pu = {
prefix: "fas",
iconName: "route",
icon: [
512,
512,
[],
"f4d7",
"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
xu = {
prefix: "fas",
iconName: "rss",
icon: [
448,
512,
[],
"f09e",
"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z",
],
},
Tu = {
prefix: "fas",
iconName: "rss-square",
icon: [
448,
512,
[],
"f143",
"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z",
],
},
Su = {
prefix: "fas",
iconName: "ruble-sign",
icon: [
384,
512,
[],
"f158",
"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z",
],
},
Ou = {
prefix: "fas",
iconName: "ruler",
icon: [
640,
512,
[],
"f545",
"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z",
],
},
Eu = {
prefix: "fas",
iconName: "ruler-combined",
icon: [
512,
512,
[],
"f546",
"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z",
],
},
Mu = {
prefix: "fas",
iconName: "ruler-horizontal",
icon: [
576,
512,
[],
"f547",
"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z",
],
},
Au = {
prefix: "fas",
iconName: "ruler-vertical",
icon: [
256,
512,
[],
"f548",
"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z",
],
},
Iu = {
prefix: "fas",
iconName: "running",
icon: [
416,
512,
[],
"f70c",
"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z",
],
},
Du = {
prefix: "fas",
iconName: "rupee-sign",
icon: [
320,
512,
[],
"f156",
"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z",
],
},
Ru = {
prefix: "fas",
iconName: "sad-cry",
icon: [
496,
512,
[],
"f5b3",
"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z",
],
},
wu = {
prefix: "fas",
iconName: "sad-tear",
icon: [
496,
512,
[],
"f5b4",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z",
],
},
Lu = {
prefix: "fas",
iconName: "save",
icon: [
448,
512,
[],
"f0c7",
"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z",
],
},
Fu = {
prefix: "fas",
iconName: "school",
icon: [
640,
512,
[],
"f549",
"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z",
],
},
Nu = {
prefix: "fas",
iconName: "screwdriver",
icon: [
512,
512,
[],
"f54a",
"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z",
],
},
ku = {
prefix: "fas",
iconName: "scroll",
icon: [
640,
512,
[],
"f70e",
"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z",
],
},
zu = {
prefix: "fas",
iconName: "search",
icon: [
512,
512,
[],
"f002",
"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z",
],
},
ju = {
prefix: "fas",
iconName: "search-dollar",
icon: [
512,
512,
[],
"f688",
"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z",
],
},
Bu = {
prefix: "fas",
iconName: "search-location",
icon: [
512,
512,
[],
"f689",
"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z",
],
},
Vu = {
prefix: "fas",
iconName: "search-minus",
icon: [
512,
512,
[],
"f010",
"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z",
],
},
Gu = {
prefix: "fas",
iconName: "search-plus",
icon: [
512,
512,
[],
"f00e",
"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z",
],
},
Uu = {
prefix: "fas",
iconName: "seedling",
icon: [
512,
512,
[],
"f4d8",
"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z",
],
},
Hu = {
prefix: "fas",
iconName: "server",
icon: [
512,
512,
[],
"f233",
"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z",
],
},
Wu = {
prefix: "fas",
iconName: "shapes",
icon: [
512,
512,
[],
"f61f",
"M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z",
],
},
Xu = {
prefix: "fas",
iconName: "share",
icon: [
512,
512,
[],
"f064",
"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z",
],
},
Yu = {
prefix: "fas",
iconName: "share-alt",
icon: [
448,
512,
[],
"f1e0",
"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z",
],
},
Ku = {
prefix: "fas",
iconName: "share-alt-square",
icon: [
448,
512,
[],
"f1e1",
"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z",
],
},
Zu = {
prefix: "fas",
iconName: "share-square",
icon: [
576,
512,
[],
"f14d",
"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z",
],
},
qu = {
prefix: "fas",
iconName: "shekel-sign",
icon: [
448,
512,
[],
"f20b",
"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z",
],
},
Qu = {
prefix: "fas",
iconName: "shield-alt",
icon: [
512,
512,
[],
"f3ed",
"M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z",
],
},
Ju = {
prefix: "fas",
iconName: "ship",
icon: [
640,
512,
[],
"f21a",
"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z",
],
},
$u = {
prefix: "fas",
iconName: "shipping-fast",
icon: [
640,
512,
[],
"f48b",
"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z",
],
},
eh = {
prefix: "fas",
iconName: "shoe-prints",
icon: [
640,
512,
[],
"f54b",
"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z",
],
},
th = {
prefix: "fas",
iconName: "shopping-bag",
icon: [
448,
512,
[],
"f290",
"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z",
],
},
nh = {
prefix: "fas",
iconName: "shopping-basket",
icon: [
576,
512,
[],
"f291",
"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z",
],
},
ih = {
prefix: "fas",
iconName: "shopping-cart",
icon: [
576,
512,
[],
"f07a",
"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z",
],
},
rh = {
prefix: "fas",
iconName: "shower",
icon: [
512,
512,
[],
"f2cc",
"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z",
],
},
oh = {
prefix: "fas",
iconName: "shuttle-van",
icon: [
640,
512,
[],
"f5b6",
"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z",
],
},
ah = {
prefix: "fas",
iconName: "sign",
icon: [
512,
512,
[],
"f4d9",
"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z",
],
},
sh = {
prefix: "fas",
iconName: "sign-in-alt",
icon: [
512,
512,
[],
"f2f6",
"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z",
],
},
ch = {
prefix: "fas",
iconName: "sign-language",
icon: [
448,
512,
[],
"f2a7",
"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z",
],
},
lh = {
prefix: "fas",
iconName: "sign-out-alt",
icon: [
512,
512,
[],
"f2f5",
"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z",
],
},
uh = {
prefix: "fas",
iconName: "signal",
icon: [
640,
512,
[],
"f012",
"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z",
],
},
hh = {
prefix: "fas",
iconName: "signature",
icon: [
512,
512,
[],
"f5b7",
"M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z",
],
},
dh = {
prefix: "fas",
iconName: "sitemap",
icon: [
640,
512,
[],
"f0e8",
"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z",
],
},
ph = {
prefix: "fas",
iconName: "skull",
icon: [
512,
512,
[],
"f54c",
"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z",
],
},
fh = {
prefix: "fas",
iconName: "skull-crossbones",
icon: [
448,
512,
[],
"f714",
"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z",
],
},
mh = {
prefix: "fas",
iconName: "slash",
icon: [
640,
512,
[],
"f715",
"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z",
],
},
gh = {
prefix: "fas",
iconName: "sliders-h",
icon: [
512,
512,
[],
"f1de",
"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z",
],
},
bh = {
prefix: "fas",
iconName: "smile",
icon: [
496,
512,
[],
"f118",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z",
],
},
_h = {
prefix: "fas",
iconName: "smile-beam",
icon: [
496,
512,
[],
"f5b8",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z",
],
},
vh = {
prefix: "fas",
iconName: "smile-wink",
icon: [
496,
512,
[],
"f4da",
"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z",
],
},
yh = {
prefix: "fas",
iconName: "smoking",
icon: [
640,
512,
[],
"f48d",
"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z",
],
},
Ch = {
prefix: "fas",
iconName: "smoking-ban",
icon: [
512,
512,
[],
"f54d",
"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z",
],
},
Ph = {
prefix: "fas",
iconName: "snowflake",
icon: [
448,
512,
[],
"f2dc",
"M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z",
],
},
xh = {
prefix: "fas",
iconName: "socks",
icon: [
512,
512,
[],
"f696",
"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z",
],
},
Th = {
prefix: "fas",
iconName: "solar-panel",
icon: [
640,
512,
[],
"f5ba",
"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z",
],
},
Sh = {
prefix: "fas",
iconName: "sort",
icon: [
320,
512,
[],
"f0dc",
"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z",
],
},
Oh = {
prefix: "fas",
iconName: "sort-alpha-down",
icon: [
448,
512,
[],
"f15d",
"M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z",
],
},
Eh = {
prefix: "fas",
iconName: "sort-alpha-up",
icon: [
448,
512,
[],
"f15e",
"M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z",
],
},
Mh = {
prefix: "fas",
iconName: "sort-amount-down",
icon: [
512,
512,
[],
"f160",
"M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z",
],
},
Ah = {
prefix: "fas",
iconName: "sort-amount-up",
icon: [
512,
512,
[],
"f161",
"M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z",
],
},
Ih = { prefix: "fas", iconName: "sort-down", icon: [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"] },
Dh = {
prefix: "fas",
iconName: "sort-numeric-down",
icon: [
448,
512,
[],
"f162",
"M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z",
],
},
Rh = {
prefix: "fas",
iconName: "sort-numeric-up",
icon: [
448,
512,
[],
"f163",
"M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z",
],
},
wh = { prefix: "fas", iconName: "sort-up", icon: [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"] },
Lh = {
prefix: "fas",
iconName: "spa",
icon: [
576,
512,
[],
"f5bb",
"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z",
],
},
Fh = {
prefix: "fas",
iconName: "space-shuttle",
icon: [
640,
512,
[],
"f197",
"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z",
],
},
Nh = {
prefix: "fas",
iconName: "spider",
icon: [
576,
512,
[],
"f717",
"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z",
],
},
kh = {
prefix: "fas",
iconName: "spinner",
icon: [
512,
512,
[],
"f110",
"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z",
],
},
zh = {
prefix: "fas",
iconName: "splotch",
icon: [
512,
512,
[],
"f5bc",
"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z",
],
},
jh = {
prefix: "fas",
iconName: "spray-can",
icon: [
512,
512,
[],
"f5bd",
"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z",
],
},
Bh = { prefix: "fas", iconName: "square", icon: [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] },
Vh = { prefix: "fas", iconName: "square-full", icon: [512, 512, [], "f45c", "M512 512H0V0h512v512z"] },
Gh = {
prefix: "fas",
iconName: "square-root-alt",
icon: [
576,
512,
[],
"f698",
"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z",
],
},
Uh = {
prefix: "fas",
iconName: "stamp",
icon: [
512,
512,
[],
"f5bf",
"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z",
],
},
Hh = {
prefix: "fas",
iconName: "star",
icon: [
576,
512,
[],
"f005",
"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z",
],
},
Wh = {
prefix: "fas",
iconName: "star-and-crescent",
icon: [
512,
512,
[],
"f699",
"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z",
],
},
Xh = {
prefix: "fas",
iconName: "star-half",
icon: [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"],
},
Yh = {
prefix: "fas",
iconName: "star-half-alt",
icon: [
536,
512,
[],
"f5c0",
"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z",
],
},
Kh = {
prefix: "fas",
iconName: "star-of-david",
icon: [
464,
512,
[],
"f69a",
"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z",
],
},
Zh = {
prefix: "fas",
iconName: "star-of-life",
icon: [
480,
512,
[],
"f621",
"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z",
],
},
qh = {
prefix: "fas",
iconName: "step-backward",
icon: [
448,
512,
[],
"f048",
"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z",
],
},
Qh = {
prefix: "fas",
iconName: "step-forward",
icon: [
448,
512,
[],
"f051",
"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z",
],
},
Jh = {
prefix: "fas",
iconName: "stethoscope",
icon: [
512,
512,
[],
"f0f1",
"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z",
],
},
$h = {
prefix: "fas",
iconName: "sticky-note",
icon: [
448,
512,
[],
"f249",
"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z",
],
},
ed = { prefix: "fas", iconName: "stop", icon: [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] },
td = {
prefix: "fas",
iconName: "stop-circle",
icon: [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"],
},
nd = {
prefix: "fas",
iconName: "stopwatch",
icon: [
448,
512,
[],
"f2f2",
"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z",
],
},
id = {
prefix: "fas",
iconName: "store",
icon: [
616,
512,
[],
"f54e",
"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z",
],
},
rd = {
prefix: "fas",
iconName: "store-alt",
icon: [
640,
512,
[],
"f54f",
"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z",
],
},
od = {
prefix: "fas",
iconName: "stream",
icon: [
512,
512,
[],
"f550",
"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z",
],
},
ad = {
prefix: "fas",
iconName: "street-view",
icon: [
512,
512,
[],
"f21d",
"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z",
],
},
sd = {
prefix: "fas",
iconName: "strikethrough",
icon: [
512,
512,
[],
"f0cc",
"M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z",
],
},
cd = {
prefix: "fas",
iconName: "stroopwafel",
icon: [
512,
512,
[],
"f551",
"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z",
],
},
ld = {
prefix: "fas",
iconName: "subscript",
icon: [
512,
512,
[],
"f12c",
"M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z",
],
},
ud = {
prefix: "fas",
iconName: "subway",
icon: [
448,
512,
[],
"f239",
"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z",
],
},
hd = {
prefix: "fas",
iconName: "suitcase",
icon: [
512,
512,
[],
"f0f2",
"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z",
],
},
dd = {
prefix: "fas",
iconName: "suitcase-rolling",
icon: [
384,
512,
[],
"f5c1",
"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z",
],
},
pd = {
prefix: "fas",
iconName: "sun",
icon: [
512,
512,
[],
"f185",
"M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z",
],
},
fd = {
prefix: "fas",
iconName: "superscript",
icon: [
512,
512,
[],
"f12b",
"M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z",
],
},
md = {
prefix: "fas",
iconName: "surprise",
icon: [
496,
512,
[],
"f5c2",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
gd = {
prefix: "fas",
iconName: "swatchbook",
icon: [
511,
512,
[],
"f5c3",
"M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z",
],
},
bd = {
prefix: "fas",
iconName: "swimmer",
icon: [
640,
512,
[],
"f5c4",
"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z",
],
},
_d = {
prefix: "fas",
iconName: "swimming-pool",
icon: [
640,
512,
[],
"f5c5",
"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z",
],
},
vd = {
prefix: "fas",
iconName: "synagogue",
icon: [
640,
512,
[],
"f69b",
"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z",
],
},
yd = {
prefix: "fas",
iconName: "sync",
icon: [
512,
512,
[],
"f021",
"M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z",
],
},
Cd = {
prefix: "fas",
iconName: "sync-alt",
icon: [
512,
512,
[],
"f2f1",
"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z",
],
},
Pd = {
prefix: "fas",
iconName: "syringe",
icon: [
512,
512,
[],
"f48e",
"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z",
],
},
xd = {
prefix: "fas",
iconName: "table",
icon: [
512,
512,
[],
"f0ce",
"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z",
],
},
Td = {
prefix: "fas",
iconName: "table-tennis",
icon: [
512,
512,
[],
"f45d",
"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z",
],
},
Sd = {
prefix: "fas",
iconName: "tablet",
icon: [
448,
512,
[],
"f10a",
"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z",
],
},
Od = {
prefix: "fas",
iconName: "tablet-alt",
icon: [
448,
512,
[],
"f3fa",
"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z",
],
},
Ed = {
prefix: "fas",
iconName: "tablets",
icon: [
640,
512,
[],
"f490",
"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z",
],
},
Md = {
prefix: "fas",
iconName: "tachometer-alt",
icon: [
576,
512,
[],
"f3fd",
"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Ad = {
prefix: "fas",
iconName: "tag",
icon: [
512,
512,
[],
"f02b",
"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z",
],
},
Id = {
prefix: "fas",
iconName: "tags",
icon: [
640,
512,
[],
"f02c",
"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z",
],
},
Dd = {
prefix: "fas",
iconName: "tape",
icon: [
640,
512,
[],
"f4db",
"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z",
],
},
Rd = {
prefix: "fas",
iconName: "tasks",
icon: [
512,
512,
[],
"f0ae",
"M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z",
],
},
wd = {
prefix: "fas",
iconName: "taxi",
icon: [
512,
512,
[],
"f1ba",
"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Ld = {
prefix: "fas",
iconName: "teeth",
icon: [
640,
512,
[],
"f62e",
"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z",
],
},
Fd = {
prefix: "fas",
iconName: "teeth-open",
icon: [
640,
512,
[],
"f62f",
"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z",
],
},
Nd = {
prefix: "fas",
iconName: "terminal",
icon: [
640,
512,
[],
"f120",
"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z",
],
},
kd = {
prefix: "fas",
iconName: "text-height",
icon: [
576,
512,
[],
"f034",
"M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z",
],
},
zd = {
prefix: "fas",
iconName: "text-width",
icon: [
448,
512,
[],
"f035",
"M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z",
],
},
jd = {
prefix: "fas",
iconName: "th",
icon: [
512,
512,
[],
"f00a",
"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z",
],
},
Bd = {
prefix: "fas",
iconName: "th-large",
icon: [
512,
512,
[],
"f009",
"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z",
],
},
Vd = {
prefix: "fas",
iconName: "th-list",
icon: [
512,
512,
[],
"f00b",
"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z",
],
},
Gd = {
prefix: "fas",
iconName: "theater-masks",
icon: [
640,
512,
[],
"f630",
"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z",
],
},
Ud = {
prefix: "fas",
iconName: "thermometer",
icon: [
512,
512,
[],
"f491",
"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z",
],
},
Hd = {
prefix: "fas",
iconName: "thermometer-empty",
icon: [
256,
512,
[],
"f2cb",
"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z",
],
},
Wd = {
prefix: "fas",
iconName: "thermometer-full",
icon: [
256,
512,
[],
"f2c7",
"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z",
],
},
Xd = {
prefix: "fas",
iconName: "thermometer-half",
icon: [
256,
512,
[],
"f2c9",
"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z",
],
},
Yd = {
prefix: "fas",
iconName: "thermometer-quarter",
icon: [
256,
512,
[],
"f2ca",
"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z",
],
},
Kd = {
prefix: "fas",
iconName: "thermometer-three-quarters",
icon: [
256,
512,
[],
"f2c8",
"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z",
],
},
Zd = {
prefix: "fas",
iconName: "thumbs-down",
icon: [
512,
512,
[],
"f165",
"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z",
],
},
qd = {
prefix: "fas",
iconName: "thumbs-up",
icon: [
512,
512,
[],
"f164",
"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z",
],
},
Qd = {
prefix: "fas",
iconName: "thumbtack",
icon: [
384,
512,
[],
"f08d",
"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z",
],
},
Jd = {
prefix: "fas",
iconName: "ticket-alt",
icon: [
576,
512,
[],
"f3ff",
"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z",
],
},
$d = {
prefix: "fas",
iconName: "times",
icon: [
352,
512,
[],
"f00d",
"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z",
],
},
ep = {
prefix: "fas",
iconName: "times-circle",
icon: [
512,
512,
[],
"f057",
"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z",
],
},
tp = {
prefix: "fas",
iconName: "tint",
icon: [
352,
512,
[],
"f043",
"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z",
],
},
np = {
prefix: "fas",
iconName: "tint-slash",
icon: [
640,
512,
[],
"f5c7",
"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z",
],
},
ip = {
prefix: "fas",
iconName: "tired",
icon: [
496,
512,
[],
"f5c8",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z",
],
},
rp = {
prefix: "fas",
iconName: "toggle-off",
icon: [
576,
512,
[],
"f204",
"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z",
],
},
op = {
prefix: "fas",
iconName: "toggle-on",
icon: [
576,
512,
[],
"f205",
"M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128",
],
},
ap = {
prefix: "fas",
iconName: "toilet-paper",
icon: [
576,
512,
[],
"f71e",
"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z",
],
},
sp = {
prefix: "fas",
iconName: "toolbox",
icon: [
512,
512,
[],
"f552",
"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z",
],
},
cp = {
prefix: "fas",
iconName: "tooth",
icon: [
448,
512,
[],
"f5c9",
"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z",
],
},
lp = {
prefix: "fas",
iconName: "torah",
icon: [
448,
512,
[],
"f6a0",
"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z",
],
},
up = {
prefix: "fas",
iconName: "torii-gate",
icon: [
512,
512,
[],
"f6a1",
"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z",
],
},
hp = {
prefix: "fas",
iconName: "tractor",
icon: [
640,
512,
[],
"f722",
"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z",
],
},
dp = {
prefix: "fas",
iconName: "trademark",
icon: [
640,
512,
[],
"f25c",
"M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z",
],
},
pp = {
prefix: "fas",
iconName: "traffic-light",
icon: [
384,
512,
[],
"f637",
"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z",
],
},
fp = {
prefix: "fas",
iconName: "train",
icon: [
448,
512,
[],
"f238",
"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z",
],
},
mp = {
prefix: "fas",
iconName: "transgender",
icon: [
384,
512,
[],
"f224",
"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z",
],
},
gp = {
prefix: "fas",
iconName: "transgender-alt",
icon: [
480,
512,
[],
"f225",
"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z",
],
},
bp = {
prefix: "fas",
iconName: "trash",
icon: [
448,
512,
[],
"f1f8",
"M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z",
],
},
_p = {
prefix: "fas",
iconName: "trash-alt",
icon: [
448,
512,
[],
"f2ed",
"M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z",
],
},
vp = {
prefix: "fas",
iconName: "tree",
icon: [
384,
512,
[],
"f1bb",
"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z",
],
},
yp = {
prefix: "fas",
iconName: "trophy",
icon: [
576,
512,
[],
"f091",
"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z",
],
},
Cp = {
prefix: "fas",
iconName: "truck",
icon: [
640,
512,
[],
"f0d1",
"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z",
],
},
Pp = {
prefix: "fas",
iconName: "truck-loading",
icon: [
640,
512,
[],
"f4de",
"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z",
],
},
xp = {
prefix: "fas",
iconName: "truck-monster",
icon: [
640,
512,
[],
"f63b",
"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z",
],
},
Tp = {
prefix: "fas",
iconName: "truck-moving",
icon: [
640,
512,
[],
"f4df",
"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z",
],
},
Sp = {
prefix: "fas",
iconName: "truck-pickup",
icon: [
640,
512,
[],
"f63c",
"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z",
],
},
Op = {
prefix: "fas",
iconName: "tshirt",
icon: [
640,
512,
[],
"f553",
"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z",
],
},
Ep = {
prefix: "fas",
iconName: "tty",
icon: [
512,
512,
[],
"f1e4",
"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z",
],
},
Mp = {
prefix: "fas",
iconName: "tv",
icon: [
640,
512,
[],
"f26c",
"M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z",
],
},
Ap = {
prefix: "fas",
iconName: "umbrella",
icon: [
576,
512,
[],
"f0e9",
"M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z",
],
},
Ip = {
prefix: "fas",
iconName: "umbrella-beach",
icon: [
640,
512,
[],
"f5ca",
"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z",
],
},
Dp = {
prefix: "fas",
iconName: "underline",
icon: [
448,
512,
[],
"f0cd",
"M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z",
],
},
Rp = {
prefix: "fas",
iconName: "undo",
icon: [
512,
512,
[],
"f0e2",
"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z",
],
},
wp = {
prefix: "fas",
iconName: "undo-alt",
icon: [
512,
512,
[],
"f2ea",
"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z",
],
},
Lp = {
prefix: "fas",
iconName: "universal-access",
icon: [
512,
512,
[],
"f29a",
"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z",
],
},
Fp = {
prefix: "fas",
iconName: "university",
icon: [
512,
512,
[],
"f19c",
"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z",
],
},
Np = {
prefix: "fas",
iconName: "unlink",
icon: [
512,
512,
[],
"f127",
"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z",
],
},
kp = {
prefix: "fas",
iconName: "unlock",
icon: [
448,
512,
[],
"f09c",
"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z",
],
},
zp = {
prefix: "fas",
iconName: "unlock-alt",
icon: [
448,
512,
[],
"f13e",
"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z",
],
},
jp = {
prefix: "fas",
iconName: "upload",
icon: [
512,
512,
[],
"f093",
"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z",
],
},
Bp = {
prefix: "fas",
iconName: "user",
icon: [
448,
512,
[],
"f007",
"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z",
],
},
Vp = {
prefix: "fas",
iconName: "user-alt",
icon: [
512,
512,
[],
"f406",
"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z",
],
},
Gp = {
prefix: "fas",
iconName: "user-alt-slash",
icon: [
640,
512,
[],
"f4fa",
"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z",
],
},
Up = {
prefix: "fas",
iconName: "user-astronaut",
icon: [
448,
512,
[],
"f4fb",
"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z",
],
},
Hp = {
prefix: "fas",
iconName: "user-check",
icon: [
640,
512,
[],
"f4fc",
"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z",
],
},
Wp = {
prefix: "fas",
iconName: "user-circle",
icon: [
496,
512,
[],
"f2bd",
"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z",
],
},
Xp = {
prefix: "fas",
iconName: "user-clock",
icon: [
640,
512,
[],
"f4fd",
"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z",
],
},
Yp = {
prefix: "fas",
iconName: "user-cog",
icon: [
640,
512,
[],
"f4fe",
"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z",
],
},
Kp = {
prefix: "fas",
iconName: "user-edit",
icon: [
640,
512,
[],
"f4ff",
"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z",
],
},
Zp = {
prefix: "fas",
iconName: "user-friends",
icon: [
640,
512,
[],
"f500",
"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z",
],
},
qp = {
prefix: "fas",
iconName: "user-graduate",
icon: [
448,
512,
[],
"f501",
"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z",
],
},
Qp = {
prefix: "fas",
iconName: "user-injured",
icon: [
448,
512,
[],
"f728",
"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z",
],
},
Jp = {
prefix: "fas",
iconName: "user-lock",
icon: [
640,
512,
[],
"f502",
"M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z",
],
},
$p = {
prefix: "fas",
iconName: "user-md",
icon: [
448,
512,
[],
"f0f0",
"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z",
],
},
ef = {
prefix: "fas",
iconName: "user-minus",
icon: [
640,
512,
[],
"f503",
"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z",
],
},
tf = {
prefix: "fas",
iconName: "user-ninja",
icon: [
448,
512,
[],
"f504",
"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z",
],
},
nf = {
prefix: "fas",
iconName: "user-plus",
icon: [
640,
512,
[],
"f234",
"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z",
],
},
rf = {
prefix: "fas",
iconName: "user-secret",
icon: [
448,
512,
[],
"f21b",
"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z",
],
},
of = {
prefix: "fas",
iconName: "user-shield",
icon: [
640,
512,
[],
"f505",
"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z",
],
},
af = {
prefix: "fas",
iconName: "user-slash",
icon: [
640,
512,
[],
"f506",
"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z",
],
},
sf = {
prefix: "fas",
iconName: "user-tag",
icon: [
640,
512,
[],
"f507",
"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z",
],
},
cf = {
prefix: "fas",
iconName: "user-tie",
icon: [
448,
512,
[],
"f508",
"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z",
],
},
lf = {
prefix: "fas",
iconName: "user-times",
icon: [
640,
512,
[],
"f235",
"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z",
],
},
uf = {
prefix: "fas",
iconName: "users",
icon: [
640,
512,
[],
"f0c0",
"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z",
],
},
hf = {
prefix: "fas",
iconName: "users-cog",
icon: [
640,
512,
[],
"f509",
"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z",
],
},
df = {
prefix: "fas",
iconName: "utensil-spoon",
icon: [
512,
512,
[],
"f2e5",
"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z",
],
},
pf = {
prefix: "fas",
iconName: "utensils",
icon: [
416,
512,
[],
"f2e7",
"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z",
],
},
ff = {
prefix: "fas",
iconName: "vector-square",
icon: [
512,
512,
[],
"f5cb",
"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z",
],
},
mf = {
prefix: "fas",
iconName: "venus",
icon: [
288,
512,
[],
"f221",
"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z",
],
},
gf = {
prefix: "fas",
iconName: "venus-double",
icon: [
512,
512,
[],
"f226",
"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z",
],
},
bf = {
prefix: "fas",
iconName: "venus-mars",
icon: [
576,
512,
[],
"f228",
"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z",
],
},
_f = {
prefix: "fas",
iconName: "vial",
icon: [
480,
512,
[],
"f492",
"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z",
],
},
vf = {
prefix: "fas",
iconName: "vials",
icon: [
640,
512,
[],
"f493",
"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z",
],
},
yf = {
prefix: "fas",
iconName: "video",
icon: [
576,
512,
[],
"f03d",
"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z",
],
},
Cf = {
prefix: "fas",
iconName: "video-slash",
icon: [
640,
512,
[],
"f4e2",
"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z",
],
},
Pf = {
prefix: "fas",
iconName: "vihara",
icon: [
640,
512,
[],
"f6a7",
"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z",
],
},
xf = {
prefix: "fas",
iconName: "volleyball-ball",
icon: [
495,
512,
[],
"f45f",
"M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z",
],
},
Tf = {
prefix: "fas",
iconName: "volume-down",
icon: [
384,
512,
[],
"f027",
"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z",
],
},
Sf = {
prefix: "fas",
iconName: "volume-mute",
icon: [
512,
512,
[],
"f6a9",
"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z",
],
},
Of = {
prefix: "fas",
iconName: "volume-off",
icon: [
257,
512,
[],
"f026",
"M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z",
],
},
Ef = {
prefix: "fas",
iconName: "volume-up",
icon: [
576,
512,
[],
"f028",
"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z",
],
},
Mf = {
prefix: "fas",
iconName: "vr-cardboard",
icon: [
640,
512,
[],
"f729",
"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z",
],
},
Af = {
prefix: "fas",
iconName: "walking",
icon: [
320,
512,
[],
"f554",
"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z",
],
},
If = {
prefix: "fas",
iconName: "wallet",
icon: [
512,
512,
[],
"f555",
"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z",
],
},
Df = {
prefix: "fas",
iconName: "warehouse",
icon: [
640,
512,
[],
"f494",
"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z",
],
},
Rf = {
prefix: "fas",
iconName: "weight",
icon: [
512,
512,
[],
"f496",
"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z",
],
},
wf = {
prefix: "fas",
iconName: "weight-hanging",
icon: [
512,
512,
[],
"f5cd",
"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z",
],
},
Lf = {
prefix: "fas",
iconName: "wheelchair",
icon: [
512,
512,
[],
"f193",
"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z",
],
},
Ff = {
prefix: "fas",
iconName: "wifi",
icon: [
640,
512,
[],
"f1eb",
"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z",
],
},
Nf = {
prefix: "fas",
iconName: "wind",
icon: [
512,
512,
[],
"f72e",
"M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z",
],
},
kf = {
prefix: "fas",
iconName: "window-close",
icon: [
512,
512,
[],
"f410",
"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z",
],
},
zf = {
prefix: "fas",
iconName: "window-maximize",
icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"],
},
jf = { prefix: "fas", iconName: "window-minimize", icon: [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"] },
Bf = {
prefix: "fas",
iconName: "window-restore",
icon: [
512,
512,
[],
"f2d2",
"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z",
],
},
Vf = {
prefix: "fas",
iconName: "wine-bottle",
icon: [
512,
512,
[],
"f72f",
"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z",
],
},
Gf = {
prefix: "fas",
iconName: "wine-glass",
icon: [
288,
512,
[],
"f4e3",
"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z",
],
},
Uf = {
prefix: "fas",
iconName: "wine-glass-alt",
icon: [
288,
512,
[],
"f5ce",
"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z",
],
},
Hf = {
prefix: "fas",
iconName: "won-sign",
icon: [
576,
512,
[],
"f159",
"M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z",
],
},
Wf = {
prefix: "fas",
iconName: "wrench",
icon: [
512,
512,
[],
"f0ad",
"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z",
],
},
Xf = {
prefix: "fas",
iconName: "x-ray",
icon: [
640,
512,
[],
"f497",
"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z",
],
},
Yf = {
prefix: "fas",
iconName: "yen-sign",
icon: [
384,
512,
[],
"f157",
"M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z",
],
},
Kf = {
prefix: "fas",
iconName: "yin-yang",
icon: [
496,
512,
[],
"f6ad",
"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z",
],
},
Zf = {
faAd: r,
faAddressBook: o,
faAddressCard: a,
faAdjust: s,
faAirFreshener: c,
faAlignCenter: l,
faAlignJustify: u,
faAlignLeft: h,
faAlignRight: d,
faAllergies: p,
faAmbulance: f,
faAmericanSignLanguageInterpreting: m,
faAnchor: g,
faAngleDoubleDown: b,
faAngleDoubleLeft: _,
faAngleDoubleRight: v,
faAngleDoubleUp: y,
faAngleDown: C,
faAngleLeft: P,
faAngleRight: x,
faAngleUp: T,
faAngry: S,
faAnkh: O,
faAppleAlt: E,
faArchive: M,
faArchway: A,
faArrowAltCircleDown: I,
faArrowAltCircleLeft: D,
faArrowAltCircleRight: R,
faArrowAltCircleUp: w,
faArrowCircleDown: L,
faArrowCircleLeft: F,
faArrowCircleRight: N,
faArrowCircleUp: k,
faArrowDown: z,
faArrowLeft: j,
faArrowRight: B,
faArrowUp: V,
faArrowsAlt: G,
faArrowsAltH: U,
faArrowsAltV: H,
faAssistiveListeningSystems: W,
faAsterisk: X,
faAt: Y,
faAtlas: K,
faAtom: Z,
faAudioDescription: q,
faAward: Q,
faBackspace: J,
faBackward: $,
faBalanceScale: ee,
faBan: te,
faBandAid: ne,
faBarcode: ie,
faBars: re,
faBaseballBall: oe,
faBasketballBall: ae,
faBath: se,
faBatteryEmpty: ce,
faBatteryFull: le,
faBatteryHalf: ue,
faBatteryQuarter: he,
faBatteryThreeQuarters: de,
faBed: pe,
faBeer: fe,
faBell: me,
faBellSlash: ge,
faBezierCurve: be,
faBible: _e,
faBicycle: ve,
faBinoculars: ye,
faBirthdayCake: Ce,
faBlender: Pe,
faBlenderPhone: xe,
faBlind: Te,
faBold: Se,
faBolt: Oe,
faBomb: Ee,
faBone: Me,
faBong: Ae,
faBook: Ie,
faBookDead: De,
faBookOpen: Re,
faBookReader: we,
faBookmark: Le,
faBowlingBall: Fe,
faBox: Ne,
faBoxOpen: ke,
faBoxes: ze,
faBraille: je,
faBrain: Be,
faBriefcase: Ve,
faBriefcaseMedical: Ge,
faBroadcastTower: Ue,
faBroom: He,
faBrush: We,
faBug: Xe,
faBuilding: Ye,
faBullhorn: Ke,
faBullseye: Ze,
faBurn: qe,
faBus: Qe,
faBusAlt: Je,
faBusinessTime: $e,
faCalculator: et,
faCalendar: tt,
faCalendarAlt: nt,
faCalendarCheck: it,
faCalendarMinus: rt,
faCalendarPlus: ot,
faCalendarTimes: at,
faCamera: st,
faCameraRetro: ct,
faCampground: lt,
faCannabis: ut,
faCapsules: ht,
faCar: dt,
faCarAlt: pt,
faCarBattery: ft,
faCarCrash: mt,
faCarSide: gt,
faCaretDown: bt,
faCaretLeft: _t,
faCaretRight: vt,
faCaretSquareDown: yt,
faCaretSquareLeft: Ct,
faCaretSquareRight: Pt,
faCaretSquareUp: xt,
faCaretUp: Tt,
faCartArrowDown: St,
faCartPlus: Ot,
faCat: Et,
faCertificate: Mt,
faChair: At,
faChalkboard: It,
faChalkboardTeacher: Dt,
faChargingStation: Rt,
faChartArea: wt,
faChartBar: Lt,
faChartLine: Ft,
faChartPie: Nt,
faCheck: kt,
faCheckCircle: zt,
faCheckDouble: jt,
faCheckSquare: Bt,
faChess: Vt,
faChessBishop: Gt,
faChessBoard: Ut,
faChessKing: Ht,
faChessKnight: Wt,
faChessPawn: Xt,
faChessQueen: Yt,
faChessRook: Kt,
faChevronCircleDown: Zt,
faChevronCircleLeft: qt,
faChevronCircleRight: Qt,
faChevronCircleUp: Jt,
faChevronDown: $t,
faChevronLeft: en,
faChevronRight: tn,
faChevronUp: nn,
faChild: rn,
faChurch: on,
faCircle: an,
faCircleNotch: sn,
faCity: cn,
faClipboard: ln,
faClipboardCheck: un,
faClipboardList: hn,
faClock: dn,
faClone: pn,
faClosedCaptioning: fn,
faCloud: mn,
faCloudDownloadAlt: gn,
faCloudMoon: bn,
faCloudSun: _n,
faCloudUploadAlt: vn,
faCocktail: yn,
faCode: Cn,
faCodeBranch: Pn,
faCoffee: xn,
faCog: Tn,
faCogs: Sn,
faCoins: On,
faColumns: En,
faComment: Mn,
faCommentAlt: An,
faCommentDollar: In,
faCommentDots: Dn,
faCommentSlash: Rn,
faComments: wn,
faCommentsDollar: Ln,
faCompactDisc: Fn,
faCompass: Nn,
faCompress: kn,
faConciergeBell: zn,
faCookie: jn,
faCookieBite: Bn,
faCopy: Vn,
faCopyright: Gn,
faCouch: Un,
faCreditCard: Hn,
faCrop: Wn,
faCropAlt: Xn,
faCross: Yn,
faCrosshairs: Kn,
faCrow: Zn,
faCrown: qn,
faCube: Qn,
faCubes: Jn,
faCut: $n,
faDatabase: ei,
faDeaf: ti,
faDesktop: ni,
faDharmachakra: ii,
faDiagnoses: ri,
faDice: oi,
faDiceD20: ai,
faDiceD6: si,
faDiceFive: ci,
faDiceFour: li,
faDiceOne: ui,
faDiceSix: hi,
faDiceThree: di,
faDiceTwo: pi,
faDigitalTachograph: fi,
faDirections: mi,
faDivide: gi,
faDizzy: bi,
faDna: _i,
faDog: vi,
faDollarSign: yi,
faDolly: Ci,
faDollyFlatbed: Pi,
faDonate: xi,
faDoorClosed: Ti,
faDoorOpen: Si,
faDotCircle: Oi,
faDove: Ei,
faDownload: Mi,
faDraftingCompass: Ai,
faDragon: Ii,
faDrawPolygon: Di,
faDrum: Ri,
faDrumSteelpan: wi,
faDrumstickBite: Li,
faDumbbell: Fi,
faDungeon: Ni,
faEdit: ki,
faEject: zi,
faEllipsisH: ji,
faEllipsisV: Bi,
faEnvelope: Vi,
faEnvelopeOpen: Gi,
faEnvelopeOpenText: Ui,
faEnvelopeSquare: Hi,
faEquals: Wi,
faEraser: Xi,
faEuroSign: Yi,
faExchangeAlt: Ki,
faExclamation: Zi,
faExclamationCircle: qi,
faExclamationTriangle: Qi,
faExpand: Ji,
faExpandArrowsAlt: $i,
faExternalLinkAlt: er,
faExternalLinkSquareAlt: tr,
faEye: nr,
faEyeDropper: ir,
faEyeSlash: rr,
faFastBackward: or,
faFastForward: ar,
faFax: sr,
faFeather: cr,
faFeatherAlt: lr,
faFemale: ur,
faFighterJet: hr,
faFile: dr,
faFileAlt: pr,
faFileArchive: fr,
faFileAudio: mr,
faFileCode: gr,
faFileContract: br,
faFileCsv: _r,
faFileDownload: vr,
faFileExcel: yr,
faFileExport: Cr,
faFileImage: Pr,
faFileImport: xr,
faFileInvoice: Tr,
faFileInvoiceDollar: Sr,
faFileMedical: Or,
faFileMedicalAlt: Er,
faFilePdf: Mr,
faFilePowerpoint: Ar,
faFilePrescription: Ir,
faFileSignature: Dr,
faFileUpload: Rr,
faFileVideo: wr,
faFileWord: Lr,
faFill: Fr,
faFillDrip: Nr,
faFilm: kr,
faFilter: zr,
faFingerprint: jr,
faFire: Br,
faFireExtinguisher: Vr,
faFirstAid: Gr,
faFish: Ur,
faFistRaised: Hr,
faFlag: Wr,
faFlagCheckered: Xr,
faFlask: Yr,
faFlushed: Kr,
faFolder: Zr,
faFolderMinus: qr,
faFolderOpen: Qr,
faFolderPlus: Jr,
faFont: $r,
faFontAwesomeLogoFull: eo,
faFootballBall: to,
faForward: no,
faFrog: io,
faFrown: ro,
faFrownOpen: oo,
faFunnelDollar: ao,
faFutbol: so,
faGamepad: co,
faGasPump: lo,
faGavel: uo,
faGem: ho,
faGenderless: po,
faGhost: fo,
faGift: mo,
faGlassMartini: go,
faGlassMartiniAlt: bo,
faGlasses: _o,
faGlobe: vo,
faGlobeAfrica: yo,
faGlobeAmericas: Co,
faGlobeAsia: Po,
faGolfBall: xo,
faGopuram: To,
faGraduationCap: So,
faGreaterThan: Oo,
faGreaterThanEqual: Eo,
faGrimace: Mo,
faGrin: Ao,
faGrinAlt: Io,
faGrinBeam: Do,
faGrinBeamSweat: Ro,
faGrinHearts: wo,
faGrinSquint: Lo,
faGrinSquintTears: Fo,
faGrinStars: No,
faGrinTears: ko,
faGrinTongue: zo,
faGrinTongueSquint: jo,
faGrinTongueWink: Bo,
faGrinWink: Vo,
faGripHorizontal: Go,
faGripVertical: Uo,
faHSquare: Ho,
faHammer: Wo,
faHamsa: Xo,
faHandHolding: Yo,
faHandHoldingHeart: Ko,
faHandHoldingUsd: Zo,
faHandLizard: qo,
faHandPaper: Qo,
faHandPeace: Jo,
faHandPointDown: $o,
faHandPointLeft: ea,
faHandPointRight: ta,
faHandPointUp: na,
faHandPointer: ia,
faHandRock: ra,
faHandScissors: oa,
faHandSpock: aa,
faHands: sa,
faHandsHelping: ca,
faHandshake: la,
faHanukiah: ua,
faHashtag: ha,
faHatWizard: da,
faHaykal: pa,
faHdd: fa,
faHeading: ma,
faHeadphones: ga,
faHeadphonesAlt: ba,
faHeadset: _a,
faHeart: va,
faHeartbeat: ya,
faHelicopter: Ca,
faHighlighter: Pa,
faHiking: xa,
faHippo: Ta,
faHistory: Sa,
faHockeyPuck: Oa,
faHome: Ea,
faHorse: Ma,
faHospital: Aa,
faHospitalAlt: Ia,
faHospitalSymbol: Da,
faHotTub: Ra,
faHotel: wa,
faHourglass: La,
faHourglassEnd: Fa,
faHourglassHalf: Na,
faHourglassStart: ka,
faHouseDamage: za,
faHryvnia: ja,
faICursor: Ba,
faIdBadge: Va,
faIdCard: Ga,
faIdCardAlt: Ua,
faImage: Ha,
faImages: Wa,
faInbox: Xa,
faIndent: Ya,
faIndustry: Ka,
faInfinity: Za,
faInfo: qa,
faInfoCircle: Qa,
faItalic: Ja,
faJedi: $a,
faJoint: es,
faJournalWhills: ts,
faKaaba: ns,
faKey: is,
faKeyboard: rs,
faKhanda: os,
faKiss: as,
faKissBeam: ss,
faKissWinkHeart: cs,
faKiwiBird: ls,
faLandmark: us,
faLanguage: hs,
faLaptop: ds,
faLaptopCode: ps,
faLaugh: fs,
faLaughBeam: ms,
faLaughSquint: gs,
faLaughWink: bs,
faLayerGroup: _s,
faLeaf: vs,
faLemon: ys,
faLessThan: Cs,
faLessThanEqual: Ps,
faLevelDownAlt: xs,
faLevelUpAlt: Ts,
faLifeRing: Ss,
faLightbulb: Os,
faLink: Es,
faLiraSign: Ms,
faList: As,
faListAlt: Is,
faListOl: Ds,
faListUl: Rs,
faLocationArrow: ws,
faLock: Ls,
faLockOpen: Fs,
faLongArrowAltDown: Ns,
faLongArrowAltLeft: ks,
faLongArrowAltRight: zs,
faLongArrowAltUp: js,
faLowVision: Bs,
faLuggageCart: Vs,
faMagic: Gs,
faMagnet: Us,
faMailBulk: Hs,
faMale: Ws,
faMap: Xs,
faMapMarked: Ys,
faMapMarkedAlt: Ks,
faMapMarker: Zs,
faMapMarkerAlt: qs,
faMapPin: Qs,
faMapSigns: Js,
faMarker: $s,
faMars: ec,
faMarsDouble: tc,
faMarsStroke: nc,
faMarsStrokeH: ic,
faMarsStrokeV: rc,
faMask: oc,
faMedal: ac,
faMedkit: sc,
faMeh: cc,
faMehBlank: lc,
faMehRollingEyes: uc,
faMemory: hc,
faMenorah: dc,
faMercury: pc,
faMicrochip: fc,
faMicrophone: mc,
faMicrophoneAlt: gc,
faMicrophoneAltSlash: bc,
faMicrophoneSlash: _c,
faMicroscope: vc,
faMinus: yc,
faMinusCircle: Cc,
faMinusSquare: Pc,
faMobile: xc,
faMobileAlt: Tc,
faMoneyBill: Sc,
faMoneyBillAlt: Oc,
faMoneyBillWave: Ec,
faMoneyBillWaveAlt: Mc,
faMoneyCheck: Ac,
faMoneyCheckAlt: Ic,
faMonument: Dc,
faMoon: Rc,
faMortarPestle: wc,
faMosque: Lc,
faMotorcycle: Fc,
faMountain: Nc,
faMousePointer: kc,
faMusic: zc,
faNetworkWired: jc,
faNeuter: Bc,
faNewspaper: Vc,
faNotEqual: Gc,
faNotesMedical: Uc,
faObjectGroup: Hc,
faObjectUngroup: Wc,
faOilCan: Xc,
faOm: Yc,
faOtter: Kc,
faOutdent: Zc,
faPaintBrush: qc,
faPaintRoller: Qc,
faPalette: Jc,
faPallet: $c,
faPaperPlane: el,
faPaperclip: tl,
faParachuteBox: nl,
faParagraph: il,
faParking: rl,
faPassport: ol,
faPastafarianism: al,
faPaste: sl,
faPause: cl,
faPauseCircle: ll,
faPaw: ul,
faPeace: hl,
faPen: dl,
faPenAlt: pl,
faPenFancy: fl,
faPenNib: ml,
faPenSquare: gl,
faPencilAlt: bl,
faPencilRuler: _l,
faPeopleCarry: vl,
faPercent: yl,
faPercentage: Cl,
faPhone: Pl,
faPhoneSlash: xl,
faPhoneSquare: Tl,
faPhoneVolume: Sl,
faPiggyBank: Ol,
faPills: El,
faPlaceOfWorship: Ml,
faPlane: Al,
faPlaneArrival: Il,
faPlaneDeparture: Dl,
faPlay: Rl,
faPlayCircle: wl,
faPlug: Ll,
faPlus: Fl,
faPlusCircle: Nl,
faPlusSquare: kl,
faPodcast: zl,
faPoll: jl,
faPollH: Bl,
faPoo: Vl,
faPoop: Gl,
faPortrait: Ul,
faPoundSign: Hl,
faPowerOff: Wl,
faPray: Xl,
faPrayingHands: Yl,
faPrescription: Kl,
faPrescriptionBottle: Zl,
faPrescriptionBottleAlt: ql,
faPrint: Ql,
faProcedures: Jl,
faProjectDiagram: $l,
faPuzzlePiece: eu,
faQrcode: tu,
faQuestion: nu,
faQuestionCircle: iu,
faQuidditch: ru,
faQuoteLeft: ou,
faQuoteRight: au,
faQuran: su,
faRandom: cu,
faReceipt: lu,
faRecycle: uu,
faRedo: hu,
faRedoAlt: du,
faRegistered: pu,
faReply: fu,
faReplyAll: mu,
faRetweet: gu,
faRibbon: bu,
faRing: _u,
faRoad: vu,
faRobot: yu,
faRocket: Cu,
faRoute: Pu,
faRss: xu,
faRssSquare: Tu,
faRubleSign: Su,
faRuler: Ou,
faRulerCombined: Eu,
faRulerHorizontal: Mu,
faRulerVertical: Au,
faRunning: Iu,
faRupeeSign: Du,
faSadCry: Ru,
faSadTear: wu,
faSave: Lu,
faSchool: Fu,
faScrewdriver: Nu,
faScroll: ku,
faSearch: zu,
faSearchDollar: ju,
faSearchLocation: Bu,
faSearchMinus: Vu,
faSearchPlus: Gu,
faSeedling: Uu,
faServer: Hu,
faShapes: Wu,
faShare: Xu,
faShareAlt: Yu,
faShareAltSquare: Ku,
faShareSquare: Zu,
faShekelSign: qu,
faShieldAlt: Qu,
faShip: Ju,
faShippingFast: $u,
faShoePrints: eh,
faShoppingBag: th,
faShoppingBasket: nh,
faShoppingCart: ih,
faShower: rh,
faShuttleVan: oh,
faSign: ah,
faSignInAlt: sh,
faSignLanguage: ch,
faSignOutAlt: lh,
faSignal: uh,
faSignature: hh,
faSitemap: dh,
faSkull: ph,
faSkullCrossbones: fh,
faSlash: mh,
faSlidersH: gh,
faSmile: bh,
faSmileBeam: _h,
faSmileWink: vh,
faSmoking: yh,
faSmokingBan: Ch,
faSnowflake: Ph,
faSocks: xh,
faSolarPanel: Th,
faSort: Sh,
faSortAlphaDown: Oh,
faSortAlphaUp: Eh,
faSortAmountDown: Mh,
faSortAmountUp: Ah,
faSortDown: Ih,
faSortNumericDown: Dh,
faSortNumericUp: Rh,
faSortUp: wh,
faSpa: Lh,
faSpaceShuttle: Fh,
faSpider: Nh,
faSpinner: kh,
faSplotch: zh,
faSprayCan: jh,
faSquare: Bh,
faSquareFull: Vh,
faSquareRootAlt: Gh,
faStamp: Uh,
faStar: Hh,
faStarAndCrescent: Wh,
faStarHalf: Xh,
faStarHalfAlt: Yh,
faStarOfDavid: Kh,
faStarOfLife: Zh,
faStepBackward: qh,
faStepForward: Qh,
faStethoscope: Jh,
faStickyNote: $h,
faStop: ed,
faStopCircle: td,
faStopwatch: nd,
faStore: id,
faStoreAlt: rd,
faStream: od,
faStreetView: ad,
faStrikethrough: sd,
faStroopwafel: cd,
faSubscript: ld,
faSubway: ud,
faSuitcase: hd,
faSuitcaseRolling: dd,
faSun: pd,
faSuperscript: fd,
faSurprise: md,
faSwatchbook: gd,
faSwimmer: bd,
faSwimmingPool: _d,
faSynagogue: vd,
faSync: yd,
faSyncAlt: Cd,
faSyringe: Pd,
faTable: xd,
faTableTennis: Td,
faTablet: Sd,
faTabletAlt: Od,
faTablets: Ed,
faTachometerAlt: Md,
faTag: Ad,
faTags: Id,
faTape: Dd,
faTasks: Rd,
faTaxi: wd,
faTeeth: Ld,
faTeethOpen: Fd,
faTerminal: Nd,
faTextHeight: kd,
faTextWidth: zd,
faTh: jd,
faThLarge: Bd,
faThList: Vd,
faTheaterMasks: Gd,
faThermometer: Ud,
faThermometerEmpty: Hd,
faThermometerFull: Wd,
faThermometerHalf: Xd,
faThermometerQuarter: Yd,
faThermometerThreeQuarters: Kd,
faThumbsDown: Zd,
faThumbsUp: qd,
faThumbtack: Qd,
faTicketAlt: Jd,
faTimes: $d,
faTimesCircle: ep,
faTint: tp,
faTintSlash: np,
faTired: ip,
faToggleOff: rp,
faToggleOn: op,
faToiletPaper: ap,
faToolbox: sp,
faTooth: cp,
faTorah: lp,
faToriiGate: up,
faTractor: hp,
faTrademark: dp,
faTrafficLight: pp,
faTrain: fp,
faTransgender: mp,
faTransgenderAlt: gp,
faTrash: bp,
faTrashAlt: _p,
faTree: vp,
faTrophy: yp,
faTruck: Cp,
faTruckLoading: Pp,
faTruckMonster: xp,
faTruckMoving: Tp,
faTruckPickup: Sp,
faTshirt: Op,
faTty: Ep,
faTv: Mp,
faUmbrella: Ap,
faUmbrellaBeach: Ip,
faUnderline: Dp,
faUndo: Rp,
faUndoAlt: wp,
faUniversalAccess: Lp,
faUniversity: Fp,
faUnlink: Np,
faUnlock: kp,
faUnlockAlt: zp,
faUpload: jp,
faUser: Bp,
faUserAlt: Vp,
faUserAltSlash: Gp,
faUserAstronaut: Up,
faUserCheck: Hp,
faUserCircle: Wp,
faUserClock: Xp,
faUserCog: Yp,
faUserEdit: Kp,
faUserFriends: Zp,
faUserGraduate: qp,
faUserInjured: Qp,
faUserLock: Jp,
faUserMd: $p,
faUserMinus: ef,
faUserNinja: tf,
faUserPlus: nf,
faUserSecret: rf,
faUserShield: of,
faUserSlash: af,
faUserTag: sf,
faUserTie: cf,
faUserTimes: lf,
faUsers: uf,
faUsersCog: hf,
faUtensilSpoon: df,
faUtensils: pf,
faVectorSquare: ff,
faVenus: mf,
faVenusDouble: gf,
faVenusMars: bf,
faVial: _f,
faVials: vf,
faVideo: yf,
faVideoSlash: Cf,
faVihara: Pf,
faVolleyballBall: xf,
faVolumeDown: Tf,
faVolumeMute: Sf,
faVolumeOff: Of,
faVolumeUp: Ef,
faVrCardboard: Mf,
faWalking: Af,
faWallet: If,
faWarehouse: Df,
faWeight: Rf,
faWeightHanging: wf,
faWheelchair: Lf,
faWifi: Ff,
faWind: Nf,
faWindowClose: kf,
faWindowMaximize: zf,
faWindowMinimize: jf,
faWindowRestore: Bf,
faWineBottle: Vf,
faWineGlass: Gf,
faWineGlassAlt: Uf,
faWonSign: Hf,
faWrench: Wf,
faXRay: Xf,
faYenSign: Yf,
faYinYang: Kf,
};
},
"../../../../node_modules/@fortawesome/react-fontawesome/index.es.js": function (e, t, n) {
"use strict";
n.r(t),
function (e) {
n.d(t, "FontAwesomeIcon", function () {
return v;
});
var i = n("../../../../node_modules/@fortawesome/fontawesome-svg-core/index.es.js"),
r = n("../../../../node_modules/prop-types/index.js"),
o = n.n(r),
a = n("../../../../node_modules/react/index.js"),
s = n.n(a);
function c(e) {
return (c =
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
? function (e) {
return typeof e;
}
: function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
})(e);
}
function l(e, t, n) {
return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e;
}
function u(e) {
for (var t = 1; t < arguments.length; t++) {
var n = null != arguments[t] ? arguments[t] : {},
i = Object.keys(n);
"function" == typeof Object.getOwnPropertySymbols &&
(i = i.concat(
Object.getOwnPropertySymbols(n).filter(function (e) {
return Object.getOwnPropertyDescriptor(n, e).enumerable;
})
)),
i.forEach(function (t) {
l(e, t, n[t]);
});
}
return e;
}
function h(e, t) {
if (null == e) return {};
var n,
i,
r = (function (e, t) {
if (null == e) return {};
var n,
i,
r = {},
o = Object.keys(e);
for (i = 0; i < o.length; i++) (n = o[i]), t.indexOf(n) >= 0 || (r[n] = e[n]);
return r;
})(e, t);
if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(e);
for (i = 0; i < o.length; i++) (n = o[i]), t.indexOf(n) >= 0 || (Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]));
}
return r;
}
function d(e) {
return (
(function (e) {
if (Array.isArray(e)) {
for (var t = 0, n = new Array(e.length); t < e.length; t++) n[t] = e[t];
return n;
}
})(e) ||
(function (e) {
if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e);
})(e) ||
(function () {
throw new TypeError("Invalid attempt to spread non-iterable instance");
})()
);
}
var p = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {},
f = (function (e, t) {
return e((t = { exports: {} }), t.exports), t.exports;
})(function (e) {
!(function (t) {
var n = function (e, t, i) {
if (!c(t) || u(t) || h(t) || d(t) || s(t)) return t;
var r,
o = 0,
a = 0;
if (l(t)) for (r = [], a = t.length; o < a; o++) r.push(n(e, t[o], i));
else for (var p in ((r = {}), t)) Object.prototype.hasOwnProperty.call(t, p) && (r[e(p, i)] = n(e, t[p], i));
return r;
},
i = function (e) {
return p(e)
? e
: (e = e.replace(/[\-_\s]+(.)?/g, function (e, t) {
return t ? t.toUpperCase() : "";
}))
.substr(0, 1)
.toLowerCase() + e.substr(1);
},
r = function (e) {
var t = i(e);
return t.substr(0, 1).toUpperCase() + t.substr(1);
},
o = function (e, t) {
return (function (e, t) {
var n = (t = t || {}).separator || "_",
i = t.split || /(?=[A-Z])/;
return e.split(i).join(n);
})(e, t).toLowerCase();
},
a = Object.prototype.toString,
s = function (e) {
return "function" == typeof e;
},
c = function (e) {
return e === Object(e);
},
l = function (e) {
return "[object Array]" == a.call(e);
},
u = function (e) {
return "[object Date]" == a.call(e);
},
h = function (e) {
return "[object RegExp]" == a.call(e);
},
d = function (e) {
return "[object Boolean]" == a.call(e);
},
p = function (e) {
return (e -= 0) == e;
},
f = function (e, t) {
var n = t && "process" in t ? t.process : t;
return "function" != typeof n
? e
: function (t, i) {
return n(t, e, i);
};
},
m = {
camelize: i,
decamelize: o,
pascalize: r,
depascalize: o,
camelizeKeys: function (e, t) {
return n(f(i, t), e);
},
decamelizeKeys: function (e, t) {
return n(f(o, t), e, t);
},
pascalizeKeys: function (e, t) {
return n(f(r, t), e);
},
depascalizeKeys: function () {
return this.decamelizeKeys.apply(this, arguments);
},
};
e.exports ? (e.exports = m) : (t.humps = m);
})(p);
});
function m(e) {
return e
.split(";")
.map(function (e) {
return e.trim();
})
.filter(function (e) {
return e;
})
.reduce(function (e, t) {
var n,
i = t.indexOf(":"),
r = f.camelize(t.slice(0, i)),
o = t.slice(i + 1).trim();
return r.startsWith("webkit") ? (e[((n = r), n.charAt(0).toUpperCase() + n.slice(1))] = o) : (e[r] = o), e;
}, {});
}
var g = !1;
try {
g = !1;
} catch (e) {}
function b(e, t) {
return (Array.isArray(t) && t.length > 0) || (!Array.isArray(t) && t) ? l({}, e, t) : {};
}
function _(e) {
return null === e
? null
: "object" === c(e) && e.prefix && e.iconName
? e
: Array.isArray(e) && 2 === e.length
? { prefix: e[0], iconName: e[1] }
: "string" == typeof e
? { prefix: "fas", iconName: e }
: void 0;
}
function v(e) {
var t = e.icon,
n = e.mask,
r = e.symbol,
o = e.className,
a = e.title,
s = _(t),
c = b(
"classes",
[].concat(
d(
(function (e) {
var t,
n =
(l(
(t = {
"fa-spin": e.spin,
"fa-pulse": e.pulse,
"fa-fw": e.fixedWidth,
"fa-inverse": e.inverse,
"fa-border": e.border,
"fa-li": e.listItem,
"fa-flip-horizontal": "horizontal" === e.flip || "both" === e.flip,
"fa-flip-vertical": "vertical" === e.flip || "both" === e.flip,
}),
"fa-".concat(e.size),
null !== e.size
),
l(t, "fa-rotate-".concat(e.rotation), null !== e.rotation),
l(t, "fa-pull-".concat(e.pull), null !== e.pull),
t);
return Object.keys(n)
.map(function (e) {
return n[e] ? e : null;
})
.filter(function (e) {
return e;
});
})(e)
),
d(o.split(" "))
)
),
h = b("transform", "string" == typeof e.transform ? i.parse.transform(e.transform) : e.transform),
p = b("mask", _(n)),
f = Object(i.icon)(s, u({}, c, h, p, { symbol: r, title: a }));
if (!f)
return (
(function () {
var e;
!g && console && "function" == typeof console.error && (e = console).error.apply(e, arguments);
})("Could not find icon", s),
null
);
var m = f.abstract,
C = {};
return (
Object.keys(e).forEach(function (t) {
v.defaultProps.hasOwnProperty(t) || (C[t] = e[t]);
}),
y(m[0], C)
);
}
(v.displayName = "FontAwesomeIcon"),
(v.propTypes = {
border: o.a.bool,
className: o.a.string,
mask: o.a.oneOfType([o.a.object, o.a.array, o.a.string]),
fixedWidth: o.a.bool,
inverse: o.a.bool,
flip: o.a.oneOf(["horizontal", "vertical", "both"]),
icon: o.a.oneOfType([o.a.object, o.a.array, o.a.string]),
listItem: o.a.bool,
pull: o.a.oneOf(["right", "left"]),
pulse: o.a.bool,
rotation: o.a.oneOf([90, 180, 270]),
size: o.a.oneOf(["lg", "xs", "sm", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x", "9x", "10x"]),
spin: o.a.bool,
symbol: o.a.oneOfType([o.a.bool, o.a.string]),
title: o.a.string,
transform: o.a.oneOfType([o.a.string, o.a.object]),
}),
(v.defaultProps = {
border: !1,
className: "",
mask: null,
fixedWidth: !1,
inverse: !1,
flip: null,
icon: null,
listItem: !1,
pull: null,
pulse: !1,
rotation: null,
size: null,
spin: !1,
symbol: !1,
title: "",
transform: null,
});
var y = function e(t, n) {
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
if ("string" == typeof n) return n;
var r = (n.children || []).map(function (n) {
return e(t, n);
}),
o = Object.keys(n.attributes || {}).reduce(
function (e, t) {
var i = n.attributes[t];
switch (t) {
case "class":
(e.attrs.className = i), delete n.attributes.class;
break;
case "style":
e.attrs.style = m(i);
break;
default:
0 === t.indexOf("aria-") || 0 === t.indexOf("data-") ? (e.attrs[t.toLowerCase()] = i) : (e.attrs[f.camelize(t)] = i);
}
return e;
},
{ attrs: {} }
),
a = i.style,
s = void 0 === a ? {} : a,
c = h(i, ["style"]);
return (o.attrs.style = u({}, o.attrs.style, s)), t.apply(void 0, [n.tag, u({}, o.attrs, c)].concat(d(r)));
}.bind(null, s.a.createElement);
}.call(this, n("../../../../node_modules/webpack/buildin/global.js"));
},
"../../../../node_modules/classnames/index.js": function (e, t, n) {
var i;
!(function () {
"use strict";
var n = {}.hasOwnProperty;
function r() {
for (var e = [], t = 0; t < arguments.length; t++) {
var i = arguments[t];
if (i) {
var o = typeof i;
if ("string" === o || "number" === o) e.push(i);
else if (Array.isArray(i) && i.length) {
var a = r.apply(null, i);
a && e.push(a);
} else if ("object" === o) for (var s in i) n.call(i, s) && i[s] && e.push(s);
}
}
return e.join(" ");
}
e.exports
? ((r.default = r), (e.exports = r))
: void 0 ===
(i = function () {
return r;
}.apply(t, [])) || (e.exports = i);
})();
},
"../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./components/actionTabs/actionTabs.scss": function (e, t, n) {
(e.exports = n("../../../../node_modules/css-loader/lib/css-base.js")(!1)).push([
e.i,
'#inspector-host {\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0px; }\n\n#__resizable_base__ {\n display: none; }\n\n#actionTabs {\n background: #333333;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: auto 1fr;\n font: 14px "Arial";\n overflow: hidden; }\n #actionTabs .hoverIcon:hover {\n opacity: 0.8; }\n #actionTabs #header {\n height: 30px;\n font-size: 16px;\n color: white;\n background: #222222;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #actionTabs #header #logo {\n grid-column: 1;\n width: 24px;\n height: 24px;\n display: flex;\n align-self: center;\n justify-self: center; }\n #actionTabs #header #back {\n grid-column: 1;\n display: grid;\n align-self: center;\n justify-self: center;\n cursor: pointer; }\n #actionTabs #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #actionTabs #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #actionTabs #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs {\n display: grid;\n grid-row: 2;\n grid-template-rows: 40px 1fr;\n font: 14px "Arial";\n overflow: hidden; }\n #actionTabs .tabs .labels {\n grid-row: 1;\n display: flex;\n align-items: center;\n justify-items: center;\n border-bottom: 1px solid #ffffff;\n margin: 0;\n padding: 0; }\n #actionTabs .tabs .labels .label {\n font-size: 24px;\n color: white;\n width: 40px;\n display: flex;\n align-content: center;\n justify-content: center;\n border: 1px solid transparent;\n border-bottom: none;\n background: #333333;\n padding: 5px;\n height: 28px;\n cursor: pointer; }\n #actionTabs .tabs .labels .label.active {\n border-color: #ffffff;\n border-bottom: 2px solid transparent;\n margin-bottom: -2px; }\n #actionTabs .tabs .panes {\n grid-row: 2;\n display: grid;\n grid-template-rows: 100%;\n overflow: hidden; }\n #actionTabs .tabs .panes .infoMessage {\n opacity: 0.5;\n color: white;\n margin: 15px 5px 0px 5px; }\n #actionTabs .tabs .panes .pane {\n color: white;\n overflow-x: hidden;\n overflow-y: auto;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #actionTabs .tabs .panes .pane .underline {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.5); }\n #actionTabs .tabs .panes .pane .textureLinkLine {\n display: grid;\n grid-template-columns: auto 1fr; }\n #actionTabs .tabs .panes .pane .textureLinkLine .debug {\n grid-column: 1;\n margin-left: 5px;\n margin-right: 5px;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer;\n opacity: 0.5; }\n #actionTabs .tabs .panes .pane .textureLinkLine .debug.selected {\n opacity: 1.0; }\n #actionTabs .tabs .panes .pane .textureLinkLine .textLine {\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .messageLine {\n text-align: center;\n font-size: 12px;\n font-style: italic;\n opacity: 0.6; }\n #actionTabs .tabs .panes .pane .iconMessageLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 30px 1fr; }\n #actionTabs .tabs .panes .pane .iconMessageLine .icon {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center; }\n #actionTabs .tabs .panes .pane .iconMessageLine .value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .textLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .textLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .textLine .link-value {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 140px;\n text-decoration: underline;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .textLine .value {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 200px;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text; }\n #actionTabs .tabs .panes .pane .textLine .value.check {\n color: green; }\n #actionTabs .tabs .panes .pane .textLine .value.uncheck {\n color: red; }\n #actionTabs .tabs .panes .pane .textInputLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr 120px; }\n #actionTabs .tabs .panes .pane .textInputLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .textInputLine .value {\n display: flex;\n align-items: center;\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .textInputLine .value input {\n width: 110px; }\n #actionTabs .tabs .panes .pane .buttonLine {\n height: 30px;\n display: grid;\n align-items: center;\n justify-items: stretch; }\n #actionTabs .tabs .panes .pane .buttonLine input[type="file"] {\n display: none; }\n #actionTabs .tabs .panes .pane .buttonLine .file-upload {\n background: #222222;\n border: 1px solid #337ab7;\n margin: 5px 10px 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9;\n cursor: pointer;\n text-align: center; }\n #actionTabs .tabs .panes .pane .buttonLine .file-upload:hover {\n opacity: 1.0; }\n #actionTabs .tabs .panes .pane .buttonLine .file-upload:active {\n transform: scale(0.98);\n transform-origin: 0.5 0.5; }\n #actionTabs .tabs .panes .pane .buttonLine button {\n background: #222222;\n border: 1px solid #337ab7;\n margin: 5px 10px 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9; }\n #actionTabs .tabs .panes .pane .buttonLine button:hover {\n opacity: 1.0; }\n #actionTabs .tabs .panes .pane .buttonLine button:active {\n background: #282828; }\n #actionTabs .tabs .panes .pane .buttonLine button:focus {\n border: 1px solid #337ab7;\n outline: 0px; }\n #actionTabs .tabs .panes .pane .radioLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr 24px; }\n #actionTabs .tabs .panes .pane .radioLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer {\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .radio {\n grid-column: 2;\n display: none; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .radio:checked + label:before {\n border-color: #337ab7; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .radio:checked + label:after {\n transform: scale(1); }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio {\n display: inline-block;\n height: 14px;\n position: relative;\n padding: 0 24px;\n margin-bottom: 0;\n cursor: pointer;\n vertical-align: bottom; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:before, #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:after {\n position: absolute;\n content: \'\';\n border-radius: 50%;\n transition: all .3s ease;\n transition-property: transform, border-color; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:before {\n left: 0px;\n top: 0;\n width: 16px;\n height: 16px;\n border: 2px solid white; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:after {\n top: 6px;\n left: 6px;\n width: 8px;\n height: 8px;\n transform: scale(0);\n background: #337ab7; }\n #actionTabs .tabs .panes .pane .vector3Line {\n padding-left: 2px;\n display: grid; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine {\n display: grid;\n grid-template-columns: 1fr auto 20px;\n height: 30px; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine .vector {\n grid-column: 2;\n display: flex;\n align-items: center;\n text-align: right;\n opacity: 0.8; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine .expand {\n grid-column: 3;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .checkBoxLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .checkBoxLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .lbl {\n position: relative;\n display: block;\n height: 14px;\n width: 34px;\n margin-right: 5px;\n background: #898989;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.3s ease; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .lbl:after {\n position: absolute;\n left: 3px;\n top: 2px;\n display: block;\n width: 10px;\n height: 10px;\n border-radius: 100px;\n background: #fff;\n box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);\n content: \'\';\n transition: all 0.15s ease; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .lbl:active:after {\n transform: scale(1.15, 0.85); }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .cbx:checked ~ label {\n background: #337ab7; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .cbx:checked ~ label:after {\n left: 20px;\n background: #164975; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .hidden {\n display: none; }\n #actionTabs .tabs .panes .pane .textureLine {\n display: grid;\n grid-template-rows: 30px auto; }\n #actionTabs .tabs .panes .pane .textureLine .control {\n margin-top: 2px;\n grid-row: 1;\n display: grid;\n grid-template-columns: 1fr 40px 40px 40px 40px 40px 1fr; }\n #actionTabs .tabs .panes .pane .textureLine .control .red {\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .textureLine .control .green {\n grid-column: 3; }\n #actionTabs .tabs .panes .pane .textureLine .control .blue {\n grid-column: 4; }\n #actionTabs .tabs .panes .pane .textureLine .control .alpha {\n grid-column: 5; }\n #actionTabs .tabs .panes .pane .textureLine .control .all {\n grid-column: 6; }\n #actionTabs .tabs .panes .pane .textureLine .control3D {\n margin-top: 2px;\n grid-row: 1;\n display: grid;\n grid-template-columns: 1fr 40px 40px 40px 40px 40px 40px 1fr; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .px {\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .nx {\n grid-column: 3; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .py {\n grid-column: 4; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .ny {\n grid-column: 5; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .pz {\n grid-column: 6; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .nz {\n grid-column: 7; }\n #actionTabs .tabs .panes .pane .textureLine .command {\n border: 1px solid transparent;\n background: transparent;\n color: white; }\n #actionTabs .tabs .panes .pane .textureLine .selected {\n border: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .textureLine .preview {\n grid-row: 2;\n display: grid;\n align-self: center;\n justify-self: center;\n height: 256px;\n width: 256px;\n margin-top: 5px;\n margin-bottom: 5px;\n border: 2px solid rgba(255, 255, 255, 0.4); }\n #actionTabs .tabs .panes .pane .gltf-extension-property {\n margin-left: 30px;\n border-left: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .floatLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr 120px; }\n #actionTabs .tabs .panes .pane .floatLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .floatLine .value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .floatLine .value input {\n width: 110px; }\n #actionTabs .tabs .panes .pane .sliderLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .sliderLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .sliderLine .slider {\n grid-column: 2;\n margin-right: 5px;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range {\n -webkit-appearance: none;\n width: 120px;\n height: 6px;\n background: #d3d3d3;\n border-radius: 5px;\n outline: none;\n opacity: 0.7;\n -webkit-transition: .2s;\n transition: opacity .2s; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range:hover {\n opacity: 1; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #337ab7;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range::-moz-range-thumb {\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #337ab7;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .color3Line {\n padding-left: 2px;\n display: grid; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine {\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto 20px 20px; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input[type="color"] {\n -webkit-appearance: none;\n border: 1px solid rgba(255, 255, 255, 0.5);\n padding: 0;\n width: 30px;\n height: 20px; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input[type="color"]::-webkit-color-swatch-wrapper {\n padding: 0; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input[type="color"]::-webkit-color-swatch {\n border: none; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input {\n margin-right: 5px; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .copy {\n grid-column: 3;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .copy img {\n height: 100%; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .expand {\n grid-column: 4;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .listLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .listLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .listLine .options {\n grid-column: 2;\n display: flex;\n align-items: center;\n margin-right: 5px; }\n #actionTabs .tabs .panes .pane .listLine .options select {\n width: 115px; }\n #actionTabs .tabs .panes .pane .paneContainer {\n margin-top: 3px;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%; }\n #actionTabs .tabs .panes .pane .paneContainer .paneList {\n border-left: 3px solid transparent; }\n #actionTabs .tabs .panes .pane .paneContainer:hover .paneList {\n border-left: 3px solid rgba(51, 122, 183, 0.8); }\n #actionTabs .tabs .panes .pane .paneContainer:hover .paneContainer-content .header .title {\n border-left: 3px solid #337ab7; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-highlight-border {\n grid-row: 1;\n grid-column: 1;\n opacity: 1;\n border: 3px solid red;\n transition: opacity 250ms;\n pointer-events: none; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-highlight-border.transparent {\n opacity: 0; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content {\n grid-row: 1;\n grid-column: 1; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header {\n display: grid;\n grid-template-columns: 1fr auto;\n background: #555555;\n height: 30px;\n padding-right: 5px;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header .title {\n border-left: 3px solid transparent;\n padding-left: 5px;\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header .collapse {\n grid-column: 2;\n display: flex;\n align-items: center;\n justify-items: center;\n transform-origin: center; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header .collapse.closed {\n transform: rotate(180deg); }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .paneList > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .fragment > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n',
"",
]);
},
"../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./components/embedHost/embedHost.scss": function (e, t, n) {
(e.exports = n("../../../../node_modules/css-loader/lib/css-base.js")(!1)).push([
e.i,
'#embed-host {\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0px; }\n\n#__resizable_base__ {\n display: none; }\n\n#embed {\n background: #333333;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: 30px 1fr;\n font: 14px "Arial";\n overflow: hidden; }\n #embed #header {\n font-size: 16px;\n color: white;\n background: #222222;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #embed #header #logo {\n grid-column: 1;\n width: 24px;\n height: 24px;\n display: flex;\n align-self: center;\n justify-self: center; }\n #embed #header #back {\n grid-column: 1;\n display: grid;\n align-self: center;\n justify-self: center;\n cursor: pointer; }\n #embed #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #embed #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #embed #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #embed #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #embed #split {\n grid-row: 2;\n overflow: hidden; }\n #embed #split.splitPopup {\n display: grid;\n grid-template-rows: 300px 2px 1fr; }\n #embed #split.splitPopup .panes {\n margin-bottom: 1px; }\n #embed #split #topPart {\n grid-row: 1;\n overflow: hidden;\n display: grid;\n grid-auto-rows: 100%; }\n #embed #split #separator {\n grid-row: 2;\n background: white;\n opacity: 0.1; }\n #embed #split #bottomPart {\n overflow: hidden;\n grid-row: 3;\n display: grid;\n grid-auto-rows: 100%; }\n #embed #split .gutter.gutter-vertical {\n background-image: none;\n background: #444444;\n cursor: row-resize; }\n',
"",
]);
},
"../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./components/sceneExplorer/sceneExplorer.scss": function (e, t, n) {
(e.exports = n("../../../../node_modules/css-loader/lib/css-base.js")(!1)).push([
e.i,
'#scene-explorer-host {\n position: absolute;\n left: 0px;\n top: 0px;\n bottom: 0px; }\n #scene-explorer-host:focus {\n outline: none; }\n\n#__resizable_base__ {\n display: none; }\n\n.context-menu {\n background: #222222; }\n .context-menu .react-contextmenu-item {\n padding: 10px;\n cursor: pointer; }\n .context-menu .react-contextmenu-item:hover {\n background: #555555; }\n\n.react-contextmenu.context-menu.react-contextmenu--visible {\n z-index: 99;\n transform: scale(1); }\n\n#sceneExplorer {\n background: #333333;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: auto 1fr;\n font: 14px "Arial"; }\n #sceneExplorer:focus {\n outline: none; }\n #sceneExplorer #header {\n height: 30px;\n font-size: 16px;\n color: white;\n background: #222222;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #sceneExplorer #header #logo {\n position: relative;\n grid-column: 1;\n width: 24px;\n height: 24px;\n left: 0;\n display: flex;\n align-self: center;\n justify-self: center; }\n #sceneExplorer #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #sceneExplorer #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #sceneExplorer #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #sceneExplorer #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #sceneExplorer #tree {\n grid-row: 2;\n overflow-x: hidden;\n overflow-y: auto; }\n #sceneExplorer .filter {\n display: flex;\n align-items: stretch; }\n #sceneExplorer .filter input {\n width: 100%;\n margin: 10px 40px 5px 40px;\n display: block;\n border: none;\n padding: 0;\n border-bottom: solid 1px #337ab7;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #337ab7 4%);\n background-position: -1000px 0;\n background-size: 1000px 100%;\n background-repeat: no-repeat;\n color: white; }\n #sceneExplorer .filter input::placeholder {\n color: lightgray; }\n #sceneExplorer .filter input:focus {\n box-shadow: none;\n outline: none;\n background-position: 0 0; }\n #sceneExplorer .groupContainer {\n margin-left: 0px;\n color: white;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n align-self: center;\n display: grid;\n align-items: center; }\n #sceneExplorer .groupContainer:hover {\n background: #444444; }\n #sceneExplorer .groupContainer .expandableHeader {\n display: grid;\n grid-template-columns: 1fr 20px; }\n #sceneExplorer .groupContainer .expandableHeader .text {\n grid-column: 1;\n display: grid;\n grid-template-columns: 20px 1fr; }\n #sceneExplorer .groupContainer .expandableHeader .text .arrow {\n grid-column: 1;\n margin-left: 0px;\n color: white;\n cursor: pointer;\n display: inline-block;\n margin-right: 6px;\n opacity: 0.5; }\n #sceneExplorer .groupContainer .expandableHeader .text .text-value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #sceneExplorer .groupContainer .expandableHeader .expandAll {\n opacity: 0.5;\n grid-column: 2;\n margin-right: 10px; }\n #sceneExplorer .icon {\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #sceneExplorer .itemContainer {\n margin-left: 0px;\n color: white;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: grid;\n grid-template-columns: 20px 1fr; }\n #sceneExplorer .itemContainer:hover {\n background: #444444; }\n #sceneExplorer .itemContainer.selected {\n background: #bbbbbb;\n color: black; }\n #sceneExplorer .itemContainer .isNotActive {\n opacity: 0.3; }\n #sceneExplorer .itemContainer .arrow {\n grid-column: 1;\n color: white;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .popup {\n width: 200px;\n visibility: hidden;\n background-color: #444444;\n color: #fff;\n border: 1px solid rgba(255, 255, 255, 0.5);\n position: absolute;\n z-index: 1;\n margin-left: -180px;\n box-sizing: border-box; }\n #sceneExplorer .itemContainer .popup.show {\n visibility: visible; }\n #sceneExplorer .itemContainer .popup:focus {\n outline: none; }\n #sceneExplorer .itemContainer .popup .popupMenu {\n padding: 6px 5px 5px 10px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: 18px; }\n #sceneExplorer .itemContainer .popup .popupMenu:hover {\n background: white;\n color: #333333; }\n #sceneExplorer .itemContainer .sceneNode {\n grid-column: 2;\n margin-left: -10px;\n display: grid;\n grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\n align-items: center;\n cursor: pointer; }\n #sceneExplorer .itemContainer .sceneNode .sceneTitle {\n grid-column: 1;\n margin-right: 5px;\n display: flex;\n align-items: center;\n height: 24px; }\n #sceneExplorer .itemContainer .sceneNode .translation {\n grid-column: 2;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .translation.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .rotation {\n grid-column: 3;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .rotation.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .scaling {\n grid-column: 4;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .scaling.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .bounding {\n grid-column: 5;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .bounding.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .separator {\n grid-column: 6;\n margin-left: 5px;\n width: 5px;\n display: flex;\n align-items: center;\n height: 18px;\n border-left: solid 1px #337ab7; }\n #sceneExplorer .itemContainer .sceneNode .pickingMode {\n grid-column: 7;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .pickingMode.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .refresh {\n grid-column: 8; }\n #sceneExplorer .itemContainer .sceneNode .extensions {\n width: 20px;\n grid-column: 9; }\n #sceneExplorer .itemContainer .animationGroupTools {\n grid-column: 2;\n width: 100%;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center;\n min-width: 0; }\n #sceneExplorer .itemContainer .animationGroupTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .meshTools {\n grid-column: 2;\n width: 100%;\n display: grid;\n grid-template-columns: 1fr 20px 20px auto 5px;\n align-items: center;\n min-width: 0; }\n #sceneExplorer .itemContainer .meshTools .bounding-box {\n grid-column: 2;\n opacity: 0.5; }\n #sceneExplorer .itemContainer .meshTools .bounding-box.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .meshTools .visibility {\n grid-column: 3; }\n #sceneExplorer .itemContainer .meshTools .extensions {\n width: 20px;\n grid-column: 4; }\n #sceneExplorer .itemContainer .cameraTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .cameraTools .activeCamera {\n grid-column: 2; }\n #sceneExplorer .itemContainer .cameraTools .extensions {\n width: 20px;\n grid-column: 3; }\n #sceneExplorer .itemContainer .lightTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .lightTools .enableLight {\n grid-column: 2; }\n #sceneExplorer .itemContainer .lightTools .extensions {\n width: 20px;\n grid-column: 3; }\n #sceneExplorer .itemContainer .materialTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .materialTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .postProcessTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .postProcessTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .renderingPipelineTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .renderingPipelineTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .textureTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .textureTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .adtextureTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .adtextureTools .pickingMode {\n grid-column: 2;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .adtextureTools .pickingMode.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .adtextureTools .extensions {\n width: 20px;\n grid-column: 3; }\n #sceneExplorer .itemContainer .controlTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .controlTools .highlight {\n grid-column: 2; }\n #sceneExplorer .itemContainer .controlTools .visibility {\n grid-column: 3; }\n #sceneExplorer .itemContainer .controlTools .extensions {\n width: 20px;\n grid-column: 4; }\n #sceneExplorer .itemContainer .transformNodeTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .transformNodeTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .skeletonTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .skeletonTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .title {\n grid-column: 1;\n background: transparent;\n white-space: nowrap;\n overflow: hidden;\n min-width: 0;\n margin-right: 5px;\n display: grid;\n align-items: center;\n grid-template-columns: 25px 1fr;\n height: 24px;\n cursor: pointer; }\n #sceneExplorer .itemContainer .title .titleIcon {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center; }\n #sceneExplorer .itemContainer .title .titleText {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n',
"",
]);
},
"../../../../node_modules/css-loader/lib/css-base.js": function (e, t) {
e.exports = function (e) {
var t = [];
return (
(t.toString = function () {
return this.map(function (t) {
var n = (function (e, t) {
var n,
i = e[1] || "",
r = e[3];
if (!r) return i;
if (t && "function" == typeof btoa) {
var o = ((n = r), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(n)))) + " */"),
a = r.sources.map(function (e) {
return "/*# sourceURL=" + r.sourceRoot + e + " */";
});
return [i].concat(a).concat([o]).join("\n");
}
return [i].join("\n");
})(t, e);
return t[2] ? "@media " + t[2] + "{" + n + "}" : n;
}).join("");
}),
(t.i = function (e, n) {
"string" == typeof e && (e = [[null, e, ""]]);
for (var i = {}, r = 0; r < this.length; r++) {
var o = this[r][0];
"number" == typeof o && (i[o] = !0);
}
for (r = 0; r < e.length; r++) {
var a = e[r];
("number" == typeof a[0] && i[a[0]]) || (n && !a[2] ? (a[2] = n) : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), t.push(a));
}
}),
t
);
};
},
"../../../../node_modules/object-assign/index.js": function (e, t, n) {
"use strict";
var i = Object.getOwnPropertySymbols,
r = Object.prototype.hasOwnProperty,
o = Object.prototype.propertyIsEnumerable;
function a(e) {
if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined");
return Object(e);
}
e.exports = (function () {
try {
if (!Object.assign) return !1;
var e = new String("abc");
if (((e[5] = "de"), "5" === Object.getOwnPropertyNames(e)[0])) return !1;
for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n;
if (
"0123456789" !==
Object.getOwnPropertyNames(t)
.map(function (e) {
return t[e];
})
.join("")
)
return !1;
var i = {};
return (
"abcdefghijklmnopqrst".split("").forEach(function (e) {
i[e] = e;
}),
"abcdefghijklmnopqrst" === Object.keys(Object.assign({}, i)).join("")
);
} catch (e) {
return !1;
}
})()
? Object.assign
: function (e, t) {
for (var n, s, c = a(e), l = 1; l < arguments.length; l++) {
for (var u in (n = Object(arguments[l]))) r.call(n, u) && (c[u] = n[u]);
if (i) {
s = i(n);
for (var h = 0; h < s.length; h++) o.call(n, s[h]) && (c[s[h]] = n[s[h]]);
}
}
return c;
};
},
"../../../../node_modules/process/browser.js": function (e, t) {
var n,
i,
r = (e.exports = {});
function o() {
throw new Error("setTimeout has not been defined");
}
function a() {
throw new Error("clearTimeout has not been defined");
}
function s(e) {
if (n === setTimeout) return setTimeout(e, 0);
if ((n === o || !n) && setTimeout) return (n = setTimeout), setTimeout(e, 0);
try {
return n(e, 0);
} catch (t) {
try {
return n.call(null, e, 0);
} catch (t) {
return n.call(this, e, 0);
}
}
}
!(function () {
try {
n = "function" == typeof setTimeout ? setTimeout : o;
} catch (e) {
n = o;
}
try {
i = "function" == typeof clearTimeout ? clearTimeout : a;
} catch (e) {
i = a;
}
})();
var c,
l = [],
u = !1,
h = -1;
function d() {
u && c && ((u = !1), c.length ? (l = c.concat(l)) : (h = -1), l.length && p());
}
function p() {
if (!u) {
var e = s(d);
u = !0;
for (var t = l.length; t; ) {
for (c = l, l = []; ++h < t; ) c && c[h].run();
(h = -1), (t = l.length);
}
(c = null),
(u = !1),
(function (e) {
if (i === clearTimeout) return clearTimeout(e);
if ((i === a || !i) && clearTimeout) return (i = clearTimeout), clearTimeout(e);
try {
i(e);
} catch (t) {
try {
return i.call(null, e);
} catch (t) {
return i.call(this, e);
}
}
})(e);
}
}
function f(e, t) {
(this.fun = e), (this.array = t);
}
function m() {}
(r.nextTick = function (e) {
var t = new Array(arguments.length - 1);
if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
l.push(new f(e, t)), 1 !== l.length || u || s(p);
}),
(f.prototype.run = function () {
this.fun.apply(null, this.array);
}),
(r.title = "browser"),
(r.browser = !0),
(r.env = {}),
(r.argv = []),
(r.version = ""),
(r.versions = {}),
(r.on = m),
(r.addListener = m),
(r.once = m),
(r.off = m),
(r.removeListener = m),
(r.removeAllListeners = m),
(r.emit = m),
(r.prependListener = m),
(r.prependOnceListener = m),
(r.listeners = function (e) {
return [];
}),
(r.binding = function (e) {
throw new Error("process.binding is not supported");
}),
(r.cwd = function () {
return "/";
}),
(r.chdir = function (e) {
throw new Error("process.chdir is not supported");
}),
(r.umask = function () {
return 0;
});
},
"../../../../node_modules/prop-types/checkPropTypes.js": function (e, t, n) {
"use strict";
var i = function () {},
r = n("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"),
o = {},
a = Function.call.bind(Object.prototype.hasOwnProperty);
function s(e, t, n, s, c) {
for (var l in e)
if (a(e, l)) {
var u;
try {
if ("function" != typeof e[l]) {
var h = Error((s || "React class") + ": " + n + " type `" + l + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[l] + "`.");
throw ((h.name = "Invariant Violation"), h);
}
u = e[l](t, l, s, n, null, r);
} catch (e) {
u = e;
}
if (
(!u ||
u instanceof Error ||
i(
(s || "React class") +
": type specification of " +
n +
" `" +
l +
"` is invalid; the type checker function must return `null` or an `Error` but returned a " +
typeof u +
". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."
),
u instanceof Error && !(u.message in o))
) {
o[u.message] = !0;
var d = c ? c() : "";
i("Failed " + n + " type: " + u.message + (null != d ? d : ""));
}
}
}
(i = function (e) {
var t = "Warning: " + e;
try {
throw new Error(t);
} catch (e) {}
}),
(s.resetWarningCache = function () {
o = {};
}),
(e.exports = s);
},
"../../../../node_modules/prop-types/factoryWithTypeCheckers.js": function (e, t, n) {
"use strict";
var i = n("../../../../node_modules/react-is/index.js"),
r = n("../../../../node_modules/object-assign/index.js"),
o = n("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"),
a = n("../../../../node_modules/prop-types/checkPropTypes.js"),
s = Function.call.bind(Object.prototype.hasOwnProperty),
c = function () {};
function l() {
return null;
}
(c = function (e) {
var t = "Warning: " + e;
try {
throw new Error(t);
} catch (e) {}
}),
(e.exports = function (e, t) {
var n = "function" == typeof Symbol && Symbol.iterator,
u = {
array: f("array"),
bool: f("boolean"),
func: f("function"),
number: f("number"),
object: f("object"),
string: f("string"),
symbol: f("symbol"),
any: p(l),
arrayOf: function (e) {
return p(function (t, n, i, r, a) {
if ("function" != typeof e) return new d("Property `" + a + "` of component `" + i + "` has invalid PropType notation inside arrayOf.");
var s = t[n];
if (!Array.isArray(s)) return new d("Invalid " + r + " `" + a + "` of type `" + g(s) + "` supplied to `" + i + "`, expected an array.");
for (var c = 0; c < s.length; c++) {
var l = e(s, c, i, r, a + "[" + c + "]", o);
if (l instanceof Error) return l;
}
return null;
});
},
element: p(function (t, n, i, r, o) {
var a = t[n];
return e(a) ? null : new d("Invalid " + r + " `" + o + "` of type `" + g(a) + "` supplied to `" + i + "`, expected a single ReactElement.");
}),
elementType: p(function (e, t, n, r, o) {
var a = e[t];
return i.isValidElementType(a) ? null : new d("Invalid " + r + " `" + o + "` of type `" + g(a) + "` supplied to `" + n + "`, expected a single ReactElement type.");
}),
instanceOf: function (e) {
return p(function (t, n, i, r, o) {
if (!(t[n] instanceof e)) {
var a = e.name || "<>";
return new d(
"Invalid " +
r +
" `" +
o +
"` of type `" +
(((s = t[n]).constructor && s.constructor.name ? s.constructor.name : "<>") + "` supplied to `") +
i +
"`, expected instance of `" +
a +
"`."
);
}
var s;
return null;
});
},
node: p(function (e, t, n, i, r) {
return m(e[t]) ? null : new d("Invalid " + i + " `" + r + "` supplied to `" + n + "`, expected a ReactNode.");
}),
objectOf: function (e) {
return p(function (t, n, i, r, a) {
if ("function" != typeof e) return new d("Property `" + a + "` of component `" + i + "` has invalid PropType notation inside objectOf.");
var c = t[n],
l = g(c);
if ("object" !== l) return new d("Invalid " + r + " `" + a + "` of type `" + l + "` supplied to `" + i + "`, expected an object.");
for (var u in c)
if (s(c, u)) {
var h = e(c, u, i, r, a + "." + u, o);
if (h instanceof Error) return h;
}
return null;
});
},
oneOf: function (e) {
if (!Array.isArray(e))
return (
c(
arguments.length > 1
? "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."
: "Invalid argument supplied to oneOf, expected an array."
),
l
);
function t(t, n, i, r, o) {
for (var a = t[n], s = 0; s < e.length; s++) if (h(a, e[s])) return null;
var c = JSON.stringify(e, function (e, t) {
return "symbol" === b(t) ? String(t) : t;
});
return new d("Invalid " + r + " `" + o + "` of value `" + String(a) + "` supplied to `" + i + "`, expected one of " + c + ".");
}
return p(t);
},
oneOfType: function (e) {
if (!Array.isArray(e)) return c("Invalid argument supplied to oneOfType, expected an instance of array."), l;
for (var t = 0; t < e.length; t++) {
var n = e[t];
if ("function" != typeof n) return c("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + _(n) + " at index " + t + "."), l;
}
return p(function (t, n, i, r, a) {
for (var s = 0; s < e.length; s++) if (null == (0, e[s])(t, n, i, r, a, o)) return null;
return new d("Invalid " + r + " `" + a + "` supplied to `" + i + "`.");
});
},
shape: function (e) {
return p(function (t, n, i, r, a) {
var s = t[n],
c = g(s);
if ("object" !== c) return new d("Invalid " + r + " `" + a + "` of type `" + c + "` supplied to `" + i + "`, expected `object`.");
for (var l in e) {
var u = e[l];
if (u) {
var h = u(s, l, i, r, a + "." + l, o);
if (h) return h;
}
}
return null;
});
},
exact: function (e) {
return p(function (t, n, i, a, s) {
var c = t[n],
l = g(c);
if ("object" !== l) return new d("Invalid " + a + " `" + s + "` of type `" + l + "` supplied to `" + i + "`, expected `object`.");
var u = r({}, t[n], e);
for (var h in u) {
var p = e[h];
if (!p)
return new d(
"Invalid " +
a +
" `" +
s +
"` key `" +
h +
"` supplied to `" +
i +
"`.\nBad object: " +
JSON.stringify(t[n], null, " ") +
"\nValid keys: " +
JSON.stringify(Object.keys(e), null, " ")
);
var f = p(c, h, i, a, s + "." + h, o);
if (f) return f;
}
return null;
});
},
};
function h(e, t) {
return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t;
}
function d(e) {
(this.message = e), (this.stack = "");
}
function p(e) {
var n = {},
i = 0;
function r(r, a, s, l, u, h, p) {
if (((l = l || "<>"), (h = h || s), p !== o)) {
if (t) {
var f = new Error(
"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types"
);
throw ((f.name = "Invariant Violation"), f);
}
if ("undefined" != typeof console) {
var m = l + ":" + s;
!n[m] &&
i < 3 &&
(c(
"You are manually calling a React.PropTypes validation function for the `" +
h +
"` prop on `" +
l +
"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."
),
(n[m] = !0),
i++);
}
}
return null == a[s]
? r
? null === a[s]
? new d("The " + u + " `" + h + "` is marked as required in `" + l + "`, but its value is `null`.")
: new d("The " + u + " `" + h + "` is marked as required in `" + l + "`, but its value is `undefined`.")
: null
: e(a, s, l, u, h);
}
var a = r.bind(null, !1);
return (a.isRequired = r.bind(null, !0)), a;
}
function f(e) {
return p(function (t, n, i, r, o, a) {
var s = t[n];
return g(s) !== e ? new d("Invalid " + r + " `" + o + "` of type `" + b(s) + "` supplied to `" + i + "`, expected `" + e + "`.") : null;
});
}
function m(t) {
switch (typeof t) {
case "number":
case "string":
case "undefined":
return !0;
case "boolean":
return !t;
case "object":
if (Array.isArray(t)) return t.every(m);
if (null === t || e(t)) return !0;
var i = (function (e) {
var t = e && ((n && e[n]) || e["@@iterator"]);
if ("function" == typeof t) return t;
})(t);
if (!i) return !1;
var r,
o = i.call(t);
if (i !== t.entries) {
for (; !(r = o.next()).done; ) if (!m(r.value)) return !1;
} else
for (; !(r = o.next()).done; ) {
var a = r.value;
if (a && !m(a[1])) return !1;
}
return !0;
default:
return !1;
}
}
function g(e) {
var t = typeof e;
return Array.isArray(e)
? "array"
: e instanceof RegExp
? "object"
: (function (e, t) {
return "symbol" === e || (!!t && ("Symbol" === t["@@toStringTag"] || ("function" == typeof Symbol && t instanceof Symbol)));
})(t, e)
? "symbol"
: t;
}
function b(e) {
if (null == e) return "" + e;
var t = g(e);
if ("object" === t) {
if (e instanceof Date) return "date";
if (e instanceof RegExp) return "regexp";
}
return t;
}
function _(e) {
var t = b(e);
switch (t) {
case "array":
case "object":
return "an " + t;
case "boolean":
case "date":
case "regexp":
return "a " + t;
default:
return t;
}
}
return (d.prototype = Error.prototype), (u.checkPropTypes = a), (u.resetWarningCache = a.resetWarningCache), (u.PropTypes = u), u;
});
},
"../../../../node_modules/prop-types/index.js": function (e, t, n) {
var i = n("../../../../node_modules/react-is/index.js");
e.exports = n("../../../../node_modules/prop-types/factoryWithTypeCheckers.js")(i.isElement, !0);
},
"../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js": function (e, t, n) {
"use strict";
e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
},
"../../../../node_modules/react-contextmenu/es6/AbstractMenu.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react/index.js"),
r = n.n(i),
o = n("../../../../node_modules/prop-types/index.js"),
a = n.n(o),
s = n("../../../../node_modules/react-contextmenu/es6/MenuItem.js"),
c = (function (e) {
function t(e) {
!(function (e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
})(this, t);
var n = (function (e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
})(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return l.call(n), (n.seletedItemRef = null), (n.state = { selectedItem: null, forceSubMenuOpen: !1 }), n;
}
return (
(function (e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
(e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
})(t, e),
t
);
})(i.Component);
c.propTypes = { children: a.a.node.isRequired };
var l = function () {
var e = this;
(this.handleKeyNavigation = function (t) {
if (!1 !== e.state.isVisible)
switch (t.keyCode) {
case 37:
case 27:
t.preventDefault(), e.hideMenu(t);
break;
case 38:
t.preventDefault(), e.selectChildren(!0);
break;
case 40:
t.preventDefault(), e.selectChildren(!1);
break;
case 39:
e.tryToOpenSubMenu(t);
break;
case 13:
t.preventDefault(), e.tryToOpenSubMenu(t);
var n = e.seletedItemRef && e.seletedItemRef.props && e.seletedItemRef.props.disabled;
e.seletedItemRef && e.seletedItemRef.ref instanceof HTMLElement && !n ? e.seletedItemRef.ref.click() : e.hideMenu(t);
}
}),
(this.handleForceClose = function () {
e.setState({ forceSubMenuOpen: !1 });
}),
(this.tryToOpenSubMenu = function (t) {
e.state.selectedItem && e.state.selectedItem.type === e.getSubMenuType() && (t.preventDefault(), e.setState({ forceSubMenuOpen: !0 }));
}),
(this.selectChildren = function (t) {
var n = e.state.selectedItem,
i = [];
r.a.Children.forEach(e.props.children, function t(n) {
n && ([s.default, e.getSubMenuType()].indexOf(n.type) < 0 ? r.a.Children.forEach(n.props.children, t) : n.props.divider || i.push(n));
});
var o = i.indexOf(n);
o < 0
? e.setState({ selectedItem: t ? i[i.length - 1] : i[0], forceSubMenuOpen: !1 })
: t
? e.setState({ selectedItem: i[o - 1 < 0 ? i.length - 1 : o - 1], forceSubMenuOpen: !1 })
: e.setState({ selectedItem: i[o + 1 < i.length ? o + 1 : 0], forceSubMenuOpen: !1 });
}),
(this.onChildMouseMove = function (t) {
e.state.selectedItem !== t && e.setState({ selectedItem: t, forceSubMenuOpen: !1 });
}),
(this.onChildMouseLeave = function () {
e.setState({ selectedItem: null, forceSubMenuOpen: !1 });
}),
(this.renderChildren = function (t) {
return r.a.Children.map(t, function (t) {
var n = {};
return r.a.isValidElement(t)
? [s.default, e.getSubMenuType()].indexOf(t.type) < 0
? ((n.children = e.renderChildren(t.props.children)), r.a.cloneElement(t, n))
: ((n.onMouseLeave = e.onChildMouseLeave.bind(e)),
t.type === e.getSubMenuType() &&
((n.forceOpen = e.state.forceSubMenuOpen && e.state.selectedItem === t), (n.forceClose = e.handleForceClose), (n.parentKeyNavigationHandler = e.handleKeyNavigation)),
t.props.divider || e.state.selectedItem !== t
? ((n.onMouseMove = function () {
return e.onChildMouseMove(t);
}),
r.a.cloneElement(t, n))
: ((n.selected = !0),
(n.ref = function (t) {
e.seletedItemRef = t;
}),
r.a.cloneElement(t, n)))
: t;
});
});
};
t.default = c;
},
"../../../../node_modules/react-contextmenu/es6/ContextMenu.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react/index.js"),
r = n.n(i),
o = n("../../../../node_modules/prop-types/index.js"),
a = n.n(o),
s = n("../../../../node_modules/classnames/index.js"),
c = n.n(s),
l = n("../../../../node_modules/object-assign/index.js"),
u = n.n(l),
h = n("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"),
d = n("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js"),
p = n("../../../../node_modules/react-contextmenu/es6/SubMenu.js"),
f = n("../../../../node_modules/react-contextmenu/es6/actions.js"),
m = n("../../../../node_modules/react-contextmenu/es6/helpers.js"),
g = (function () {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
return function (t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t;
};
})(),
b = (function (e) {
function t(e) {
!(function (e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
})(this, t);
var n = (function (e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
})(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return (
(n.registerHandlers = function () {
document.addEventListener("mousedown", n.handleOutsideClick),
document.addEventListener("touchstart", n.handleOutsideClick),
document.addEventListener("scroll", n.handleHide),
document.addEventListener("contextmenu", n.handleHide),
document.addEventListener("keydown", n.handleKeyNavigation),
window.addEventListener("resize", n.handleHide);
}),
(n.unregisterHandlers = function () {
document.removeEventListener("mousedown", n.handleOutsideClick),
document.removeEventListener("touchstart", n.handleOutsideClick),
document.removeEventListener("scroll", n.handleHide),
document.removeEventListener("contextmenu", n.handleHide),
document.removeEventListener("keydown", n.handleKeyNavigation),
window.removeEventListener("resize", n.handleHide);
}),
(n.handleShow = function (e) {
if (e.detail.id === n.props.id && !n.state.isVisible) {
var t = e.detail.position,
i = t.x,
r = t.y;
n.setState({ isVisible: !0, x: i, y: r }), n.registerHandlers(), Object(m.callIfExists)(n.props.onShow, e);
}
}),
(n.handleHide = function (e) {
!n.state.isVisible ||
(e.detail && e.detail.id && e.detail.id !== n.props.id) ||
(n.unregisterHandlers(), n.setState({ isVisible: !1, selectedItem: null, forceSubMenuOpen: !1 }), Object(m.callIfExists)(n.props.onHide, e));
}),
(n.handleOutsideClick = function (e) {
n.menu.contains(e.target) || Object(f.hideMenu)();
}),
(n.handleMouseLeave = function (e) {
e.preventDefault(), Object(m.callIfExists)(n.props.onMouseLeave, e, u()({}, n.props.data, m.store.data), m.store.target), n.props.hideOnLeave && Object(f.hideMenu)();
}),
(n.handleContextMenu = function (e) {
n.handleHide(e);
}),
(n.hideMenu = function (e) {
(27 !== e.keyCode && 13 !== e.keyCode) || Object(f.hideMenu)();
}),
(n.getMenuPosition = function () {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
i = { top: t, left: e };
if (!n.menu) return i;
var r = window,
o = r.innerWidth,
a = r.innerHeight,
s = n.menu.getBoundingClientRect();
return (
t + s.height > a && (i.top -= s.height),
e + s.width > o && (i.left -= s.width),
i.top < 0 && (i.top = s.height < a ? (a - s.height) / 2 : 0),
i.left < 0 && (i.left = s.width < o ? (o - s.width) / 2 : 0),
i
);
}),
(n.getRTLMenuPosition = function () {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
i = { top: t, left: e };
if (!n.menu) return i;
var r = window,
o = r.innerWidth,
a = r.innerHeight,
s = n.menu.getBoundingClientRect();
return (
(i.left = e - s.width),
t + s.height > a && (i.top -= s.height),
i.left < 0 && (i.left += s.width),
i.top < 0 && (i.top = s.height < a ? (a - s.height) / 2 : 0),
i.left + s.width > o && (i.left = s.width < o ? (o - s.width) / 2 : 0),
i
);
}),
(n.menuRef = function (e) {
n.menu = e;
}),
(n.state = u()({}, n.state, { x: 0, y: 0, isVisible: !1 })),
n
);
}
return (
(function (e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
(e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
})(t, e),
g(t, [
{
key: "getSubMenuType",
value: function () {
return p.default;
},
},
{
key: "componentDidMount",
value: function () {
this.listenId = h.default.register(this.handleShow, this.handleHide);
},
},
{
key: "componentDidUpdate",
value: function () {
var e = this;
if (this.state.isVisible) {
var t = window.requestAnimationFrame || setTimeout;
t(function () {
var n = e.state,
i = n.x,
r = n.y,
o = e.props.rtl ? e.getRTLMenuPosition(i, r) : e.getMenuPosition(i, r),
a = o.top,
s = o.left;
t(function () {
e.menu && ((e.menu.style.top = a + "px"), (e.menu.style.left = s + "px"), (e.menu.style.opacity = 1), (e.menu.style.pointerEvents = "auto"));
});
});
} else {
if (!this.menu) return;
(this.menu.style.opacity = 0), (this.menu.style.pointerEvents = "none");
}
},
},
{
key: "componentWillUnmount",
value: function () {
this.listenId && h.default.unregister(this.listenId), this.unregisterHandlers();
},
},
{
key: "render",
value: function () {
var e,
t,
n,
i = this.props,
o = i.children,
a = i.className,
s = i.style,
l = this.state.isVisible,
h = u()({}, s, { position: "fixed", opacity: 0, pointerEvents: "none" }),
d = c()(
m.cssClasses.menu,
a,
((e = {}), (t = m.cssClasses.menuVisible), (n = l), t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e)
);
return r.a.createElement(
"nav",
{ role: "menu", tabIndex: "-1", ref: this.menuRef, style: h, className: d, onContextMenu: this.handleContextMenu, onMouseLeave: this.handleMouseLeave },
this.renderChildren(o)
);
},
},
]),
t
);
})(d.default);
(b.propTypes = {
id: a.a.string.isRequired,
children: a.a.node.isRequired,
data: a.a.object,
className: a.a.string,
hideOnLeave: a.a.bool,
rtl: a.a.bool,
onHide: a.a.func,
onMouseLeave: a.a.func,
onShow: a.a.func,
style: a.a.object,
}),
(b.defaultProps = {
className: "",
data: {},
hideOnLeave: !1,
rtl: !1,
onHide: function () {
return null;
},
onMouseLeave: function () {
return null;
},
onShow: function () {
return null;
},
style: {},
}),
(t.default = b);
},
"../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react/index.js"),
r = n.n(i),
o = n("../../../../node_modules/prop-types/index.js"),
a = n.n(o),
s = n("../../../../node_modules/classnames/index.js"),
c = n.n(s),
l = n("../../../../node_modules/object-assign/index.js"),
u = n.n(l),
h = n("../../../../node_modules/react-contextmenu/es6/actions.js"),
d = n("../../../../node_modules/react-contextmenu/es6/helpers.js"),
p = (function () {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
return function (t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t;
};
})();
function f(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
}
function m(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
}
var g = (function (e) {
function t() {
var e, n, i;
f(this, t);
for (var r = arguments.length, o = Array(r), a = 0; a < r; a++) o[a] = arguments[a];
return (
(n = i = m(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(o)))),
(i.touchHandled = !1),
(i.handleMouseDown = function (e) {
i.props.holdToDisplay >= 0 &&
0 === e.button &&
(e.persist(),
e.stopPropagation(),
(i.mouseDownTimeoutId = setTimeout(function () {
return i.handleContextClick(e);
}, i.props.holdToDisplay))),
Object(d.callIfExists)(i.props.attributes.onMouseDown, e);
}),
(i.handleMouseUp = function (e) {
0 === e.button && clearTimeout(i.mouseDownTimeoutId), Object(d.callIfExists)(i.props.attributes.onMouseUp, e);
}),
(i.handleMouseOut = function (e) {
0 === e.button && clearTimeout(i.mouseDownTimeoutId), Object(d.callIfExists)(i.props.attributes.onMouseOut, e);
}),
(i.handleTouchstart = function (e) {
(i.touchHandled = !1),
i.props.holdToDisplay >= 0 &&
(e.persist(),
e.stopPropagation(),
(i.touchstartTimeoutId = setTimeout(function () {
i.handleContextClick(e), (i.touchHandled = !0);
}, i.props.holdToDisplay))),
Object(d.callIfExists)(i.props.attributes.onTouchStart, e);
}),
(i.handleTouchEnd = function (e) {
i.touchHandled && e.preventDefault(), clearTimeout(i.touchstartTimeoutId), Object(d.callIfExists)(i.props.attributes.onTouchEnd, e);
}),
(i.handleContextMenu = function (e) {
i.handleContextClick(e), Object(d.callIfExists)(i.props.attributes.onContextMenu, e);
}),
(i.handleContextClick = function (e) {
if (!i.props.disable) {
e.preventDefault(), e.stopPropagation();
var t = e.clientX || (e.touches && e.touches[0].pageX),
n = e.clientY || (e.touches && e.touches[0].pageY);
i.props.posX && (t -= i.props.posX), i.props.posY && (n -= i.props.posY), Object(h.hideMenu)();
var r = Object(d.callIfExists)(i.props.collect, i.props),
o = { position: { x: t, y: n }, target: i.elem, id: i.props.id, data: r };
r && "function" == typeof r.then
? r.then(function (e) {
(o.data = e), Object(h.showMenu)(o);
})
: Object(h.showMenu)(o);
}
}),
(i.elemRef = function (e) {
i.elem = e;
}),
m(i, n)
);
}
return (
(function (e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
(e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
})(t, e),
p(t, [
{
key: "render",
value: function () {
var e = this.props,
t = e.renderTag,
n = e.attributes,
i = e.children,
o = u()({}, n, {
className: c()(d.cssClasses.menuWrapper, n.className),
onContextMenu: this.handleContextMenu,
onMouseDown: this.handleMouseDown,
onMouseUp: this.handleMouseUp,
onTouchStart: this.handleTouchstart,
onTouchEnd: this.handleTouchEnd,
onMouseOut: this.handleMouseOut,
ref: this.elemRef,
});
return r.a.createElement(t, o, i);
},
},
]),
t
);
})(i.Component);
(g.propTypes = {
id: a.a.string.isRequired,
children: a.a.node.isRequired,
attributes: a.a.object,
collect: a.a.func,
disable: a.a.bool,
holdToDisplay: a.a.number,
posX: a.a.number,
posY: a.a.number,
renderTag: a.a.oneOfType([a.a.node, a.a.func]),
}),
(g.defaultProps = {
attributes: {},
collect: function () {
return null;
},
disable: !1,
holdToDisplay: 1e3,
renderTag: "div",
posX: 0,
posY: 0,
}),
(t.default = g);
},
"../../../../node_modules/react-contextmenu/es6/MenuItem.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react/index.js"),
r = n.n(i),
o = n("../../../../node_modules/prop-types/index.js"),
a = n.n(o),
s = n("../../../../node_modules/classnames/index.js"),
c = n.n(s),
l = n("../../../../node_modules/object-assign/index.js"),
u = n.n(l),
h = n("../../../../node_modules/react-contextmenu/es6/actions.js"),
d = n("../../../../node_modules/react-contextmenu/es6/helpers.js"),
p =
Object.assign ||
function (e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]);
}
return e;
},
f = (function () {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
return function (t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t;
};
})();
function m(e, t, n) {
return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e;
}
function g(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
}
function b(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
}
var _ = (function (e) {
function t() {
var e, n, i;
g(this, t);
for (var r = arguments.length, o = Array(r), a = 0; a < r; a++) o[a] = arguments[a];
return (
(n = i = b(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(o)))),
(i.handleClick = function (e) {
e.preventDefault(),
i.props.disabled || i.props.divider || (Object(d.callIfExists)(i.props.onClick, e, u()({}, i.props.data, d.store.data), d.store.target), i.props.preventClose || Object(h.hideMenu)());
}),
b(i, n)
);
}
return (
(function (e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
(e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
})(t, e),
f(t, [
{
key: "render",
value: function () {
var e,
t = this,
n = this.props,
i = n.disabled,
o = n.divider,
a = n.children,
s = n.attributes,
l = n.selected,
u = c()(
d.cssClasses.menuItem,
s.className,
(m((e = {}), c()(d.cssClasses.menuItemDisabled, s.disabledClassName), i),
m(e, c()(d.cssClasses.menuItemDivider, s.dividerClassName), o),
m(e, c()(d.cssClasses.menuItemSelected, s.selectedClassName), l),
e)
);
return r.a.createElement(
"div",
p({}, s, {
className: u,
role: "menuitem",
tabIndex: "-1",
"aria-disabled": i ? "true" : "false",
"aria-orientation": o ? "horizontal" : null,
ref: function (e) {
t.ref = e;
},
onMouseMove: this.props.onMouseMove,
onMouseLeave: this.props.onMouseLeave,
onTouchEnd: this.handleClick,
onClick: this.handleClick,
}),
o ? null : a
);
},
},
]),
t
);
})(i.Component);
(_.propTypes = {
children: a.a.node,
attributes: a.a.object,
data: a.a.object,
disabled: a.a.bool,
divider: a.a.bool,
preventClose: a.a.bool,
onClick: a.a.func,
selected: a.a.bool,
onMouseMove: a.a.func,
onMouseLeave: a.a.func,
}),
(_.defaultProps = {
disabled: !1,
data: {},
divider: !1,
attributes: {},
preventClose: !1,
onClick: function () {
return null;
},
children: null,
selected: !1,
onMouseMove: function () {
return null;
},
onMouseLeave: function () {
return null;
},
}),
(t.default = _);
},
"../../../../node_modules/react-contextmenu/es6/SubMenu.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react/index.js"),
r = n.n(i),
o = n("../../../../node_modules/prop-types/index.js"),
a = n.n(o),
s = n("../../../../node_modules/classnames/index.js"),
c = n.n(s),
l = n("../../../../node_modules/object-assign/index.js"),
u = n.n(l),
h = n("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js"),
d = n("../../../../node_modules/react-contextmenu/es6/helpers.js"),
p = n("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"),
f =
Object.assign ||
function (e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]);
}
return e;
},
m = (function () {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
return function (t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t;
};
})();
function g(e, t, n) {
return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e;
}
var b = (function (e) {
function t(e) {
!(function (e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
})(this, t);
var n = (function (e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
})(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return (
(n.getMenuPosition = function () {
var e = window,
t = e.innerWidth,
i = e.innerHeight,
r = n.subMenu.getBoundingClientRect(),
o = {};
return r.bottom > i ? (o.bottom = 0) : (o.top = 0), r.right < t ? (o.left = "100%") : (o.right = "100%"), o;
}),
(n.getRTLMenuPosition = function () {
var e = window.innerHeight,
t = n.subMenu.getBoundingClientRect(),
i = {};
return t.bottom > e ? (i.bottom = 0) : (i.top = 0), t.left < 0 ? (i.left = "100%") : (i.right = "100%"), i;
}),
(n.hideMenu = function (e) {
(e.detail && e.detail.id && n.menu && e.detail.id !== n.menu.id) || (n.props.forceOpen && n.props.forceClose(), n.setState({ visible: !1, selectedItem: null }), n.unregisterHandlers());
}),
(n.handleClick = function (e) {
e.preventDefault(), n.props.disabled || Object(d.callIfExists)(n.props.onClick, e, u()({}, n.props.data, d.store.data), d.store.target);
}),
(n.handleMouseEnter = function () {
n.closetimer && clearTimeout(n.closetimer),
n.props.disabled ||
n.state.visible ||
(n.opentimer = setTimeout(function () {
return n.setState({ visible: !0, selectedItem: null });
}, n.props.hoverDelay));
}),
(n.handleMouseLeave = function () {
n.opentimer && clearTimeout(n.opentimer),
n.state.visible &&
(n.closetimer = setTimeout(function () {
return n.setState({ visible: !1, selectedItem: null });
}, n.props.hoverDelay));
}),
(n.menuRef = function (e) {
n.menu = e;
}),
(n.subMenuRef = function (e) {
n.subMenu = e;
}),
(n.registerHandlers = function () {
document.removeEventListener("keydown", n.props.parentKeyNavigationHandler), document.addEventListener("keydown", n.handleKeyNavigation);
}),
(n.unregisterHandlers = function (e) {
document.removeEventListener("keydown", n.handleKeyNavigation), e || document.addEventListener("keydown", n.props.parentKeyNavigationHandler);
}),
(n.state = u()({}, n.state, { visible: !1 })),
n
);
}
return (
(function (e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
(e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
})(t, e),
m(t, [
{
key: "componentDidMount",
value: function () {
this.listenId = p.default.register(function () {}, this.hideMenu);
},
},
{
key: "getSubMenuType",
value: function () {
return t;
},
},
{
key: "shouldComponentUpdate",
value: function (e, t) {
return (
(this.isVisibilityChange = !((this.state.visible === t.visible && this.props.forceOpen === e.forceOpen) || (this.state.visible && e.forceOpen) || (this.props.forceOpen && t.visible))), !0
);
},
},
{
key: "componentDidUpdate",
value: function () {
var e = this;
this.isVisibilityChange &&
(this.props.forceOpen || this.state.visible
? (window.requestAnimationFrame || setTimeout)(function () {
var t = e.props.rtl ? e.getRTLMenuPosition() : e.getMenuPosition();
e.subMenu.style.removeProperty("top"),
e.subMenu.style.removeProperty("bottom"),
e.subMenu.style.removeProperty("left"),
e.subMenu.style.removeProperty("right"),
Object(d.hasOwnProp)(t, "top") && (e.subMenu.style.top = t.top),
Object(d.hasOwnProp)(t, "left") && (e.subMenu.style.left = t.left),
Object(d.hasOwnProp)(t, "bottom") && (e.subMenu.style.bottom = t.bottom),
Object(d.hasOwnProp)(t, "right") && (e.subMenu.style.right = t.right),
e.subMenu.classList.add(d.cssClasses.menuVisible),
e.registerHandlers(),
e.setState({ selectedItem: null });
})
: (this.subMenu.addEventListener("transitionend", function t() {
e.subMenu.removeEventListener("transitionend", t),
e.subMenu.style.removeProperty("bottom"),
e.subMenu.style.removeProperty("right"),
(e.subMenu.style.top = 0),
(e.subMenu.style.left = "100%"),
e.unregisterHandlers();
}),
this.subMenu.classList.remove(d.cssClasses.menuVisible)));
},
},
{
key: "componentWillUnmount",
value: function () {
this.listenId && p.default.unregister(this.listenId), this.opentimer && clearTimeout(this.opentimer), this.closetimer && clearTimeout(this.closetimer), this.unregisterHandlers(!0);
},
},
{
key: "render",
value: function () {
var e,
t = this.props,
n = t.children,
i = t.attributes,
o = t.disabled,
a = t.title,
s = t.selected,
l = this.state.visible,
u = {
ref: this.menuRef,
onMouseEnter: this.handleMouseEnter,
onMouseLeave: this.handleMouseLeave,
className: c()(d.cssClasses.menuItem, d.cssClasses.subMenu, i.listClassName),
style: { position: "relative" },
},
h = {
className: c()(
d.cssClasses.menuItem,
i.className,
((e = {}),
g(e, c()(d.cssClasses.menuItemDisabled, i.disabledClassName), o),
g(e, c()(d.cssClasses.menuItemActive, i.visibleClassName), l),
g(e, c()(d.cssClasses.menuItemSelected, i.selectedClassName), s),
e)
),
onMouseMove: this.props.onMouseMove,
onMouseOut: this.props.onMouseOut,
onClick: this.handleClick,
},
p = { ref: this.subMenuRef, style: { position: "absolute", transition: "opacity 1ms", top: 0, left: "100%" }, className: c()(d.cssClasses.menu, this.props.className) };
return r.a.createElement(
"nav",
f({}, u, { role: "menuitem", tabIndex: "-1", "aria-haspopup": "true" }),
r.a.createElement("div", f({}, i, h), a),
r.a.createElement("nav", f({}, p, { role: "menu", tabIndex: "-1" }), this.renderChildren(n))
);
},
},
]),
t
);
})(h.default);
(b.propTypes = {
children: a.a.node.isRequired,
attributes: a.a.object,
title: a.a.node.isRequired,
className: a.a.string,
disabled: a.a.bool,
hoverDelay: a.a.number,
rtl: a.a.bool,
selected: a.a.bool,
onMouseMove: a.a.func,
onMouseOut: a.a.func,
forceOpen: a.a.bool,
forceClose: a.a.func,
parentKeyNavigationHandler: a.a.func,
}),
(b.defaultProps = {
disabled: !1,
hoverDelay: 500,
attributes: {},
className: "",
rtl: !1,
selected: !1,
onMouseMove: function () {
return null;
},
onMouseOut: function () {
return null;
},
forceOpen: !1,
forceClose: function () {
return null;
},
parentKeyNavigationHandler: function () {
return null;
},
}),
(t.default = b);
},
"../../../../node_modules/react-contextmenu/es6/actions.js": function (e, t, n) {
"use strict";
n.r(t),
n.d(t, "MENU_SHOW", function () {
return a;
}),
n.d(t, "MENU_HIDE", function () {
return s;
}),
n.d(t, "dispatchGlobalEvent", function () {
return c;
}),
n.d(t, "showMenu", function () {
return l;
}),
n.d(t, "hideMenu", function () {
return u;
});
var i = n("../../../../node_modules/object-assign/index.js"),
r = n.n(i),
o = n("../../../../node_modules/react-contextmenu/es6/helpers.js"),
a = "REACT_CONTEXTMENU_SHOW",
s = "REACT_CONTEXTMENU_HIDE";
function c(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : window,
i = void 0;
"function" == typeof window.CustomEvent ? (i = new window.CustomEvent(e, { detail: t })) : (i = document.createEvent("CustomEvent")).initCustomEvent(e, !1, !0, t), n && (n.dispatchEvent(i), r()(o.store, t));
}
function l() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
t = arguments[1];
c(a, r()({}, e, { type: a }), t);
}
function u() {
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
t = arguments[1];
c(s, r()({}, e, { type: s }), t);
}
},
"../../../../node_modules/react-contextmenu/es6/connectMenu.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react/index.js"),
r = n.n(i),
o = n("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js"),
a = n("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"),
s =
Object.assign ||
function (e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]);
}
return e;
},
c = (function () {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
return function (t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t;
};
})(),
l = [].concat(
(function (e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n;
}
return Array.from(e);
})(Object.keys(o.default.propTypes)),
["children"]
);
t.default = function (e) {
return function (t) {
return (function (n) {
function i(t) {
!(function (e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
})(this, i);
var n = (function (e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || ("object" != typeof t && "function" != typeof t) ? e : t;
})(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this, t));
return (
(n.handleShow = function (t) {
if (t.detail.id === e) {
var i = t.detail.data,
r = {};
for (var o in i) l.includes(o) || (r[o] = i[o]);
n.setState({ trigger: r });
}
}),
(n.handleHide = function () {
n.setState({ trigger: null });
}),
(n.state = { trigger: null }),
n
);
}
return (
(function (e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
(e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t));
})(i, n),
c(i, [
{
key: "componentDidMount",
value: function () {
this.listenId = a.default.register(this.handleShow, this.handleHide);
},
},
{
key: "componentWillUnmount",
value: function () {
this.listenId && a.default.unregister(this.listenId);
},
},
{
key: "render",
value: function () {
return r.a.createElement(t, s({}, this.props, { id: e, trigger: this.state.trigger }));
},
},
]),
i
);
})(i.Component);
};
};
},
"../../../../node_modules/react-contextmenu/es6/globalEventListener.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react-contextmenu/es6/actions.js"),
r = n("../../../../node_modules/react-contextmenu/es6/helpers.js");
t.default = new (function e() {
var t = this;
!(function (e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
})(this, e),
(this.handleShowEvent = function (e) {
for (var n in t.callbacks) Object(r.hasOwnProp)(t.callbacks, n) && t.callbacks[n].show(e);
}),
(this.handleHideEvent = function (e) {
for (var n in t.callbacks) Object(r.hasOwnProp)(t.callbacks, n) && t.callbacks[n].hide(e);
}),
(this.register = function (e, n) {
var i = Object(r.uniqueId)();
return (t.callbacks[i] = { show: e, hide: n }), i;
}),
(this.unregister = function (e) {
e && t.callbacks[e] && delete t.callbacks[e];
}),
(this.callbacks = {}),
r.canUseDOM && (window.addEventListener(i.MENU_SHOW, this.handleShowEvent), window.addEventListener(i.MENU_HIDE, this.handleHideEvent));
})();
},
"../../../../node_modules/react-contextmenu/es6/helpers.js": function (e, t, n) {
"use strict";
function i(e) {
for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i];
return "function" == typeof e && e.apply(void 0, n);
}
function r(e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}
function o() {
return Math.random().toString(36).substring(7);
}
n.r(t),
n.d(t, "callIfExists", function () {
return i;
}),
n.d(t, "hasOwnProp", function () {
return r;
}),
n.d(t, "uniqueId", function () {
return o;
}),
n.d(t, "cssClasses", function () {
return a;
}),
n.d(t, "store", function () {
return s;
}),
n.d(t, "canUseDOM", function () {
return c;
});
var a = {
menu: "react-contextmenu",
menuVisible: "react-contextmenu--visible",
menuWrapper: "react-contextmenu-wrapper",
menuItem: "react-contextmenu-item",
menuItemActive: "react-contextmenu-item--active",
menuItemDisabled: "react-contextmenu-item--disabled",
menuItemDivider: "react-contextmenu-item--divider",
menuItemSelected: "react-contextmenu-item--selected",
subMenu: "react-contextmenu-submenu",
},
s = {},
c = Boolean("undefined" != typeof window && window.document && window.document.createElement);
},
"../../../../node_modules/react-contextmenu/es6/index.js": function (e, t, n) {
"use strict";
n.r(t);
var i = n("../../../../node_modules/react-contextmenu/es6/ContextMenu.js");
n.d(t, "ContextMenu", function () {
return i.default;
});
var r = n("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js");
n.d(t, "ContextMenuTrigger", function () {
return r.default;
});
var o = n("../../../../node_modules/react-contextmenu/es6/MenuItem.js");
n.d(t, "MenuItem", function () {
return o.default;
});
var a = n("../../../../node_modules/react-contextmenu/es6/SubMenu.js");
n.d(t, "SubMenu", function () {
return a.default;
});
var s = n("../../../../node_modules/react-contextmenu/es6/connectMenu.js");
n.d(t, "connectMenu", function () {
return s.default;
});
var c = n("../../../../node_modules/react-contextmenu/es6/actions.js");
n.d(t, "hideMenu", function () {
return c.hideMenu;
}),
n.d(t, "showMenu", function () {
return c.showMenu;
});
},
"../../../../node_modules/react-dom/cjs/react-dom.development.js": function (e, t, n) {
"use strict";
!(function () {
var t = n("../../../../node_modules/react/index.js"),
i = n("../../../../node_modules/object-assign/index.js"),
r = n("../../../../node_modules/prop-types/checkPropTypes.js"),
o = n("../../../../node_modules/scheduler/index.js"),
a = n("../../../../node_modules/scheduler/tracing.js");
function s(e) {
return (e.name = "Invariant Violation"), e;
}
!(function () {
if (!t) throw s(Error("ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM."));
})();
var c = null,
l = {};
function u() {
if (c)
for (var e in l) {
var t = l[e],
n = c.indexOf(e);
if (
((function () {
if (!(n > -1)) throw s(Error("EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `" + e + "`."));
})(),
!p[n])
) {
!(function () {
if (!t.extractEvents) throw s(Error("EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `" + e + "` does not."));
})(),
(p[n] = t);
var i = t.eventTypes;
for (var r in i)
!(function () {
if (!h(i[r], t, r)) throw s(Error("EventPluginRegistry: Failed to publish event `" + r + "` for plugin `" + e + "`."));
})();
}
}
}
function h(e, t, n) {
!(function () {
if (f.hasOwnProperty(n)) throw s(Error("EventPluginHub: More than one plugin attempted to publish the same event name, `" + n + "`."));
})(),
(f[n] = e);
var i = e.phasedRegistrationNames;
if (i) {
for (var r in i) i.hasOwnProperty(r) && d(i[r], t, n);
return !0;
}
return !!e.registrationName && (d(e.registrationName, t, n), !0);
}
function d(e, t, n) {
!(function () {
if (m[e]) throw s(Error("EventPluginHub: More than one plugin attempted to publish the same registration name, `" + e + "`."));
})(),
(m[e] = t),
(g[e] = t.eventTypes[n].dependencies);
var i = e.toLowerCase();
(b[i] = e), "onDoubleClick" === e && (b.ondblclick = e);
}
var p = [],
f = {},
m = {},
g = {},
b = {},
_ = function (e, t, n, i, r, o, a, s, c) {
var l = Array.prototype.slice.call(arguments, 3);
try {
t.apply(n, l);
} catch (e) {
this.onError(e);
}
};
if ("undefined" != typeof window && "function" == typeof window.dispatchEvent && "undefined" != typeof document && "function" == typeof document.createEvent) {
var v = document.createElement("react");
_ = function (e, t, n, i, r, o, a, c, l) {
!(function () {
if ("undefined" == typeof document)
throw s(
Error(
"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous."
)
);
})();
var u = document.createEvent("Event"),
h = !0,
d = window.event,
p = Object.getOwnPropertyDescriptor(window, "event"),
f = Array.prototype.slice.call(arguments, 3);
function m() {
v.removeEventListener(C, m, !1), void 0 !== window.event && window.hasOwnProperty("event") && (window.event = d), t.apply(n, f), (h = !1);
}
var g = void 0,
b = !1,
_ = !1;
function y(e) {
if (((g = e.error), (b = !0), null === g && 0 === e.colno && 0 === e.lineno && (_ = !0), e.defaultPrevented && null != g && "object" == typeof g))
try {
g._suppressLogging = !0;
} catch (e) {}
}
var C = "react-" + (e || "invokeguardedcallback");
window.addEventListener("error", y),
v.addEventListener(C, m, !1),
u.initEvent(C, !1, !1),
v.dispatchEvent(u),
p && Object.defineProperty(window, "event", p),
h &&
(b
? _ &&
(g = new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://fb.me/react-crossorigin-error for more information."))
: (g = new Error(
"An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the \"Pause on exceptions\" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue."
)),
this.onError(g)),
window.removeEventListener("error", y);
};
}
var y = _,
C = !1,
P = null,
x = !1,
T = null,
S = {
onError: function (e) {
(C = !0), (P = e);
},
};
function O(e, t, n, i, r, o, a, s, c) {
(C = !1), (P = null), y.apply(S, arguments);
}
function E(e, t, n, i, r, o, a, s, c) {
if ((O.apply(this, arguments), C)) {
var l = A();
x || ((x = !0), (T = l));
}
}
function M() {
return C;
}
function A() {
if (C) {
var e = P;
return (C = !1), (P = null), e;
}
!(function () {
throw s(Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue."));
})();
}
var I,
D = function (e, t) {
for (var n = arguments.length, i = Array(n > 2 ? n - 2 : 0), r = 2; r < n; r++) i[r - 2] = arguments[r];
if (void 0 === t) throw new Error("`warningWithoutStack(condition, format, ...args)` requires a warning message argument");
if (i.length > 8) throw new Error("warningWithoutStack() currently supports at most 8 arguments.");
if (!e) {
if ("undefined" != typeof console) {
var o = i.map(function (e) {
return "" + e;
});
o.unshift("Warning: " + t), Function.prototype.apply.call(console.error, console, o);
}
try {
var a = 0,
s =
"Warning: " +
t.replace(/%s/g, function () {
return i[a++];
});
throw new Error(s);
} catch (e) {}
}
},
R = null,
w = null,
L = null;
function F(e, t, n) {
var i = e.type || "unknown-event";
(e.currentTarget = L(n)), E(i, t, void 0, e), (e.currentTarget = null);
}
function N(e, t) {
return (
(function () {
if (null == t) throw s(Error("accumulateInto(...): Accumulated items must not be null or undefined."));
})(),
null == e ? t : Array.isArray(e) ? (Array.isArray(t) ? (e.push.apply(e, t), e) : (e.push(t), e)) : Array.isArray(t) ? [e].concat(t) : [e, t]
);
}
function k(e, t, n) {
Array.isArray(e) ? e.forEach(t, n) : e && t.call(n, e);
}
I = function (e) {
var t = e._dispatchListeners,
n = e._dispatchInstances,
i = Array.isArray(t),
r = i ? t.length : t ? 1 : 0,
o = Array.isArray(n),
a = o ? n.length : n ? 1 : 0;
(o !== i || a !== r) && D(!1, "EventPluginUtils: Invalid `event`.");
};
var z = null,
j = function (e) {
e &&
((function (e) {
var t = e._dispatchListeners,
n = e._dispatchInstances;
if ((I(e), Array.isArray(t))) for (var i = 0; i < t.length && !e.isPropagationStopped(); i++) F(e, t[i], n[i]);
else t && F(e, t, n);
(e._dispatchListeners = null), (e._dispatchInstances = null);
})(e),
e.isPersistent() || e.constructor.release(e));
},
B = function (e) {
return j(e);
};
function V(e) {
null !== e && (z = N(z, e));
var t = z;
(z = null),
t &&
(k(t, B),
(function () {
if (z) throw s(Error("processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented."));
})(),
(function () {
if (x) {
var e = T;
throw ((x = !1), (T = null), e);
}
})());
}
var G = {
injectEventPluginOrder: function (e) {
!(function () {
if (c) throw s(Error("EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."));
})(),
(c = Array.prototype.slice.call(e)),
u();
},
injectEventPluginsByName: function (e) {
var t = !1;
for (var n in e)
if (e.hasOwnProperty(n)) {
var i = e[n];
(l.hasOwnProperty(n) && l[n] === i) ||
((function () {
if (l[n]) throw s(Error("EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + n + "`."));
})(),
(l[n] = i),
(t = !0));
}
t && u();
},
};
function U(e, t) {
var n,
i = e.stateNode;
if (!i) return null;
var r = R(i);
return r
? ((n = r[t]),
(function (e, t, n) {
switch (e) {
case "onClick":
case "onClickCapture":
case "onDoubleClick":
case "onDoubleClickCapture":
case "onMouseDown":
case "onMouseDownCapture":
case "onMouseMove":
case "onMouseMoveCapture":
case "onMouseUp":
case "onMouseUpCapture":
return !(!n.disabled || ((i = t), "button" !== i && "input" !== i && "select" !== i && "textarea" !== i));
default:
return !1;
}
var i;
})(t, e.type, r)
? null
: ((function () {
if (n && "function" != typeof n) throw s(Error("Expected `" + t + "` listener to be a function, instead got a value of `" + typeof n + "` type."));
})(),
n))
: null;
}
function H(e, t, n, i) {
V(
(function (e, t, n, i) {
for (var r = null, o = 0; o < p.length; o++) {
var a = p[o];
if (a) {
var s = a.extractEvents(e, t, n, i);
s && (r = N(r, s));
}
}
return r;
})(e, t, n, i)
);
}
var W = Math.random().toString(36).slice(2),
X = "__reactInternalInstance$" + W,
Y = "__reactEventHandlers$" + W;
function K(e, t) {
t[X] = e;
}
function Z(e) {
if (e[X]) return e[X];
for (; !e[X]; ) {
if (!e.parentNode) return null;
e = e.parentNode;
}
var t = e[X];
return 5 === t.tag || 6 === t.tag ? t : null;
}
function q(e) {
var t = e[X];
return !t || (5 !== t.tag && 6 !== t.tag) ? null : t;
}
function Q(e) {
if (5 === e.tag || 6 === e.tag) return e.stateNode;
!(function () {
throw s(Error("getNodeFromInstance: Invalid argument."));
})();
}
function J(e) {
return e[Y] || null;
}
function $(e, t) {
e[Y] = t;
}
function ee(e) {
do {
e = e.return;
} while (e && 5 !== e.tag);
return e || null;
}
function te(e, t, n, i, r) {
for (
var o =
e && t
? (function (e, t) {
for (var n = 0, i = e; i; i = ee(i)) n++;
for (var r = 0, o = t; o; o = ee(o)) r++;
for (; n - r > 0; ) (e = ee(e)), n--;
for (; r - n > 0; ) (t = ee(t)), r--;
for (var a = n; a--; ) {
if (e === t || e === t.alternate) return e;
(e = ee(e)), (t = ee(t));
}
return null;
})(e, t)
: null,
a = [];
e && e !== o;
) {
var s = e.alternate;
if (null !== s && s === o) break;
a.push(e), (e = ee(e));
}
for (var c = []; t && t !== o; ) {
var l = t.alternate;
if (null !== l && l === o) break;
c.push(t), (t = ee(t));
}
for (var u = 0; u < a.length; u++) n(a[u], "bubbled", i);
for (var h = c.length; h-- > 0; ) n(c[h], "captured", r);
}
function ne(e, t, n) {
e || D(!1, "Dispatching inst must not be null");
var i = (function (e, t, n) {
return U(e, t.dispatchConfig.phasedRegistrationNames[n]);
})(e, n, t);
i && ((n._dispatchListeners = N(n._dispatchListeners, i)), (n._dispatchInstances = N(n._dispatchInstances, e)));
}
function ie(e) {
e &&
e.dispatchConfig.phasedRegistrationNames &&
(function (e, t, n) {
for (var i = []; e; ) i.push(e), (e = ee(e));
var r = void 0;
for (r = i.length; r-- > 0; ) t(i[r], "captured", n);
for (r = 0; r < i.length; r++) t(i[r], "bubbled", n);
})(e._targetInst, ne, e);
}
function re(e, t, n) {
if (e && n && n.dispatchConfig.registrationName) {
var i = U(e, n.dispatchConfig.registrationName);
i && ((n._dispatchListeners = N(n._dispatchListeners, i)), (n._dispatchInstances = N(n._dispatchInstances, e)));
}
}
function oe(e) {
e && e.dispatchConfig.registrationName && re(e._targetInst, 0, e);
}
function ae(e) {
k(e, ie);
}
var se = !("undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement);
function ce(e, t) {
var n = {};
return (n[e.toLowerCase()] = t.toLowerCase()), (n["Webkit" + e] = "webkit" + t), (n["Moz" + e] = "moz" + t), n;
}
var le = {
animationend: ce("Animation", "AnimationEnd"),
animationiteration: ce("Animation", "AnimationIteration"),
animationstart: ce("Animation", "AnimationStart"),
transitionend: ce("Transition", "TransitionEnd"),
},
ue = {},
he = {};
function de(e) {
if (ue[e]) return ue[e];
if (!le[e]) return e;
var t = le[e];
for (var n in t) if (t.hasOwnProperty(n) && n in he) return (ue[e] = t[n]);
return e;
}
se &&
((he = document.createElement("div").style),
"AnimationEvent" in window || (delete le.animationend.animation, delete le.animationiteration.animation, delete le.animationstart.animation),
"TransitionEvent" in window || delete le.transitionend.transition);
var pe = de("animationend"),
fe = de("animationiteration"),
me = de("animationstart"),
ge = de("transitionend"),
be = [
"abort",
"canplay",
"canplaythrough",
"durationchange",
"emptied",
"encrypted",
"ended",
"error",
"loadeddata",
"loadedmetadata",
"loadstart",
"pause",
"play",
"playing",
"progress",
"ratechange",
"seeked",
"seeking",
"stalled",
"suspend",
"timeupdate",
"volumechange",
"waiting",
],
_e = null,
ve = null,
ye = null;
function Ce() {
if (ye) return ye;
var e = void 0,
t = ve,
n = t.length,
i = void 0,
r = Pe(),
o = r.length;
for (e = 0; e < n && t[e] === r[e]; e++);
var a = n - e;
for (i = 1; i <= a && t[n - i] === r[o - i]; i++);
var s = i > 1 ? 1 - i : void 0;
return (ye = r.slice(e, s));
}
function Pe() {
return "value" in _e ? _e.value : _e.textContent;
}
var xe = {
type: null,
target: null,
currentTarget: function () {
return null;
},
eventPhase: null,
bubbles: null,
cancelable: null,
timeStamp: function (e) {
return e.timeStamp || Date.now();
},
defaultPrevented: null,
isTrusted: null,
};
function Te() {
return !0;
}
function Se() {
return !1;
}
function Oe(e, t, n, i) {
delete this.nativeEvent,
delete this.preventDefault,
delete this.stopPropagation,
delete this.isDefaultPrevented,
delete this.isPropagationStopped,
(this.dispatchConfig = e),
(this._targetInst = t),
(this.nativeEvent = n);
var r = this.constructor.Interface;
for (var o in r)
if (r.hasOwnProperty(o)) {
delete this[o];
var a = r[o];
a ? (this[o] = a(n)) : "target" === o ? (this.target = i) : (this[o] = n[o]);
}
var s = null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue;
return (this.isDefaultPrevented = s ? Te : Se), (this.isPropagationStopped = Se), this;
}
function Ee(e, t) {
var n = "function" == typeof t;
return {
configurable: !0,
set: function (e) {
return i(n ? "setting the method" : "setting the property", "This is effectively a no-op"), e;
},
get: function () {
return i(n ? "accessing the method" : "accessing the property", n ? "This is a no-op function" : "This is set to null"), t;
},
};
function i(t, n) {
D(
!1,
"This synthetic event is reused for performance reasons. If you're seeing this, you're %s `%s` on a released/nullified synthetic event. %s. If you must keep the original synthetic event around, use event.persist(). See https://fb.me/react-event-pooling for more information.",
t,
e,
n
);
}
}
function Me(e, t, n, i) {
if (this.eventPool.length) {
var r = this.eventPool.pop();
return this.call(r, e, t, n, i), r;
}
return new this(e, t, n, i);
}
function Ae(e) {
var t = this;
!(function () {
if (!(e instanceof t)) throw s(Error("Trying to release an event instance into a pool of a different type."));
})(),
e.destructor(),
t.eventPool.length < 10 && t.eventPool.push(e);
}
function Ie(e) {
(e.eventPool = []), (e.getPooled = Me), (e.release = Ae);
}
i(Oe.prototype, {
preventDefault: function () {
this.defaultPrevented = !0;
var e = this.nativeEvent;
e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue && (e.returnValue = !1), (this.isDefaultPrevented = Te));
},
stopPropagation: function () {
var e = this.nativeEvent;
e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble && (e.cancelBubble = !0), (this.isPropagationStopped = Te));
},
persist: function () {
this.isPersistent = Te;
},
isPersistent: Se,
destructor: function () {
var e = this.constructor.Interface;
for (var t in e) Object.defineProperty(this, t, Ee(t, e[t]));
(this.dispatchConfig = null),
(this._targetInst = null),
(this.nativeEvent = null),
(this.isDefaultPrevented = Se),
(this.isPropagationStopped = Se),
(this._dispatchListeners = null),
(this._dispatchInstances = null),
Object.defineProperty(this, "nativeEvent", Ee("nativeEvent", null)),
Object.defineProperty(this, "isDefaultPrevented", Ee("isDefaultPrevented", Se)),
Object.defineProperty(this, "isPropagationStopped", Ee("isPropagationStopped", Se)),
Object.defineProperty(
this,
"preventDefault",
Ee("preventDefault", function () {})
),
Object.defineProperty(
this,
"stopPropagation",
Ee("stopPropagation", function () {})
);
},
}),
(Oe.Interface = xe),
(Oe.extend = function (e) {
var t = this,
n = function () {};
n.prototype = t.prototype;
var r = new n();
function o() {
return t.apply(this, arguments);
}
return i(r, o.prototype), (o.prototype = r), (o.prototype.constructor = o), (o.Interface = i({}, t.Interface, e)), (o.extend = t.extend), Ie(o), o;
}),
Ie(Oe);
var De = Oe.extend({ data: null }),
Re = Oe.extend({ data: null }),
we = [9, 13, 27, 32],
Le = se && "CompositionEvent" in window,
Fe = null;
se && "documentMode" in document && (Fe = document.documentMode);
var Ne = se && "TextEvent" in window && !Fe,
ke = se && (!Le || (Fe && Fe > 8 && Fe <= 11)),
ze = String.fromCharCode(32),
je = {
beforeInput: { phasedRegistrationNames: { bubbled: "onBeforeInput", captured: "onBeforeInputCapture" }, dependencies: ["compositionend", "keypress", "textInput", "paste"] },
compositionEnd: {
phasedRegistrationNames: { bubbled: "onCompositionEnd", captured: "onCompositionEndCapture" },
dependencies: ["blur", "compositionend", "keydown", "keypress", "keyup", "mousedown"],
},
compositionStart: {
phasedRegistrationNames: { bubbled: "onCompositionStart", captured: "onCompositionStartCapture" },
dependencies: ["blur", "compositionstart", "keydown", "keypress", "keyup", "mousedown"],
},
compositionUpdate: {
phasedRegistrationNames: { bubbled: "onCompositionUpdate", captured: "onCompositionUpdateCapture" },
dependencies: ["blur", "compositionupdate", "keydown", "keypress", "keyup", "mousedown"],
},
},
Be = !1;
function Ve(e, t) {
switch (e) {
case "keyup":
return -1 !== we.indexOf(t.keyCode);
case "keydown":
return 229 !== t.keyCode;
case "keypress":
case "mousedown":
case "blur":
return !0;
default:
return !1;
}
}
function Ge(e) {
var t = e.detail;
return "object" == typeof t && "data" in t ? t.data : null;
}
function Ue(e) {
return "ko" === e.locale;
}
var He = !1;
function We(e, t, n, i) {
var r = void 0,
o = void 0;
if (
(Le
? (r = (function (e) {
switch (e) {
case "compositionstart":
return je.compositionStart;
case "compositionend":
return je.compositionEnd;
case "compositionupdate":
return je.compositionUpdate;
}
})(e))
: He
? Ve(e, n) && (r = je.compositionEnd)
: (function (e, t) {
return "keydown" === e && 229 === t.keyCode;
})(e, n) && (r = je.compositionStart),
!r)
)
return null;
ke &&
!Ue(n) &&
(He || r !== je.compositionStart
? r === je.compositionEnd && He && (o = Ce())
: (He = (function (e) {
return (_e = e), (ve = Pe()), !0;
})(i)));
var a = De.getPooled(r, t, n, i);
if (o) a.data = o;
else {
var s = Ge(n);
null !== s && (a.data = s);
}
return ae(a), a;
}
function Xe(e, t) {
if (He) {
if ("compositionend" === e || (!Le && Ve(e, t))) {
var n = Ce();
return (_e = null), (ve = null), (ye = null), (He = !1), n;
}
return null;
}
switch (e) {
case "paste":
return null;
case "keypress":
if (
!(function (e) {
return (e.ctrlKey || e.altKey || e.metaKey) && !(e.ctrlKey && e.altKey);
})(t)
) {
if (t.char && t.char.length > 1) return t.char;
if (t.which) return String.fromCharCode(t.which);
}
return null;
case "compositionend":
return ke && !Ue(t) ? null : t.data;
default:
return null;
}
}
function Ye(e, t, n, i) {
var r = void 0;
if (
!(r = Ne
? (function (e, t) {
switch (e) {
case "compositionend":
return Ge(t);
case "keypress":
return 32 !== t.which ? null : ((Be = !0), ze);
case "textInput":
var n = t.data;
return n === ze && Be ? null : n;
default:
return null;
}
})(e, n)
: Xe(e, n))
)
return null;
var o = Re.getPooled(je.beforeInput, t, n, i);
return (o.data = r), ae(o), o;
}
var Ke = {
eventTypes: je,
extractEvents: function (e, t, n, i) {
var r = We(e, t, n, i),
o = Ye(e, t, n, i);
return null === r ? o : null === o ? r : [r, o];
},
},
Ze = null,
qe = null,
Qe = null;
function Je(e) {
var t = w(e);
if (t) {
!(function () {
if ("function" != typeof Ze)
throw s(Error("setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue."));
})();
var n = R(t.stateNode);
Ze(t.stateNode, t.type, n);
}
}
function $e(e) {
qe ? (Qe ? Qe.push(e) : (Qe = [e])) : (qe = e);
}
function et() {
if (qe) {
var e = qe,
t = Qe;
if (((qe = null), (Qe = null), Je(e), t)) for (var n = 0; n < t.length; n++) Je(t[n]);
}
}
var tt = function (e, t) {
return e(t);
},
nt = function (e, t, n, i) {
return e(t, n, i);
},
it = function () {},
rt = tt,
ot = !1;
function at() {
(null !== qe || null !== Qe) && (it(), et());
}
function st(e, t, n) {
if (ot) return e(t, n);
ot = !0;
try {
return rt(e, t, n);
} finally {
(ot = !1), at();
}
}
function ct(e, t, n, i) {
var r = ot;
ot = !0;
try {
return nt(e, t, n, i);
} finally {
(ot = r) || at();
}
}
function lt(e) {
ot || it();
}
var ut = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 };
function ht(e) {
var t = e && e.nodeName && e.nodeName.toLowerCase();
return "input" === t ? !!ut[e.type] : "textarea" === t;
}
function dt(e) {
var t = e.target || e.srcElement || window;
return t.correspondingUseElement && (t = t.correspondingUseElement), 3 === t.nodeType ? t.parentNode : t;
}
function pt(e) {
if (!se) return !1;
var t = "on" + e,
n = t in document;
if (!n) {
var i = document.createElement("div");
i.setAttribute(t, "return;"), (n = "function" == typeof i[t]);
}
return n;
}
function ft(e) {
var t = e.type,
n = e.nodeName;
return n && "input" === n.toLowerCase() && ("checkbox" === t || "radio" === t);
}
function mt(e) {
return e._valueTracker;
}
function gt(e) {
mt(e) ||
(e._valueTracker = (function (e) {
var t = ft(e) ? "checked" : "value",
n = Object.getOwnPropertyDescriptor(e.constructor.prototype, t),
i = "" + e[t];
if (!e.hasOwnProperty(t) && void 0 !== n && "function" == typeof n.get && "function" == typeof n.set) {
var r = n.get,
o = n.set;
return (
Object.defineProperty(e, t, {
configurable: !0,
get: function () {
return r.call(this);
},
set: function (e) {
(i = "" + e), o.call(this, e);
},
}),
Object.defineProperty(e, t, { enumerable: n.enumerable }),
{
getValue: function () {
return i;
},
setValue: function (e) {
i = "" + e;
},
stopTracking: function () {
!(function (e) {
e._valueTracker = null;
})(e),
delete e[t];
},
}
);
}
})(e));
}
function bt(e) {
if (!e) return !1;
var t = mt(e);
if (!t) return !0;
var n = t.getValue(),
i = (function (e) {
var t = "";
return e ? (t = ft(e) ? (e.checked ? "true" : "false") : e.value) : t;
})(e);
return i !== n && (t.setValue(i), !0);
}
var _t = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
_t.hasOwnProperty("ReactCurrentDispatcher") || (_t.ReactCurrentDispatcher = { current: null }), _t.hasOwnProperty("ReactCurrentBatchConfig") || (_t.ReactCurrentBatchConfig = { suspense: null });
var vt = /^(.*)[\\\/]/,
yt = "function" == typeof Symbol && Symbol.for,
Ct = yt ? Symbol.for("react.element") : 60103,
Pt = yt ? Symbol.for("react.portal") : 60106,
xt = yt ? Symbol.for("react.fragment") : 60107,
Tt = yt ? Symbol.for("react.strict_mode") : 60108,
St = yt ? Symbol.for("react.profiler") : 60114,
Ot = yt ? Symbol.for("react.provider") : 60109,
Et = yt ? Symbol.for("react.context") : 60110,
Mt = yt ? Symbol.for("react.concurrent_mode") : 60111,
At = yt ? Symbol.for("react.forward_ref") : 60112,
It = yt ? Symbol.for("react.suspense") : 60113,
Dt = yt ? Symbol.for("react.suspense_list") : 60120,
Rt = yt ? Symbol.for("react.memo") : 60115,
wt = yt ? Symbol.for("react.lazy") : 60116,
Lt = (yt && Symbol.for("react.fundamental"), yt && Symbol.for("react.responder"), "function" == typeof Symbol && Symbol.iterator);
function Ft(e) {
if (null === e || "object" != typeof e) return null;
var t = (Lt && e[Lt]) || e["@@iterator"];
return "function" == typeof t ? t : null;
}
function Nt(e) {
return 1 === e._status ? e._result : null;
}
function kt(e) {
if (null == e) return null;
if (("number" == typeof e.tag && D(!1, "Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."), "function" == typeof e))
return e.displayName || e.name || null;
if ("string" == typeof e) return e;
switch (e) {
case xt:
return "Fragment";
case Pt:
return "Portal";
case St:
return "Profiler";
case Tt:
return "StrictMode";
case It:
return "Suspense";
case Dt:
return "SuspenseList";
}
if ("object" == typeof e)
switch (e.$$typeof) {
case Et:
return "Context.Consumer";
case Ot:
return "Context.Provider";
case At:
return (n = e), (i = e.render), (r = "ForwardRef"), (o = i.displayName || i.name || ""), n.displayName || ("" !== o ? r + "(" + o + ")" : r);
case Rt:
return kt(e.type);
case wt:
var t = Nt(e);
if (t) return kt(t);
}
var n, i, r, o;
return null;
}
var zt = _t.ReactDebugCurrentFrame;
function jt(e) {
switch (e.tag) {
case 3:
case 4:
case 6:
case 7:
case 10:
case 9:
return "";
default:
var t = e._debugOwner,
n = e._debugSource,
i = kt(e.type),
r = null;
return (
t && (r = kt(t.type)),
(function (e, t, n) {
var i = "";
if (t) {
var r = t.fileName,
o = r.replace(vt, "");
if (/^index\./.test(o)) {
var a = r.match(vt);
if (a) {
var s = a[1];
s && (o = s.replace(vt, "") + "/" + o);
}
}
i = " (at " + o + ":" + t.lineNumber + ")";
} else n && (i = " (created by " + n + ")");
return "\n in " + (e || "Unknown") + i;
})(i, n, r)
);
}
}
function Bt(e) {
var t = "",
n = e;
do {
(t += jt(n)), (n = n.return);
} while (n);
return t;
}
var Vt = null,
Gt = null;
function Ut() {
if (null === Vt) return null;
var e = Vt._debugOwner;
return null != e ? kt(e.type) : null;
}
function Ht() {
return null === Vt ? "" : Bt(Vt);
}
function Wt() {
(zt.getCurrentStack = null), (Vt = null), (Gt = null);
}
function Xt(e) {
(zt.getCurrentStack = Ht), (Vt = e), (Gt = null);
}
function Yt(e) {
Gt = e;
}
var Kt = function (e, t) {
if (!e) {
for (var n = _t.ReactDebugCurrentFrame, i = n.getStackAddendum(), r = arguments.length, o = Array(r > 2 ? r - 2 : 0), a = 2; a < r; a++) o[a - 2] = arguments[a];
D.apply(void 0, [!1, t + "%s"].concat(o, [i]));
}
},
Zt = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",
qt = Zt + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",
Qt = new RegExp("^[" + Zt + "][" + qt + "]*$"),
Jt = Object.prototype.hasOwnProperty,
$t = {},
en = {};
function tn(e) {
return !!Jt.call(en, e) || (!Jt.call($t, e) && (Qt.test(e) ? ((en[e] = !0), !0) : (($t[e] = !0), Kt(!1, "Invalid attribute name: `%s`", e), !1)));
}
function nn(e, t, n) {
return null !== t ? 0 === t.type : !n && e.length > 2 && ("o" === e[0] || "O" === e[0]) && ("n" === e[1] || "N" === e[1]);
}
function rn(e, t, n, i) {
if (null !== n && 0 === n.type) return !1;
switch (typeof t) {
case "function":
case "symbol":
return !0;
case "boolean":
if (i) return !1;
if (null !== n) return !n.acceptsBooleans;
var r = e.toLowerCase().slice(0, 5);
return "data-" !== r && "aria-" !== r;
default:
return !1;
}
}
function on(e, t, n, i) {
if (null == t) return !0;
if (rn(e, t, n, i)) return !0;
if (i) return !1;
if (null !== n)
switch (n.type) {
case 3:
return !t;
case 4:
return !1 === t;
case 5:
return isNaN(t);
case 6:
return isNaN(t) || t < 1;
}
return !1;
}
function an(e) {
return cn.hasOwnProperty(e) ? cn[e] : null;
}
function sn(e, t, n, i, r, o) {
(this.acceptsBooleans = 2 === t || 3 === t || 4 === t),
(this.attributeName = i),
(this.attributeNamespace = r),
(this.mustUseProperty = n),
(this.propertyName = e),
(this.type = t),
(this.sanitizeURL = o);
}
var cn = {};
["children", "dangerouslySetInnerHTML", "defaultValue", "defaultChecked", "innerHTML", "suppressContentEditableWarning", "suppressHydrationWarning", "style"].forEach(function (e) {
cn[e] = new sn(e, 0, !1, e, null, !1);
}),
[
["acceptCharset", "accept-charset"],
["className", "class"],
["htmlFor", "for"],
["httpEquiv", "http-equiv"],
].forEach(function (e) {
var t = e[0],
n = e[1];
cn[t] = new sn(t, 1, !1, n, null, !1);
}),
["contentEditable", "draggable", "spellCheck", "value"].forEach(function (e) {
cn[e] = new sn(e, 2, !1, e.toLowerCase(), null, !1);
}),
["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function (e) {
cn[e] = new sn(e, 2, !1, e, null, !1);
}),
[
"allowFullScreen",
"async",
"autoFocus",
"autoPlay",
"controls",
"default",
"defer",
"disabled",
"disablePictureInPicture",
"formNoValidate",
"hidden",
"loop",
"noModule",
"noValidate",
"open",
"playsInline",
"readOnly",
"required",
"reversed",
"scoped",
"seamless",
"itemScope",
].forEach(function (e) {
cn[e] = new sn(e, 3, !1, e.toLowerCase(), null, !1);
}),
["checked", "multiple", "muted", "selected"].forEach(function (e) {
cn[e] = new sn(e, 3, !0, e, null, !1);
}),
["capture", "download"].forEach(function (e) {
cn[e] = new sn(e, 4, !1, e, null, !1);
}),
["cols", "rows", "size", "span"].forEach(function (e) {
cn[e] = new sn(e, 6, !1, e, null, !1);
}),
["rowSpan", "start"].forEach(function (e) {
cn[e] = new sn(e, 5, !1, e.toLowerCase(), null, !1);
});
var ln = /[\-\:]([a-z])/g,
un = function (e) {
return e[1].toUpperCase();
};
[
"accent-height",
"alignment-baseline",
"arabic-form",
"baseline-shift",
"cap-height",
"clip-path",
"clip-rule",
"color-interpolation",
"color-interpolation-filters",
"color-profile",
"color-rendering",
"dominant-baseline",
"enable-background",
"fill-opacity",
"fill-rule",
"flood-color",
"flood-opacity",
"font-family",
"font-size",
"font-size-adjust",
"font-stretch",
"font-style",
"font-variant",
"font-weight",
"glyph-name",
"glyph-orientation-horizontal",
"glyph-orientation-vertical",
"horiz-adv-x",
"horiz-origin-x",
"image-rendering",
"letter-spacing",
"lighting-color",
"marker-end",
"marker-mid",
"marker-start",
"overline-position",
"overline-thickness",
"paint-order",
"panose-1",
"pointer-events",
"rendering-intent",
"shape-rendering",
"stop-color",
"stop-opacity",
"strikethrough-position",
"strikethrough-thickness",
"stroke-dasharray",
"stroke-dashoffset",
"stroke-linecap",
"stroke-linejoin",
"stroke-miterlimit",
"stroke-opacity",
"stroke-width",
"text-anchor",
"text-decoration",
"text-rendering",
"underline-position",
"underline-thickness",
"unicode-bidi",
"unicode-range",
"units-per-em",
"v-alphabetic",
"v-hanging",
"v-ideographic",
"v-mathematical",
"vector-effect",
"vert-adv-y",
"vert-origin-x",
"vert-origin-y",
"word-spacing",
"writing-mode",
"xmlns:xlink",
"x-height",
].forEach(function (e) {
var t = e.replace(ln, un);
cn[t] = new sn(t, 1, !1, e, null, !1);
}),
["xlink:actuate", "xlink:arcrole", "xlink:role", "xlink:show", "xlink:title", "xlink:type"].forEach(function (e) {
var t = e.replace(ln, un);
cn[t] = new sn(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1);
}),
["xml:base", "xml:lang", "xml:space"].forEach(function (e) {
var t = e.replace(ln, un);
cn[t] = new sn(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1);
}),
["tabIndex", "crossOrigin"].forEach(function (e) {
cn[e] = new sn(e, 1, !1, e.toLowerCase(), null, !1);
}),
(cn.xlinkHref = new sn("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0)),
["src", "href", "action", "formAction"].forEach(function (e) {
cn[e] = new sn(e, 1, !1, e.toLowerCase(), null, !0);
}),
_t.ReactDebugCurrentFrame;
var hn = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,
dn = !1;
function pn(e) {
!dn &&
hn.test(e) &&
((dn = !0),
Kt(
!1,
"A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",
JSON.stringify(e)
));
}
function fn(e, t, n, i) {
if (i.mustUseProperty) return e[i.propertyName];
i.sanitizeURL && pn("" + n);
var r = i.attributeName,
o = null;
if (4 === i.type) {
if (e.hasAttribute(r)) {
var a = e.getAttribute(r);
return "" === a || (on(t, n, i, !1) ? a : a === "" + n ? n : a);
}
} else if (e.hasAttribute(r)) {
if (on(t, n, i, !1)) return e.getAttribute(r);
if (3 === i.type) return n;
o = e.getAttribute(r);
}
return on(t, n, i, !1) ? (null === o ? n : o) : o === "" + n ? n : o;
}
function mn(e, t, n) {
if (tn(t)) {
if (!e.hasAttribute(t)) return void 0 === n ? void 0 : null;
var i = e.getAttribute(t);
return i === "" + n ? n : i;
}
}
function gn(e, t, n, i) {
var r = an(t);
if (!nn(t, r, i))
if ((on(t, n, r, i) && (n = null), i || null === r)) {
if (tn(t)) {
var o = t;
null === n ? e.removeAttribute(o) : e.setAttribute(o, "" + n);
}
} else if (r.mustUseProperty) {
var a = r.propertyName;
if (null === n) {
var s = r.type;
e[a] = 3 !== s && "";
} else e[a] = n;
} else {
var c = r.attributeName,
l = r.attributeNamespace;
if (null === n) e.removeAttribute(c);
else {
var u = r.type,
h = void 0;
3 === u || (4 === u && !0 === n) ? (h = "") : ((h = "" + n), r.sanitizeURL && pn(h)), l ? e.setAttributeNS(l, c, h) : e.setAttribute(c, h);
}
}
}
function bn(e) {
return "" + e;
}
function _n(e) {
switch (typeof e) {
case "boolean":
case "number":
case "object":
case "string":
case "undefined":
return e;
default:
return "";
}
}
var vn,
yn = { checkPropTypes: null };
vn = _t.ReactDebugCurrentFrame;
var Cn = { button: !0, checkbox: !0, image: !0, hidden: !0, radio: !0, reset: !0, submit: !0 },
Pn = {
value: function (e, t, n) {
return Cn[e.type] || e.onChange || e.readOnly || e.disabled || null == e[t]
? null
: new Error(
"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."
);
},
checked: function (e, t, n) {
return e.onChange || e.readOnly || e.disabled || null == e[t]
? null
: new Error(
"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."
);
},
};
yn.checkPropTypes = function (e, t) {
r(Pn, t, "prop", e, vn.getStackAddendum);
};
var xn = !1,
Tn = !1,
Sn = !1,
On = !1;
function En(e) {
return "checkbox" === e.type || "radio" === e.type ? null != e.checked : null != e.value;
}
function Mn(e, t) {
var n = e,
r = t.checked;
return i({}, t, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != r ? r : n._wrapperState.initialChecked });
}
function An(e, t) {
yn.checkPropTypes("input", t),
void 0 === t.checked ||
void 0 === t.defaultChecked ||
Tn ||
(Kt(
!1,
"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://fb.me/react-controlled-components",
Ut() || "A component",
t.type
),
(Tn = !0)),
void 0 === t.value ||
void 0 === t.defaultValue ||
xn ||
(Kt(
!1,
"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://fb.me/react-controlled-components",
Ut() || "A component",
t.type
),
(xn = !0));
var n = e,
i = null == t.defaultValue ? "" : t.defaultValue;
n._wrapperState = { initialChecked: null != t.checked ? t.checked : t.defaultChecked, initialValue: _n(null != t.value ? t.value : i), controlled: En(t) };
}
function In(e, t) {
var n = e,
i = t.checked;
null != i && gn(n, "checked", i, !1);
}
function Dn(e, t) {
var n = e,
i = En(t);
n._wrapperState.controlled ||
!i ||
On ||
(Kt(
!1,
"A component is changing an uncontrolled input of type %s to be controlled. Input elements should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://fb.me/react-controlled-components",
t.type
),
(On = !0)),
!n._wrapperState.controlled ||
i ||
Sn ||
(Kt(
!1,
"A component is changing a controlled input of type %s to be uncontrolled. Input elements should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://fb.me/react-controlled-components",
t.type
),
(Sn = !0)),
In(e, t);
var r = _n(t.value),
o = t.type;
if (null != r) "number" === o ? ((0 === r && "" === n.value) || n.value != r) && (n.value = bn(r)) : n.value !== bn(r) && (n.value = bn(r));
else if ("submit" === o || "reset" === o) return void n.removeAttribute("value");
t.hasOwnProperty("value") ? Ln(n, t.type, r) : t.hasOwnProperty("defaultValue") && Ln(n, t.type, _n(t.defaultValue)),
null == t.checked && null != t.defaultChecked && (n.defaultChecked = !!t.defaultChecked);
}
function Rn(e, t, n) {
var i = e;
if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) {
var r = t.type,
o = "submit" === r || "reset" === r;
if (o && (void 0 === t.value || null === t.value)) return;
var a = bn(i._wrapperState.initialValue);
n || (a !== i.value && (i.value = a)), (i.defaultValue = a);
}
var s = i.name;
"" !== s && (i.name = ""), (i.defaultChecked = !i.defaultChecked), (i.defaultChecked = !!i._wrapperState.initialChecked), "" !== s && (i.name = s);
}
function wn(e, t) {
var n = e;
Dn(n, t),
(function (e, t) {
var n = t.name;
if ("radio" === t.type && null != n) {
for (var i = e; i.parentNode; ) i = i.parentNode;
for (var r = i.querySelectorAll("input[name=" + JSON.stringify("" + n) + '][type="radio"]'), o = 0; o < r.length; o++) {
var a = r[o];
if (a !== e && a.form === e.form) {
var c = J(a);
!(function () {
if (!c) throw s(Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."));
})(),
bt(a),
Dn(a, c);
}
}
}
})(n, t);
}
function Ln(e, t, n) {
("number" === t && e.ownerDocument.activeElement === e) || (null == n ? (e.defaultValue = bn(e._wrapperState.initialValue)) : e.defaultValue !== bn(n) && (e.defaultValue = bn(n)));
}
var Fn = { change: { phasedRegistrationNames: { bubbled: "onChange", captured: "onChangeCapture" }, dependencies: ["blur", "change", "click", "focus", "input", "keydown", "keyup", "selectionchange"] } };
function Nn(e, t, n) {
var i = Oe.getPooled(Fn.change, e, t, n);
return (i.type = "change"), $e(n), ae(i), i;
}
var kn = null,
zn = null;
function jn(e) {
!(function (e, t) {
if (ot) return e(t);
ot = !0;
try {
tt(e, t);
} finally {
(ot = !1), at();
}
})(Bn, Nn(zn, e, dt(e)));
}
function Bn(e) {
V(e);
}
function Vn(e) {
if (bt(Q(e))) return e;
}
function Gn(e, t) {
if ("change" === e) return t;
}
var Un = !1;
function Hn() {
kn && (kn.detachEvent("onpropertychange", Wn), (kn = null), (zn = null));
}
function Wn(e) {
"value" === e.propertyName && Vn(zn) && jn(e);
}
function Xn(e, t, n) {
"focus" === e
? (Hn(),
(function (e, t) {
(zn = t), (kn = e).attachEvent("onpropertychange", Wn);
})(t, n))
: "blur" === e && Hn();
}
function Yn(e, t) {
if ("selectionchange" === e || "keyup" === e || "keydown" === e) return Vn(zn);
}
function Kn(e, t) {
if ("click" === e) return Vn(t);
}
function Zn(e, t) {
if ("input" === e || "change" === e) return Vn(t);
}
se && (Un = pt("input") && (!document.documentMode || document.documentMode > 9));
var qn = {
eventTypes: Fn,
_isInputEventSupported: Un,
extractEvents: function (e, t, n, i) {
var r,
o,
a,
s,
c = t ? Q(t) : window,
l = void 0,
u = void 0;
if (
("select" === (o = (r = c).nodeName && r.nodeName.toLowerCase()) || ("input" === o && "file" === r.type)
? (l = Gn)
: ht(c)
? Un
? (l = Zn)
: ((l = Yn), (u = Xn))
: (function (e) {
var t = e.nodeName;
return t && "input" === t.toLowerCase() && ("checkbox" === e.type || "radio" === e.type);
})(c) && (l = Kn),
l)
) {
var h = l(e, t);
if (h) return Nn(h, n, i);
}
u && u(e, c, t), "blur" === e && (s = (a = c)._wrapperState) && s.controlled && "number" === a.type && Ln(a, "number", a.value);
},
},
Qn = Oe.extend({ view: null, detail: null }),
Jn = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" };
function $n(e) {
var t = this.nativeEvent;
if (t.getModifierState) return t.getModifierState(e);
var n = Jn[e];
return !!n && !!t[n];
}
function ei(e) {
return $n;
}
var ti = 0,
ni = 0,
ii = !1,
ri = !1,
oi = Qn.extend({
screenX: null,
screenY: null,
clientX: null,
clientY: null,
pageX: null,
pageY: null,
ctrlKey: null,
shiftKey: null,
altKey: null,
metaKey: null,
getModifierState: ei,
button: null,
buttons: null,
relatedTarget: function (e) {
return e.relatedTarget || (e.fromElement === e.srcElement ? e.toElement : e.fromElement);
},
movementX: function (e) {
if ("movementX" in e) return e.movementX;
var t = ti;
return (ti = e.screenX), ii ? ("mousemove" === e.type ? e.screenX - t : 0) : ((ii = !0), 0);
},
movementY: function (e) {
if ("movementY" in e) return e.movementY;
var t = ni;
return (ni = e.screenY), ri ? ("mousemove" === e.type ? e.screenY - t : 0) : ((ri = !0), 0);
},
}),
ai = oi.extend({ pointerId: null, width: null, height: null, pressure: null, tangentialPressure: null, tiltX: null, tiltY: null, twist: null, pointerType: null, isPrimary: null }),
si = {
mouseEnter: { registrationName: "onMouseEnter", dependencies: ["mouseout", "mouseover"] },
mouseLeave: { registrationName: "onMouseLeave", dependencies: ["mouseout", "mouseover"] },
pointerEnter: { registrationName: "onPointerEnter", dependencies: ["pointerout", "pointerover"] },
pointerLeave: { registrationName: "onPointerLeave", dependencies: ["pointerout", "pointerover"] },
},
ci = {
eventTypes: si,
extractEvents: function (e, t, n, i) {
var r = "mouseover" === e || "pointerover" === e,
o = "mouseout" === e || "pointerout" === e;
if (r && (n.relatedTarget || n.fromElement)) return null;
if (!o && !r) return null;
var a = void 0;
if (i.window === i) a = i;
else {
var s = i.ownerDocument;
a = s ? s.defaultView || s.parentWindow : window;
}
var c = void 0,
l = void 0;
if (o) {
c = t;
var u = n.relatedTarget || n.toElement;
l = u ? Z(u) : null;
} else (c = null), (l = t);
if (c === l) return null;
var h = void 0,
d = void 0,
p = void 0,
f = void 0;
"mouseout" === e || "mouseover" === e
? ((h = oi), (d = si.mouseLeave), (p = si.mouseEnter), (f = "mouse"))
: ("pointerout" !== e && "pointerover" !== e) || ((h = ai), (d = si.pointerLeave), (p = si.pointerEnter), (f = "pointer"));
var m = null == c ? a : Q(c),
g = null == l ? a : Q(l),
b = h.getPooled(d, c, n, i);
(b.type = f + "leave"), (b.target = m), (b.relatedTarget = g);
var _ = h.getPooled(p, l, n, i);
return (
(_.type = f + "enter"),
(_.target = g),
(_.relatedTarget = m),
(function (e, t, n, i) {
te(n, i, re, e, t);
})(b, _, c, l),
[b, _]
);
},
};
function li(e, t) {
return (e === t && (0 !== e || 1 / e == 1 / t)) || (e != e && t != t);
}
var ui = Object.prototype.hasOwnProperty;
function hi(e, t) {
if (li(e, t)) return !0;
if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1;
var n = Object.keys(e),
i = Object.keys(t);
if (n.length !== i.length) return !1;
for (var r = 0; r < n.length; r++) if (!ui.call(t, n[r]) || !li(e[n[r]], t[n[r]])) return !1;
return !0;
}
function di(e, t) {
var n = { responder: e, props: t };
return Object.freeze(n), n;
}
function pi(e) {
return e._reactInternalFiber;
}
o.unstable_UserBlockingPriority, o.unstable_runWithPriority, new Map(), new Map(), new Set(), new Map();
var fi = _t.ReactCurrentOwner;
function mi(e) {
var t = e;
if (e.alternate) for (; t.return; ) t = t.return;
else {
if (0 != (2 & t.effectTag)) return 1;
for (; t.return; ) if (0 != (2 & (t = t.return).effectTag)) return 1;
}
return 3 === t.tag ? 2 : 3;
}
function gi(e) {
return 2 === mi(e);
}
function bi(e) {
!(function () {
if (2 !== mi(e)) throw s(Error("Unable to find node on an unmounted component."));
})();
}
function _i(e) {
var t = e.alternate;
if (!t) {
var n = mi(e);
return (
(function () {
if (3 === n) throw s(Error("Unable to find node on an unmounted component."));
})(),
1 === n ? null : e
);
}
for (var i = e, r = t; ; ) {
var o = i.return;
if (null === o) break;
var a = o.alternate;
if (null === a) {
var c = o.return;
if (null !== c) {
i = r = c;
continue;
}
break;
}
if (o.child === a.child) {
for (var l = o.child; l; ) {
if (l === i) return bi(o), e;
if (l === r) return bi(o), t;
l = l.sibling;
}
!(function () {
throw s(Error("Unable to find node on an unmounted component."));
})();
}
if (i.return !== r.return) (i = o), (r = a);
else {
for (var u = !1, h = o.child; h; ) {
if (h === i) {
(u = !0), (i = o), (r = a);
break;
}
if (h === r) {
(u = !0), (r = o), (i = a);
break;
}
h = h.sibling;
}
if (!u) {
for (h = a.child; h; ) {
if (h === i) {
(u = !0), (i = a), (r = o);
break;
}
if (h === r) {
(u = !0), (r = a), (i = o);
break;
}
h = h.sibling;
}
!(function () {
if (!u) throw s(Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue."));
})();
}
}
!(function () {
if (i.alternate !== r) throw s(Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."));
})();
}
return (
(function () {
if (3 !== i.tag) throw s(Error("Unable to find node on an unmounted component."));
})(),
i.stateNode.current === i ? e : t
);
}
function vi(e) {
var t = _i(e);
if (!t) return null;
for (var n = t; ; ) {
if (5 === n.tag || 6 === n.tag) return n;
if (n.child) (n.child.return = n), (n = n.child);
else {
if (n === t) return null;
for (; !n.sibling; ) {
if (!n.return || n.return === t) return null;
n = n.return;
}
(n.sibling.return = n.return), (n = n.sibling);
}
}
return null;
}
function yi(e, t, n) {
e.addEventListener(t, n, !0);
}
var Ci = Oe.extend({ animationName: null, elapsedTime: null, pseudoElement: null }),
Pi = Oe.extend({
clipboardData: function (e) {
return "clipboardData" in e ? e.clipboardData : window.clipboardData;
},
}),
xi = Qn.extend({ relatedTarget: null });
function Ti(e) {
var t = void 0,
n = e.keyCode;
return "charCode" in e ? 0 === (t = e.charCode) && 13 === n && (t = 13) : (t = n), 10 === t && (t = 13), t >= 32 || 13 === t ? t : 0;
}
for (
var Si = {
Esc: "Escape",
Spacebar: " ",
Left: "ArrowLeft",
Up: "ArrowUp",
Right: "ArrowRight",
Down: "ArrowDown",
Del: "Delete",
Win: "OS",
Menu: "ContextMenu",
Apps: "ContextMenu",
Scroll: "ScrollLock",
MozPrintableKey: "Unidentified",
},
Oi = {
8: "Backspace",
9: "Tab",
12: "Clear",
13: "Enter",
16: "Shift",
17: "Control",
18: "Alt",
19: "Pause",
20: "CapsLock",
27: "Escape",
32: " ",
33: "PageUp",
34: "PageDown",
35: "End",
36: "Home",
37: "ArrowLeft",
38: "ArrowUp",
39: "ArrowRight",
40: "ArrowDown",
45: "Insert",
46: "Delete",
112: "F1",
113: "F2",
114: "F3",
115: "F4",
116: "F5",
117: "F6",
118: "F7",
119: "F8",
120: "F9",
121: "F10",
122: "F11",
123: "F12",
144: "NumLock",
145: "ScrollLock",
224: "Meta",
},
Ei = Qn.extend({
key: function (e) {
if (e.key) {
var t = Si[e.key] || e.key;
if ("Unidentified" !== t) return t;
}
if ("keypress" === e.type) {
var n = Ti(e);
return 13 === n ? "Enter" : String.fromCharCode(n);
}
return "keydown" === e.type || "keyup" === e.type ? Oi[e.keyCode] || "Unidentified" : "";
},
location: null,
ctrlKey: null,
shiftKey: null,
altKey: null,
metaKey: null,
repeat: null,
locale: null,
getModifierState: ei,
charCode: function (e) {
return "keypress" === e.type ? Ti(e) : 0;
},
keyCode: function (e) {
return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0;
},
which: function (e) {
return "keypress" === e.type ? Ti(e) : "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0;
},
}),
Mi = oi.extend({ dataTransfer: null }),
Ai = Qn.extend({ touches: null, targetTouches: null, changedTouches: null, altKey: null, metaKey: null, ctrlKey: null, shiftKey: null, getModifierState: ei }),
Ii = Oe.extend({ propertyName: null, elapsedTime: null, pseudoElement: null }),
Di = oi.extend({
deltaX: function (e) {
return ("deltaX" in e) ? e.deltaX : ("wheelDeltaX" in e) ? -e.wheelDeltaX : 0;
},
deltaY: function (e) {
return ("deltaY" in e) ? e.deltaY : ("wheelDeltaY" in e) ? -e.wheelDeltaY : ("wheelDelta" in e) ? -e.wheelDelta : 0;
},
deltaZ: null,
deltaMode: null,
}),
Ri = [
["blur", "blur", 0],
["cancel", "cancel", 0],
["click", "click", 0],
["close", "close", 0],
["contextmenu", "contextMenu", 0],
["copy", "copy", 0],
["cut", "cut", 0],
["auxclick", "auxClick", 0],
["dblclick", "doubleClick", 0],
["dragend", "dragEnd", 0],
["dragstart", "dragStart", 0],
["drop", "drop", 0],
["focus", "focus", 0],
["input", "input", 0],
["invalid", "invalid", 0],
["keydown", "keyDown", 0],
["keypress", "keyPress", 0],
["keyup", "keyUp", 0],
["mousedown", "mouseDown", 0],
["mouseup", "mouseUp", 0],
["paste", "paste", 0],
["pause", "pause", 0],
["play", "play", 0],
["pointercancel", "pointerCancel", 0],
["pointerdown", "pointerDown", 0],
["pointerup", "pointerUp", 0],
["ratechange", "rateChange", 0],
["reset", "reset", 0],
["seeked", "seeked", 0],
["submit", "submit", 0],
["touchcancel", "touchCancel", 0],
["touchend", "touchEnd", 0],
["touchstart", "touchStart", 0],
["volumechange", "volumeChange", 0],
["drag", "drag", 1],
["dragenter", "dragEnter", 1],
["dragexit", "dragExit", 1],
["dragleave", "dragLeave", 1],
["dragover", "dragOver", 1],
["mousemove", "mouseMove", 1],
["mouseout", "mouseOut", 1],
["mouseover", "mouseOver", 1],
["pointermove", "pointerMove", 1],
["pointerout", "pointerOut", 1],
["pointerover", "pointerOver", 1],
["scroll", "scroll", 1],
["toggle", "toggle", 1],
["touchmove", "touchMove", 1],
["wheel", "wheel", 1],
["abort", "abort", 2],
[pe, "animationEnd", 2],
[fe, "animationIteration", 2],
[me, "animationStart", 2],
["canplay", "canPlay", 2],
["canplaythrough", "canPlayThrough", 2],
["durationchange", "durationChange", 2],
["emptied", "emptied", 2],
["encrypted", "encrypted", 2],
["ended", "ended", 2],
["error", "error", 2],
["gotpointercapture", "gotPointerCapture", 2],
["load", "load", 2],
["loadeddata", "loadedData", 2],
["loadedmetadata", "loadedMetadata", 2],
["loadstart", "loadStart", 2],
["lostpointercapture", "lostPointerCapture", 2],
["playing", "playing", 2],
["progress", "progress", 2],
["seeking", "seeking", 2],
["stalled", "stalled", 2],
["suspend", "suspend", 2],
["timeupdate", "timeUpdate", 2],
[ge, "transitionEnd", 2],
["waiting", "waiting", 2],
],
wi = {},
Li = {},
Fi = 0;
Fi < Ri.length;
Fi++
) {
var Ni = Ri[Fi],
ki = Ni[0],
zi = Ni[1],
ji = Ni[2],
Bi = "on" + (zi[0].toUpperCase() + zi.slice(1)),
Vi = { phasedRegistrationNames: { bubbled: Bi, captured: Bi + "Capture" }, dependencies: [ki], eventPriority: ji };
(wi[zi] = Vi), (Li[ki] = Vi);
}
var Gi = [
"abort",
"cancel",
"canplay",
"canplaythrough",
"close",
"durationchange",
"emptied",
"encrypted",
"ended",
"error",
"input",
"invalid",
"load",
"loadeddata",
"loadedmetadata",
"loadstart",
"pause",
"play",
"playing",
"progress",
"ratechange",
"reset",
"seeked",
"seeking",
"stalled",
"submit",
"suspend",
"timeupdate",
"toggle",
"volumechange",
"waiting",
],
Ui = {
eventTypes: wi,
getEventPriority: function (e) {
var t = Li[e];
return void 0 !== t ? t.eventPriority : 2;
},
extractEvents: function (e, t, n, i) {
var r = Li[e];
if (!r) return null;
var o = void 0;
switch (e) {
case "keypress":
if (0 === Ti(n)) return null;
case "keydown":
case "keyup":
o = Ei;
break;
case "blur":
case "focus":
o = xi;
break;
case "click":
if (2 === n.button) return null;
case "auxclick":
case "dblclick":
case "mousedown":
case "mousemove":
case "mouseup":
case "mouseout":
case "mouseover":
case "contextmenu":
o = oi;
break;
case "drag":
case "dragend":
case "dragenter":
case "dragexit":
case "dragleave":
case "dragover":
case "dragstart":
case "drop":
o = Mi;
break;
case "touchcancel":
case "touchend":
case "touchmove":
case "touchstart":
o = Ai;
break;
case pe:
case fe:
case me:
o = Ci;
break;
case ge:
o = Ii;
break;
case "scroll":
o = Qn;
break;
case "wheel":
o = Di;
break;
case "copy":
case "cut":
case "paste":
o = Pi;
break;
case "gotpointercapture":
case "lostpointercapture":
case "pointercancel":
case "pointerdown":
case "pointermove":
case "pointerout":
case "pointerover":
case "pointerup":
o = ai;
break;
default:
-1 === Gi.indexOf(e) && D(!1, "SimpleEventPlugin: Unhandled event type, `%s`. This warning is likely caused by a bug in React. Please file an issue.", e), (o = Oe);
}
var a = o.getPooled(r, t, n, i);
return ae(a), a;
},
},
Hi = (o.unstable_UserBlockingPriority, o.unstable_runWithPriority, Ui.getEventPriority),
Wi = [];
function Xi(e) {
for (; e.return; ) e = e.return;
return 3 !== e.tag ? null : e.stateNode.containerInfo;
}
function Yi(e) {
var t = e.targetInst,
n = t;
do {
if (!n) {
e.ancestors.push(n);
break;
}
var i = Xi(n);
if (!i) break;
e.ancestors.push(n), (n = Z(i));
} while (n);
for (var r = 0; r < e.ancestors.length; r++) {
t = e.ancestors[r];
var o = dt(e.nativeEvent);
H(e.topLevelType, t, e.nativeEvent, o);
}
}
var Ki = !0;
function Zi(e) {
Ki = !!e;
}
function qi(e, t) {
Ji(t, e, !1);
}
function Qi(e, t) {
Ji(t, e, !0);
}
function Ji(e, t, n) {
var i = void 0;
switch (Hi(t)) {
case 0:
i = $i.bind(null, t, 1);
break;
case 1:
i = er.bind(null, t, 1);
break;
case 2:
default:
i = nr.bind(null, t, 1);
}
var r = t;
n
? yi(e, r, i)
: (function (e, t, n) {
e.addEventListener(t, n, !1);
})(e, r, i);
}
function $i(e, t, n) {
lt(n.timeStamp), ct(nr, e, t, n);
}
function er(e, t, n) {
nr(e, 0, n);
}
function tr(e, t, n, i) {
var r,
o = (function (e, t, n) {
if (Wi.length) {
var i = Wi.pop();
return (i.topLevelType = e), (i.nativeEvent = t), (i.targetInst = n), i;
}
return { topLevelType: e, nativeEvent: t, targetInst: n, ancestors: [] };
})(e, n, i);
try {
st(Yi, o);
} finally {
((r = o).topLevelType = null), (r.nativeEvent = null), (r.targetInst = null), (r.ancestors.length = 0), Wi.length < 10 && Wi.push(r);
}
}
function nr(e, t, n) {
if (Ki) {
var i = dt(n),
r = Z(i);
null === r || "number" != typeof r.tag || gi(r) || (r = null), tr(e, 0, n, r);
}
}
var ir = new ("function" == typeof WeakMap ? WeakMap : Map)();
function rr(e) {
var t = ir.get(e);
return void 0 === t && ((t = new Set()), ir.set(e, t)), t;
}
function or(e) {
if (void 0 === (e = e || ("undefined" != typeof document ? document : void 0))) return null;
try {
return e.activeElement || e.body;
} catch (t) {
return e.body;
}
}
function ar(e) {
for (; e && e.firstChild; ) e = e.firstChild;
return e;
}
function sr(e) {
for (; e; ) {
if (e.nextSibling) return e.nextSibling;
e = e.parentNode;
}
}
function cr(e, t) {
for (var n = ar(e), i = 0, r = 0; n; ) {
if (3 === n.nodeType) {
if (((r = i + n.textContent.length), i <= t && r >= t)) return { node: n, offset: t - i };
i = r;
}
n = ar(sr(n));
}
}
function lr(e) {
var t = e.ownerDocument,
n = (t && t.defaultView) || window,
i = n.getSelection && n.getSelection();
if (!i || 0 === i.rangeCount) return null;
var r = i.anchorNode,
o = i.anchorOffset,
a = i.focusNode,
s = i.focusOffset;
try {
r.nodeType, a.nodeType;
} catch (e) {
return null;
}
return (function (e, t, n, i, r) {
var o = 0,
a = -1,
s = -1,
c = 0,
l = 0,
u = e,
h = null;
e: for (;;) {
for (
var d = null;
u !== t || (0 !== n && 3 !== u.nodeType) || (a = o + n), u !== i || (0 !== r && 3 !== u.nodeType) || (s = o + r), 3 === u.nodeType && (o += u.nodeValue.length), null !== (d = u.firstChild);
)
(h = u), (u = d);
for (;;) {
if (u === e) break e;
if ((h === t && ++c === n && (a = o), h === i && ++l === r && (s = o), null !== (d = u.nextSibling))) break;
h = (u = h).parentNode;
}
u = d;
}
return -1 === a || -1 === s ? null : { start: a, end: s };
})(e, r, o, a, s);
}
function ur(e) {
return e && 3 === e.nodeType;
}
function hr(e) {
return (
e &&
e.ownerDocument &&
(function e(t, n) {
return !(!t || !n) && (t === n || (!ur(t) && (ur(n) ? e(t, n.parentNode) : "contains" in t ? t.contains(n) : !!t.compareDocumentPosition && !!(16 & t.compareDocumentPosition(n)))));
})(e.ownerDocument.documentElement, e)
);
}
function dr(e) {
try {
return "string" == typeof e.contentWindow.location.href;
} catch (e) {
return !1;
}
}
function pr() {
for (var e = window, t = or(); t instanceof e.HTMLIFrameElement; ) {
if (!dr(t)) return t;
t = or((e = t.contentWindow).document);
}
return t;
}
function fr(e) {
var t = e && e.nodeName && e.nodeName.toLowerCase();
return t && (("input" === t && ("text" === e.type || "search" === e.type || "tel" === e.type || "url" === e.type || "password" === e.type)) || "textarea" === t || "true" === e.contentEditable);
}
function mr(e) {
var t,
n,
i,
r,
o = pr(),
a = e.focusedElem,
s = e.selectionRange;
if (o !== a && hr(a)) {
null !== s &&
fr(a) &&
((t = a),
(i = (n = s).start),
void 0 === (r = n.end) && (r = i),
"selectionStart" in t
? ((t.selectionStart = i), (t.selectionEnd = Math.min(r, t.value.length)))
: (function (e, t) {
var n = e.ownerDocument || document,
i = (n && n.defaultView) || window;
if (i.getSelection) {
var r = i.getSelection(),
o = e.textContent.length,
a = Math.min(t.start, o),
s = void 0 === t.end ? a : Math.min(t.end, o);
if (!r.extend && a > s) {
var c = s;
(s = a), (a = c);
}
var l = cr(e, a),
u = cr(e, s);
if (l && u) {
if (1 === r.rangeCount && r.anchorNode === l.node && r.anchorOffset === l.offset && r.focusNode === u.node && r.focusOffset === u.offset) return;
var h = n.createRange();
h.setStart(l.node, l.offset), r.removeAllRanges(), a > s ? (r.addRange(h), r.extend(u.node, u.offset)) : (h.setEnd(u.node, u.offset), r.addRange(h));
}
}
})(t, n));
for (var c = [], l = a; (l = l.parentNode); ) 1 === l.nodeType && c.push({ element: l, left: l.scrollLeft, top: l.scrollTop });
"function" == typeof a.focus && a.focus();
for (var u = 0; u < c.length; u++) {
var h = c[u];
(h.element.scrollLeft = h.left), (h.element.scrollTop = h.top);
}
}
}
var gr = se && "documentMode" in document && document.documentMode <= 11,
br = {
select: {
phasedRegistrationNames: { bubbled: "onSelect", captured: "onSelectCapture" },
dependencies: ["blur", "contextmenu", "dragend", "focus", "keydown", "keyup", "mousedown", "mouseup", "selectionchange"],
},
},
_r = null,
vr = null,
yr = null,
Cr = !1;
function Pr(e) {
return e.window === e ? e.document : 9 === e.nodeType ? e : e.ownerDocument;
}
function xr(e, t) {
var n = Pr(t);
if (Cr || null == _r || _r !== or(n)) return null;
var i = (function (e) {
if ("selectionStart" in e && fr(e)) return { start: e.selectionStart, end: e.selectionEnd };
var t = ((e.ownerDocument && e.ownerDocument.defaultView) || window).getSelection();
return { anchorNode: t.anchorNode, anchorOffset: t.anchorOffset, focusNode: t.focusNode, focusOffset: t.focusOffset };
})(_r);
if (!yr || !hi(yr, i)) {
yr = i;
var r = Oe.getPooled(br.select, vr, e, t);
return (r.type = "select"), (r.target = _r), ae(r), r;
}
return null;
}
var Tr = {
eventTypes: br,
extractEvents: function (e, t, n, i) {
var r = Pr(i);
if (
!r ||
!(function (e, t) {
for (var n = rr(t), i = g[e], r = 0; r < i.length; r++) {
var o = i[r];
if (!n.has(o)) return !1;
}
return !0;
})("onSelect", r)
)
return null;
var o = t ? Q(t) : window;
switch (e) {
case "focus":
(ht(o) || "true" === o.contentEditable) && ((_r = o), (vr = t), (yr = null));
break;
case "blur":
(_r = null), (vr = null), (yr = null);
break;
case "mousedown":
Cr = !0;
break;
case "contextmenu":
case "mouseup":
case "dragend":
return (Cr = !1), xr(n, i);
case "selectionchange":
if (gr) break;
case "keydown":
case "keyup":
return xr(n, i);
}
return null;
},
};
G.injectEventPluginOrder(["ResponderEventPlugin", "SimpleEventPlugin", "EnterLeaveEventPlugin", "ChangeEventPlugin", "SelectEventPlugin", "BeforeInputEventPlugin"]),
(R = J),
(w = q),
((L = Q) && w) || D(!1, "EventPluginUtils.setComponentTree(...): Injected module is missing getNodeFromInstance or getInstanceFromNode."),
G.injectEventPluginsByName({ SimpleEventPlugin: Ui, EnterLeaveEventPlugin: ci, ChangeEventPlugin: qn, SelectEventPlugin: Tr, BeforeInputEventPlugin: Ke });
var Sr = !1,
Or = !1;
function Er(e, n) {
"object" == typeof n.children &&
null !== n.children &&
t.Children.forEach(n.children, function (e) {
null != e && "string" != typeof e && "number" != typeof e && "string" == typeof e.type && (Or || ((Or = !0), Kt(!1, "Only strings and numbers are supported as